除此之外,你还可以使用“Return Bug(1.20)”“哈希表(1.24)”来为每次技能绑定一组数据。 这里使用的是最简单也最实用的“数组法”,其他的就等你学会JASS后自己研究了。
       继续除此之外,“局部变量”也是让技能可以多人释放的利器,只是局限性较大,而且需要使用“自定义代码”,因此在T里面不常用而已。(如果要学习JASS的话,这是必须学习的基础)
    那么,什么是局部变量呢?
    局部变量就是定义在一个过程当中,只有这个过程能够使用的变量。
    如果在一个技能的触发中定义了一个局部变量,那么第一次释放技能所运行的触发,就只能使用这一次运行触发时定义的变量;第二次使用技能所运行的触发,就只能使用这第二次运行触发时定义的变量,两次触发的运行都不能使用另外一个过程中定义的局部变量……好象很饶口,那么来看演示吧。
    
比如:
这是一个使用后能在5秒后杀死技能释放目标的技能。
[trigger]Kill
    事件
        单位 - 任意单位 发动技能效果
    条件
        (施放技能) 等于 驱散
    动作
        设置 u = (技能施放目标)
        等待 5.00 秒游戏时间
        单位 - 杀死 u
[/trigger]
但是有一个问题:
这个技能是使用变量“u”来储存需要杀死的单位的。
而如果在第一次使用技能5秒内再使用一次技能,那么第二次使用技能时为“u”赋的值就会覆盖掉以前“u”的值,于是乎就出现了变量冲突。
最后的结果就是:只有最后一次释放技能的目标被杀死。
那么,修改过后(使用了局部变量)的演示在此:
[trigger]Kill
    事件
        单位 - 任意单位 发动技能效果
    条件
        (施放技能) 等于 驱散
    动作
        自定义代码: local unit u = GetSpellTargetUnit()
        -------- local就是定义局部变量的语句,unit是变量类型“单位”,GetSepllTargetUnit是获得技能目标的函数。 --------
        等待 5.00 秒游戏时间
        自定义代码: call KillUnit( u )
        -------- KillUnit就是杀死单位的函数。 --------
        -------- 可见JASS是很简单的,只要认识这些单词就能写出来。 --------
[/trigger]
KillBill.w3x
(18 KB, 下载次数: 109)
由于使用了局部变量,所以过程之间不能互相影响,也就不会冲突。
最后的结果就是:所有人都死了
恩,写了这么多,希望能对大家有所帮助吧。