Добавлен
Можно ли через эту функцию вводить аргументы для используемой функции?
function Example takes integer i returns nothing
...
endfunction
call ForGroup(g, function Example(11))
Я пытаюсь использовать что-то вроде этого, но выдает ошибку, действительно ли нельзя вводить аргументы через ForGroup?Если нет, то я бы хотел альтернативу ForGroup, чтобы я также использовал ее для определенной группы юнитов, но уже с аргументами

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

нельзя, используй глобальные переменные для передачи аргументов

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
20
7 лет назад
0
нельзя, используй глобальные переменные для передачи аргументов
Принятый ответ
0
21
7 лет назад
0
Функция, которую ты вызываешь в ForGroup должна быть void (Не принимать и не возвращать аргументов). Иначе выдаст ошибку.
function sOmefunc takes nothing returns nothing
endfunction
Вообще, ForGroup рассчитан для произведения мгновенных манипуляций.
0
22
7 лет назад
0
Лучше используй цикл для обработки группы юнитов.
2
32
7 лет назад
2
Bornikkeny:
Лучше используй цикл для обработки группы юнитов.
Не лучше, лимит операций в который врезалесь не раз такие картоделы, так что лучше не надо, если вы не будите 100% уверены что в групу не попадет слишком много юнитов, да и действия будут примитивными (нанести 100 урона).
Насколько помню мемхак позволяет прередавать аргументы в каллбеки, но это походу не быстро да и не обязательно (используется в основном для работы с памятью) в спеллах, тупо передаем аргументы глобалками, или функциями типа GetTriggerUnit(), GetExpiredTimer() (forgroup наследует параметры потока, т.е кто был GetTriggerUnit() и прчее, но не должно быть вейтов) и так далее.
0
22
7 лет назад
0
quq_CCCP, ну это уже в тонкости углубляешься.
4
29
7 лет назад
4
Можно цикл, можно и глобалки. В сжассе foreach циклом обрабатывает, все ок. Передавая через глобалки ничего плохого не случится, действия все равно в одном потоке.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.