Вот смотрите: есть юнит (пехотинец) и есть паладин игрока красный. Как сделать так (точнее, как сформулировать условие в триггере) что бы пехотинец (и только он, не весь клан пехотинца, а только определённый юнит) становился враждебен к паладину, если последний пехотинца ударит/заденет заклинанием (и при этом пехот обозначался как враг, то есть не мог бы, скажем, продавать паладину предметы, лечить и т.к далее, то есть что бы вражда становилась взаимной). Заранее благодарю.

Три параллельных массива: массив торговцев, ректов и групп. Каждому торговцу соответствует рект, то есть область, в которой он торгует, и группа, назовем ее черный список, - юниты, на которых торговец агрится. Четвертый клан, агрессивный красному игроку.
Юнит входит в область торговца, если юнит в черном списке, торговец становится четвертым кланом.
Вошедший юнит из черного списка покидает область, торговец снова становится торговцем.
В итоге: если к торговцу зайдет юнит красного, вне черного списка, торговец будет продавать предметы. Если зайдет юнит, до этого атаковавший его, торговец сагрится. Если менять владельца не меняя цвет игрока, то в игре будет выглядеть, будто четвертого клана и нет вовсе. Единственное, если к торговцу зайдут два юнита, один в черном списке, другой нет, торговец все равно сагрится. Но, ИМХО, это даже хорошо, потому что логично. Какой смысл торговцу работать с человеком, который пришел вместе с тем, кто пытался его убить. Чтобы не было абуза, можно при входе "черного" юнита дать торговцу приказ атаковать его.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
20
Ограничить продажи можно только до множеств (), (сам игрок), (союзные игроки), (любой игрок). В пределах одного игрока такие манипуляции невозможны. Если в карте 2-3 игрока, тогда можно создать костыльный вариант с 4 игроком враждебным первому, но союзным 2 и 3; 7 враждебен 1 и 2, но дружелюбен к 3. Хотя такие сложности все-равно не нужны.
Можно, правда, сделать полностью триггерную эмуляцию, но вы вряд ли такое потянете :>
14
Diaboliko, я уже придумал как убрать продажу. Вы не могли бы подсказать как сделать их враждебными? (именно этих двух)
20
Fly123:
Diaboliko, я уже придумал как убрать продажу. Вы не могли бы подсказать как сделать их враждебными? (именно этих двух)
К вашим услугам, опять же, костыли со сменами владельца пехотинца или триггерная имплементация.
Простейшая триггерная имплементация:
юнит в радиусе N от пехотинца. Если входящий находится в группе G[X], то приказать triggeringUnit(или что там вернет пехотинца) атаковать его. При этом G - массив групп юнитов. X - индекс массива, сохраняемый в UnitUserData юнита. Не забудьте инициализировать значение G[X] через создание группы.
после успешного выстреливания события имеет смысл добавить отслеживание дистанции, на которую убежал этот пехотинец. Либо пусть преследует в пределах региона, тут уж сами решайте. Первое реализуется через таймер с проверкой расстояния между старой и новой позицией вашего пехотинца. Старую можете записывать в момент выстреливания триггера в некие переменную r[X] и r[X+4096] (X и Y координаты). 4096 т.к. массивы в вц3 всегда имеют размер в 8192 элемента.
20
Fly123:
Diaboliko, а без переменных это нельзя осуществить?
Можете агрить при приближении и деагрить при выходе из региона. Но это не является отсутствием переменных.
26
Diaboliko, простейшая триггерная имплементация не меняет цвет курсора на красный над враждебным юнитом, потому и простейшая)
Fly123, лучше и правда менять владельца, в этом нет ничего сложного, если в категории действий Игрок немного покопаться.

Кстати, цвет курсора будет становится красным над враждебным юнитом в таком случае, если все твои юниты принадлежат не тебе, а союзнику, которым можешь управлять.
Поясни, что вообще это должно быть? Просто карта, где можешь нанимать себе юнитов, либо какая-то сюжетная карта, где управляешь лишь героем, а все обычные юниты просто стоят, как декорации?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.