Добавлен , не публикуется
Почему то из хеша возврашает постояно 0 если при инциализация сохраняет в хеш данные врагов для респавн...

library Map initializer Init requires RPGUnit
    globals
        private hashtable data = InitHashtable()
    endglobals
    
    function pickUnit takes nothing returns nothing
        local unit u = GetEnumUnit()
        
        if IsUnitType(u, UNIT_TYPE_HERO) then
            call Hero.create(u)
        else
            call Unit.create(u)
        endif
        
        call SaveReal(data, GetHandleId(u), 0, GetUnitX(u))
        call SaveReal(data, GetHandleId(u), 1, GetUnitY(u))
        call SaveReal(data, GetHandleId(u), 2, GetUnitFacing(u))
    endfunction

    function pickUnits takes nothing returns nothing
        call ForGroupBJ( GetUnitsOfPlayerAll(Player(PLAYER_NEUTRAL_AGGRESSIVE)), function pickUnit )
    endfunction

    private function isUnitDeath takes nothing returns boolean
        local unit u = GetDyingUnit()
        
        if GetOwningPlayer(u) == Player(PLAYER_NEUTRAL_AGGRESSIVE) then
            return true
        endif
        
        return false
    endfunction
    
    private function onUnitDeath takes nothing returns nothing
        local unit u = GetDyingUnit()
        local real x = LoadReal(data, GetHandleId(u), 0)
        local real y = LoadReal(data, GetHandleId(u), 1)
        local real f = LoadReal(data, GetHandleId(u), 2)
        local integer t = GetUnitTypeId(u)
        local location l = Location(x, y)
        
        call FlushChildHashtable(data, GetHandleId(u))
        call TriggerSleepAction(30.00)
        
        set u = CreateUnit(Player(PLAYER_NEUTRAL_AGGRESSIVE), t, x, y, f)
        call SaveReal(data, GetHandleId(u), 0, x)
        call SaveReal(data, GetHandleId(u), 1, y)
        call SaveReal(data, GetHandleId(u), 2, f)
        call PingMinimapLocForForce( GetPlayersAll(), l, 1)
        call RemoveLocation(l)
    endfunction

    private function Init takes nothing returns nothing
        local trigger t = CreateTrigger()
        local integer index = 0
        
        call TriggerRegisterTimerEvent(t, 1.0, false)
        call TriggerAddAction(t, function pickUnits )
    
        set t = CreateTrigger()
        loop
            call TriggerRegisterPlayerUnitEvent(t, Player(index), EVENT_PLAYER_UNIT_DEATH, null)
            set index = index + 1
            exitwhen index == bj_MAX_PLAYER_SLOTS
        endloop
        
        call TriggerAddCondition(t, Condition(function isUnitDeath))
        call TriggerAddAction(t, function onUnitDeath)
        set t = null
    endfunction
endlibrary
Все правильно но почему то при респавн позиция всегда 0 странно!!!
0
19
7 лет назад
0
Похожие вопросы:

ответ
Ну у мастера клинка способность то посложнее...
Вот пример:
Для начала нам нужно создать иллюзии героя, а потом скрыть всех их, так же сделав визуальный эффект (если что то зеленые тени, это снаряды).
ответ
тут дело в конфликте
ибо системные функции(создание стартовых точек,main и прочее) депротектор автоматически переносит в файл для пользовательских функций
и теперь тебе надо просто удалить их из этого файла
файл называется war3map.wct
вот на будущее статья

0
13
7 лет назад
0
Проверь без блока с условием на проверку героя...
0
23
7 лет назад
0
Я поставил на 5 сек после старта карты сработал а 1 сек не сработал хм!!
0
32
7 лет назад
0
pro100master, Это случаем не слизано из системы респауна крипов ?
0
23
7 лет назад
0
quq_CCCP, нет я сам писал
Чтобы оставить комментарий, пожалуйста, войдите на сайт.