找回密码
 点一下
查看: 2357|回复: 4

关于GetExpiredTimer()的疑问

[复制链接]
发表于 2013-8-17 11:22:27 | 显示全部楼层 |阅读模式
本帖最后由 feiruzhou 于 2013-8-18 17:15 编辑

function shanghai1 takes nothing returns nothing
local timer tm=GetExpiredTimer()
local unit uu=I2U(GetStoredInteger(udg_GC, I2S(H2I(tm)), "unitd"))
    call UnitDamageTargetBJ( uu, GetEnumUnit(), ( I2R(GetHeroInt(uu, true)) * 2.00 ), ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL )
    set uu=null
    set tm=null
endfunction
function ttt1 takes nothing returns nothing
      local timer tm=GetExpiredTimer()
      local integer N =GetStoredInteger(udg_GC, I2S(H2I(tm)), "cishu")
      local location d= I2L(GetStoredInteger(udg_GC, I2S(H2I(tm)), "location"))
      local group danweizu
      if N>0 then
            set danweizu=GetUnitsInRangeOfLocMatching(600.00, d, Condition(function shanghai))
            call ForGroupBJ( danweizu, function shanghai1 )
            set N=N-1
            call StoreInteger(udg_GC,I2S(H2I(tm)), "cishu",N)
            call GroupClear( danweizu )
            call DestroyGroup( danweizu )
            set danweizu=null
       else
            call FlushStoredMission(udg_GC,I2S(H2I(tm)))
            call DestroyTimer(tm)
       endif         
      set tm=null
endfunction
function ttt takes nothing returns nothing
      local timer tm=CreateTimer()
      local location dian = GetSpellTargetLoc()
      local player p = GetOwningPlayer(GetSpellAbilityUnit())
      local unit uu = GetSpellAbilityUnit()
      local integer N = 10
      call StoreInteger(udg_GC,I2S(H2I(tm)), "cishu", N)
      call StoreInteger(udg_GC,I2S(H2I(tm)), "location", H2I(dian))
      call StoreInteger(udg_GC,I2S(H2I(tm)), "player", H2I(p))
      call StoreInteger(udg_GC,I2S(H2I(tm)), "unitd", H2I(uu))
      call TimerStart(tm,1,true,function ttt1)
      set dian=null
      set uu=null
      set tm=null
endfunction



如上下面GetExpiredTimer()得都的是同一个Timer。我想问的是上面的那个GetExpiredTimer()得到的是不是也是和下面一样的Timer


发表于 2013-8-17 15:00:55 来自手机 | 显示全部楼层
本帖最后由 kp1997 于 2013-8-17 16:57 编辑

—————————————————16:54改—————————————————————
如果函数传递的时候计时器沒变結结不会变的,不过时间一久GetExpiredTimer会清空...总结说答案是一样的

点评

不太明白你的意思,我的意思在shanghai1里得到的tm和ttt1里得到的tm是不是同一个。结果我是大致知道了,因为在GC里用timer绑定的数据,测试结果能读出来。比如说shanghai1里在调用一个函数。再local timer tm=GetExp  详情 回复 发表于 2013-8-17 16:06
回复

使用道具 举报

 楼主| 发表于 2013-8-17 16:06:02 | 显示全部楼层
kp1997 发表于 2013-8-17 15:00
如果事件没填是哪个计时器到时的话无论哪个计时器到时也会触发到的。。。所以说答案是一样的

不太明白你的意思,我的意思在shanghai1里得到的tm和ttt1里得到的tm是不是同一个。结果我是大致知道了,因为在GC里用timer绑定的数据,测试结果能读出来。比如说shanghai1里在调用一个函数。再local timer tm=GetExpiredTimer()的tm,和前面的是不是也是同一个呢。
回复

使用道具 举报

发表于 2013-8-17 23:49:58 | 显示全部楼层
是同一个,话说这不是写个简单的测试函数就能测出来的么
回复

使用道具 举报

 楼主| 发表于 2013-8-18 17:14:58 | 显示全部楼层
哦,好的。想确认一下。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 14:50 , Processed in 0.267594 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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