标题: EXE补充研究及修改, 东方教主打造
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


EXE补充研究及修改



QUOTE:
原帖由van于2005-07-08, 23:51:39发表
6、人物上限
基本上不可能,因为内存里所有数据是连续存放的,武将数据在中间,扩展的话必然需要将其移至其它地址。这样就算未扩展,光修改偏移就有240多处,工程量太大

汗,费了几天时间才改出个端倪来。牵扯范围巨大。

[ 本帖最后由 东方无翼 于 2006-8-24 14:47 编辑 ]


精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


原曹操传只有512个人物(包括武将、小兵等等),其实不少了,但还是不够用  与是设法增大一倍。

因为在内存中,人物数据前后都有其他数据,所以只能重新开辟一块内存用以存放属性。

第一步、分配内存空间
在游戏启动之初,使用virtualalloc在0x00c60000位置分配长度为0x12000的一段内存。

修改位置:
1、利用0x481583 - - 0x48166d之间的4段约50字节的空间完成内存分配。
2、修改0x481891 位置为 CALL 004815FA。(这个是我随便找的一个比较早的位置  )

第二步、修改偏移
就是让原来访问内存0x4a1b68的全部转向访问0xc60000

修改位置:太多了。我基本上是替换的,碰上拿不准的再跟一下。

第三步、修改循环次数
让原本遍历0x200的程序遍历0x400次。

修改位置:同样很多。典型的就是0x41b6a2位置,这里是从data.e5载入数据。

第四步、修改Data.e5
增加第一个段的内容为原来的两倍。

修改位置:data.e5前端的段信息,从110h到18ch。同时在第一个段的最后增加与第一个段等长的一段内容(长度为0x4000字节)。

第五步、存档、读档
如果修改好了第三步,存档的时候自然会将多出来的512人保存到sv0?d.e5s存档的最后。只是还读不出来。问题在于读存档的时候指定了文件大小。

修改位置:0x41aebd,修改为PUSH 0A8DC。

扩充修改:
以上的修改应能保证512-1023号武将可以作为敌人出现。(未经测试,纯属猜测 )下面主要是为了完善新加入的512名武将的功能。
因为游戏本身设定前174人为“特殊武将”,所以在修改的时候也破除了这174人的部分特殊性。

第六步、列传
原来仅有前174人有列传,现在扩展到所有1024人。需同时修改imsg.e5。
其实是将人物列传的位置移动到imsg.e5的最后,并且补齐1024个。

修改位置:代码中,0x0040bfeb位置,修改为CMP DWORD PTR SS:[EBP+C],400 (循环次数)
0x0040bff9位置修改为ADD EAX,39A (39a指定文件中列传的起始位置)

第七步、上一武将 - - 下一武将
  对于174号以上的武将,上一武将、下一武将按钮不是灰色的就是按了没效果。

修改位置:地址0x4786e8,修改为CMP DWORD PTR DS:[EAX*4+4B6CF0],400
地址0x479372,修改为CMP DWORD PTR DS:[ECX*4+4B6CF0],400

第八步、武将列表
点击查看武将列表图标,显示武将列表。

修改位置:0x469dd4 ,改为CMP DWORD PTR SS:[EBP-2C],400

第九步:出战选择
原来出战时,512以后武将不显示。

修改位置:0x4186d9,改为CMP DWORD PTR SS:[EBP-18],400

第十步:查看装备列表
点击上方查看装备列表图标,显示所有装备。原来不显示174以后的武将的装备。

修改位置:0x466D7F,改为CMP DWORD PTR SS:[EBP-8],400

   但是这最后一个修改后又bug。如果你的队伍中有380号以上的武将,用装备列表查看装备的时候会异常退出。
所以建议不要在我方使用380号以上的武将。或者使用下方的装备按钮,这个不会出错。

2006年2月14日更新
猜测上述BUG可由http://www.xycq.net/index.php?showtopic=66698&view=findpost&p=1186057
此帖中的方法修正。


精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


以上说说方法。exe测试中,稍后发布。
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


剧本的指令中,有两个改变人物属性的。
一个是0x38号代码,改变人物基本属性的。
一个是0x4d号代码,就是所谓的站力削弱,改变人物战场属性的。

其中战力削弱,对于战场上的人物,只能减少其hp,而不能增加或者设定hp等于某值,以下修改是增加此功能的。

修改位置:
0x45ac10-0x45accb 这段代码本来是实现减少hp功能的,但是其中冗余代码(至少我感觉是冗余的  ),与是就改变了这段代码。

0045AC10   MOV ECX,DWORD PTR SS:[EBP-4]
0045AC13   AND ECX,0FF
0045AC19   IMUL ECX,ECX,24
0045AC1C   ADD ECX,EKD5_507.004B2C50
0045AC22   CALL EKD5_507.00472C90
0045AC27   MOV EDX,DWORD PTR SS:[EBP+10]
0045AC2A   AND EDX,0FF
0045AC30   PUSH ECX
0045AC31   MOV ECX,DWORD PTR SS:[EBP+24]
0045AC34   AND ECX,0FF
0045AC3A   CMP CL,2
0045AC3D   JNZ SHORT EKD5_507.0045AC43
0045AC3F    ADD EAX,EDX
0045AC41    JMP SHORT EKD5_507.0045AC63
0045AC43   CMP CL,1
0045AC46   JNZ SHORT EKD5_507.0045AC56
0045AC48   CMP EDX,0
0045AC4B   JG SHORT EKD5_507.0045AC52
0045AC4D   MOV EDX,1
0045AC52   MOV EAX,EDX
0045AC54   JMP SHORT EKD5_507.0045AC63
0045AC56   CMP EAX,EDX
0045AC58   JGE SHORT EKD5_507.0045AC61
0045AC5A   MOV EAX,1
0045AC5F   JMP SHORT EKD5_507.0045AC63
0045AC61   SUB EAX,EDX
0045AC63   POP ECX
0045AC64   PUSH EAX                                
0045AC65   CALL EKD5_507.0043F6CD                 
0045AC6A   JMP EKD5_507.0045AD84

之后空余下0x5C字节。

使用方法:剧本中,4d号指令后面,“1800 xxxx  00下降,01设定,02上升”,这段原本在hp改变的情况下是没有用处的。现在设为01则为设定hp,设为02是增加hp,其他为减少hp。(已修正)

注:还需进一步测试。
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


兵种等级控制
在剧情代码 0x46友军出场设定 和 0x47敌军出场设定 中,有一段是控制兵种级别的
4500 XXXX,其中XXXX部分指明级别。
也就是让敌人出现60级的小步兵这样的情况。只是据张生说不定什么时候好用  
后来发现又是可恶的174人限制

修改代码:0x004428B8   CMP DWORD PTR DS:[EDX],400

这就可以让此代码对所有1024人有效。
注:同样没有经过周密测试
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


界个界个,据称我拿到的资料太早,对4d代码的控制不对,应该00是减少,01是设定,02是增加,先修正之。
其实把比较1和比较2地方互换即可。
精华帖
顶部
性别:未知-离线 幽人独往来
(做人别太CCTV)

蒲领侯枢密直学士

Rank: 13Rank: 13Rank: 13Rank: 13
组别 翰林学士
级别 平东将军
好贴 3
功绩 592
帖子 2540
编号 1982
注册 2004-7-13


教主的1024DATA也出来了,太守也终于出手了,处于暂时失去可靠的周大的悲痛中的我们,终于又看到了光明  

看到光明之后,就开始贪心了  尤其是太守“两个上限”的解决和教主“一个当前、一个限制”的修正。

下面说说我关于事件代码的贪心建议(用张生的话说叫“近乎无理的要求”  )


1、6我军出场限制(用于R)/4a我军强制出场(用于S)——现在只有五个位置,而如果多一些的话,就可以实现奇袭队、分兵等剧情,那么,这些位置能否扩充?或者使得多个6/4a连用也能分别起作用?(需求度:高)

2、20武将头像状态设置——现在只能选择有限的几张脸,而且只有对固定的人有效,那么能否改成任意制定face号,且对任意人有效?(需求度:低)

3、36武将状态测试——既然能测试动态的HPCur,那么能不能测试Lv呢?甚至于测试当前MP?(需求度:LV—极其迫切/MPCur—低)

4、39武将等级提升——能否变成武将等级“变化”?即加入降低等级的功能。(需求度:一般)

5、4d武将状态变更——既然教主加上了HPCur的+=功能,那么是否还有位置加入MPCur的+=功能呢?(需求度:一般)
精华帖
顶部
性别:男-离线 周瑜

栎阳侯谏议大夫

Rank: 16
组别 翰林学士
级别 征西将军
好贴 10
功绩 943
帖子 4716
编号 1808
注册 2003-11-3
家族 瓦岗寨


发表于 2005-7-13 10:05 资料 主页 文集 短消息 只看该作者
物理伤害公式的修改牵涉太多,务必瞻前顾后、慎之又慎。原代码中的空间基本还是足够,重写也不困难,难的是制定一个各方面兼顾的合理公式。
其实:如以英杰传攻-防/2,加以改进,便是一个不错的选择。

教主的这项修改比我当时增加基本属性上限难多了。当时我只需要给每人增加5个字节,占用了内存中姓名的4个字节和后面1个无用的字节,不需增加内存块大小。存档中增加了5个字节之后,仅仅更改了读档文件大小就OK了。其余就是在每次读取参数、每个公式中,把8位扩展为16位。

如果游戏异常退出,这时点击调试按钮,就能看见执行到哪条代码时异常跳出的。如果正好在刚修改的代码附近,一般都能找到原因。

其余各位的存档修改器、imsg修改器、data修改器要跟上啊。
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


关于物理伤害公式的调整

因为以后可能调整很多,所以搞了一个通用公式。
[(地形修正过的攻击-地形修正过的防御)+等级*等级修正+常数]*总修正*(1+兵种修正)
这样设定便于调整(不修改代码,只需修改几个字节值),也便于节省代码

0043BD39     IMUL EAX,EAX,1B ;可变动点1,1字节。文件中位置:0x3b13b。
0043BD3C     SHR EAX,3           ;可变动点2,1字节。文件中位置:0x3b13e。(可变动点1 / 2^可变动点2)  即为等级修正值
0043BD3F     ADD EAX,43          ;可变动点3,常数,1字节。文件中位置:0x3b141
0043BD42     MOV ECX,DWORD PTR SS:[EBP-20]
0043BD45     CMP ECX,DWORD PTR SS:[EBP-10]
0043BD48     JB SHORT 0043BD51
0043BD4A     SUB ECX,DWORD PTR SS:[EBP-10]
0043BD4D     ADD EAX,ECX
0043BD4F     JMP SHORT 0043BD61
0043BD51     MOV ECX,DWORD PTR SS:[EBP-10]
0043BD54     SUB ECX,DWORD PTR SS:[EBP-20]
0043BD57     PUSH ECX                                
0043BD58     PUSH EAX
0043BD59     CALL 0047FA9E                    
0043BD5E     ADD ESP,8
0043BD61     IMUL EAX,EAX,3   ;可变动点4,1字节。文件中位置:0x3b163。
0043BD64     SHR EAX,3           ;可变动点5,1字节。文件中位置:0x3b166。与等级修正参数类似原理
0043BD67     CMP EAX,0
0043BD6A     JNZ SHORT  0043BD71
0043BD6C     MOV EAX,1
0043BD71     MOV DWORD PTR SS:[EBP-4],EAX
0043BD74     JMP SHORT 0043BD7E
0043BD76     NOP
0043BD77     NOP
0043BD78     NOP
0043BD79     NOP
0043BD7A     NOP
0043BD7B     NOP
0043BD7C     NOP
0043BD7D     NOP

目前的公式就是
[(地形修正过的攻击-地形修正过的防御)+等级*27/8+67]*3/8*(1+兵种修正)
也就是周大提出的那个。
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


修正神仙教学部分
跟据说岳的情况,将配合的教学的人员改为156号武将,同时压缩了教学的空间。

修改处1
这是上面扩展到1024人物缺漏的部分。
0003438A   MOV DWORD PTR SS:[EBP-10],0C62C28 ;教学中的老师的数据,157号武将
00034391   MOV DWORD PTR SS:[EBP-8],0C60000   ;学生的数据,0号武将
00034398   MOV DWORD PTR SS:[EBP-4],0C62BE0   ;陪读的数据,156号武将


修改处2
00433614    CMP DWORD PTR SS:[EBP-4],4         ;  光标向下移动四格

修改处3
00433DEC    CMP DWORD PTR SS:[EBP-4],4     ;光标向上移动四格
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


苦力活1:检测状态时测试等级

修改点1、
004113EF     CMP ECX,7
004113F2     JE SHORT EKD5.00411414

修改点2、
改写读取人物属性的函数
00406D87   PUSH EBP
00406D88   MOV EBP,ESP
00406D8A   SUB ESP,8
00406D8D   MOV DWORD PTR SS:[EBP-4],ECX
00406D90   MOV EAX,DWORD PTR SS:[EBP+8]
00406D93   AND EAX,0FF
00406D98   CMP EAX,7
00406D9B   JE SHORT EKD5_900.00406DD6
00406D9D   JMP DWORD PTR DS:[EAX*4+406DDE]
00406DA5   MOV AX,WORD PTR DS:[ECX+11]
00406DA9   JMP SHORT EKD5_900.00406DD8
00406DAB   MOV AX,WORD PTR DS:[ECX+13]
00406DAF   JMP SHORT EKD5_900.00406DD8
00406DB1   MOV AX,WORD PTR DS:[ECX+15]
00406DB5   JMP SHORT EKD5_900.00406DD8
00406DB7   MOV AX,WORD PTR DS:[ECX+17]
00406DBB   JMP SHORT EKD5_900.00406DD8
00406DBD   MOV AX,WORD PTR DS:[ECX+19]
00406DC1   JMP SHORT EKD5_900.00406DD8
00406DC3   MOV EAX,DWORD PTR DS:[ECX+1C]
00406DC6   JMP SHORT EKD5_900.00406DD8
00406DC8   XOR EAX,EAX
00406DCA   MOV AL,BYTE PTR DS:[ECX+20]
00406DCD   JMP SHORT EKD5_900.00406DD8
00406DCF   XOR EAX,EAX
00406DD1   MOV AL,BYTE PTR DS:[ECX+2C]
00406DD4   JMP SHORT EKD5_900.00406DD8
00406DD6   XOR EAX,EAX
00406DD8   MOV ESP,EBP
00406DDA   POP EBP
00406DDB   RETN 4
00406DDE   DD EKD5_900.00406DA5                     ;  Switch table used at 00406D9D
00406DE2   DD EKD5_900.00406DAB
00406DE6   DD EKD5_900.00406DB1
00406DEA   DD EKD5_900.00406DB7
00406DEE   DD EKD5_900.00406DBD
00406DF2   DD EKD5_900.00406DC3
00406DF6   DD EKD5_900.00406DCA
00406DFA   DD EKD5_900.00406DD6
00406DFE   DD EKD5_900.00406DD1
00406E02   NOP
00406E03   NOP
00406E04   NOP
00406E05   NOP
00406E06   NOP
00406E07   NOP
00406E08   NOP
00406E09   NOP
00406E0A   NOP
00406E0B   NOP
00406E0C   NOP
00406E0D   NOP
00406E0E   NOP
00406E0F    NOP
00406E10    NOP
00406E11    NOP
00406E12    NOP
00406E13    NOP
00406E14    NOP
00406E15    NOP
00406E16    NOP

8 为检测等级

苦力活2
事件控制MP+=
与上面的hp极其相似
0045ACCC   MOV ECX,DWORD PTR SS:[EBP-4]
0045ACCF   AND ECX,0FF
0045ACD5   IMUL ECX,ECX,24
0045ACD8   ADD ECX,EKD5_901.004B2C50
0045ACDE   CALL EKD5_901.00472840
0045ACE3   MOV EDX,DWORD PTR SS:[EBP+10]
0045ACE6   AND EDX,0FF
0045ACEC   PUSH ECX
0045ACED   MOV ECX,DWORD PTR SS:[EBP+74]
0045ACF0   AND ECX,0FF
0045ACF6   CMP CL,2
0045ACF9   JNZ SHORT EKD5_901.0045ACFF
0045ACFB   ADD EAX,EDX
0045ACFD   JMP SHORT EKD5_901.0045AD1F
0045ACFF   CMP CL,1
0045AD02   JNZ SHORT EKD5_901.0045AD12
0045AD04   CMP EDX,0
0045AD07   JG SHORT EKD5_901.0045AD0E
0045AD09   MOV EDX,1
0045AD0E   MOV EAX,EDX
0045AD10  JMP SHORT EKD5_901.0045AD1F
0045AD12   CMP EAX,EDX
0045AD14   JGE SHORT EKD5_901.0045AD1D
0045AD16   MOV EAX,0
0045AD1B   JMP SHORT EKD5_901.0045AD1F
0045AD1D   SUB EAX,EDX
0045AD1F   POP ECX
0045AD20   PUSH EAX                                 
0045AD21   CALL EKD5_901.0043F70E                  
0045AD26   JMP SHORT EKD5_901.0045AD84

以下空余N字节直到0x0045AD83
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


修正新增512名武将对话显示问题。
主要是将几处原来与0x200相比较的改为与0x400相比较。

R剧本人物说话
0042D603     CMP DWORD PTR SS:[EBP+C],400

0042D65A     CMP DWORD PTR SS:[EBP+C],400

0042D6C8     CMP DWORD PTR SS:[EBP+C],400

S剧本人物说话
0042CB7F     CMP DWORD PTR SS:[EBP+C],400

单挑出场
00417591     CMP EDX,400

004175A1     CMP EAX,400
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


修正S战场上新增512人转向和动作
修改两处。使新增512人战场转向、动作事件有效。

0045743F     CMP DWORD PTR SS:[EBP+8],400

004577D8     CMP DWORD PTR SS:[EBP+8],400


扩展动画为128个
1、在exe文件最后加入一个段,长0x2000字节。目前仅使用前0x0a00字节,余下的备用。

2、从exe文件偏移9ee00h起到9efffh为动画文件名索引,每四个字节为一个索引,内容为动画文件名在内存中的位置。
exe文件中9f000h到9f800h为动画文件名,每个最多15字节。相对内存位置为4ce200h到4cea00h。

3、修改exe
0041F4F2     CMP ECX,7F
0041F4F5     JLE SHORT 0041F4FE

0041F522     MOV EAX,DWORD PTR DS:[EDX*4+4CE000]

0042F7C7     837D 08 7F     CMP DWORD PTR SS:[EBP+8],7F
0042F7CB     7F 15          JG SHORT 复件_EKD.0042F7E2
精华帖
顶部
性别:未知-离线 幽人独往来
(做人别太CCTV)

蒲领侯枢密直学士

Rank: 13Rank: 13Rank: 13Rank: 13
组别 翰林学士
级别 平东将军
好贴 3
功绩 592
帖子 2540
编号 1982
注册 2004-7-13


苦力活汇总  

剧本事件:
1、4a和6,连续使用生效,或扩展至15人(急)
2、39等级提升,能否实现降低等级(缓)
3、能不能创造一个事件,对人物的基础值进行运算?(即通过事件,达到吃果子的效果。讨论)
4、能否创造一个事件,来判断玩家是否打通三个结局和集齐全宝物?(讨论)
5、8菜单处置,能不能设置其true的时候就使工具栏可用,false的时候屏蔽工具栏(即屏蔽SL)?(一般)
6、36武将状态测试,既然其他的都有了,那么不妨加入一个MPCur的测试吧,加在HPCur和Lv之间。



DATA:
1、每关商店里出售的商品和喊出的人,只有0~57关,需要扩展(急)
2、法术后面有五个“终端”,可否利用(缓)


exe其他:
1、玄武、八阵图这两个法术的多重效果是怎么实现的?(讨论)
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


加入武将的兵种等级
上次周大漏改了,只修改了转职的级别,新加入武将的兵种级别没改。修改两处

0040C493     CMP DWORD PTR SS:[EBP-4],28   ;40级2转
0040C4A2     CMP DWORD PTR SS:[EBP-4],14   ;20级1转

s剧本中,武将强制出场、不出场人数增加为15人
为防止影响内存中其他数据,将存储强制出场武将的内存移动到4cea00h处,强制不出场的移动到4CEA40h处。
剧本命令4a的格式也发生变化,38和39条目的个数各增加为15个。
注:利用了扩展动画为128个中增加的那个数据段。

0040CE0D     CMP DWORD PTR SS:[EBP-8],0F
0040CE4A     MOV DWORD PTR DS:[EDX*4+4CEA00],ECX
0040CE65     CMP DWORD PTR SS:[EBP-8],0F
0040CEA2     MOV DWORD PTR DS:[ECX*4+4CEA40],EAX

QUOTE:
此部分代码已修改,见下一帖。
00415BAA     CMP EDX,0F
00415BC2     MOV DWORD PTR DS:[ECX*4+4CEA00],EAX

00415BE2     CMP EAX,0F
00415BFA     MOV DWORD PTR DS:[ECX*4+4CEA40],EAX

00415DD4     CMP DWORD PTR SS:[EBP-8],0F
00415DE7     MOV DWORD PTR DS:[ECX*4+4CEA00],EAX

00415E02     CMP DWORD PTR SS:[EBP-8],0F
00415E15     MOV DWORD PTR DS:[ECX*4+4CEA40],EAX

0041858E     CMP ECX,0F
0041859C     CMP DWORD PTR DS:[EDX*4+4CEA40],0

004185B2     CMP EAX,0F
004185EB     CMP ECX,0F

004185F9     CMP DWORD PTR DS:[EDX*4+4CEA00],0
0041860B     CMP DWORD PTR DS:[EAX*4+4CEA00],0FFFF
00418621     MOV EDX,DWORD PTR DS:[ECX*4+4CEA00]
0041863D     MOV ECX,DWORD PTR DS:[EAX*4+4CEA00]

00418766     CMP ECX,0F
00418774     MOV EAX,DWORD PTR DS:[EDX*4+4CEA40]

R剧本里强制出场、不出场15人的限制。

  接着上面S剧本的修改,再改一处即可

0041878D     CMP ECX,0F
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


R、S剧本中,06、4a连续起作用
在上一帖的修改中,修改了原剧本中06、4a指令的结构。造成了编辑上的不便。
还是修改为多个06、4a连续起作用比较方便。
以下修改后,须在R、S剧本中同时使用三个连续的06或4a。

06的修改
为了减少字节数并加入新功能,重写了从0x00415b59到0x00415c02的代码。
00415B59  CMP AX,8000
00415B5D  JNZ SHORT EKD5_916.00415B69
00415B5F  MOV EAX,5
00415B64   JMP EKD5_916.00415C42
00415B69  PUSH 4                                   
00415B6B  MOV ECX,DWORD PTR SS:[EBP+8]            
00415B6E  CALL EKD5_916.004183F7                  
00415B73  MOV DWORD PTR SS:[EBP-8],EAX
00415B76  CMP EAX,80000000
00415B7B  JNZ SHORT EKD5_916.00415B87
00415B7D  MOV EAX,5
00415B82  JMP EKD5_916.00415C42
00415B87  MOV CL,0
00415B89  CMP CL,5
00415B8C  JGE SHORT EKD5_916.00415BB2
00415B8E  MOV BYTE PTR SS:[EBP-C],CL
00415B91  Arg1 = 00000038
00415B93  MOV ECX,DWORD PTR SS:[EBP+8]            
00415B96  CALL EKD5_916.004183F7                  
00415B9B  MOV CL,BYTE PTR SS:[EBP-C]
00415B9E  MOV EDX,DWORD PTR DS:[4CEA3C]
00415BA4  ADD DL,CL
00415BA6  MOV DWORD PTR DS:[EDX*4+4CEA00],EAX
00415BAD  ADD CL,1
00415BB0  JMP SHORT EKD5_916.00415B89
00415BB2  ADD DL,1
00415BB5  CMP DL,0F
00415BB8  JNZ SHORT EKD5_916.00415BBC
00415BBA  MOV DL,0
00415BBC  MOV BYTE PTR DS:[4CEA3C],DL
00415BC2  MOV CL,0
00415BC4  CMP CL,5
00415BC7  JGE SHORT EKD5_916.00415BED
00415BC9  MOV BYTE PTR SS:[EBP-C],CL
00415BCC  PUSH 39                                 
00415BCE  MOV ECX,DWORD PTR SS:[EBP+8]         
00415BD1  CALL EKD5_916.004183F7                  
00415BD6  MOV CL,BYTE PTR SS:[EBP-C]
00415BD9  MOV EDX,DWORD PTR DS:[4CEA7C]
00415BDF  ADD DL,CL
00415BE1  MOV DWORD PTR DS:[EDX*4+4CEA40],EAX
00415BE8  ADD CL,1
00415BEB  JMP SHORT EKD5_916.00415BC4
00415BED  ADD DL,1
00415BF0  CMP DL,0F
00415BF3  JNZ SHORT EKD5_916.00415BF7
00415BF5  MOV DL,0
00415BF7  MOV BYTE PTR DS:[4CEA7C],DL
00415BFD  NOP
00415BFE  NOP
00415BFF  NOP
00415C00  NOP
00415C01  NOP
00415C02  NOP


4a的修改
4a原本代码比较精简,费了好半天劲也没有实现不占用其他字节数。最后还是恢复了老版本,占用了409102开始的部分字节。
00409102   JNZ SHORT EKD5_918.00409106
00409104   XOR EDX,EDX
00409106   MOV DWORD PTR DS:[4CEA7C],EDX
0040910C   MOV ECX,EKD5_918.00492F90
00409111   CALL EKD5_918.0041856A
00409116   JMP EKD5_918.00415E28

00415DA5   CMP EAX,80000000
00415DAA   JNZ SHORT EKD5_918.00415DB2
00415DAC   XOR EAX,EAX
00415DAE   MOV AL,5
00415DB0   JMP SHORT EKD5_918.00415E2D
00415DB2   TEST EAX,EAX
00415DB4   JNZ SHORT EKD5_918.00415DB7
00415DB6   INC EAX
00415DB7   MOV DWORD PTR SS:[EBP-4],EAX
00415DBA   NOP
00415DBB   NOP
00415DBC   XOR ECX,ECX
00415DBE   CMP ECX,5
00415DC1   JGE SHORT EKD5_918.00415DE5
00415DC3   MOV DWORD PTR SS:[EBP-8],ECX
00415DC6   PUSH 38                                 
00415DC8   MOV ECX,DWORD PTR SS:[EBP+8]            
00415DCB   CALL EKD5_918.004183F7                  
00415DD0   MOV ECX,DWORD PTR SS:[EBP-8]
00415DD3   MOV EDX,DWORD PTR DS:[4CEA3C]
00415DD9   ADD EDX,ECX
00415DDB   MOV DWORD PTR DS:[EDX*4+4CEA00],EAX
00415DE2   INC ECX
00415DE3   JMP SHORT EKD5_918.00415DBE
00415DE5   INC EDX
00415DE6   CMP EDX,0F
00415DE9   JNZ SHORT EKD5_918.00415DED
00415DEB   XOR EDX,EDX
00415DED   MOV DWORD PTR DS:[4CEA3C],EDX
00415DF3   XOR ECX,ECX
00415DF5   CMP ECX,5
00415DF8   JGE SHORT EKD5_918.00415E1C
00415DFA   MOV DWORD PTR SS:[EBP-8],ECX
00415DFD   PUSH 39                                 
00415DFF   MOV ECX,DWORD PTR SS:[EBP+8]           
00415E02   CALL EKD5_918.004183F7                  
00415E07   MOV ECX,DWORD PTR SS:[EBP-8]
00415E0A   MOV EDX,DWORD PTR DS:[4CEA7C]
00415E10   ADD EDX,ECX
00415E12   MOV DWORD PTR DS:[EDX*4+4CEA40],EAX
00415E19   INC ECX
00415E1A   JMP SHORT EKD5_918.00415DF5
00415E1C   INC EDX
00415E1D   CMP EDX,0F
00415E20   NOP
00415E21   NOP
00415E22   NOP
00415E23   JMP EKD5_918.00409102
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


扩充商店到127个
原来data中只有58个商店,看来是不够用了。增加到127个。

修改1、利用扩充人物到1024分配的那段内存。当然原来只有0x12000字节,早就知道不够用了。现改为0x20000字节。

00481642     PUSH 20000

修改2、修改一些偏移和循环标识。
改后的商店信息从0x0c72000开始。
004197EB     ADD ECX,0C72000

00419878     ADD ECX,0C72000

00419905     ADD ECX,0C72000

0041B82B     CMP DWORD PTR SS:[EBP-8],7F

0041B83B     ADD ECX,0C72000                        

0042B27F     PUSH 7f                                 

0042B283     PUSH 0C72000                           

0042B2A9     PUSH 7f                              

0042B2AD     PUSH 0C72000                     

00466B7C     ADD ECX,0C72000                       

00466CD0     ADD ECX,0C72000                        

004684A9     ADD ECX,0C72000

0046857F     ADD ECX,0C72000

0046860E     ADD ECX,0C72000

0046B13A     ADD ECX,0C72000

0046B26C     ADD ECX,0C72000

0046DC43     ADD ECX,0C72000

修改3、相应的data文件中的信息。
商店信息是第三段。

注:还是未经全面测试滴。
精华帖
顶部
性别:男-离线 周瑜

栎阳侯谏议大夫

Rank: 16
组别 翰林学士
级别 征西将军
好贴 10
功绩 943
帖子 4716
编号 1808
注册 2003-11-3
家族 瓦岗寨


发表于 2005-7-18 09:12 资料 主页 文集 短消息 只看该作者
如果控制只能每回合初存档提档,可以实现。
点击SL按钮后,检查是否当前所有人均未行动,如某人已行动,则提示“只能在回合初存档取档”,不执行存取操作。
不足之处:若已行动武将被反击致死,会被认为没有行动。
检测当前回合数是否是多少的倍数,可以实现每隔几回合允许存一次档。(如第n章每隔5-n回合允许存取一次档)

至于剧本中使用全局变量控制能否随时存档,几回合才能存一次档,或者触发事件之后才能存档,还是请教主来吧。
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


增加战场名称到99个
原来的imsg里面就可以写99条,也懒的扩充了。99个就99个吧
0040BFA7     CMP DWORD PTR SS:[EBP+C],63

00449E6B     CMP ECX,63


另:上面有关R、S剧本06、4a指令的修改修正了一下。
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


06、4a连续起作用的补充
修改存读存档时,写入的内容和偏移、大小。
修改后存档文件SV??D.e5的大小改变,增加20字节。

0040D103     CMP DWORD PTR SS:[EBP-4],0F

0040D10F     MOV ECX,DWORD PTR DS:[EDX*4+4CEA00]

0040D130     MOV EAX,DWORD PTR DS:[ECX*4+4CEA00]

0040D15C     CMP DWORD PTR SS:[EBP-4],0F

0040D168     MOV EAX,DWORD PTR DS:[ECX*4+4CEA40]

0040D188     MOV EDX,DWORD PTR DS:[EAX*4+4CEA40]

0041AF58     ADD EAX,2EE

0041AFD7     ADD ECX,14F0

0041B2F7     ADD ECX,2EE

0041B36A     ADD EAX,14F0
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


改一个增加能力上限的后遗症
就是个单\双字节的问题.
00408CD0  MOV ECX,DWORD PTR SS:[EBP-18]
00408CD3  MOV EDX,DWORD PTR SS:[EBP+C]
00408CD6  XOR EAX,EAX
00408CD8  MOV AL,BYTE PTR DS:[EDX]
00408CDA  MOV WORD PTR DS:[ECX+11],AX
00408CDE  INC EDX
00408CDF  MOV DWORD PTR SS:[EBP+C],EDX
00408CE2  NOP
00408CE3  NOP
00408CE4  MOV EDX,DWORD PTR SS:[EBP-18]
00408CE7  MOV EAX,DWORD PTR SS:[EBP+C]
00408CEA  XOR ECX,ECX
00408CEC  MOV CL,BYTE PTR DS:[EAX]
00408CEE  MOV WORD PTR DS:[EDX+13],CX
00408CF2  INC EAX
00408CF3  MOV DWORD PTR SS:[EBP+C],EAX
00408CF6  NOP
00408CF7  NOP
00408CF8  MOV EAX,DWORD PTR SS:[EBP-18]
00408CFB  MOV ECX,DWORD PTR SS:[EBP+C]
00408CFE  XOR EDX,EDX
00408D00  MOV DL,BYTE PTR DS:[ECX]
00408D02  MOV WORD PTR DS:[EAX+15],DX
00408D06  INC ECX
00408D07  MOV DWORD PTR SS:[EBP+C],ECX
00408D0A  NOP
00408D0B  NOP
00408D0C  MOV ECX,DWORD PTR SS:[EBP-18]
00408D0F  MOV EDX,DWORD PTR SS:[EBP+C]
00408D12  XOR EAX,EAX
00408D14  MOV AL,BYTE PTR DS:[EDX]
00408D16  MOV WORD PTR DS:[ECX+17],AX
00408D1A  INC EDX
00408D1B  MOV DWORD PTR SS:[EBP+C],EDX
00408D1E  NOP
00408D1F  NOP
00408D20  MOV EDX,DWORD PTR SS:[EBP-18]
00408D23  MOV EAX,DWORD PTR SS:[EBP+C]
00408D26  XOR ECX,ECX
00408D28  MOV CL,BYTE PTR DS:[EAX]
00408D2A  MOV WORD PTR DS:[EDX+19],CX
00408D2E  INC EAX
00408D2F  MOV DWORD PTR SS:[EBP+C],EAX
00408D32  NOP
00408D33  NOP
精华帖
顶部
性别:未知-离线 btzhang02

Rank: 2Rank: 2
组别 百姓
级别 奋威校尉
功绩 1
帖子 104
编号 42683
注册 2005-7-9


发表于 2005-8-20 01:51 资料 短消息 只看该作者


QUOTE:
原帖由东方无翼于2005-08-19, 14:27:58发表
改一个增加能力上限的后遗症
就是个单\双字节的问题.
00408CD0  MOV ECX,DWORD PTR SS:[EBP-18]
00408CD3  MOV EDX,DWORD PTR SS:[EBP+C]
00408CD6  XOR EAX,EAX
00408CD8  MOV AL,BYTE PTR DS:[EDX]
00408CDA  MOV WORD PTR DS:[ECX+11],AX
00408CDE  INC EDX
00408CDF  MOV DWORD PTR SS:[EBP+C],EDX
00408CE2  NOP
00408CE3  NOP
00408CE4  MOV EDX,DWORD PTR SS:[EBP-18]
00408CE7  MOV EAX,DWORD PTR SS:[EBP+C]
00408CEA  XOR ECX,ECX
00408CEC  MOV CL,BYTE PTR DS:[EAX]
00408CEE  MOV WORD PTR DS:[EDX+13],CX
00408CF2  INC EAX
00408CF3  MOV DWORD PTR SS:[EBP+C],EAX
00408CF6  NOP
00408CF7  NOP
00408CF8  MOV EAX,DWORD PTR SS:[EBP-18]
00408CFB  MOV ECX,DWORD PTR SS:[EBP+C]
00408CFE  XOR EDX,EDX
00408D00  MOV DL,BYTE PTR DS:[ECX]
00408D02  MOV WORD PTR DS:[EAX+15],DX
00408D06  INC ECX
00408D07  MOV DWORD PTR SS:[EBP+C],ECX
00408D0A  NOP
00408D0B  NOP
00408D0C  MOV ECX,DWORD PTR SS:[EBP-18]
00408D0F  MOV EDX,DWORD PTR SS:[EBP+C]
00408D12  XOR EAX,EAX
00408D14  MOV AL,BYTE PTR DS:[EDX]
00408D16  MOV WORD PTR DS:[ECX+17],AX
00408D1A  INC EDX
00408D1B  MOV DWORD PTR SS:[EBP+C],EDX
00408D1E  NOP
00408D1F  NOP
00408D20  MOV EDX,DWORD PTR SS:[EBP-18]
00408D23  MOV EAX,DWORD PTR SS:[EBP+C]
00408D26  XOR ECX,ECX
00408D28  MOV CL,BYTE PTR DS:[EAX]
00408D2A  MOV WORD PTR DS:[EDX+19],CX
00408D2E  INC EAX
00408D2F  MOV DWORD PTR SS:[EBP+C],EAX
00408D32  NOP
00408D33  NOP

我没有学过Vc+反编译,不知道可不可以用UltraEdit编辑:
用UltraEdit读取Ekd5.exe,直接用以上代码减去00400C00偏移量就等于Ekd5.exe对应地址,只是Vc+所应用的代码执行诸如MOV ECX,DWORD PTR SS:[EBP-18],MOV EDX,DWORD PTR SS:[EBP+C],XOR EAX,EAX,MOV AL,BYTE PTR DS:[EDX]看不懂什么意思  ,教主能否简单说明下,相信对很多人都有帮助的.....
以下是教主的 改能力上限的后遗症的代码 在Ekd5.exe所对应的位置.
000080D0  MOV ECX,DWORD PTR SS:[EBP-18]
000080D3  MOV EDX,DWORD PTR SS:[EBP+C]
000080D6  XOR EAX,EAX
000080D8  MOV AL,BYTE PTR DS:[EDX]
000080DA  MOV WORD PTR DS:[ECX+11],AX
000080DE  INC EDX
000080DF  MOV DWORD PTR SS:[EBP+C],EDX
000080E2  NOP
000080E3  NOP
000080E4  MOV EDX,DWORD PTR SS:[EBP-18]
000080E7  MOV EAX,DWORD PTR SS:[EBP+C]
000080EA  XOR ECX,ECX
000080EC  MOV CL,BYTE PTR DS:[EAX]
000080EE  MOV WORD PTR DS:[EDX+13],CX
000080F2  INC EAX
000080F3  MOV DWORD PTR SS:[EBP+C],EAX
000080F6  NOP
000080F7  NOP
000080F8  MOV EAX,DWORD PTR SS:[EBP-18]
000080FB  MOV ECX,DWORD PTR SS:[EBP+C]
000080FE  XOR EDX,EDX
00008100  MOV DL,BYTE PTR DS:[ECX]
00008102  MOV WORD PTR DS:[EAX+15],DX
00008106  INC ECX
00008107  MOV DWORD PTR SS:[EBP+C],ECX
0000810A  NOP
0000810B  NOP
0000810C  MOV ECX,DWORD PTR SS:[EBP-18]
0000810F  MOV EDX,DWORD PTR SS:[EBP+C]
00008112  XOR EAX,EAX
00008114  MOV AL,BYTE PTR DS:[EDX]
00008116  MOV WORD PTR DS:[ECX+17],AX
0000811A  INC EDX
0000811B  MOV DWORD PTR SS:[EBP+C],EDX
0000811E  NOP
0000811F  NOP
00008120  MOV EDX,DWORD PTR SS:[EBP-18]
00008123  MOV EAX,DWORD PTR SS:[EBP+C]
00008126  XOR ECX,ECX
00008128  MOV CL,BYTE PTR DS:[EAX]
0000812A  MOV WORD PTR DS:[EDX+19],CX
0000812E  INC EAX
0000812F  MOV DWORD PTR SS:[EBP+C],EAX
00008132  NOP
00008133  NOP
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


因为UE没有反汇编功能,所以你能看到的就是16进制的机器码。

建议适用某种反汇编调试工具,我用的是OllyDbg,有时也用softice,到网上搜一就能找到。这些工具可以即时调试、检测内存,也可以将机器码反汇编成汇编代码,如

QUOTE:
MOV ECX,DWORD PTR SS:[EBP-18]
MOV EDX,DWORD PTR SS:[EBP+C]
XOR EAX,EAX
MOV AL,BYTE PTR DS:[EDX]

这样的一些内容,更便于你阅读并理解程序。

关于汇编语言的语法,可以去网上搜  
另外看雪学院(www.pediy.com)有很多关于破解修改的知识, 会帮上你的。
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


98下无法运行的修正
98/ME下用使用原版--仅从音轨播放音乐的koeicda.dll(31k版本)可以开始游戏,但使用硬盘版--可以播放本地mp3的koeicda.dll(44k)却无法运行。
原来是人物信息的内存跟此版本dll试用的内存的相冲突。遂将原0x00c60000位置分配的内存後移至0x00d60000。

相关修改有
1、将exe中所有0x00c60000改为0x00d60000
2、神仙教学部分,修改神仙和弟子的数据偏移。
3、扩充商店到127个中,将0x00c72000 改为 0x00d72000。
精华帖
顶部
性别:男-离线 东方无翼

燕王

Rank: 28Rank: 28Rank: 28Rank: 28
组别 诸侯
级别 卫将军
好贴 6
功绩 849
帖子 6143
编号 1704
注册 2003-10-27


发表于 2005-11-30 21:37 资料 主页 个人空间 短消息 只看该作者
敌军、友军移动时,AI计算错误的BUG
具体的问题我也描述不清  大约就是前面的AI正好占住了后面AI想要移动到的位置,而后面的AI不去寻找次优解反而停住不走了。

这个BUG很奇怪,原以为是逻辑上的错误。但是最终发现是栈空间出了问题。猜测是编译器的bug吧,不过光荣这段代码写的也不咋地,效率真的不高。

修改一处:
0043817B   SUB ESP,14


原来是 SUB ESP,10,但是程序在EBP-10位置存储了一个关键变量(想要移动到的位置),结果在调用其它函数(实际上是递归调用自身)的时候被参数冲掉了。显然在递归进去的函数里获得的是一个错误的值。  而这个递归也就失效了。
找了将近两天,才改了一个字节。。。真是不平衡。。。
精华帖
顶部
性别:未知-离线 lxillidan

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 1
编号 54603
注册 2005-12-4


发表于 2005-12-4 13:45 资料 短消息 只看该作者
虽然不大懂,但还是要说你们太厉害了!
精华帖
顶部
性别:未知-离线 轩辕一狼

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 62
编号 39852
注册 2005-5-29


发表于 2005-12-9 21:37 资料 短消息 只看该作者
神啊,我都看晕了啊,我只想知道怎么改兵种名称、替换人物头像(非曹操传的自带头像)以及如何修改战场的形象。
战场形象只会拿小江东的修改器的程序修改来替换,至于怎么把两转前的人物形象空起来替换还是不会……
精华帖
顶部
性别:女-离线 慕容雪芸

陈国公主谏议大夫

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
组别 翰林学士
级别 镇西将军
好贴 6
功绩 413
帖子 3835
编号 1011
注册 2004-8-17
来自 九秀山庄
家族 慕容世家


发表于 2005-12-19 13:00 资料 主页 个人空间 短消息 只看该作者


QUOTE:
原帖由东方无翼于2005-07-17, 14:03:46发表
00415DD4   CMP DWORD PTR SS:[EBP-8],0F
00415DE7   MOV DWORD PTR DS:[ECX*4+4CEA00],EAX

00415E02   CMP DWORD PTR SS:[EBP-8],0F
00415E15   MOV DWORD PTR DS:[ECX*4+4CEA40],EAX

这个,有点疑问,好像写了下面的代码,这一段也不用写了,不知道是否
精华帖
顶部
性别:男-离线 周瑜

栎阳侯谏议大夫

Rank: 16
组别 翰林学士
级别 征西将军
好贴 10
功绩 943
帖子 4716
编号 1808
注册 2003-11-3
家族 瓦岗寨


发表于 2006-1-21 11:13 资料 主页 文集 短消息 只看该作者


QUOTE:
原帖由东方无翼于2005-07-10, 3:34:30发表
剧本的指令中,有两个改变人物属性的。
一个是0x38号代码,改变人物基本属性的。
一个是0x4d号代码,就是所谓的站力削弱,改变人物战场属性的。

其中战力削弱,对于战场上的人物,只能减少其hp,而不能增加或者设定hp等于某值,以下修改是增加此功能的。

许多人反映,指令38中加减设定当前HP无效。而4d只能减血,东方看看能不能实现加血的指令。
精华帖
顶部
性别:男-离线 博雅张生
(张生手持石鼓文)

象郡公中书令枢密直学士

Rank: 19Rank: 19Rank: 19Rank: 19
资政殿大学士(从一品)
组别 经略使
级别 前将军
好贴 3
功绩 1118
帖子 1730
编号 28805
注册 2004-12-26


发表于 2006-1-21 12:09 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
0045AC10  MOV ECX,DWORD PTR SS:[EBP-4]
0045AC13  AND ECX,0FF
0045AC19  IMUL ECX,ECX,24
0045AC1C  ADD ECX,EKD5_507.004B2C50
0045AC22  CALL EKD5_507.00472C90
0045AC27  MOV EDX,DWORD PTR SS:[EBP+10]
0045AC2A  AND EDX,0FF
0045AC30  PUSH ECX
0045AC31  MOV ECX,DWORD PTR SS:[EBP+24]
0045AC34  AND ECX,0FF
0045AC3A  CMP CL,2
0045AC3D  JNZ SHORT EKD5_507.0045AC43
0045AC3F  ADD EAX,EDX
0045AC41  JMP SHORT EKD5_507.0045AC63
0045AC43  CMP CL,1
0045AC46  JNZ SHORT EKD5_507.0045AC56
0045AC48  CMP EDX,0
0045AC4B  JG SHORT EKD5_507.0045AC52
0045AC4D  MOV EDX,1
0045AC52  MOV EAX,EDX
0045AC54  JMP SHORT EKD5_507.0045AC63
0045AC56  CMP EAX,EDX
0045AC58  JGE SHORT EKD5_507.0045AC61
0045AC5A  MOV EAX,1
0045AC5F  JMP SHORT EKD5_507.0045AC63
0045AC61  SUB EAX,EDX
0045AC63  POP ECX
0045AC64  PUSH EAX                
0045AC65  CALL EKD5_507.0043F6CD        
0045AC6A  JMP EKD5_507.0045AD84

这个不就是增加4D中加Hpcur和直接设定Hpcur的改动么?
在岳飞传中工作正常啊。


精华帖
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2024-12-21 22:57
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.025701 second(s), 8 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP