Суть:
Нужно отловить определённых юнитов, с которыми надо произвести определённые действия, если они атакуют
Сделать триггер с событием
TriggerRegisterPlayerUnitEvent(trig, Player(index), EVENT_PLAYER_UNIT_ATTACKED, null)
и там уже условием отлавливать тех кого надо
или сделать через событие
TriggerRegisterUnitEvent(trig, whichUnit, EVENT_UNIT_ATTACKED )
которое будем добавлять на каждого юнита по заданному условию в начале игры и когда юнит попадает на игровую зону?
Как лучше?

Так что лучше теперь юзать?)
Отключаемый триггер с общим событием, который включается когда есть нужные юниты и отключается когда их нет.
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
Я бы сделал через playerunit. Вдруг потом другой тип появится, сделаю там if ветку.
24
У обоих событий есть свои плюсы и минусы. Все зависит от кол-ва юнитов.
Например, если на карте очень много разных юнитов одновременно, то индивидуальные события могут начать работать быстрее, чем общее. С другой стороны, если юнитов на которых повешено индивидуальное событие слишком много, то уже этот способ начинает лагать и доставлять проблемы.
Я почти всегда выбираю TriggerRegisterPlayerUnitEvent.
21
Вдруг потом другой тип появится, сделаю там if ветку.
Что имеешь в виду под другой тип?)
У обоих событий есть свои плюсы и минусы. Все зависит от кол-ва юнитов.
Например, если на карте очень много разных юнитов одновременно, то индивидуальные события могут начать работать быстрее, чем общее. С другой стороны, если юнитов на которых повешено индивидуальное событие слишком много, то уже этот способ начинает лагать и доставлять проблемы.
Я почти всегда выбираю TriggerRegisterPlayerUnitEvent.
Слишком много это вот скока?) 500? 1000?
На карте предполагается не мало юнитов, но конкретно тех, которые попадают под условие, может быть не больше 10-20% от всего количества
Например, если на карте 500 юнитов, и только с 50-100 из них должны производиться действия, если они атаковали
24
Proshel_Doty, тестируй, сравнивай, от карты к карте по разному бывает. Если твои отслеживаемые юниты появляются и умирают часто, то, в принципе, лучше забить на индивидуальные события и делать общим.
21
prog:
Proshel_Doty, тестируй, сравнивай, от карты к карте по разному бывает. Если твои отслеживаемые юниты появляются и умирают часто, то, в принципе, лучше забить на индивидуальные события и делать общим.
Это дикий динамический рандом)
Сейчас получше обрисую ситуацию, на примере доты)) Все представляют что такое дота и какие там бывают армии из юнитов? А иногда и не бывают)
Короче
Допустим нам надо накладывать какой-то баф каждый раз, когда атакует призванный героем юнит, на этого юнита (не иллюзия) (например, паучки Бруды, волки Люкана, форжи Инвокера, подчинённые Чена, змейки Веномансера и т.д.)
Вот тебе две картины:
  1. допустим в игре все 10 игроков, у каждого из которых такой перс, который может кого-то призывать
Следовательно юнитов в разные моменты может быть довольно много, в какие-то средне, в какие-то мало или даже нет совсем, что будет редко
  1. в игре нет персонажей, которые могут призывать кого-либо
Следовательно юнитов таких на карте не будет вообще, но тем не менее у нас всё так же работает событие TriggerRegisterPlayerUnitEvent, которое по сути работает в холостую
И это всё случаи одной карты
Так что лучше теперь юзать?)
24
Так что лучше теперь юзать?)
Отключаемый триггер с общим событием, который включается когда есть нужные юниты и отключается когда их нет.
Принятый ответ
32
Если что, есть boolrexpr в событиях на всех юнитов игрока, куда пишем все критерии отбора юнитов.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.