|
楼主 |
发表于 2008-8-17 21:01:57
|
显示全部楼层
设置一个 变量 aaa
然后在游戏里的火球技能的trigger里包含如下语句:
    set udg_aaa = CreateTrigger(  )
    call TriggerAddCondition( udg_aaa, Condition( function onDamageTriggerConditions ) )
    call TriggerAddAction( udg_aaa, function onDamageTriggerActions )
    call TriggerRegisterUnitEvent( udg_aaa, targetUnit, EVENT_UNIT_DAMAGED )
当然了,这里面的用到的condition和action函数在上面我已经定义了。
作这个的初衷,我是希望,火球攻击到敌人的时候,在敌人身上加debuff。但是如果简单的用给trigger增加“单位接受伤害”event的话,就会出现第2次用火球打同一个目标,trigger就会运行2次的问题。如果我对同一个目标再用第3次火球,那这个trigger就会运行3次了。感觉似乎trigger的EVENT_UNIT_DAMAGE这个event可以无限叠加。所以我才会希望 动态地创建trigger,在那个trigger运行1次以后,就把那个trigger给destroy了。这样就不会出现EVENT_UNIT_DAMAGE的无限叠加问题了。
引用第3楼mnbvcxzqwe于2008-08-17 21:08发表的 :
我想问下,set udg_aaa = CreateTrigger( )跟动态有什么关系?
写local不能么?
试了local, 没灵,所以换了全局的,再试试。 |
|