Добавлен
мне нужно Айди таймера внутри функции но не его циклы как отключить цыклы таймера но оставить его там присуцтвие или передать в нутри функцые тока цыфры АЙДИ таймера

Принятый ответ

хештаблица или глобалка?
или юзайте 2 таймера,а на второй кидайте ссылку на 1й...
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
17
5 лет назад
Отредактирован N1ghtSiren
0
0
14
5 лет назад
Отредактирован MATRITSA
0
function Explode takes nothing returns nothing
    local timer t=GetExpiredTimer() //Получаем таймер, вызвавший данную ф-цию
    local unit u=LoadUnitHandle(udg_Hash, GetHandleId(t),1) //Загружаем нужного нам юнита

    call ExplodeUnitBJ(u) //И взрываем его :)
    call FlushChildHashtable(udg_Hash, GetHandleId(t)) //Удаляем записи таймера

    call DestroyTimer(t) //Обнуляем переменные и “разрушаем” таймер
    set t=null
    set u=null
endfunction

function Trig_Explode_Actions takes nothing returns nothing
    local timer t=CreateTimer() //Создаём новый таймер
    local unit u=GetSpellAbilityUnit() //Заносим в переменную юнита-кастера

    set udg_Hash=InitHashtable() //Инициализируем хеш-таблицу, если ранее это действие не выполнялось
    call SaveUnitHandle(udg_Hash, GetHandleId(t), 1, u) //Сохраняем ссылку на юнита “внутри” таймера
    call TimerStart(t, 5.00, false, function Explode) //Запускаем таймер

    set t=null //Обнуляем переменные
    set u=null
endfunction

function InitTrig_Explode takes nothing returns nothing
    local trigger t=CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddAction( t, function Trig_Explode_Actions )
    set t=null
endfunction
а если у меня еше одна функцыя и мне нужно передать в ниё айди таймера как я это сделаю
2
10
5 лет назад
2
MATRITSA:
а если у меня еше одна функцыя и мне нужно передать в ниё айди таймера как я это сделаю
function A takes integer i returns nothing

endfunction 

function B takes integer i returns nothing

endfunction 


function Explode takes nothing returns nothing
    local integer id = GetHandleId(GetExpiredTimer())
    call A(id)
    call B(id)
endfunction


function Trig_Explode_Actions takes nothing returns nothing
    call TimerStart(t, 5.00, false, function Explode)
endfunction
0
14
5 лет назад
0
а у тебя написано id а в приём i эта все равно будет работать
0
10
5 лет назад
0
MATRITSA:
а у тебя написано id а в приём i эта все равно будет работать
да
0
14
5 лет назад
0
call VragFrend(TaimerID )
call GroupEnumUnitsInRangeOfLoc(GroupEnumyUnit, LocHeroUnit, 500.00, function VragFrend)
я могу так написать
0
10
5 лет назад
0
нет. в качестве фильтра используются функции без аргументов
0
14
5 лет назад
0
а нет возможности в нутри филтра добавить какимто оброзом
0
10
5 лет назад
0
MATRITSA:
а нет возможности в нутри филтра добавить какимто оброзом
можешь сохранить в глобальную переменную перед вызовом фильтра
0
23
5 лет назад
0
зачем удаляете таймер? 1 таймер а тех юнитов вешать время жизни каждый тик отнимаем еси равно 0 время то взрываем чем плодить каждого таймера для юнита!
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.