Добавлен
Как будет по производительнее или как будет лучше сделать для 4 игроков, 4 отдельных тригера или 1 с циклами?

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

Всегда удобно делать с циклом. Но так чтобы не было утечек.
0
19
7 лет назад
0
Похожие вопросы:

ответ
Custom script: exitwhen true
ответ
Лимит операций примерно 4 к. А у тебя тут поболее 16к.
Обойти лимит операций можно только разнеся действия в разные потоки. К примеру для через таймер.
ответ
а хотя стоп
у players_count нету начального значения
вместо
local integer players_count
local integer half_players
надо
local integer players_count = 0
local integer half_players = 0
ответ
Steal nerves:
в чем разница между ExecuteFunc и просто call
PT153, ну call просто вызываешь потоком (он не создает поток), например у тебя в ряд выставлены сверху вниз названия функции со скобочками (и внутри скобок аргументы, а если не берет никаких аргументов, то внутри скобок пусто) и через call вызывает одну за другой последовательно сверху вниз.
call название функции (аргументы)
Допустим первую верхнюю функцию вызвали, и ее обработали, потом поток берет вторую внизу функцию и обрабатывает и т.д. Но у потока есть ограничения в операциях, как только выполнится определенное количество операций, варкрафт экстренно завершает поток и даже не сообщает об этом.
call функция 1()
call функция 2()
......
call функция 999()
Тут хочу обратить внимание и на то, насколько длинный код в этой вызываемой функции. И сколько вызываемой работы потребует: всякие вычисления, бесконечные циклы и другое. Если длинный код у тебя, и кучу циклов, и сами циклы большую работу совершают, то следует разбить на участки или как-то переделать что ли, уменьшить работу цикла и др.
Можно разбить на функции и ...
  1. вызывать через call, но так делать не стоит. Поток вызывает эти функции последовательно.
  2. Нужно делать задержку (через вэйт), например в ИИ-скриптах варкрафта делают задержку, чтобы не было нагрузки. Вместо вэйта можно таймер.
  3. через ExecuteFunc, ExecuteFunc создает отдельный новый поток. информацию про ExecuteFunc скидывал выше.

0
23
7 лет назад
0
Зависит от того что в тригерах.
0
13
7 лет назад
0
Делать 4 триггера неудобно в плане навигации. Я бы воспользовался циклом. Но ты можешь показать, для начала, код.
0
11
7 лет назад
0
Всегда удобно делать с циклом. Но так чтобы не было утечек.
Принятый ответ
0
20
7 лет назад
Отредактирован biridius
0
Если там жутко огромный код (например в нем есть еще циклы), цикл может оборваться
Можно без цикла сделать один триггер и переменную, в которой хранить игрока
сначала делать все с первым игроком, затем увеличить переменную на 1 (до синего игрока) и через
триггер - run (checking conditions)
запустить его снова, и так пока он не пройдет всех нужных игроков
Чтобы оставить комментарий, пожалуйста, войдите на сайт.