魔兽争霸吧 关注:1,005,834贴子:19,354,498

自定义修改的对战地图电脑AI

只看楼主收藏回复

由于本人对战水平有限,只是喜欢和电脑打打,数年前突然感觉四族之间的发展速度和后期兵力数量不平衡,于是萌生了自己修改的想法,发现修改AI本身比游戏更来的有意思。本来只是自娱自乐,但最近也改的累了,所以发上来和大家分享一下吧!
自定义修改的四个种族电脑ai文件,与AMAI不同的是,AMAI使用了触发。这个只是针对电脑ai文件作了修改不涉及触发。
相比原版电脑ai,主要作了如下改进:
1、加快了电脑基地升级和尤其是疯狂电脑金钱使用速度:解决了譬如人族电脑卡基地不升级或升级慢的问题。
2、加快了电脑造兵速度和造兵数量,更容易双兵营暴兵,所有不同种类的兵营可同时暴兵,后期相比原版更容易攀升100人口:解决了兽族、暗夜、亡灵后期兵力数量不如人族的问题。
3、所有电脑都会造三英雄:解决了兽族只造两英雄的问题。
4、增加了某些原本不出场兵种的出场机会:譬如兽族灵魂行者、巨魔猎头狂暴形态、暗夜角鹰兽。
5、制作了两种架构版本(一种原版架构,一种AI编辑器架构,不死族因时间问题只制作了一种架构版本),其中AI编辑器架构版本电脑的攻击欲望有所增加。
6、其它优化。
经过很多次测验了,目前没发现什么明显bug(游戏本身非对战AI修改能解决的BUG依然存在:譬如分基地被打掉后农民仍旧会去分基地伐木的问题)。如果还有什么AI本身的BUG欢迎指正。
下载地址见二楼。


IP属地:江西1楼2024-05-23 14:42回复
    (前面为百度网盘地址通用格式)1uyNlouh_OLUNYeQKh3B1XA。提取码:fuyu


    IP属地:江西2楼2024-05-23 14:43
    收起回复
      顶一个


      IP属地:江西来自Android客户端3楼2024-05-24 16:51
      回复
        支持,我也有用AI编辑器做过AI,可以对打一下(我只有兽族和不死族)。


        IP属地:广东4楼2024-05-25 00:32
        收起回复
          大佬呀


          IP属地:山东来自Android客户端5楼2024-05-25 07:59
          收起回复
            强呀,等有空我也试试LZ版本的


            IP属地:广东本楼含有高级字体6楼2024-06-01 00:03
            回复
              amai用trigger是为了taunt和command,本体是纯ai。


              IP属地:上海7楼2024-06-01 03:48
              回复
                强度怎么,比起AMAI 。会变战术?会针对?


                IP属地:上海8楼2024-06-01 08:31
                收起回复
                  说明一下,这个不涉及触发,说白了相比原版只是增强了基地升级、建筑和兵力建造、金钱使用速度等我在文章标题下列的几个方面的更改,战术还是很单一的,智能化程度和原版没有太大区别,没有使用触发补全电脑智能的不足,智能程度远不如AMAI,譬如英雄空血回城、拉残血兵、战术改变、巫医等部队空血后在家放治疗守卫等都无法实现,这本身就不是对战ai文件的范畴,而是触发的范畴。


                  IP属地:江西来自Android客户端10楼2024-06-01 09:08
                  收起回复
                    当然纯ai也不是不能实现改变兵种,但不能针对玩家出兵来改变战术兵种,因为纯ai文件无法判定玩家使用什么战术,只能随机出兵种,譬如随机原兵种出法、随机狂爆一本兵的打法等,但这个整合在一个ai文件里需要大量编码篇幅,太烧脑。我只在不死有这个初浅尝试,让开局有狗+蜘蛛和纯蜘蛛两种兵种搭配,但三本后兵种出法还是一样的。另外这种空血回城、拉残血兵等操作是纯ai无法实现的。当初改ai文件的本意就是觉得人族升本太慢、兽暗夜等后期兵力偏少的原因来改改这些方面的。


                    IP属地:江西来自Android客户端13楼2024-06-01 09:27
                    收起回复
                      以下需要基础编程能力,以及对触发api的基本了解。
                      >> 我的意思是不用触发,只在对战ai文件里面如何实现?是不是触发的语句可以转换成对战ai能用的语句?
                      触发的大多数语句直接就是对战ai能用的语句。(如果都是jass)
                      ai里除了trigger event api (e.g. CreateTrigger)和string api (e.g. GetUnitName),剩余common.j里的api基本上都能用。
                      另外,触发可以用lua,ai只能用jass -- lua虽然辣鸡,比起更加辣鸡100倍的jass是质变了。
                      例如在对战ai文件里面实现拉扯低血兵:
                      - 遍历所有本ai玩家拥有的单位,找到低血兵;(遍历和获取hp的api和触发里一样,但是ai里不要用callback)
                      - 对每个低血兵,计算周围敌人的位置,命令它朝着离开敌人的方向移动。
                      [ 然而实际无论是在触发还是对战ai里实现,都有一个致命的问题--地面单位无法考虑pathing。
                      虽然勉强可以计算纯地形的pathing,destructible(包括树)占位难以处理,单位占位根本无法处理。
                      如果用移动后检查的workaround,那延迟太大了--人一眼就能看出不该拉的情况,ai要秒级延迟才能判断;还会拉错方向,或者堵自己其他单位的路。]
                      >> 还有你说的轮询是什么意思怎么操作,不懂这方面...
                      遍历玩家单位;然后sleep,循环。本来ai的'thread'也是这个结构。


                      IP属地:上海14楼2024-06-03 11:23
                      收起回复
                        大佬,为啥删除和添加了文件,各种族还是以前那样萌新求教


                        IP属地:陕西来自Android客户端15楼2024-07-11 16:19
                        收起回复
                          试了下1.29以下版本的几个AI,发现两个兽族的AI后期都只会爆到65人口,阵容固定3英雄+4猎头+3萨满+1科多+2飞龙+2黑牛+14苦工,另一个会少出一个猎头,多出一只蝙蝠


                          IP属地:山东来自Android客户端16楼2024-07-18 00:42
                          收起回复
                            楼上kinierfire反映的卡兵力的问题,猜测应该不是卡建筑的原因(这个基本不怎么会出现),而是卡了灵魂行者,估计原因是:我使用的游戏程序版本和kinierfire不同的原因(单靠版本补丁无法解决),因为这个兽族Ai文件增加了建造灵魂行者(虚无形态),我使用的游戏版本对我这个兽族Ai文件能正确识别造灵魂行者(虚无形态),使用的代码是:SPIRIT_WALKER_M,而kinierfire的版本不能正确识别使得灵魂行者(虚无形态),建造语句无法执行从而挡了下面的造兵程序语句的原因。尝试解决方案:
                            1、kinierfire先用我发给你的四个文件看看能否解决,若不能则:
                            2、先游戏一把手动操作兽族建造灵魂行者,告诉我造出来的是正常形态还是虚无形态。
                            3、打开地图编辑器-物体编辑器-单位,选到兽族灵魂行者,键盘同时按Ctrl+D键,把灵魂行者和灵魂行者虚无形态的代码截图给我看(如下图所示)。再使用工具MPQMaster,打开游戏目录下的War3x.mpq文件,到Scripts里提取common.ai发送到我邮箱,如果名称相同的话,通过改灵魂行者代码应该能解决问题。


                            IP属地:江西17楼2024-07-20 14:34
                            收起回复
                              在751行加上了这句,这句其实应该加在 init_vars 函数里

                              另修改了281行灵魂行者数量统计的条件,把两种形态都算进去了


                              IP属地:山东18楼2024-07-20 19:55
                              收起回复