2010-2-11 14:53
武骧金星
关于先手攻击代码的问题
我将[url]http://www.xycq.net/forum/viewthread.php?tid=194501[/url]中所讲到的先手攻击代码抄袭到EKD5.EXE上,结果发现指定人物确实是可以先手攻击,但是指定兵种和指定宝物特性都无效……
已经经过反复确认代码绝对没有错误……
能否请前辈诊断一下可能出现了什么错误呢?谢谢。
2010-2-12 11:48
武骧金星
关于先手攻击代码的问题2
教程代码源于[url]http://www.xycq.net/forum/viewthread.php?tid=196096&page=1#pid2717736[/url]
有一段代码是这样的:
0048CC8D E8 DEE7FAFF CALL 0043B470 // 获取武将职业
0048CC92 E9 E2010000 JMP 0048CE79 // 跳转
0048CE79 3C 40 CMP AL,40 // 比较武将职业是否满足预设值
0048CE7B 75 05 JNZ SHORT 0048CE82 // 如果不满足,跳转判断武将ID
0048CE7D E9 81020000 JMP 0048D103 // 如果满足,跳转到0048D103
0048CE82 8B4D F4 MOV ECX,DWORD PTR SS:[EBP-C] // 在武将职业不满足要求的前提下
0048CE85 E8 E627FDFF CALL 0045F670 // 获取武将ID
0048CE8A 3D 00040000 CMP EAX,400 // 比较武将ID是否满足预设值
0048CE8F 0F85 47020000 JNZ 0048D0DC // 如果不满足,跳转判断宝物特效
0048CE95 E9 69020000 JMP 0048D103 // 如果满足,跳转到0048D103
问题就在于0048D103处的代码是这样写的:
[color=Red]0048D103 6A 17 PUSH 17 //?为什么这里要判断宝物特效?[/color]
0048D105 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
0048D108 E8 6325FDFF CALL 0045F670
0048D10D 8BC8 MOV ECX,EAX
0048D10F 6BC9 48 IMUL ECX,ECX,48
0048D112 81C1 681B4A00 ADD ECX,004A1B68
0048D118 E8 ECA8F7FF CALL 00407A09 // 这里判断了武将是否携带特效为17的道具,完全不能理解啊
0048D11D 85C0 TEST EAX,EAX
0048D11F ^0F84 72FBFFFF JE 0048CC97
0048D125 ^E9 CBFBFFFF JMP 0048CCF5
既然在0048CE79和0048CE8A处已经判断过武将的职业和ID,并且满足了触发先手攻击的要求,那么就不需要再判断武将携带的道具了呀?因此我不明白0048D103处的代码的真实含义。
能否请方家指教一下?谢谢。
2010-2-12 12:24
武骧金星
关于宝物的判断
0048D0DC 6A 17 PUSH 17
0048D0DE 8B4D F4 MOV ECX,DWORD PTR SS:[EBP-C]
0048D0E1 E8 8A25FDFF CALL 0045F670
0048D0E6 8BC8 MOV ECX,EAX
[color=Red]0048D0E8 6BC9 48 IMUL ECX,ECX,48[/color]
[color=Red]0048D0EB 81C1 681B4A00 ADD ECX,004A1B68[/color]
0048D0F1 E8 13A9F7FF CALL 00407A09
0048D0F6 85C0 TEST EAX,EAX
0048D0F8 ^0F84 F7FBFFFF JE 0048CCF5
0048D0FE ^E9 94FBFFFF JMP 0048CC97
能不能解释一下这里把ECX的值乘上48H,然后又加上004A1B68到底有什么意义?谢谢。
[color=Silver][[i] 本帖最后由 武骧金星 于 2010-2-12 13:25 编辑 [/i]][/color]
2010-2-13 09:01
godtype
两帖合并一起。
先回答最后面的问题,4A1B68是人物资料的内存地址,人物的五围、装备、等级经验等都存放在这里,详细请去看我写的教程以及里面的资料帖。
前面的问题,那段代码已经年代久远,有些问题也不出奇,现在都已经改掉换其他了,建议先参考一下我改的旧引擎3.0或4.0以及STAR的新引擎。我要过段时间再慢慢看回去。
页:
[1]
Powered by Discuz! Archiver 5.0.0
© 2001-2006 Comsenz Inc.