然后我们写触发,事件是Unit - Unit Enters Region,单位进入区域,因为有多个英雄可以选择,所以我们可以在一个触发器里写多个事件,也可以将每一个事件写成一个触发器。然后环境(条件)就是需要判断该单位是不是小精灵,判断的是单位类型,所以我们选择 (Unit-type of (Triggering unit)) 等于 小精灵,这样其它单位进入区域就不会触发动作。再接着我们就进行选择的动作,一般来说,我们都不希望可以重复选择同一个英雄,所以可以采用几种方式,常用的有:1、关闭触发器(如果每个选择英雄的触发器是单独的,那么关闭触发器就意味着将不再能选择这个英雄,即使达到条件也不行),2、给选过的单位做备注。
先说说1的做法,如果我们一开始就创造了多个触发器,我们可以这样写触发:
事件:单位 - Unit Enters Region //一个单位进入区域
条件:(Unit-type of (Triggering unit)) 等于 小精灵 //触发单位的类型是小精灵
动作:单位 - Change ownership of 圣骑士 0001 <情报> to (Owner of (Triggering unit)) and 改变颜色
//改变指定单位“圣骑士 001”所属为触发单位所属玩家
Set hero[(Player number of (Owner of (Triggering unit)))] = (Ownership-changed unit)
//设定变量hero[玩家的索引号]=改变所有权的单位
单位 - Kill (Triggering unit)
//杀死触发单位 - 这个不需要解释了……
触发器 - Turn off (This trigger)
//关闭这个触发器
这里需要说明的是,如果英雄选择的地方是没有障碍的,所以可以直接改变指定单位给触发单位所属玩家来控制,如果是锁定区域的话,那可以移动该单位到指定位置或者创造一个同类型的单位给触发单位所属玩家在指定的位置(一般是玩家的初始地点),而单位变量的赋值是为了方便以后操作;如果是创造单位的话,该语句也需要更改:
单位 - Create 1 (Unit-type of 圣骑士 0001 <情报>) for (Owner of (Triggering unit)) at ((Owner of (Triggering unit)) start location) facing 默认的建筑朝向 degrees
//创造一个单位类型是“圣骑士0001”的单位给触发单位所属在玩家的初始点
Set hero[(Player number of (Owner of (Triggering unit)))] = (Last created unit)
//设定变量hero[玩家的索引号]=最后创造的单位
然后我们说说双击选英雄,这个方式最重要的一点,是做备注。双击选择英雄的原理很简单,只要判断该单位在一定时间内,比如0.2秒,是否被连续点击,那么第一次的点击就是做为第二次点击的判断依据,也就是说,第一次需要做一个备注。如图:
这里需要说明的是,采用玩家事件判断可以用到触发玩家,如果是用单位被选择事件判断的话,触发玩家就是被选择单位所属玩家而不是点击这个单位的玩家;另外事件是并行的,也就是说可以多个事件来判断同一个触发器却不相互影响。我这次做备注的方式是给单位添加自定义数,如果这个单位被点击了,那么这个单位的自定义数就为玩家号,如果在0.2以内再次被点击,而且是同一个玩家点击的话(判断玩家号),就会执行创造的触发,否则,该单位将恢复到其它自定义数,被执行以后关闭该触发器。
PS:Player Number 玩家号,就是每个玩家默认的值,玩家1的号为1,玩家2的号为2,类推。
最后说随机选英雄,所谓随机选择,其实就是在按排好的一些单位里进行挑选并给予单位,既然是按排好的,所以我们就需要定义单位类型,也就是说,我们需要使用单位类型变量来存储不同的单位,因为使用随机,所以要用单位组来做,如图所示: