call TimerStart(CreateTimer(), 0.3, false, function AfterWait(u_c))
Выдает ошибку синтаксиса, когда я пытаюсь запустить одиночный таймер, ошибку указывает на скобки, но я не понимаю какие

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

Нельзя передать переменную через таймер. Можно разве что число с плавающей запятой передать, но это сомнительно полезно. Используй глобальные переменные.
А можно передать локальную переменную на простую функцию?(вроде можно)
0
19
7 лет назад
0
Похожие вопросы:

ответ
экстрасенсы свалили на Гавайи
ответ
скачай нормальный jngp либо в настройках своего включи vjass и cjass

0
14
7 лет назад
0
Хорошо, я понял какие скобки, но у меня функция требует юнита, ну и я ввожу юнита в скобках, что я делаю не так?
0
20
7 лет назад
0
call TimerStart(CreateTimer(), 0.3, false, function AfterWait(u_c))
0
14
7 лет назад
0
Diaboliko:
call TimerStart(CreateTimer(), 0.3, false, function AfterWait(u_c))
Я чуток опередил, но все же, как мне вводить требования процедуры?
0
20
7 лет назад
0
Ты передаешь функции TimerStart аргумент в виде ссылки на блок кода, который запускается. Очевидно, что ссылка аргументов не имеет.
Используй глобалки.
0
14
7 лет назад
0
Ты передаешь функции TimerStart аргумент в виде ссылки на блок кода, который запускается. Очевидно, что ссылка аргументов не имеет.
Используй глобалки.
Можно человеческим языком?
Diaboliko:
Ты передаешь функции TimerStart аргумент в виде ссылки на блок кода, который запускается. Очевидно, что ссылка аргументов не имеет.
Используй глобалки.
Я не могу без глобалок передать объекты на таймер?
0
20
7 лет назад
0
Нельзя передать переменную через таймер. Можно разве что число с плавающей запятой передать, но это сомнительно полезно. Используй глобальные переменные.
0
14
7 лет назад
Отредактирован LainMikoroso
0
Нельзя передать переменную через таймер. Можно разве что число с плавающей запятой передать, но это сомнительно полезно. Используй глобальные переменные.
А можно передать локальную переменную на простую функцию?(вроде можно)
Принятый ответ
0
20
7 лет назад
0
LainMikoroso:
Нельзя передать переменную через таймер. Можно разве что число с плавающей запятой передать, но это сомнительно полезно. Используй глобальные переменные.
А можно передать локальную переменную на простую функцию?(вроде можно)
Да, если не забыть указать нужные типы и названия переменных при ее определении :)
0
21
7 лет назад
Отредактирован biridius
0
переменные через таймер передаются с помощью хэш-таблицы.
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
хэш-таблицу можно создать при инициализации карты. достаточно одной на все-все таймеры
0
32
7 лет назад
Отредактирован quq_CCCP
0
Обычно даже вызов каллбека (у тебя это таймер) где у функции есть аргументы заканчивается фаталом, увы но нельзя передавать аргументы в тип code
Функции типа SomFunction( SomeArg, function NextFunc) не могут передать аргументы в функцию NextFunc, в данном случае это уже тип code, code - этот тот тип данных с которым почти ничего нельзя сделать, только объявить и использовать.
Ретурн баг позволяет вызывать каллбеки с аргументами и даже устанавливать им необходимые аргументы, но это сложно и муторно, да и совсем ненужно так как есть хештаблица и глобальные переменные.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.