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

求演示,简单的给单位绑定计时器

[复制链接]
发表于 2008-11-6 14:52:54 | 显示全部楼层 |阅读模式
timer+return bug 好难啊



大大们赐一个演示吧


只要最简单的,给单位绑定计时器就可以了


=。=
 楼主| 发表于 2008-11-6 15:34:25 | 显示全部楼层
好艰涩的做了好久 终于 做出来了  大大们看看哪里有错误

[jass]
function AIend takes nothing returns nothing
    local integer iu = GetStoredInteger(udg_GC, I2S(H2I(GetExpiredTimer())) ,"AAA")   
    call IssueImmediateOrder( I2U(iu), "holdposition" )
    call DestroyTimer(GetExpiredTimer())
endfunction

function Trig_test_Actions takes nothing returns nothing
    set bj_lastStartedTimer = CreateTimer()
    call CreateNUnitsAtLoc( 1, 'hfoo', GetOwningPlayer(GetTriggerUnit()), GetUnitLoc(GetTriggerUnit()), bj_UNIT_FACING )
    call IssueTargetOrder( bj_lastCreatedUnit, "attack", GetTriggerUnit() )
    call StoreInteger(udg_GC,I2S(H2I(bj_lastStartedTimer)),"AAA",H2I(bj_lastCreatedUnit))  
    call TimerStart( bj_lastStartedTimer, 10, false, function AIend)
endfunction

//===========================================================================
function InitTrig_test takes nothing returns nothing
    set gg_trg_test = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_test, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddAction( gg_trg_test, function Trig_test_Actions )
endfunction
[/jass]
回复

使用道具 举报

发表于 2008-11-6 15:53:27 | 显示全部楼层
问题貌似是没什么,就是可以尽量的去使用局部变量和cj函数,减少bj函数和变量的使用,还有就是排泄方面的相关内容了

[codes=jass]function AIend takes nothing returns nothing
      local integer iu = GetStoredInteger(udg_GC, I2S(H2I(GetExpiredTimer())) ,"AAA")      
      call IssueImmediateOrder( I2U(iu), "holdposition" )
      call DestroyTimer(GetExpiredTimer())
      set iu = null
endfunction

function Trig_test_Actions takes nothing returns nothing
      local timer t  = CreateTimer()
      local unit u = CreateUnit(GetOwningPlayer(GetTriggerUnit()), 'hfoo', GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()), 270)
      call IssueTargetOrder( u, "attack", GetTriggerUnit() )
      call StoreInteger(udg_GC,I2S(H2I(t)),"AAA",H2I(u))   
      call TimerStart( t, 10, false, function AIend)
      set t = null
      set u = null
endfunction

//===========================================================================
function InitTrig_test takes nothing returns nothing
      set gg_trg_test = CreateTrigger(   )
      call TriggerRegisterAnyUnitEventBJ( gg_trg_test, EVENT_PLAYER_UNIT_SPELL_EFFECT )
      call TriggerAddAction( gg_trg_test, function Trig_test_Actions )
endfunction[/codes]
回复

使用道具 举报

 楼主| 发表于 2008-11-6 16:37:26 | 显示全部楼层
  谢谢哈
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 02:43 , Processed in 0.038639 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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