1. Создаю глобальный таймер, который был определен через JASS.
  2. Запускаю её.
  3. Пытаюсь запустить другой глобальный триггер через событие "таймер истекает".
Но ничего не происходит.
А если все это проделать с таймером, который был создан через кнопку "X" (ctrl+B), то все работает. Хмм.
Правильно ли я делаю?
Мне хотелось бы избавиться от всех переменных с приставкой "udg_".

Accepted answer

на время регистрации события твоя переменная равна null
`
LOADING AD...

Only a small set of comments around the pointed one shown. Go to actual.
0
26
3 months ago
0
У тебя есть тригоер с событием истечения этого твоего jass-таймера? Или функция, которая вызывается его отрабатыванием? Если нет, то без прямого указания через переменную ты на него никак не сошлёшься.
0
2
3 months ago
Edited by Joma
0
Extremator, Примерно, вот так пытаюсь сделать как в гуи)
Uploaded files
0
29
3 months ago
0
Joma, а код можно глянуть?
0
2
3 months ago
0
globals
    timer T = null
endglobals
function TimerGoActions takes nothing returns nothing
    set T = CreateTimer()
    call TimerStart(T, 5, false, null)  //Запускаю таймер
endfunction

function InitTrig_TimerGo takes nothing returns nothing
    set gg_trg_TimerGo = CreateTrigger()
    call TriggerRegisterTimerEventSingle(gg_trg_TimerGo, 0.00)  //Через 0 сек
    call TriggerAddAction(gg_trg_TimerGo, function TimerGoActions)
endfunction

Где-то уже другой триггер:
function TimerEndActions takes nothing returns nothing
    call DisplayTextToForce(GetPlayersAll(), "Hello world!")
endfunction

function InitTrig_TimerEnd takes nothing returns nothing
    set gg_trg_TimerEnd = CreateTrigger()
    call TriggerRegisterTimerExpireEvent(gg_trg_TimerEnd, T)    //Таймер истекает
    call TriggerAddAction(gg_trg_TimerEnd, function TimerEndActions)
endfunction
1
26
3 months ago
1
на время регистрации события твоя переменная равна null
Accepted answer
0
2
3 months ago
0
Hate, Поразительно) все работает, если начать так:
function TimerGoActions takes nothing returns nothing
    call TimerStart(T, 5, false, null)  //Запускаю таймер
endfunction

function InitTrig_TimerGo takes nothing returns nothing
    set gg_trg_TimerGo = CreateTrigger()
    set T = CreateTimer()
    call TriggerRegisterTimerEventSingle(gg_trg_TimerGo, 0.00)  //Через 0 сек
    call TriggerAddAction(gg_trg_TimerGo, function TimerGoActions)
endfunction

Хмм. Получается, глобальный таймер нужно создавать только при инициализации триггера? А другие типы, например группы (CreateGroup()), можно в любом месте?
0
9
3 months ago
0
У тебя была ситуация, что ты инициализировал таймер после того как пытался ему присвоить триггер, который срабатывал бы после него. А надо сначала инициализировать таймер, а затем присвоить ему триггер. А когда ты пишешь, что паразительно, то ты сначала инициализировал все, а только потом начал присвоение. Hate верно пишет тебе. Поэтому нет ничего поразительного.

Более того, ты бы вполне мог свой таймер
call TimerStart(T, 5, false, null)  //Запускаю таймер
начинать внутри инициализации
Only a small set of comments around the pointed one shown. Go to actual.
To leave a comment please sign in to the site.