找回密码
 点一下
查看: 740|回复: 3

动态注册从哪里开始?

[复制链接]
发表于 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







未命名.JPG
发表于 2014-3-15 23:04:05 | 显示全部楼层
把你大括号里的那段放到d里就是动态注册,动态注册就是指触发器被触发后才新建触发器注册事件

点评

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

使用道具 举报

 楼主| 发表于 2014-3-16 19:45:04 | 显示全部楼层
chyj4747 发表于 2014-3-15 23:04
把你大括号里的那段放到d里就是动态注册,动态注册就是指触发器被触发后才新建触发器注册事件

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

使用道具 举报

发表于 2014-3-16 23:03:29 | 显示全部楼层
蘑菇 发表于 2014-3-16 19:45
这样就有两次触发技能获取了,而且换成每秒事件还会出错


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

逻辑上的问题就要做一些比如防止重复注册之类的东西,反正逻辑写对了不管你怎么注册都没问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-22 08:04 , Processed in 0.074856 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表