蘑菇 发表于 2014-3-15 10:56:15

动态注册从哪里开始?

本帖最后由 蘑菇 于 2014-3-15 11:01 编辑

不知道动态注册从哪里开始,代码中 AA()只运行了一次


function c takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'AUan' ) ) then
      return false
    endif
    return true
endfunction

function d takes nothing returns nothing
    call BB()
endfunction

//===========================================================================
function InitTrig_a takes nothing returns nothing
    set b = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ( b, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call AA()
//AA()只运行了一次
    call TriggerAddCondition( b, Condition( function c) )
    call TriggerAddAction( b, d )
/*如果在这里记录条件和动作只显示一次,不知在d里再次输入{。。。。}算不算动态注册
{ set ? = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ( ?, EVENT_PLAYER_UNIT_SPELL_EFFECT )   call TriggerAddCondition( ?, Condition( function ??) )
call TriggerAddAction( ?, 动作)
call saveTriggerCondition(??)
call saveTriggerAction(?)}
*/
endfunction







chyj4747 发表于 2014-3-15 23:04:05

把你大括号里的那段放到d里就是动态注册,动态注册就是指触发器被触发后才新建触发器注册事件

蘑菇 发表于 2014-3-16 19:45:04

chyj4747 发表于 2014-3-15 23:04
把你大括号里的那段放到d里就是动态注册,动态注册就是指触发器被触发后才新建触发器注册事件

这样就有两次触发技能获取了,而且换成每秒事件还会出错

chyj4747 发表于 2014-3-16 23:03:29

蘑菇 发表于 2014-3-16 19:45
这样就有两次触发技能获取了,而且换成每秒事件还会出错

你在顶楼不是只问了“是不是动态注册”么……

逻辑上的问题就要做一些比如防止重复注册之类的东西,反正逻辑写对了不管你怎么注册都没问题
页: [1]
查看完整版本: 动态注册从哪里开始?