原创不易,严禁抄袭、剽窃等行为,喜欢的请多多点赞评论
之前我们已经对魔兽地图编辑器做了系统的介绍,相信大家都能利用编辑器做出自己喜爱的东西了,不过编辑器这东西是熟能生巧,需要多做多练,这一期我们来说一下地图中常见的刷兵和练功房,帮助大家更好地制作地图
刷兵这东西是需要用到触发器的,不熟悉触发器的同学可以翻翻我之前的文章。在制作之前,先用地图上放置基本的建筑与区域
刷兵的简单理解即为:每间隔x秒,在某地点A创建y名单位,令他们向某点B进攻
最简单的触发和后果如下图
这里有个问题就是,每次刷的兵是一样的,像平时的地图中,每波是不一样的,按上图做法,你要做很多个触发器,并且要让触发器在不同时间段运行、停止等等,十分繁琐,要解决这个问题,需要用到变量数组和计时器
为什么要这样做呢,这里解释一下,无论你刷几次兵,什么类型,你要做的内容都是一样的,在某点创建y兵种,令它们进攻,我们可以把“在x点创建-发起进攻“这个普遍的操作给它抽取出来,每次给它赋予不同的y兵种就可以了,这样可以写少很多重复操作
计时器的作用是做一个倒计时,并且在后面的进阶操作中,对计时器进行变更、暂停等操作可以做到一个跳关、停怪的效果
在触发编辑器中,打开变量,新建一个单位类型变量,将“数组”勾上。数组是什么呢,可以理解为一堆相似的东西的集合,像我可以用“方位”数组来存储“东”南“西”北“几个方向,数组有大小,根据索引来找其中对应的值,索引即为0,1,2. . . .如方位[1]=南,方位[2]=西
创建好单位类型变量数组后,我们需要对它赋值,要不然它是空的,这里我根据需要,第一波进攻的是农民,第二波步兵,第三波火枪手
除此之外,我们还需要准备计时器和计时器窗口变量,用来计时和显示时间
一般地图都会有个准备时间,这里为了方便展示只准备了6秒。这里解释一下每一步的效果,不明白的话可以翻翻我之前的计时器教程。“计时器-运行 jsq/*计时器*/,模式:一次,周期6秒”——在载入地图后运行一次计时器,计时器在6秒后到期(6秒准备时间),在下面给计时器创建窗口显示并用变量对应起来
接下来就是最关键的一步,出怪,建议看下注释来帮助理解
这里逐一来理解一下上图,事件-计时器到期,上上图触发器中那个6秒的计时器到时后就会触发事件,而该触发器中动作也有一个“运行计时器”动作,即这个触发器会无限循环下去,换句话理解就是一个无限出兵的程序,这里需要用到变量-当前波数 来记录读取兵种类型数组里的数据,每一次计时器运行完后波数+1
最关键的出兵程序,这里循环使用一个间隔1秒的计时器,即每隔1秒会在一个地方刷出一个兵,若要终止,需要加入判断,用一个整数i来记录运行次数,若i<5,则刷出1个兵,否则跳出循环。最值得关注的是,创建单位中用到了兵种类型[当前波数]这个变量,根据波数不同,会读取兵种类型里面不同的数据来创建不同的兵种
有些地图会在特定波数刷出BOSS,这个很容易实现,用IF判断波数即可
和上面类似,你要终止刷怪,判断一下波数关闭计时器和触发器即可。如果你想通过输入指令或购买物品在终止刷怪,也很容易,可以自己思考下
最终实现结果如下面的视频,为了方便展示,只做了3波怪,你可以根据自己喜好更改
可以看到,这个触发已经基本把刷怪的功能进行了实现,不同波数不同怪物,BOSS进攻,刷怪终止等
接下来说说“练功房”,这其实和刷兵是个差不多的东西,逻辑为:每隔x秒检查区域内怪物数量,没有则创建,这个也需要用“当前练功房内怪物”,“练功房怪物”数组来存储不同的怪物,根据你的需要来刷出不同的怪
这里和上面类似,创建出“练功房怪物类型“和”当前练功房怪物“两个变量来存储单位,然后在触发器中进行初始化赋值
这个触发器的意思为,默认当前练功房怪物为步兵,并设置练功房怪物分别为步兵、食尸鬼、兽族步兵
在练功房刷怪中有个很关键的点,判断区域内单位数量时,它会把已死亡的单位(地上还有尸体的)也算进区域内单位数量,所以判断时条件为“区域内x单位的数量,且x单位生命值>0”,以此来获得判断活着的单位数目
另外常见的练功房中还会有个“切换当前怪物”的操作,这里我先创建出两个切换单位的物品,并创建出一个单位出售这两个物品
然后在触发器中设置,当物品被售出时,改变“当前练功房怪物“这个变量
然后是最关键的一步,每间隔2秒,检查区域内单位数量,设其为X,如果X<=7,那么在区域内创建“8-X” 个“当前练功房怪物”。解释一下,即是区域内练功房怪物最多为8个,当有单位死亡后即创建新的单位,创建的单位类型由练功房怪物类型[当前练功房怪物] 来决定
下面来演示一下练功房触发,注意练功房内怪物数量和类型
好了,这就是本期全部内容,下期想看什么内容可以留言喔。
原创不易,请留下你宝贵的点赞与评论,欢迎评论区进行交流互动。