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 таблицах.

На сайте же есть система респауна крипов xgm.guru/p/wc3/crs
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
бог ты мой
нафиг тут вообще хэш
и это не говоря уже о том что ты сохраняешь юнита по хэндлу этого самого юнита
короче вот статьи с примерами того как надо юзать таймеры
28
VladSekret, эм
юзай поиск по слову если читать плохо умеешь
4
там таймер на доли секунды а у меня срабатывать одновременно до 12 игроков, он сразу сломется
И таймеру меня 5 секунд, думаешь за эти 5 секунд никто не помрет?
28
VladSekret, какая разница сколько игроков
таймер должен быть 1
и если что то он перебирает до 500 юнитов за раз и не ломается
твои 12 игроков для него фигня
для твоей задачи лучше увеличить период до 1 секунды
короче читай статьи
4
Ты не понял, про то что, первый игрок возьмет таймер на себя, потом второй умрет в течение этих 5 секунд и таймер начнет заного действовать и 1-й игрок так и не воскреснет
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.