Ждет определенное время, а после запускает какой-то триггер. В данном случае сохраняет в себе двух юнитов и интегер. Собственно, можно ли использовать подобное? Нет ли где утечек?
function InitTrig_INIT takes nothing returns nothing
    Defines()
    INIT()
    timer wait = CreateTimer()
    TimerStart(wait, 0.1, true, function waitUp)
    wait = null
endfunction


struct wait1
    unit caster
    unit target
    real time
    real count
    integer i
    boolean check
    
    static nothing new(unit caster, unit target, real time, integer i) {
        wait1 a = wait1.create()
        a.caster = caster
        a.target = target
        a.time = time
        a.check = true
        a.count = 0.00
        a.i = i
        
        caster = null
        target = null
    }
    
    nothing action() {
        if .i == 'A1QA'
            SpellAction(.caster, .target)
        endif
    }
    
    nothing delete() {
        .action()
        .caster = null
        .target = null
        .check = false
        .destroy()
    }
    
    nothing counter() {
        .count = .count + 0.1
        if .count == .time then
            .delete()
        endif
    }
endstruct

nothing waitUp() {
    wait1 a = 100
    loop
        if a.check then
            a.counter()
        endif
        exitwhen a == 1
        a = a - 1
    endloop
}

MadnezIX, смотря на какие числа ты рассчитываешь
если у тебя есть числа 0,0001 то под них стоит создавать одноразовый таймер (ибо крутить каждые 0,0001 секунды цикл от 100 до 0 очень затратно)
это к слову не замена вейту
ибо вейт предназначен немного для других вещей
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
а после запускает какой-то триггер
триггер или функцию?
7
Да, ошибочка, функцию запускает) А, вот еще, может нужно уменьшить период таймера? Полагаю, с 0.1 будет погрешность в 0.1, правильно?
28
MadnezIX, смотря на какие числа ты рассчитываешь
если у тебя есть числа 0,0001 то под них стоит создавать одноразовый таймер (ибо крутить каждые 0,0001 секунды цикл от 100 до 0 очень затратно)
это к слову не замена вейту
ибо вейт предназначен немного для других вещей
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.