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

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

Я так понимаю телепорт на цель, тогда всё просто GetSpellAbilityTarget().
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
26
5 лет назад
0
В DotA ведь такой же телепорт?
По идее нужна способность, которая кастуется какое-то время, необязательно Канал, например, Огненный столб. Если направил свой Огненный столб в то место, где нет юнитов, то отменить дальнейшее выполнение, если рядом юнит, то наложить на ближайшего эффект телепорта, одновременно запускается другой триггер. Другой триггер будет проверять, не умер ли юнит-цель или кастер и не бросил ли он кастовать, если да, то убрать эффект и прекратить дальнейшее выполнение. Ну и при срабатывании Огненного столба делать триггерное мгновенное перемешение.
0
28
5 лет назад
0
Я так понимаю телепорт на цель, тогда всё просто GetSpellAbilityTarget().
Принятый ответ
0
5
5 лет назад
Отредактирован pusha1999
0
В DotA ведь такой же телепорт?
По идее нужна способность, которая кастуется какое-то время, необязательно Канал, например, Огненный столб. Если направил свой Огненный столб в то место, где нет юнитов, то отменить дальнейшее выполнение, если рядом юнит, то наложить на ближайшего эффект телепорта, одновременно запускается другой триггер. Другой триггер будет проверять, не умер ли юнит-цель или кастер и не бросил ли он кастовать, если да, то убрать эффект и прекратить дальнейшее выполнение. Ну и при срабатывании Огненного столба делать триггерное мгновенное перемешение.
PT153:
Я так понимаю телепорт на цель, тогда всё просто GetSpellAbilityTarget().
нет нет и нет...
мне нужно использовать стандартный телепорт в предмете посох телепортации. Если цель это юнит, то проблем нету отследить, а вот если ты кастуешь телепорт на точку, то он ищет ближайшего юнита подходящего под цели. Вот этого юнита то и надо отследить. Это стандартная способность. в этом то и проблема. Мне это нужно, потомучто канал не останавливает временную шкалу например у демон хантера в морфе или аватар пока телепортируешься, а телепорт останавливает на время...+ юниты бегут к точке и тоже останавливаются после телепорта на них, а нужно сделать чтобы они продолжали приказ к точке...сделать это не проблема, если юнит цель, а вот если юнит ищется при касте на точку, то это проблема))
P.S. я не знаю какой телепорт в доте, я в нее не играю.
0
28
5 лет назад
Отредактирован PT153
0
Вот этого юнита то и надо отследить.
Понял, но пробовал GetSpellAbilityTarget()? Вполне возможно, что выбранный юнит всё же записывается, не смотря на то, что каст в точку. Главное смотреть в триггере с событиями на начало или эффект способности. В событиях на конец каста юнит не записывается.
0
5
5 лет назад
0
PT153:
Вот этого юнита то и надо отследить.
Понял, но пробовал GetSpellAbilityTarget()? Вполне возможно, что выбранный юнит всё же записывается, не смотря на то, что каст в точку. Главное смотреть в триггере с событиями на начало или эффект способности. В событиях на конец каста юнит не записывается.
это я знаю...не отлавливается...в этом и проблема...так же пробовал с приказами найти...нет результата. просто может юниту дается какаято скрытая способность по которой его можно отловить? если знает кто, может сказал бы
0
26
5 лет назад
0
pusha1999, по идее таймер перевоплощения останавливает пауза. Или ты смог остановить таймер с помощью телепортации у движущегося юнита?
0
29
5 лет назад
0
А в чём проблема перепиcать телепорт на jass?
0
5
5 лет назад
Отредактирован pusha1999
0
8gabriel8:
pusha1999, по идее таймер перевоплощения останавливает пауза. Или ты смог остановить таймер с помощью телепортации у движущегося юнита?
если я запаузю юнита который телепортируется, то я не смогу отменить телепортацию никак пока он не перенесется))) а это не имеет смысла. так таймер останавливается не у движующегося юнита а у кастера при использовании стандартного телепорта. и это хорошо. но мне нужно отловить цель телепортации которую нашла способность если изначально это была точка. Понимаешь?)
NazarPunk:
А в чём проблема перепиcать телепорт на jass?
проблема как раз таки в том что никак не остановить таймер морфа того же к примеру, или алхимика где используется тот же морф.
0
21
5 лет назад
0
то способность ищет ближаайшего юнита подходящего под цели и телепортируется на него...
(SpellTargetX, SpellTargetY) + поиск ближайшего юнита к точке каста?
Может, я что-то позабыл, но я не вижу никаких проблем.
0
5
5 лет назад
0
Raised:
то способность ищет ближаайшего юнита подходящего под цели и телепортируется на него...
(SpellTargetX, SpellTargetY) + поиск ближайшего юнита к точке каста?
Может, я что-то позабыл, но я не вижу никаких проблем.
а если он найдет не того юнита?)) я так пробовал тоже...бывали ошибки в поиске.
0
26
5 лет назад
0
pusha1999, цель телепортации словно паузится, сало накладывается на все приказы, то есть можно это проверять. Правда, способ не очень хороший, так как рядом могут быть юниты под другим салом.
Ты точно ближнего юнита к точке каста искал, а не случайного?
0
5
5 лет назад
0
8gabriel8:
pusha1999, цель телепортации словно паузится, сало накладывается на все приказы, то есть можно это проверять. Правда, способ не очень хороший, так как рядом могут быть юниты под другим салом.
Ты точно ближнего юнита к точке каста искал, а не случайного?
так а как его найти то?)) какие условия для определения этого юнита надо ставить? я это и пытаюсь узнать. какойто приказ отдается юниту при телепортации на него или какойто тип присваивается? по каким критериям его найти?
пробовал даже через отдачу приказов и проверки их выполнения...но это както бредово по моему)
1
26
5 лет назад
1
пробовал даже через отдачу приказов и проверки их выполнения...но это както бредово по моему)
Это как раз проверка на сало, но может сработать на юнита под станом.
Выводить надо текущий приказ юнита, чтобы проверить приказ. Например, делаешь событие Игрок cinematic skipped (нажатие Esc), действие Игра вывести на экран текст (самый первый пункт категории Игра), convert Order to String (current order of unit). Телепортируйся на этого юнита и жми Esc, чтобы увидеть приказ.
А чтобы ближнего найти, нужно 2 переменные - реальная и юнит. Выбираешь в радиусе всех юнитов от точки применения телепортации, если их больше одного, и сравниваешь расстояние от точки до юнита со значением реальной переменной, если оно меньше, то записываешь юнита в переменную юнит, в конце останется ближайший юнит.
И ещё можешь попроверять на тип юнита в boolean comparsion, вдруг он наземным перестаёт быть, например.
1
27
5 лет назад
Отредактирован MpW
1
pusha1999, вот карта там телепорт, ищет ратушу. выглядит красиво, жалко не пригодилось. можно слегка переделать
так а как ближнего найти то?))
у тебя должна быть переменная с типом "реальное число" и циклом перебирай всех
код
set d = расстояние между точкой и выбранным юнитом
set Dmin = d <= эта переменная запоминалка, с чем сравнивать будешь. при старте не забывай записывать новое значение. Если тебе надо было макс число найти (короч наоборот), то переменную Dmax = 0 надо нулить
**for group, цикл (перебирает каждого юнита в группе):**
set d = расстояние между точкой и выбранным юнитом
if Dmin > d then
	set Dmin = d
endif
конец циклу
есть еще наработка там при автопродаже ищет ближний магазин. а при подборе ищет ближайщие итемы. вся суть в этом в наработке
еще здесь само начало, когда еще нубом был. на гуи
0
21
5 лет назад
Отредактирован Raised
0
pusha1999, хочешь сказать что с соответствующими проверками (флаги + расстояние от точки каста), ближайший юнит найденный триггером не равняется ближайшему юниту, которого находит спелл? Ты точно умеешь определять ближайшего юнита?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.