魔兽地图编辑器吧 关注:64,904贴子:3,834,905

魔兽争霸战役AI简单教程

只看楼主收藏回复



IP属地:广东1楼2024-01-09 09:37回复
    战役AI是一个非常简单、好做、好用的AI,今天手把手教大家怎么做战役AI。
    1、首先下载vscode


    IP属地:广东2楼2024-01-09 09:39
    收起回复
      https://segmentfault.com/a/1190000017464740
      这是vscode设置中文的教程链接


      IP属地:广东3楼2024-01-09 09:39
      收起回复
        2、安装好vscode,并且设置好中文后。下载jass扩展。



        IP属地:广东4楼2024-01-09 09:41
        回复
          3、现在可以开始制作战役AI了,随便创建一个记事本,把后缀改成ai格式。



          IP属地:广东5楼2024-01-09 09:46
          回复
            4、敲出函数结构,这里是函数名,改成main。



            IP属地:广东6楼2024-01-09 09:51
            回复
              我们编辑器打开物编,按Ctrl+d,可以看单位id字符串。


              IP属地:广东7楼2024-01-09 09:55
              回复
                看见这个人族农场了吗?hhou,这个单位id,这是ai识别地图上面单位类型的名称,可以理解成单位真名,单位你叫啥名字都无所谓,ai不看那个,ai只看你真名。


                IP属地:广东8楼2024-01-09 09:56
                回复
                  这里强调一遍,有ai脚本的地图,所有建筑必须要有路径纹理,路径纹理是建筑物占地体积。
                  大家想必都知道,建筑物的碰撞体积是没有意义的, 建筑占地只能看路径纹理。
                  如果有建筑没有路径纹理,AI寻路一旦遇到没有路径纹理的建筑,地图就会崩溃。
                  6、这是战役AI的脑子,这个动作,这里是写AI人口房子。AI如果是兽族,就写兽族的房子。
                  反正你农民可以造什么加人口,就写什么房子。
                  右边写null,右边是涉及AI英雄学习技能的,对于萌新来说有点复杂,这里不讲。


                  IP属地:广东9楼2024-01-09 09:59
                  回复
                    //主函数
                    function main takes nothing returns nothing
                    //战役AI核心,传递房子给common.ai内部,它会自动补充人口建筑
                    //右边的null,你可以自己写一个AI的英雄学习技能的函数,传递进去
                    call CampaignAI('hhou',null)


                    IP属地:广东10楼2024-01-09 09:59
                    回复
                      按tab,可以对齐空格


                      IP属地:广东11楼2024-01-09 10:02
                      回复
                        //主函数
                        function main takes nothing returns nothing
                        //战役AI核心,传递房子给common.ai内部,它会自动补充人口建筑
                        //右边的null,你可以自己写一个AI的英雄学习技能的函数,传递进去
                        call CampaignAI('hhou',null)
                        //AI有站岗的单位被杀,它会再训练一个单位,去到原本的地方站岗
                        //这是它再次训练的次数,3个参数表示1、容易难度2、普通难度3、困难难度
                        //我这里的写法意思是,AI在容易难度会补充张岗单位2次,普通难度4次,困难难度6次
                        call SetReplacements(2,4,6)
                        //开启替换守卫,如果输入的是false那么不会替换
                        call GroupTimedLife(true)
                        endfunction


                        IP属地:广东12楼2024-01-09 10:03
                        回复
                          7、这些是暴雪给我们准备好的AI函数,直接输入启动,AI就会附带这些功能,它们本身运行原理萌新没必要去考虑。


                          IP属地:广东13楼2024-01-09 10:07
                          回复
                            //主函数
                            function main takes nothing returns nothing
                            //战役AI核心,传递房子给common.ai内部,它会自动补充人口建筑
                            //右边的null,你可以自己写一个AI的英雄学习技能的函数,传递进去
                            call CampaignAI('hhou',null)
                            //AI有站岗的单位被杀,它会再训练一个单位,去到原本的地方站岗
                            //这是它再次训练的次数,3个参数表示1、容易难度2、普通难度3、困难难度
                            //我这里的写法意思是,AI在容易难度会补充张岗单位2次,普通难度4次,困难难度6次
                            call SetReplacements(2,4,6)
                            //开启替换守卫,如果输入的是false那么不会替换
                            call GroupTimedLife(true)
                            //AI初始化
                            //是否保护玩家
                            call SetDefendPlayer( false )
                            //设置随机路径
                            call SetRandomPaths( false )
                            //维修建筑
                            call SetPeonsRepair( true )
                            //英雄路过商店购买基础物品,比如血瓶,回程卷轴
                            call SetHeroesBuyItems( false )
                            //AI不对玩家放水。不放水AI会在玩家兵力少的时候进攻玩家。
                            //写false就是放水
                            call SetWatchMegaTargets( true )
                            //AI基地没了可以在另一个矿开基地
                            call SetCaptainChanges( false )
                            endfunction


                            IP属地:广东14楼2024-01-09 10:08
                            回复
                              设置工人采集数量,分别是采集金矿和采集木材,这两个变量,common.ai库里面已经定义好了,我们直接调用就行了。


                              IP属地:广东15楼2024-01-09 10:16
                              回复