Добавлен LainMikoroso
call TimerStart(CreateTimer(), 0.3, false, function AfterWait(u_c))
Выдает ошибку синтаксиса, когда я пытаюсь запустить одиночный таймер, ошибку указывает на скобки, но я не понимаю какие
Выдает ошибку синтаксиса, когда я пытаюсь запустить одиночный таймер, ошибку указывает на скобки, но я не понимаю какие
Принятый ответ
Нельзя передать переменную через таймер. Можно разве что число с плавающей запятой передать, но это сомнительно полезно. Используй глобальные переменные.
А можно передать локальную переменную на простую функцию?(вроде можно)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Используй глобалки.
Diaboliko:
Отредактирован LainMikoroso
Отредактирован biridius
GetHandleId( таймер ) - дает число для этого таймера, и на него ты можешь сохранять нужные переменные:
call SaveUnitHandle(hash, GetHandleId(tm), 1212, u_c) - сохраняет юнита, 1212 число должно быть разным для разных переменных
local timer tm=GetExpiredTimer()
local unit u_c = LoadUnitHandle(hash, GetHandleId(tm), 1212) загружает юнита
call FlushChildHashtable(hash, GetHandleId(tm)) очищает данные по этому таймеру из таблицы
call DestroyTimer(tm) убить ненужный уже таймер
set tm=null
... действия с u_c
set u_c=null
endfunction
Отредактирован quq_CCCP
Функции типа SomFunction( SomeArg, function NextFunc) не могут передать аргументы в функцию NextFunc, в данном случае это уже тип code, code - этот тот тип данных с которым почти ничего нельзя сделать, только объявить и использовать.
Ретурн баг позволяет вызывать каллбеки с аргументами и даже устанавливать им необходимые аргументы, но это сложно и муторно, да и совсем ненужно так как есть хештаблица и глобальные переменные.