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

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

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

ответ
Происходящее здесь напомнило мне один случай из моего далекого прошлого. В те времена я еще только начинал осваивать редактор. Одна из тем, которая меня заинтересовала и по которой мне не удалось найти достаточно полной информации - утечки. Тогда я пошел на один форум и задал простой вопрос о том, как определить наличие и степень серьезности утечек в карте, не перебирая весь код. В результате я получил тонну флуда и "ответ от профи", с которым все в итоге согласились - фрагмент кода с ценным указанием "если это число растет быстро - утечек много, если медленно - мало или нет вовсе". Код представлял из себя таймер с малым периодом, который создавал объект, брал его хендл, писал в чат и удалял объект, но был один нюанс - создаваемый объект утекал на каждой итерации таймера.
ответ
Таймеры одни из самых легких обьектов в игре, они меньше нагружают движок и требуют куда меньше пямяти чем триггер, но таймеры не всегда удобны, т.к триггеры более универсальны если речь идет о триггерных заклинаниях.
Если вы про доту, нет, разве что некоторые кривые участки которые и так переделывать.
ответ
триггер точно так же создает таймер и ждет его. Если у тебя нет других условий, то таймер лучше, а если у тебя там полдсчет срабатываний и т.п. - то триггер
ответ
в функци fa GetExpiredTimer() и будет текущим таймером, там надо прописать условия остановки, проблема с передачей туда юнита через ХТ? SaveUnitHandle(hash, GetHandleID(t),0,unit), а в fa выгрузить его, тут проблема?
ответ
~8gabriel8:
Посмотрел 4 триггера, один удалил, остальные кардинально переделал. Проблема была из-за того, что ты установил массиву таймеров размер 1, а это таймер[0] и таймер[1], у пауков же был таймер[2], для юнитов или целочисленных переменных такое превышение размера массива допустимо, но видимо не для таймеров.
Во-первых, не надо ставить действие Ничего не делать, так как это просто мусор. Во-вторых, переделал триггеры спавна так, чтобы они каждый раз проверяли количество игроков и замедляли спавн, если кто ливнёт. В-третьих, посмотри, как в 004 теперь группа игроков назначается, если тебе это не подходит, а хочется добавлять и компьютерных игроков, в условии надо поменять Игрок = Человек на Игрок не равен Игрок 6 и Игрок 7. В-четвёртых, сильно много утечек в триггерах, их просто поленился убрать. Утечки могут вызвать дикие лаги при продолжительной игре.
Короче, сам посмотришь и вопросы задашь, если будут.
Сейчас посмотрел, таймер[0] ты использовал в триггерах категории Кукуепта) Надо будет его переделать на таймер[2] и увеличить массив таймеров до 2

2
23
5 лет назад
2
ты что на сломаный телефон пишеш?
0
32
5 лет назад
0
кто-то что либо понял?
0
14
5 лет назад
0
Мне нужно Запустить один таймер в двух функциях один и тотжы таймиер в одной его остановить а в другой нет
2
17
5 лет назад
Отредактирован N1ghtSiren
2
хештаблица или глобалка?
или юзайте 2 таймера,а на второй кидайте ссылку на 1й...
Принятый ответ
0
14
5 лет назад
Отредактирован MATRITSA
0
Как мне передать айди одного таймер в другую функцию без TimerStart Один Таймер одна функцыя Один таймиер одно айди второй таймер другон айди
Может както Можно Передать Параметры с одной функцые на другую если да то напишыте как
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 время то взрываем чем плодить каждого таймера для юнита!
Чтобы оставить комментарий, пожалуйста, войдите на сайт.