2014-3-30 01:22
aaa132536
请毅兄指点下,谢谢
我刚完成两个特性:
抛射:原地攻击时弓的最大射程+1
骑射:移动后攻击弓的最大射程+1
但AI进行攻击时还只是按原来的攻击范围攻击,不会按特性修正后的攻击范围攻击,请问下毅兄要怎么改才能使AI按特性修正后的攻击范围攻击,谢谢
2014-3-30 10:15
godtype
去看三英外传
2014-3-30 12:46
aaa132536
回复 #2 godtype 的帖子
哦,谢谢
2014-3-30 13:31
aaa132536
回复 #2 godtype 的帖子
恩,毅兄,能不能给个提示,关于AI判定攻击范围时的代码地址在哪里。
2014-3-30 16:44
godtype
当然就是攻击范围函数
2014-3-30 19:50
aaa132536
回复 #5 godtype 的帖子
但如果直接读取攻击范围函数的话,AI好像只会按现有攻击范围来计算,不会考虑移动后特性(抛射、骑射)修正的攻击范围。
2014-3-30 20:36
godtype
:hz1032:
逆向看一下什么地方调用过相关的函数……
2014-3-30 20:36
dennis2669
回复 #6 aaa132536 的帖子
那不能直接在AI選擇時測試有沒這特技嗎
2014-3-31 02:37
aaa132536
AI进行选择时是调用
00438965 /$ 55 push ebp
00438966 |. 8BEC mov ebp,esp
00438968 |. 83EC 14 sub esp,14
0043896B |. 894D EC mov dword ptr ss:[ebp-14],ecx
0043896E |. 8B4D EC mov ecx,dword ptr ss:[ebp-14]
00438971 |. E8 486F0000 call Ekd5.0043F8BE
这个函数吧,不过AI进行选择时是默认不移动的,测试有没有抛射、骑射特性无意义,这个代码要怎么写才能代人抛射、骑射特性呢。若代码写成有抛射特性的判定时攻击范围-1,有骑射特性的判定时攻击范围+1,但若AI原址攻击时怎么办。
2014-3-31 09:55
aaa132536
AI在进行选择攻击对象时,应该是在自己可移动步数+攻击范围内选的,这样若AI选择的攻击对象自己在原地就可攻击到则跳过,若需要移动后才能攻击到,则加入特性(抛射、骑射)修正攻击范围。那AI选择攻击对象时需移动几步这段代码地址在哪里哦。
2014-3-31 10:33
godtype
反正我就这样改完了,AI想做什么就由得它自己决定,超出范围的事我是不会浪费精力的。
2014-3-31 12:08
aaa132536
回复 #11 godtype 的帖子
哦,我还是放弃那两个特性吧,涉及AI的事都是太麻烦的
页:
[1]
Powered by Discuz! Archiver 5.0.0
© 2001-2006 Comsenz Inc.