标题:
关于攻击范围内的判定
[打印本页]
作者:
aaa132536
时间:
2014-7-9 20:44
标题:
关于攻击范围内的判定
这是我写得判断武将B是否在武将A的攻击范围内的代码:
0043E0D6 8B4D F8 mov ecx,dword ptr ss:[ebp-8]
0043E0D9 E8 8252FCFF call Ekd5.00403360
0043E0DE 50 push eax
0043E0DF 8B4D FC mov ecx,dword ptr ss:[ebp-4]
0043E0E2 81C1 25040000 add ecx,425
0043E0E8 E8 B384FCFF call Ekd5.004065A0
0043E0ED 8B4D F8 mov ecx,dword ptr ss:[ebp-8]
0043E0F0 E8 C9170000 call Ekd5.0043F8BE
0043E0F5 8845 F4 mov byte ptr ss:[ebp-C],al
0043E0F8 6A 00 push 0
0043E0FA 6A 00 push 0
0043E0FC FF75 F4 push dword ptr ss:[ebp-C]
0043E0FF 8B55 FC mov edx,dword ptr ss:[ebp-4]
0043E102 81C2 25040000 add edx,425
0043E108 52 push edx
0043E109 8B4D F8 mov ecx,dword ptr ss:[ebp-8]
0043E10C E8 7584FFFF call Ekd5.00436586
0043E111 3A45 0C cmp al,byte ptr ss:[ebp+C]
0043E114 75 05 jnz short Ekd5.0043E11B
0043E116 33C0 xor eax,eax
0043E118 40 inc eax
0043E119 EB 02 jmp short Ekd5.0043E11D
0043E11B 33C0 xor eax,eax
[ebp-4]:4927F0
[ebp-8]:武将A战场内存地址
[ebp+C]:武将B战场编号
不知道为什么判断武将B是否在武将A的攻击范围内时有时成功,有时不成功,哪位大大能帮我检查下这段代码有没有问题,谢谢
作者:
dennis2669
时间:
2014-7-9 20:49
我想lz..所謂的大大....現存於世..基本剩下star和god....
作者:
aaa132536
时间:
2014-7-9 20:52
呵呵,也是啊
作者:
aaa132536
时间:
2014-7-9 21:02
这个攻击范围内的判断主要是为了下面3个特性:
齐射 主动射击后若周围2格内有装备弓的友军且目标也在友军的攻击范围内,则友军也会参与攻击
误导 主动射击后若周围5格内有装备弓的敌人且目标也在该敌人的攻击范围内,则可误导敌人攻击目标
支援 自身攻击范围内有敌军被友军攻击时,自己也会参与攻击
齐射的话就没有问题,误导的话因为攻击方与被攻击方同属一方这个判断就有问题,支援的话找不到star175大大写的支援攻击的代码地址就自己写个,不过支援有时成功,有时就不成功,就不知道判断攻击范围内的代码哪里出了问题。
[
本帖最后由 aaa132536 于 2014-7-9 21:05 编辑
]
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0