首页 > 其他分享 >原始翎风CLIENT8位 (11) fsata的学习

原始翎风CLIENT8位 (11) fsata的学习

时间:2024-05-07 22:48:19浏览次数:29  
标签:CLIENT8 11 nPlayPoint 翎风 对话框 wil n67C 20 Data

本单元提供系统中的所有对话框显示

MAINIMAGEFILE = 'Data\Prguse.wil';
MAINIMAGEFILE2 = 'Data\Prguse2.wil';
MAINIMAGEFILE3 = 'Data\Prguse3.wil';
CHRSELIMAGEFILE = 'Data\ChrSel.wil';
MINMAPIMAGEFILE = 'Data\mmap.wil';
TITLESIMAGEFILE = 'Data\Tiles.wil';
SMLTITLESIMAGEFILE = 'Data\SmTiles.wil';
HUMWINGIMAGESFILE = 'Data\HumEffect.wil';
MAGICONIMAGESFILE = 'Data\MagIcon.wil';
HUMIMGIMAGESFILE = 'Data\Hum.wil';
HAIRIMGIMAGESFILE = 'Data\Hair.wil';
WEAPONIMAGESFILE = 'Data\Weapon.wil';
NPCIMAGESFILE = 'Data\Npc.wil';
MAGICIMAGESFILE = 'Data\Magic.wil';
MAGIC2IMAGESFILE = 'Data\Magic2.wil';
EVENTEFFECTIMAGESFILE = EFFECTIMAGEDIR + 'Event.wil';
BAGITEMIMAGESFILE = 'Data\Items.wil';
STATEITEMIMAGESFILE = 'Data\StateItem.wil';
DNITEMIMAGESFILE = 'Data\DnItems.wil';
OBJECTIMAGEFILE = 'Data\Objects.wil';
OBJECTIMAGEFILE1 = 'Data\Objects%d.wil';
MONIMAGEFILE = 'Data\Mon%d.wil';
DRAGONIMAGEFILE = 'Data\Dragon.wil';
EFFECTIMAGEFILE = 'Data\Effect.wil';

MONIMAGEFILEEX = 'Graphics\Monster\%d.wil';
MONPMFILE = 'Graphics\Monster\%d.pm';

g_MovingItem.Index
0-5 来自快捷物品栏
0..MAXBAGITEM - 1 g_ItemArr
-1..-13 g_UseItems -(idx + 1) [0..12] 老版9格,-1 ..-9
-30..-20 g_DealItems
{------------------------------------------------------------------------------}
//玩家状态面板框
{------------------------------------------------------------------------------}

商店物品
MenuList
g_SaveItemList

ShowDice()
分析

m_Dice[0..9] 骰子数组 10
m_nDiceCount 骰子个数 大概是这数组的10个不是全用。

一个骰子的情况m_nDiceCount为1
n67C < 20
GetTickCount dwPlayTick时间 大于100
如果n67C div 5 = 4 (这个不可能执行了)
nPlayPoint等于Random(6) + 1
如果n67C不等于20
执行nPlayPoint n67C div 5 + 8 为0,1,2,3(8,9,10,11)
数值分段了?
dwPlayTick := GetTickCount
n67C增1
退出

n67C >= 20
nPlayPoint := nDicePoint
GetTickCount时间dwPlayTick超过1.5秒 对话框关闭?
退出。

多个骰子的情况
设置标志bo05 true
循环到m_nDiceCount
n67C 小于n680
GetTickCount dwPlayTick时间 大于100
n67C 等于20 (n67C div 5 = 4)
nPlayPoint := Random(6) + 1;随机0-5 +1
n67C 不等于20
nPlayPoint等于n67C div 5 + 8 也是以5分段在n680的限制内
dwPlayTick取当前时间点, n67C增1
标志bo05 false

n67C 大于等于n680


nPlayPoint := nDicePoint
时间点判断dwPlayTick小于2秒,标志bo05 false

最后判断 bo05 关闭DMsgDlg.Visible := False

这个函数应该是不停的调用的
所以n67C 在不断的递增1

还有个时间的判断大于上次的100毫秒,进行计算
在超过1.5秒(2秒)关闭对话框?

单个骰子n67C是20的阀值
对nPlayPoint 赋值,超过就是赋值nDicePoint

多个骰子n67C是同n680比较 n680是阀值
对nPlayPoint 赋值,超过就是赋值nDicePoint
用标志bo05判断
在超过(2秒)关闭对话框

SM_PLAYDICE
消息里面 给骰子装载数据
赋值了 m_nDiceCount
和nDicePoint

DialogSize := 0;数据复位?
DMessageDlg('', []);

发送商人对话框输框,
如果服务器发来的字符串是@@
客户端输入把@@ + 输入的内容发给服务器?

那么这个nDicePoint 和nPlayPoint 代表什么?

DMessageDlg
消息显示对话框

大概看明白了
3种对话框,
小的,普通的, 竖型的
对应不同的素材图片

里面有几种按钮。

显示投骰子功能 也在这个里面实现,有个数组来支持

还有输入功能,输入行会名称的?

其完全是当一个控件来使用的,
还有事件,
绘图时间,
键盘按下事件。

感觉这都是在循着VCL 的按钮,面板,编辑框这些的控件规则
给改造了一下。


StdMode 物品种类
0 药品 强效金创要
1干肉?
2 ?
3 地牢逃脱卷 战神油,祝福油,修复油 行会回城卷 ,回城卷 随机传送卷,彩票
攻击力药水
4 技能书

31 打捆类物品?超级金创药,超级魔法药 金创药(小)包,中包 地牢逃脱卷包 筹码包 打捆护身符
5..6: //武器
10, 11: //男衣服, 女衣服

15, //头盔,捧备
19, 20, 21, //项链
22, 23, //戒指
24, 26, //手镯
51,
52, 62, //鞋
53, 63,
54, 64: //腰带

19, 53: //项链
20, 24, 52: //项链 及 手镯:
21, 54: //项链
23: //戒指
62: //Boots
63: //Charm

25: //护身符及毒药
30: //照明物
40: //肉
42: //药材
43: //矿石

 

1,//玩家状态面板框
2,//创建角色框
3,


gOkDirectPaint

 

if doFullScreen in DxDraw.Options then
begin //窗口
end
else
begin
Width := SCREENWIDTH; //窗口
AddHeight := FrmMain.Height - ClientRect.Bottom; //窗口
Height := SCREENHEIGHT + AddHeight; //窗口
Left := (Screen.Width - Frmmain.Width) div 2; //窗口
Top := (Screen.Height - Frmmain.Height) div 2; //窗口
g_boNoDarkness := TRUE;
end;

标签:CLIENT8,11,nPlayPoint,翎风,对话框,wil,n67C,20,Data
From: https://www.cnblogs.com/D7mir/p/18178584

相关文章

  • 原始翎风CLIENT8位 (12) playscn的学习
    绘图关键的数据地图客户区,以主角的地图坐标为中心左右各9格,上下9,8格一切以主角为中心进行计算,换算。Map.m_ClientRectLeft:=g_MySelf.m_nRx-9;Top:=g_MySelf.m_nRy-9;Right:=g_MySelf.m_nRx+9;Bottom:=g_MySelf.m_nRy+8; 地图地面绘图m_MapSurface的像素大小......
  • 原始翎风CLIENT8位 (10) tscenc的学习
    IntroScn.pas嗟夫DELPHI输入法相关知识凡是窗口类都有TImeMode这是个集合其中包含有:TImeMode=(imDisable,imClose,imOpen,imDontCare,imSAlpha,imAlpha,imHira,imSKata,imKata,imChinese,imSHanguel,imHanguel);指定imDisable的话IME变得无效。既无法作使......
  • 原始翎风CLIENT8位 (13) actor的学习
    functionGetOffset(appr:integer):integer偏移大于1000退出nrace:=apprdiv10nrace0-90npos:=apprmod10npos0-9这个找的是怪物图片在文件中图片索引偏移量分为很多种,有偏移280,280是一个怪物的一组图片,例如MON1有偏移230,例如MON2有偏移360的,例如MON3appr应该......
  • 原始翎风CLIENT8位 (14) mapunit的学习
    8.MaxInt格式:constMaxInt=High(integer);说明:MaxInt常量代表Integer类型的最大可能值.MaxInt的真正的值会随着Delphi的版本不同而改变,目前它的值是21474836472g?地图好像是分块?40*40个地图坐标分为一个广场块一次读取是当前块的-1X/Y+2合计4*4块合计160*160个......
  • 原始翎风CLIENT8位 (8) CLUNIT的学习
    这个里面是绘图,有汇编,那个绘画效果的汇编看明白了,实际是先建立了一个颜色的转换索引表,颜色对应下标,数据是转换后的颜色在绘画效果中用函数功能找到混合表面的的指针,锁定它用汇编语言,将混合表面的每一个像素查找转换索引表,转换过去。因为用了MM0寄存器,这是个MMX的指令里面的,它是64......
  • 原始翎风CLIENT8位 (9) magieff的学习
    定义类型这里的魔法效果,是扔出去的魔法效果,魔法释放后的效果在施咒的动作的,如火球术的施咒效果图样是在自身的,却不在这里,由Actor单元里面实现有个m_nCurEffFrame,但是奇怪的是空间移动,是图样是在于自身这些效果,又是由本单元里面实现的。 TMagicType枚举开头mtmtReady准备?mt......
  • SystemVerilog -- 11.0 Introduction
    SystemVerilogAssertions系统的行为可以写成一个assertion,该assertion在任何时候都应该为真。因此,assertion用于验证定义为属性的系统的行为,也可用于功能覆盖。Whatareproperitiesofadesign?如果assertion检查的设计属性未按预期方式运行,则assertion将失败。例如,假设设......
  • 一个pybind11的例子
    首先在当前文件夹下安装pybind11。然后编写以下3个文件:1、CMakeLists.txtcmake_minimum_required(VERSION3.5)project(exampleLANGUAGESCXX)add_subdirectory(pybind11)pybind11_add_module(barbar.cpp)2、foo.pyimportbarhello_world=bar.HelloWorl......
  • openGauss 导出所有数据库-11
    导出所有数据库openGauss支持使用gs_dumpall工具导出所有数据库的全量信息,包含openGauss中每个数据库信息和公共的全局对象信息。可根据需要自定义导出如下信息:导出所有数据库全量信息,包含openGauss中每个数据库信息和公共的全局对象信息(包含角色和表空间信息)。使用导出的全......
  • web server apache tomcat11-33-CDI
    前言整理这个官方翻译的系列,原因是网上大部分的tomcat版本比较旧,此版本为v11最新的版本。开源项目从零手写实现tomcatminicat别称【嗅虎】心有猛虎,轻嗅蔷薇。系列文章webserverapachetomcat11-01-官方文档入门介绍webserverapachetomcat11-02-setup启动web......