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
    
        
            
                `
            
            
                
        
    
    ОЖИДАНИЕ РЕКЛАМЫ...
            
                    
                        Чтобы оставить комментарий, пожалуйста, войдите на сайт.
                    
                
             
                        
                        
                    
 WC3
                                WC3
                            




нафиг тут вообще хэш
и это не говоря уже о том что ты сохраняешь юнита по хэндлу этого самого юнита
короче вот статьи с примерами того как надо юзать таймеры
https://www.xgm.guru/p/blog-nvc123/101422
юзай поиск по слову если читать плохо умеешь
И таймеру меня 5 секунд, думаешь за эти 5 секунд никто не помрет?
Ред. nvc123
таймер должен быть 1
и если что то он перебирает до 500 юнитов за раз и не ломается
твои 12 игроков для него фигня
для твоей задачи лучше увеличить период до 1 секунды
короче читай статьи
Ред. HolyMoon
первое, что в глаза бросилось
ты вообще статьи что я кинул читал?
таймер стартует в самом начале игры и тикает всю игру
перебирая циклом массив объектов и воскрешая их когда подходит время
а какому игроку принадлежал юнит и прочее содержимое объекта его не волнует
он просто следит за таймингом и ранит объекты когда приходит время
короче прочти те 2 статьи
потом прочти ещё тут
HolyMoon, а это в глаза не бросилось?
Постой, я там не могу найти обычный jass код, только gui и vjass
Да и там все не понятно, слишком много мне не нужного, есть другая наработка?
Ред. nvc123
но 50 таймеров достаточно для лагов