轩辕春秋文化论坛 » 曹操传MOD制作交流 » 破甲攻击修改小疑惑


2012-10-7 15:49 yjr3426619
破甲攻击修改小疑惑

0043BD97   .  837D D0 04    CMP DWORD PTR SS:[EBP-30],4
0043BD9B   .  0F87 F7000000 JA Ekd5_1.0043BE98
0043BDA1   .  8B45 D0       MOV EAX,DWORD PTR SS:[EBP-30]
0043BDA4   .  E9 2AA00400   JMP Ekd5_1.00485DD3

00485DD3   >  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
00485DD6   .  25 FF000000   AND EAX,0FF
00485DDB      83F8 0E       CMP EAX,0E
00485DDE   .  75 0C         JNZ SHORT Ekd5_1.00485DEC
00485DE0   .  C745 FC 32000>MOV DWORD PTR SS:[EBP-4],32
00485DE7   .^ E9 8961FBFF   JMP Ekd5_1.0043BF75
00485DEC      8B45 D0       MOV EAX,DWORD PTR SS:[EBP-30]
00485DEF      3E:FF2485 96B>JMP DWORD PTR DS:[EAX*4+43BF96]

实际测试时,发现,步兵、骑兵对黄巾兵的伤害均固定为50
但群雄却不是,难道群雄的编号不是0?亦或者JA判断的值不包含0?求解答。
【菜鸟,勿扔砖头。】

2012-10-7 16:41 godtype
到底想改破甲?相克?全兵种对指定兵种破甲?指定兵种对指定兵种破甲?

2012-10-7 20:12 yjr3426619
回复 #2 godtype 的帖子

指定兵种对指定兵种破甲,我就是想问为什么群雄没效果

2012-10-7 20:31 godtype
那你要看清楚前面这段:
0043BD8E  |.  8B55 D0       MOV EDX,DWORD PTR SS:[EBP-30]
0043BD91  |.  83EA 01       SUB EDX,1
0043BD94  |.  8955 D0       MOV DWORD PTR SS:[EBP-30],EDX
已经减了1,最前面的00群雄当然就不包括了。

2012-10-7 21:42 yjr3426619
回复 #4 godtype 的帖子

粗心没看前面的……谢谢毅大!

2012-10-7 21:45 yjr3426619
回复 #4 godtype 的帖子

但是如果减1的话00减1得数仍旧小于4啊?

2012-10-7 22:06 godtype
[quote]JA 或 JNBE:大于跳转
JAE 或 JNB:大于等于跳转
JB 或 JNAE:小于跳转
JBE 或 JNA:小于等于跳转
以上四条,测试无符号整数运算的结果

JG 或 JNLE:大于跳转
JGE 或 JNL:大于等于跳转
JL 或 JNGE:小于跳转
JLE 或 JNG:小于等于跳转
以上四条,测试带符号整数运算的结果[/quote]

无符号整数运算,FF FF FF FF = 4294967295
带符号整数运算,FF FF FF FF = -1

如果你换成JG就会判断成立了,不过不建议这样做。
我的做法是:
从0043BD8B  |.  8945 D0       MOV DWORD PTR SS:[EBP-30],EAX这段开始改写,

CMP EAX,5
JA 0043BE98
CMP BYTE [EBP-14],0E
JNZ <A点>
MOV DWORD [EBP-4],32
JMP 43BF75
SUB EAX,1  <==A点
JMP DWORD [EAX*4+43BF96]  <==这行按照我这样来简写。“PTR DS:”可以省去。或者保留原来的0043BDA4  |.  FF2485 96BF43>JMP DWORD PTR DS:[EAX*4+43BF96],前一行SUB EAX,1与这行之间全部用NOP,位置应该是足够的,不用另外跳出来。

2012-10-7 22:20 yjr3426619
回复 #7 godtype 的帖子

非常感谢!!明白了!!

页: [1]
查看完整版本: 破甲攻击修改小疑惑


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.