Мне нужно отследить момент, когда победил кто-то из игроков в Altered Melee карте.
У меня есть специальный триггер, который ответственен за назначение игроков проигравшими. И я решил определить, победил ли кто-то, по простой формуле:
Смотрим кто из игроков не проиграл
Суммируем номера их команд
Делим полученное число на количество не проигравших игроков
Если номер команды случайного игрока совпал с полученным числом, значит команда этого игрока победила (т.к. не осталось других команд).
Но, почему-то выделенное на скрине действие не запускается после победы. Ничего не происходит. И я не могу понять где я не так что-то сделал.

WilliamBz, тогда не проще проверить, что в списке еще играющих игроков все находятся в одной тиме? И если нет - ну и ладно, не выдавать победу а ждать проигрыша кого-то еще :D
И не надо никаких формул.
`
ОЖИДАНИЕ РЕКЛАМЫ...
26
Делал недавно наработку на победившего и проигравших, можешь глянуть ту систему (да и триггеров там будет меньше). Я же правильно понял, что у тебя тоже каждый сам за себя без союзов?
Ответы (5)
8
konvan5, не, у меня союзы возможны. Это несколько всё затрудняет.
8
konvan5, с назначением побед проблем нет. У меня стандартный модификатор Melee, который сам проверяет проигравших и победивших. Но мне понадобилось отследить, если кто-то победил. Но как триггерно это сделать - хз. Вроде бы сделал, но почему-то не запускается.
26
WilliamBz, тогда не проще проверить, что в списке еще играющих игроков все находятся в одной тиме? И если нет - ну и ладно, не выдавать победу а ждать проигрыша кого-то еще :D
И не надо никаких формул.
Принятый ответ
8
konvan5, а как это сделать? Взять случайного игрока, и сравнить его тиму с тимами оставшихся? Ну можно и так. Но проблема всё равно оказалось в другом - что я рукожоп. Как обычно. Заменил игрока для убитого юнита, а потом удивлялся почему ничего не работает.
26
WilliamBz, именно так, взять случайного игрока в группе оставшихся живых и проверить со всеми, что тима одна. Максимально просто без формул.
8
Нашёл в чём косяк. На скрине видны триггеры которые отключены. Я их отключил для наглядности, чтобы вы понимали где формула. Короче там все юниты игрока меняют игрока на пассивного. И соответственно дальше в моей формуле считается уже пассивный игрок. Поэтому ничего не работало. А так всё работает.
Ответы (7)
26
WilliamBz, странные формулы у тебя.
А что если остались игрок 1 2 3 в командах 1 2 3 и ты случайно выбрал игрока 2, тогда ты проверяешь, что 2 тима == (1 + 2 + 3) / 3 = 2 что подходит под условие победы, но никак не определяет реального победителя, ибо победителя еще нет. А по твоей формуле есть.
8
konvan5, если остались 3 команды в игре, значит ещё никто не победил. Триггер будет срабатывать только если осталась одна команда.
26
WilliamBz, это ты так проверяешь, что осталось одна команда?
Загруженные файлы
26
WilliamBz, как уже писал выше, в такой формуле есть уязвимость, где не всегда ты сможешь уловить победную тиму. Как уже писал, где остаются 3 игрока с номерами тим 1 2 3, и номера просто совпадут с вычислениями и твоя система подумает что все они в одной тиме, но это не так.
Поэтому лучше использовать простую проверку, что писал выше.
8
konvan5, ок, спасибо. Вот так сделал. Норм?
Выцепляем номер команды среди не проигравших;
Проверяем на соответствие к команде;
Если какой-то из игроков не соответствует, то пропускаем оставшиеся условия.
Загруженные файлы
26
WilliamBz, да, именно так)
Хотя чисто логически для читабельности лучше проверить, что тима НЕ равно номеру, и тогда пропускаем действия, чем в ИНАЧЕ пихать :D
Чтобы оставить комментарий, пожалуйста, войдите на сайт.