判断问题
魔兽地图编辑器吧
全部回复
仅看楼主
level 10
library ReDan
globals
private boolean array B
private timer array Timer
private unit array U
endglobals
private function Off takes nothing returns nothing
local integer i=0
loop
set i=i+1
--------------------为什么下面这个判断不行求解-------------------------
if Timer[i]==GetExpiredTimer() then
set B[i]=FALSE
call SetUnitLifePercentBJ(udg_weapon[i],100)
endif
exitwhen i>10
endloop
call DestroyTimer(GetExpiredTimer())
endfunction
function ReDan takes unit u returns nothing
local integer i=GetPlayerId(GetOwningPlayer(u))
if B[i]==FALSE then
set Timer[i]=CreateTimer()
set U[i]=u
set B[i]=TRUE
call TimerStart(Timer[i],GetUnitPointValue(u),FALSE,function Off)
endif
endfunction
endlibrary
2013年07月04日 02点07分 1
level 10
秒沉啊我去
2013年07月04日 03点07分 2
level 15
set i=i+1

exitwhen i>10
换下位置吧。。
GetPlayerId(Player(0))是 0 .
GetConventedPlayerId 才是 1
2013年07月04日 03点07分 3
i++在前面,就略过0了。。应该是这样吧
2013年07月04日 03点07分
回复 绯弹亚丝娜 :明白
2013年07月04日 03点07分
吧务
level 15
注意GetPlayerId是获取玩家初始序号的函数,玩家1返回为0,玩家2返回为1,玩家10返回为9,以此类推。而
private function Off takes nothing returns nothing
local integer i=0
loop
set i=i+1
中在执行下列判断之前i值已为1,但玩家1对应的计时器应为Timer[0],所以Timer[1]是无法被检索的,建议你把 set i=i+1 放在endloop上面
2013年07月04日 03点07分 5
1