Поясню то что мне нужно на примере:
Есть игрок красный он уничтожает ратушу игрока синего, синий ставит союз красному (насильно), а также он должен триггерно поставить союз всем другим игрокам, которых до этого момента таким же образом “Захватил” красный игрок. Пробовал сделать что-то вроде этого через группу игроков, но кажется совсем не получилось. [Готово]

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

Создай изначально массив групп игроков, каждая из которых будет содержать лишь каждого игрока в соответствии с его порядковым номером. То есть для первого Force[1], для второго Force[2] и так далее.
События и условия триггера такие же. Для определения групп, к которым принадлежат игроки, если вдруг они уже сменили свои первоначальные группы, нужно циклом проходиться по массиву групп и устанавливать целочисленные:

Цикл по А от 1 до количества_игроков
Если (Владелец (Убивающий юнит)) состоит в Force[A] равно Да,
То Overlord=A, Иначе пусто
Если (Владелец (Умирающий юнит)) состоит в Force[A] равно Да,
То Vassal=A, Иначе пусто

Потом действия с группами игроков:

Выбрать всех игроков группы Force[Overlord] и сделать действия
Player=(Выбранный игрок)
Выбрать всех игроков группы Force[Vassal] и сделать действия:
Заставить Player быть союзником (Выбранный игрок)
Заставить (Выбранный игрок) быть союзником Player

После действий внутри групп последними отдельно ставишь действия:

Добавить Force[Vassal] в Force[Overlord]
Уничтожить Force[Vassal]

Ещё надо цвет изменить Force[Vassal] на Force[Overlord], но чего-то не соображу, как оптимальнее. Если что, перед последними двумя действиями ставь Выбрать всех игроков в Force[Vassal] и сменить им цвет на (Номер игрока Overlord). Просто мы уже перебирали группу игроков, можно было бы сразу там назначать цвет, когда назначаешь союзы. Только устанавливаться цвет будет столько раз, сколько игроков в Force[Overlord], в целом конкретно этот случай на нагрузку процессора никак не влияет, потому можешь делать так, как будет удобнее.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
24
5 лет назад
0
Все почти правильно, но какой логикой вы руководствовались, когда пытались заставить что-то делать игрока с номером соответствующим кол-ву игроков в группе?
1
26
5 лет назад
Отредактирован 8gabriel8
1
Создай изначально массив групп игроков, каждая из которых будет содержать лишь каждого игрока в соответствии с его порядковым номером. То есть для первого Force[1], для второго Force[2] и так далее.
События и условия триггера такие же. Для определения групп, к которым принадлежат игроки, если вдруг они уже сменили свои первоначальные группы, нужно циклом проходиться по массиву групп и устанавливать целочисленные:

Цикл по А от 1 до количества_игроков
Если (Владелец (Убивающий юнит)) состоит в Force[A] равно Да,
То Overlord=A, Иначе пусто
Если (Владелец (Умирающий юнит)) состоит в Force[A] равно Да,
То Vassal=A, Иначе пусто

Потом действия с группами игроков:

Выбрать всех игроков группы Force[Overlord] и сделать действия
Player=(Выбранный игрок)
Выбрать всех игроков группы Force[Vassal] и сделать действия:
Заставить Player быть союзником (Выбранный игрок)
Заставить (Выбранный игрок) быть союзником Player

После действий внутри групп последними отдельно ставишь действия:

Добавить Force[Vassal] в Force[Overlord]
Уничтожить Force[Vassal]

Ещё надо цвет изменить Force[Vassal] на Force[Overlord], но чего-то не соображу, как оптимальнее. Если что, перед последними двумя действиями ставь Выбрать всех игроков в Force[Vassal] и сменить им цвет на (Номер игрока Overlord). Просто мы уже перебирали группу игроков, можно было бы сразу там назначать цвет, когда назначаешь союзы. Только устанавливаться цвет будет столько раз, сколько игроков в Force[Overlord], в целом конкретно этот случай на нагрузку процессора никак не влияет, потому можешь делать так, как будет удобнее.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.