tgonta
Pixelated Sora Coder
offline
Опыт:
3,160
Активность:
|
Не пашет Local Player
Уважаемые кодеры! Обращаюсь к вам с небольшой проблемой. Вот в чём она заключается: я не могу правильно сделать так, чтобы в последних строках мультиборда правильно уменьшались жизнь и мана нанятого игроком героя. Т.е. у каждого игрока - свой герой, соответственно, и свои значения. Пробовал сделать на Local Player, вот код триггера:
Код:
function Trig_SetMultiboardLMValues_Actions takes nothing returns nothing
if GetLocalPlayer() == Player(0) then
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 7, 3), udg_LifeString[R2I(GetUnitLifePercent(udg_Hero[1]))])
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 8, 3), udg_ManaString[R2I(GetUnitManaPercent(udg_Hero[1]))])
else
endif
if GetLocalPlayer() == Player(1) then
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 7, 3), udg_LifeString[R2I(GetUnitLifePercent(udg_Hero[2]))])
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 8, 3), udg_ManaString[R2I(GetUnitManaPercent(udg_Hero[2]))])
else
endif
if GetLocalPlayer() == Player(2) then
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 7, 3), udg_LifeString[R2I(GetUnitLifePercent(udg_Hero[3]))])
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 8, 3), udg_ManaString[R2I(GetUnitManaPercent(udg_Hero[3]))])
else
endif
if GetLocalPlayer() == Player(3) then
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 7, 3), udg_LifeString[R2I(GetUnitLifePercent(udg_Hero[4]))])
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 8, 3), udg_ManaString[R2I(GetUnitManaPercent(udg_Hero[4]))])
else
endif
if GetLocalPlayer() == Player(4) then
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 7, 3), udg_LifeString[R2I(GetUnitLifePercent(udg_Hero[5]))])
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 8, 3), udg_ManaString[R2I(GetUnitManaPercent(udg_Hero[5]))])
else
endif
if GetLocalPlayer() == Player(5) then
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 7, 3), udg_LifeString[R2I(GetUnitLifePercent(udg_Hero[6]))])
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 8, 3), udg_ManaString[R2I(GetUnitManaPercent(udg_Hero[6]))])
else
endif
if GetLocalPlayer() == Player(6) then
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 7, 3), udg_LifeString[R2I(GetUnitLifePercent(udg_Hero[7]))])
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 8, 3), udg_ManaString[R2I(GetUnitManaPercent(udg_Hero[7]))])
else
endif
if GetLocalPlayer() == Player(7) then
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 7, 3), udg_LifeString[R2I(GetUnitLifePercent(udg_Hero[8]))])
call MultiboardSetItemValue(MultiboardGetItem(udg_Multiboard, udg_Player_Count + 8, 3), udg_ManaString[R2I(GetUnitManaPercent(udg_Hero[8]))])
else
endif
endfunction
//================================================================================ ========
function InitTrig_SetMultiboardLMValues takes nothing returns nothing
call TriggerRegisterTimerEventPeriodic(gg_trg_SetMultiboardLMValues, 1.0)
call TriggerAddAction(gg_trg_SetMultiboardLMValues, function Trig_SetMultiboardLMValues_Actions)
endfunction
В триггере, где нанимаются герои, я сделал так, чтобы задавало массивную переменную Hero последним нанятым юнитом. (Set Hero[(Player number of (Owner of (Sold unit)))] = (Sold unit))
Как привести в работоспособность динамические строки?
Отредактировано tgonta, 11.09.2009 в 22:48.
|