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

原始翎风CLIENT8位 (10) tscenc的学习

时间:2024-05-07 22:46:07浏览次数:28  
标签:CLIENT8 10 IME 翎风 dynamic 指定 输入 procedure

IntroScn.pas

嗟夫
DELPHI 输入法相关知识
凡是窗口类 都有TImeMode 这是个集合 其中包含有:

TImeMode = (imDisable, imClose, imOpen, imDontCare,
imSAlpha, imAlpha, imHira, imSKata, imKata,
imChinese, imSHanguel, imHanguel);

指定 imDisable 的话 IME 变得无效。既无法作使用了 IME 的输入,即使用户的操作也无法
让 IME 有效。

指定 imClose 的话 IME 变得无效。和 imDisable 不同,能用用户的操作让 IME 有效。

指定 imOpen 的话 IME 变得有效。

指定 imDontCare 的话 IME 的有效 /无效的情况,继承之前的情况。根据用户的操作而让
IME 有效之类等等能做。在日文输入方面,,是让用户自由地输入半角 /全角文字的情况的一
般的模式。

指定 imSAlpha 的话 IME 变得有效,成为半角拉丁字母输入模式。

指定 imAlpha 的话 IME 变得有效,成为全角拉丁字母输入模式。

指定 imHira 的话 IME 变得有效,成为平假名输入模式。

指定 imSKata 的话 IME 变得有效,成为半角片假名输入模式。

指定 imKata 的话 IME 变得有效,成为全角片假名输入模式。

指定 imChinese 的话 IME 变得有效,成为接受 2 位元中文输入的模式。无法在日文环境能
使用。

指定 imSHanguel 的话 IME 变得有效,成为接受 1 位元韩文输入的模式。无法在日文环境能
使用。

指定 imHanguel 的话 IME 变得有效,成为接受 2 位元韩文输入的模式。无法在日文环境能
使用。

标签: delphi


7 0 1
6 2
5 4 3

//左手

0+8=8-2

1+8=9-2

2+8=10 -10

3+8=11-10

4+8=12-10

5+8=13-10

6+8=14-10

7+8=15-10

//右手

0+2=2
1+2=3
2+2=4
3+2=5
4+2=6
5+2=7
6+2=8 - 8
7+2=9 - 8

标签: 游戏心得

嗟夫
APP魔法顺序笔记
以冰咆哮为例:

首先是客户端:
1、TfrmMain.ProcessKeyMessages 里面
  1.1、nMagID := GetMagIDByKey(nKey); 根据按键取得魔法ID
  1.2、调用UseMagic()函数来制造这个魔法

2、在UseMagic() 函数里面
  2.1、判断MP是否足够
  2.2、判断要生成魔法的坐标位置等信息
  2.3、g_MySelf.SendMsg()发送CM_SPELL信息

3、在TActor.ReadyAction里面拦截到CM_SPELL信息
  3.1、将信息的索引 msg.Ident改为 SM_SPELL 注意这里收到这个信息包后并没有删除
UseMagic!就在同一个函数中 执行到下面的 SM_SPELL 会继续处理这个信息包

  3.3、 运行到 SM_SPELL段 取得UseMagic里面的内容 将它放入 m_CurMagic 然后删除掉
这个UseMagic

4、在THumActor.CalcActorFrame

 

 

此刻才到引擎:

1、再然后引擎搜索周围的玩家 除了自己外 都发送 SM_SPELL给对方 因为自己已经执行过动

里面定义的类,全部没有属性
嗟夫
武器的最大攻击与最小攻击的算法
比如 最小值 17
最大值 29

计算方式是

17+ 取随机数(29-17)=最终值!

嗟夫
APPLE源码从DELPHI2007升级DELPHIDX4的总结
今天我成功的将APPLE源码的HGEDELPHI控件从DELPHI2007平台升级到DELPHIXE4的一些记录:

1.1:PAK资源文件的资源头段字节大小不对 原先的是64 而XE4下是87

   这个是因为char 的缘故,在XE4下 CHAR 不再是AnsiChar 而是 wideChar 这样导致文件
头大小不对。

1.2:ZLIB的参数变化 XE4下的ZLIB已经有所改动,导致原来的指针转换出错。

已完成对PAK的处理

2.1:HGEDELPHI控件的D3DX81ab.dll因为是事先转为字节然后内存加载的,而这个内存加载DLL
的函数在XE4下不修复是无法使用的。

一种办法是处理好内存加载,另一种办法是去掉内存加载 直接将HGE换成DX9。我选择了第二
种办法。

  已解决

TScene = class 这个从tobject开始
里面只多了一个SceneType: TSceneType;
而TSceneType 定义
TSceneType = (stIntro, stLogin, stSelectCountry, stSelectChr, stNewChr,
stLoading,stLoginNotice, stPlayGame);
然后是 Create(scenetype: TSceneType)
里面就是个SceneType,就没有了。
应该是有个默认的TOBJECT.CREATE的。
其它的都是动态方法,实际可以改成虚方法。
初始化
procedure Initialize; dynamic;
结束化
procedure Finalize; dynamic;
打开场景
procedure OpenScene; dynamic;
关闭场景
procedure CloseScene; dynamic;
正打开场景
procedure OpeningScene; dynamic;
键盘输入
procedure KeyPress(var Key: Char); dynamic;
procedure KeyDown(var Key: Word; Shift: TShiftState); dynamic;
鼠标输入
procedure MouseMove(Shift: TShiftState; X, Y: Integer); dynamic;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
dynamic;
播放场景
procedure PlayScene(MSurface: TDirectDrawSurface); dynamic;

TIntroScene = class(TScene)继承于TScene
里面inherited Create(stIntro); 设置了SceneType

Destroy也是inherited。对TScene)的继承

constructor Create;
重写了这个几个,但实际里面都是空的???
destructor Destroy; override;
procedure OpenScene; override;
procedure CloseScene; override;
procedure PlayScene(MSurface: TDirectDrawSurface); override;

TLoginScene = class(TScene)
里面终于有点内容了
对应登陆场景,里面
各种输入框,TEdit

对用户的输入定义的记录
m_NewIdRetryUE: TUserEntry;
m_NewIdRetryAdd: TUserEntryAdd;


里面对应了4种情况
登陆框
lsLogin: focus := 10;
新建帐号,新建帐号重试
lsNewIdRetry, lsNewId: focus := 11;
更改密
lsChgpw: focus := 12;

对应了FSate 里面的3种面板框
DLogIn
DNewAccount
DChgPw

他们需要结合在以前使用。
ChangeLoginState这个来改变这4种情况

对 面板框上的点击事件,调用了这里的处理
比如说DLogIn框上的 新建帐号点击事件,调用了NewClick
所以得结合起来看

 

标签:CLIENT8,10,IME,翎风,dynamic,指定,输入,procedure
From: https://www.cnblogs.com/D7mir/p/18178595

相关文章

  • 原始翎风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......
  • 易福门DTE104模块配置
    2.4易福门DTE104模块配置DTE104模块默认IP:192.168.0.79,模块网线插在自己笔记本上修改IP:192.168.0.X,网页上直接搜索192.168.0.79进入网页配置页1.升级固件版本DTE104固件链接2.若要改IP,则需厂商给出调试IP,不是PLCIP!3.IO端口配置4.监控器查看,若UID有值则代表配置OK......
  • win10禁用Windows快捷键的方法
    1、打开注册表编辑器 2、在注册表编辑器中定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion 3、在advanced中新建字符串值,命名为DisabledHotkeys,然后对数值数据设置。 (1)如果想禁用一个快捷键,比如win+a(打开操作中心),就输入a(2)如果想一次禁用多个快捷......
  • 1. 实战7.4HDU1710-由先序和中序序列产生后序序列
    希冀平台:代码:#include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<sstream>#include<string>#include<string.h>#include<iomanip>#include<stdlib.h>#include<map>#includ......
  • Windows 10 LTSC启用Microsoft Store的方法
    新建msreg.bat文件,并编辑内容如下:==========@echooff::BatchGotAdmin:-------------------------------------REM-->Checkforpermissions>nul2>&1"%SYSTEMROOT%\system32\cacls.exe""%SYSTEMROOT%\system32\config\system&q......
  • SystemVerilog -- 3.10 SystemVerilog Functions
    SystemVerilogFunctionsSystemVerilog函数具有与Verilog中的function相同的特征。Functionsa的主要用途是返回一个可在表达式中使用且不能消耗模拟时间的值。functionfunction不能具有时间控制语句,如@#forkjoinwaitfunction无法启动task,因为允许task消耗模拟时间。AN......
  • 《线性代数的本质》笔记10
    10-特征值与特征向量特征向量几何含义:在一次特定的线性变换中没有脱离原本张成空间的向量。特征值即为这个特征向量在这次变换中缩放的比例。推导:$$A\vec{v}=\lambda\vec{v}$$$$(A-\lambda\textit{I})\vec{v}=\vec{0}$$$$det(A-\lambda\textit{I})=0$$但并非所有线性变......