function Trig_Respawn_Timer takes nothing returns nothing
local timer t = GetExpiredTimer()
local integer h = GetHandleId(t)
local unit u = LoadUnitHandle(udg_hash, h,1)
//local integer pid = GetPlayerId(GetOwningPlayer(GetDyingUnit()))
//call LoadTimerHandle(udg_hash, h, pid)
local real x = GetRectMinX(gg_rct_GameArea)
local real y = GetRectMinY(gg_rct_GameArea)
local real x1 = GetRectMaxX(gg_rct_GameArea)
local real y1 = GetRectMaxY(gg_rct_GameArea)
local real x0
local real y0
set x0 = GetRandomReal(x,x1)
set y0 = GetRandomReal(y,y1)
call CreateUnit(GetOwningPlayer(u), 'h000', x0, y0, 0)
if GetLocalPlayer() == GetOwningPlayer(u) then
call PanCameraToTimed(x0,y0,0)
endif
t = null
endfunction
function Trig_Respawn_Actions takes nothing returns nothing
local integer pi = GetPlayerId(GetOwningPlayer(GetDyingUnit()))
local timer t
local unit u = GetDyingUnit()
//local integer ht = GetHandleId(t)
local integer hu = GetHandleId(u)
t = CreateTimer()
call TimerStart(t, udg_RespawnTime[pi], false, function Trig_Respawn_Timer)
//call SaveTimerHandle(udg_hash, ht, pi, t)
call SaveUnitHandle(udg_hash, hu, 1, u)
set t = null
set u = null
endfunction
//===========================================================================
function InitTrig_Respawn takes nothing returns nothing
set gg_trg_Respawn = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ(gg_trg_Respawn, EVENT_PLAYER_UNIT_DEATH)
call TriggerAddAction( gg_trg_Respawn, function Trig_Respawn_Actions )
endfunction
Вот сообственно код, есть еще один триггер но там из нужного только инициализация хеша. По сути должно работать, но нет... + Если что там нужно еще утечки убирать и хеш очищать, это потом, щас надо работоспособность наладить.
PS:Я новичок в hash таблицах.
PS:Я новичок в hash таблицах.
Принятый ответ
На сайте же есть система респауна крипов xgm.guru/p/wc3/crs
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
И таймеру меня 5 секунд, думаешь за эти 5 секунд никто не помрет?
Отредактирован nvc123
таймер должен быть 1
и если что то он перебирает до 500 юнитов за раз и не ломается
твои 12 игроков для него фигня
для твоей задачи лучше увеличить период до 1 секунды
короче читай статьи
Отредактирован HolyMoon
первое, что в глаза бросилось
ты вообще статьи что я кинул читал?
таймер стартует в самом начале игры и тикает всю игру
перебирая циклом массив объектов и воскрешая их когда подходит время
а какому игроку принадлежал юнит и прочее содержимое объекта его не волнует
он просто следит за таймингом и ранит объекты когда приходит время
короче прочти те 2 статьи
потом прочти ещё тут
HolyMoon, а это в глаза не бросилось?
Постой, я там не могу найти обычный jass код, только gui и vjass
Да и там все не понятно, слишком много мне не нужного, есть другая наработка?
Отредактирован nvc123
но 50 таймеров достаточно для лагов