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

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

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

Кстати, цвет курсора будет становится красным над враждебным юнитом в таком случае, если все твои юниты принадлежат не тебе, а союзнику, которым можешь управлять.
Поясни, что вообще это должно быть? Просто карта, где можешь нанимать себе юнитов, либо какая-то сюжетная карта, где управляешь лишь героем, а все обычные юниты просто стоят, как декорации?
0
14
6 лет назад
Отредактирован Fly123
0
8gabriel8, Короче, вот такая тема: есть Враг. Враг для всех. Злодейский клан. Он враждует со всеми, но речь не о нём. Есть игрок - красный клан.(может быть, в будующем получется сделать мультиплеер). И есть союзный клан - типо как сторона торговцев. Так вот, надо сделать так, что бы если игрок обнаглел и решил напасть на торговца, то торгаш становился враждебным. Но фишка в том, что каждый торговец как бы сам за себя. Если бы в игре можно было ставить 100500 кланов, то каждому сделал бы отдельный, а так, что бы слоты не занимать, вот думаю как сделать манипуляцию выше. Рпг-карта в стиле Dark Solus (насколько это, конечно возможно)
0
26
6 лет назад
0
Fly123, в таком случае обязательно ли, чтобы все юниты твоего клана не считали атакованного торговца врагом, если один на него нападёт? Всё-таки одноклановцы, должны быть все, как один, если один повздорил с торгашом, то торговец враг всему клану.
0
14
6 лет назад
0
8gabriel8, Торговец агрится только на того, кто на него напал. Если есть три клана,допустим - 1 клан (торговец) два других это два разных клана игроков союзников. Если клан 2 атакует торговца, то торговец становится врагом только к клану 2, но не к клану три. При этом третий клан может продолжать покупать предметы у торговца.
0
23
6 лет назад
0
есть такой валяет в хайве
игрок все 1 но между рассы врагами можете по своему настроить
0
26
6 лет назад
0
Fly123, ну тут просто надо менять владельца торговца, мог бы сделать пример вечером, как приду домой, только какое точно у тебя количество игроков, а то сначала говорил, что у тебя есть общий враг, игрок и клан торговцев, а теперь два союзных клана и торговцы. А пример с хайва не очень подходит, так как внутри одного клана вряд ли удастся создать торговлю с одним торговцем и одновременный запрет торговли с другим.
0
14
6 лет назад
0
8gabriel8, один игрок пусть будет. Я посмотрю, как ты сделал, и потом постораюсь доделать сам, если будет мультиплеер.
0
26
6 лет назад
0
Вот так для двух игроков выглядит:
По идее требуются для двух простых игроков целых четыре торговых игрока, для трёх уже восемь, для четырёх соответственно шестнадцать, то есть мультиплеер из четырёх игроков возможен лишь на новых патчах, больше четырёх либо невозможен, либо придётся хитро как-то подстраиваться, например, делая невозможным присутствие рядом с торговцем больше двух игроков одновременно, либо одновременное присутствие игроков у трёх торговцев.
Загруженные файлы
0
14
6 лет назад
0
8gabriel8, Бээлин, тогда не канает, ты прости уж. Если только костылями то не годится... Придётся значит сделать по стандартному - агрить весь клан торговца вместе с другими НПС. Только вот условия в триггере для этого я так и не узнал.
0
23
6 лет назад
0
Fly123, я выше выложил 1 игрок против 4 то есть все твои игроки протв друга
0
26
6 лет назад
0
pro100master, так там же война внутри 1 игрока, а надо запретить торговлю атаковавшего юнита с атакованным, но при этом у других торговля с атакованным сохраняется, и неатакованные могут торговать с атаковавшим.
А ещё надо отмечать атакованного красным курсором.
0
20
6 лет назад
0
вообще можно запилить триггерную реализацию и тупо окрашивать юнита в красный цвет для сагрившего игрока. Достаточно понятная индикация.
0
26
6 лет назад
0
Diaboliko, как это подразумеваешь сделать? Предлагал ему аналогичный вариант с по разному враждебными торговцами, но он ему не подошёл.
Через GetLocalPlayer менять модель на такую же без способности магазина?
0
20
6 лет назад
0
уже описывал тащемта
0
26
6 лет назад
0
Diaboliko, но там ведь просто агр без запрета на торговлю.
0
20
6 лет назад
0
в числе первых сообщений автора он утверждал что с этой проблемой придумал как разобраться.
0
7
6 лет назад
0
Три параллельных массива: массив торговцев, ректов и групп. Каждому торговцу соответствует рект, то есть область, в которой он торгует, и группа, назовем ее черный список, - юниты, на которых торговец агрится. Четвертый клан, агрессивный красному игроку.
Юнит входит в область торговца, если юнит в черном списке, торговец становится четвертым кланом.
Вошедший юнит из черного списка покидает область, торговец снова становится торговцем.
В итоге: если к торговцу зайдет юнит красного, вне черного списка, торговец будет продавать предметы. Если зайдет юнит, до этого атаковавший его, торговец сагрится. Если менять владельца не меняя цвет игрока, то в игре будет выглядеть, будто четвертого клана и нет вовсе. Единственное, если к торговцу зайдут два юнита, один в черном списке, другой нет, торговец все равно сагрится. Но, ИМХО, это даже хорошо, потому что логично. Какой смысл торговцу работать с человеком, который пришел вместе с тем, кто пытался его убить. Чтобы не было абуза, можно при входе "черного" юнита дать торговцу приказ атаковать его.
Принятый ответ
0
24
6 лет назад
Отредактирован Melissa
0
Добавь пехотинцу классификацию работник, потом триггерно заменяй пехотинца на "неработника"-пехотинца (копию юнита в редакторе объектов с теми же способностями)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.