Добавлен
Есть один таймер, массив
В зависимости от события, у него будет индекс от 1 до 8
Как отловить индекс прозвонившего таймера?

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

Похожие вопросы:

ответ
оказывается, во втором триггере я использовал ту же переменную индекса, что и в первом. Melissa и naxim , спасибо вам =)
ответ
Всё, разобрался, вопрос снимаю)
ответ
Tapper, не ,не помогает.
Если ты конечно про
//! nocjass

//! endnocjass
В общем, такая проблема возникает только на JNGP Requiem.
ответ
Сейчас попробую integer SHV_N = 0 . Это единственное чо я смог предположить
ответ
Проблема возникает также при переносе вот этого вот в инициализацию триггера тест.
Но при этом если вместо строки вроде "12345" использовать, например, GetAbilityName('Aloc') - то все работает.
Это какой-то баг со строками?
Еще у меня почему-то происходит фантомный клик по центру карты в начале игры
Вобщем не стоит юзать имена функций напрямую в экзекуте и вообще таймеры лучше

0
19
7 лет назад
0
Похожие вопросы:

ответ
оказывается, во втором триггере я использовал ту же переменную индекса, что и в первом. Melissa и naxim , спасибо вам =)
ответ
Всё, разобрался, вопрос снимаю)
ответ
Tapper, не ,не помогает.
Если ты конечно про
//! nocjass

//! endnocjass
В общем, такая проблема возникает только на JNGP Requiem.
ответ
Сейчас попробую integer SHV_N = 0 . Это единственное чо я смог предположить
ответ
Проблема возникает также при переносе вот этого вот в инициализацию триггера тест.
Но при этом если вместо строки вроде "12345" использовать, например, GetAbilityName('Aloc') - то все работает.
Это какой-то баг со строками?
Еще у меня почему-то происходит фантомный клик по центру карты в начале игры
Вобщем не стоит юзать имена функций напрямую в экзекуте и вообще таймеры лучше

Принятый ответ
2
20
7 лет назад
2
Либо сравнением, либо сохраняя индекс таймера в его времени(баг. Поиск а помощь). Либо используя один таймер вместо нескольких
0
20
7 лет назад
Отредактирован ssbbssc
0
Временно решил переписать систему с помощью индексатора, вешая на юнитов самодельный таймер
Тредик оставляю открытым
Diaboliko:
сохраняя индекс таймера в его времени(баг. Поиск а помощь)
читал про это давно, что само время в таймере не изменится, но как выцепить его в самом событии? отловом real оставшегося времени? смутно себе это представляю, ведь опять таки, нужно обращаться к определенному таймеру, а я не могу это сделать
или не могу думать уже в 3 ночи)
2
29
7 лет назад
Отредактирован Doc
2
struct MyTimer {
    float endTime;
    unit attachedUnit;
}

int NULL = 0;
MyTimer[8] timers;

void Update() {
    for (int i = 0; i < 8; i++) {
        if (timers[i] != NULL && timers[i].endTime <= GetGameTime()) {
            KillUnit(timers[i].attachedUnit);
            timers[i] = NULL;
        }
    }
}

void StartTimer(int whichOne, unit forWhom, float delay) {
    timers[whichOne] = MyTimer();
    timers[whichOne].endTime = GetGameTime() + delay;
    timers[whichOne].attachedUnit = forWhom;
}
Не самая сложная проблема в программировании.
0
20
7 лет назад
0
спасибо за ответы, пока что переписал на индексер
0
27
7 лет назад
Отредактирован MpW
0
Там же есть глобалка, которая отлавливает запуск функции и события "Таймер истек", называется GetExpiredTimer(). При созданий таймера засовываете его в массив, а при запуске циклом сравнивает массивы с GetExpiredTimer(), что не он ли. Таймеры обычно вызывают конкретную функцию, а событие ловит завершение конкретного таймера
Чтобы оставить комментарий, пожалуйста, войдите на сайт.