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.