Доброе времени суток!
Имеется моб, под контролем пустого игрока. Когда в его Asquisition Range заходит враг, моб идет его бить. Можно ли отловить это событие? Я попробовал отследить номер приказа, который он выполняет в этом момент (до того как моб дошел до врага и ударил), но
I2S(order) + " " + OrderId2String(order) выдает 0. И очень редко, при "загадочных" обстоятельствах, удается получить smart.
P.S. Переодически проверять наличие врагов в радиусе моба и триггерно отдавать приказ - хотелось бы избежать.

Есть же события на отлов обнаружения, например Юнит обнаружил врага в зоне досягаемости. В случае с конкретным мобом сгодятся и они (просто они требуют в качестве аргумента определенного юнита).
В случае со случайным или любым мобом сложнее, но есть событие Юнит атакован на отлов начала атаки.
native TriggerRegisterUnitEvent (trigger whichTrigger, unit whichUnit, unitevent whichEvent) returns event
constant unitevent EVENT_UNIT_ACQUIRED_TARGET
constant unitevent EVENT_UNIT_DETECTED
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
23
Есть же события на отлов обнаружения, например Юнит обнаружил врага в зоне досягаемости. В случае с конкретным мобом сгодятся и они (просто они требуют в качестве аргумента определенного юнита).
В случае со случайным или любым мобом сложнее, но есть событие Юнит атакован на отлов начала атаки.
native TriggerRegisterUnitEvent (trigger whichTrigger, unit whichUnit, unitevent whichEvent) returns event
constant unitevent EVENT_UNIT_ACQUIRED_TARGET
constant unitevent EVENT_UNIT_DETECTED
Принятый ответ
30
В случае со случайным или любым мобом сложнее
Не так уже и сложнее. Вешаешь в один триггер события на каждого юнита и наслаждаешься. Как собственно с отловом урона на ваниле делают.
23
nazarpunk, Ну да, наподобие этой системы. Собственно вся сложность в большом количестве событий. И ещё утечки. В этой системе события не удаляются после смерти юнита, и остаются висеть в памяти.
30
В этой системе события не удаляются после смерти юнита
Событие это часть юнита, оно удаляется вместе с юнитом.
23
nazarpunk, А как это проверить? Проверял ли кто? Событие перестанет работать после смерти - это да, а вот удалится ли? Оно ведь создаётся как отдельный handle
30
А как это проверить?
native TriggerRegisterUnitEvent takes trigger whichTrigger, unit whichUnit, unitevent whichEvent returns event
Проверить, жив ли event после разложения юнита.
Тупо посчитать хэндлы через WFE.
  • Спамим 100 юниов, считаем.
  • Добавляем их в триггер, считаем.
  • Убиваем этих юнитов, ждём разложения, считаем.
Проверял ли кто?
Вроди проверяли, но это неточно. Зато всегда есть возможность проверить самому и пополнить список Jass MythBusters.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.