Изучив несколько статей, смог написать данный триггер.
Возможно сделать данный триггер более рациональным?

Я скорее всего обобщу ранее описанное...
naxim:
Типы юнитов, которым необходимо "Ограничить подготовку", занести в массив
что бы занести типы юнитов необходим же отдельный триггер:
а1 = товер1
а2 = товер2
и т.д.
Да, так и есть. Так потом легче будет удалять\добавлять ограничения боевых единиц у игроков.
В твоем триггере игрокам (1-9) устанавливаются ограничения как 0, ибо ты ставишь значение переменной после действий. Нужно поменять порядок. О чем толково пояснил товарищ SomeFire и снова повторил ранее написанное. как минимум уже двое за такой способ.
ssbbssc:
занести группу игроков в переменную и работать с ней
В дальнейшем, может быть, пригодится, если это группа будет использоваться помимо сия триггера.
В данном триггере (если порядок поменять) в массиве целочисленной не вижу смысла, ибо всем игрокам (1-9) дается ограничение одно и тоже равное четырем. Можно было просто вместо массива целочисленной вписать 4 и радоваться оптимизации. Тоже самое касается целочисленной i_Towers, в ней тоже мы не нуждаемся, ибо можно было вместо
Игрок(i_Towers+1)
Игрок(Число В)
Тот же результат (даже более правильный и оптимизированный). Так еще ты берешь игрока (i_Towers+1) то есть 1+1=2
Игрок(2) = синий игрок, а ты явно хотел красного игрока. В мною предложенном способе такой оплошности нет.
Тебе нужно сделать триггер инициализацию где содержится:
  1. массив типов юнитов - боевая единица которую хотим ограничить игрокам
  2. массив целочисленной - кол-во этой боевой единицы
  3. целочисленная - порядковый номер
Далее здесь же добавляем цикл.
Цикл начинаем с 0 до порядкового номера.
Сюда добавляем действия с группой игроков.
Ограничить подготовку (Массив Типа Юнита[Число B]) до (Массив Количества[Число В]) для (GetEnumPlayer())
GetEnumPlayer() - Взятый Игрок из группы игроков. Ибо не знаю как наши товарищи русские перевели сия функцию пишу ее на английском.
И усё.
`
ОЖИДАНИЕ РЕКЛАМЫ...
16
Типы юнитов, которым необходимо "Ограничить подготовку", занести в массив и сократить до 1 строки в новом цикле?
6
naxim, что бы занести типы юнитов необходим же отдельный триггер:
а1 = товер1
а2 = товер2
и т.д.
Или есть другой способ?
23
Что должен делать триггер? Сейчас он, по-моему, никому ничего не разрешает, т.к. обращается к следующим, "пустым" элементам массива.
Если где-то ещё есть аналогичные проверки, то имеет смысл сделать массив, чтобы не иметь 100500 строк с условиями, а иметь везде только пару строк на обход массива. Ибо так можно будет сделать правку только в одном месте, не надо будет вспоминать, где ты ещё башни првоеряешь. Ну и добавлять новые башни будет легче.
20
занести группу игроков в переменную и работать с ней
5
Я скорее всего обобщу ранее описанное...
naxim:
Типы юнитов, которым необходимо "Ограничить подготовку", занести в массив
что бы занести типы юнитов необходим же отдельный триггер:
а1 = товер1
а2 = товер2
и т.д.
Да, так и есть. Так потом легче будет удалять\добавлять ограничения боевых единиц у игроков.
В твоем триггере игрокам (1-9) устанавливаются ограничения как 0, ибо ты ставишь значение переменной после действий. Нужно поменять порядок. О чем толково пояснил товарищ SomeFire и снова повторил ранее написанное. как минимум уже двое за такой способ.
ssbbssc:
занести группу игроков в переменную и работать с ней
В дальнейшем, может быть, пригодится, если это группа будет использоваться помимо сия триггера.
В данном триггере (если порядок поменять) в массиве целочисленной не вижу смысла, ибо всем игрокам (1-9) дается ограничение одно и тоже равное четырем. Можно было просто вместо массива целочисленной вписать 4 и радоваться оптимизации. Тоже самое касается целочисленной i_Towers, в ней тоже мы не нуждаемся, ибо можно было вместо
Игрок(i_Towers+1)
Игрок(Число В)
Тот же результат (даже более правильный и оптимизированный). Так еще ты берешь игрока (i_Towers+1) то есть 1+1=2
Игрок(2) = синий игрок, а ты явно хотел красного игрока. В мною предложенном способе такой оплошности нет.
Тебе нужно сделать триггер инициализацию где содержится:
  1. массив типов юнитов - боевая единица которую хотим ограничить игрокам
  2. массив целочисленной - кол-во этой боевой единицы
  3. целочисленная - порядковый номер
Далее здесь же добавляем цикл.
Цикл начинаем с 0 до порядкового номера.
Сюда добавляем действия с группой игроков.
Ограничить подготовку (Массив Типа Юнита[Число B]) до (Массив Количества[Число В]) для (GetEnumPlayer())
GetEnumPlayer() - Взятый Игрок из группы игроков. Ибо не знаю как наши товарищи русские перевели сия функцию пишу ее на английском.
И усё.
Принятый ответ
20
DazzleFirst:
это пригодится в любом случае, плюс нужно еще написать кастом скрипт на дестрой группы
ибо юз группы игроков утечен
Чтобы оставить комментарий, пожалуйста, войдите на сайт.