轩辕春秋文化论坛 » 曹操传MOD制作交流 » 请毅兄指点下,谢谢


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.