第4个回答 2011-09-10
我前两天测试的时候也突然出现了这个问题,仔细看了一下上面对错误的描述,是有关于memory的,即存储上出现了问题,几经缩小范围,终于将错误锁定在 计时器到期调用函数中的GetExpiredTimer() 到期的计时器。
GetExpiredTimer() 必须要和TimerStart()函数配套一起使用,没有开启计时器就就在函数中使用GetExpiredTimer() 必定会出错。
例如:
function A takes nothing returns nothing
local timer tm = GetExpiredTimer()
endfunction
function B takes nothing returns nothing
lcoal timer tm = CreateTimer()
call A() //直接调用,出错弹出
call TimerStart(tm,0.00,false,function A) //通过计时器调用,为响应A中的GetExpiredTimer(),不出错
endfunction
同时我想诸如 触发单位GetTriggerUnit(),选取单位GetEnumUnit(),匹配单位GetFilterUnit()……等这些函数使用错误的话也应该会出现上面的问题吧(还没碰到过~)
你自己将出错的代码锁定,然后仔细检查,应该会发现类似问题