Есть триггер, срабатывающий на событие issued_target_order, нужно получить текущий статус выполнения приказа юнитом, к примеру, если работнику приказать чинить здание, находящееся на расстоянии, он сначала будет бежать к нему, и только находясь на необходимом расстоянии начнет чинить, при этом всё это время его приказом будет "repair". Есть ли способ как-то это отследить?

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

Вопрос закрыт, нашел решение: проверять координаты работника в соответствии с картой путей здания.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
8
1 год назад
0
МрачныйВорон, вся проблема в том, что у работника propWin=0, соответственно он физически не перемещается, а только пытается, и отследить нужно именно repair в зоне досягаемости; просто сравнивать расстояние не получится, так как здания имеют не квадратную карту путей, думал хоть через выполнение приказа получится...
0
27
1 год назад
Отредактирован MpW
0
сравнивай не расстояние, а изменение координат x,y. Запиши в глобалку при получении приказа udg_x=0,udg_y=0
период тамером чекай изменение
x=GetUnitX(u)
y=GetUnitY(u)
if x != udg_x or y != udg_y then
udg_x=x,udg_y=y
[[//юнит двигается]]
else
pause timer
[[//юнит остановился]]
end
0
8
1 год назад
0
МрачныйВорон, юнит вообще не перемещается, как будто у него скорость передвижения 0
0
32
1 год назад
0
Ну вот, тут код без сжатия имен, и все имена функуций и переменных на месте, отлично подъходит для изучения, эта версия доты без правки вряд-ли взлетит на 1.26а, но оно и не нужно, открываем и изучаем ИИ код, как проверяется может ли кастануть скилл юнит, и кастует ли он его в данный момент.
Загруженные файлы
0
27
1 год назад
Отредактирован MpW
0
Poma, зачем ты ему поставил propWin=0, поэтому и не двигается. Плохо объясняешь, товарищ
0
8
1 год назад
Отредактирован goodlyhero
0
Если ты хочешь, чтобы ремонтник не перемещался, но чинил - запрети ему бегать. Тогда он будет пытаться чинить только то, до чего дотягивается. И не будет пытаться бежать и чинить то, до чего не дотягивается.
0
8
1 год назад
0
МрачныйВорон, goodlyhero, если бы всё было так просто, я бы не задавал таких вопросов; возможность именно чинить или атаковать здание определяется его картой путей, если юнит стоит около розового пикселя карты путей, он может это делать, а авто ремонт или атака срабатывает на расстоянии обоих физических размеров + дистанция самого ремонта (или атаки). В карте некоторые здания имеют не квадратную карту путей.
0
8
1 год назад
0
Вопрос закрыт, нашел решение: проверять координаты работника в соответствии с картой путей здания.
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.