Точное название функций мог перепутать) Суть проблемы такая есть абила свыбором цели которая кастуется на область и ресает случайного героя. В этой области при помощи GetUnitsInRange ( условие которая принимает функция чуть ниже ) я добовляю в группу откуда потом беру случайного героя. Но группа остается пустой. Способность воскрешает героя только во время анимации его смерти а если он уже так сказать полежал то условие не видит его.
Есть какой-нибудь способ все таки ловить мертвых героев или что я делаю не так помоги пожалуйста.
Условие.
p.s: за синтаксис не ручаюсь так как писал в посте а не копировал с мапы
function SoulLantern takes nothing returns boolean
	return ( IsUnitType ( GetFilterUnit (), UNIT_TYPE_HERO ) and  IsUnitType ( GetFilterUnit (), UNIT_TYPE_DEAD )  )
endfunction

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

Ну как сказать, юнит является юнитом секунды 3 после смети (или сколько там установлено время смерти), потом его уже нету на карте, поэтому можно и не искать, но герои сидят в памяти пока их не удалят, в отличии от обычных юнитов, но всеравно их уже не существует в понимании движка на уровне бегающих и дерущихся юнитов.

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
7 лет назад
0
Всех героев при смерти ресаем, хайдим и паузим, потом уже делаем псевдовоскрешение.
0
15
7 лет назад
0
Ты как его воскрешаешь? Черещ Revive? Может быть он после смерти меняет координаты на другие. Если группа пуста, значит какое-то условие кривое и скорее всего второе. Попробуй проверять хп <=0.
Как вариант на крайняк. При смерти героя заносишь его в стек. Запоминаешь отдельно его координаты в паралелльном массиве. И при касте абилки пробегаешься по массиву юнитов. И делаешь выборку из тех, чьи координаты подошли.
0
12
7 лет назад
0
EnergyFrost:
Ты как его воскрешаешь? Черещ Revive? Может быть он после смерти меняет координаты на другие. Если группа пуста, значит какое-то условие кривое и скорее всего второе. Попробуй проверять хп <=0.
Как вариант на крайняк. При смерти героя заносишь его в стек. Запоминаешь отдельно его координаты в паралелльном массиве. И при касте абилки пробегаешься по массиву юнитов. И делаешь выборку из тех, чьи координаты подошли.
Так и сделал)
0
15
7 лет назад
0
EvilPenguin, как? Паралльельные массивы или Revive? Или условие поставил <=0?
0
12
7 лет назад
Отредактирован EvilPenguin
0
EnergyFrost:
EvilPenguin, как? Паралльельные массивы или Revive? Или условие поставил <=0?
У меня в мапе и так есть массив героев, а точнее массив игроков ( эт структура ) и в этой структуре указан герой которым владеет игрок ну и стата игрока. Так что я просто пробегаюсь по нему и если герой мертв и расстояние от него до точки каста < 100, то долбавляю его в группу на респ. Потом из группы выбираю рандомного и ресаю. Группа нужна на случай если несколько игроков умерло рядом. Без группы ресался герой который стоит первее по списку, а так какой никакой рандом)
Для меня до сих пор загадка почему GetUnitsInRange не видит мертвых героев. Условие вроде правильное. А ловить юнитов проверкой хп <=0 не вариант я от нее вообще отказался. Например у меня есть герой которому я постоянно даю и меняю "зеленую" силу и в итоге если он умирает то его здоровье больше нуля и он даже начинает регенится ( он мертвый при этом ) это было наглядно видно в мультиборде куда я вывожу хп. В итоге проверка на хп < 0 не даст эффекта потому что хп > 0 но герой при этом мертвый кстати если поставить мертвому юниту хп >0 то поидеи он как раз начинает ловится функцией GetUnitsInRange. Я замечал это на одном своем скиле где на месте некоторых мертвых юнитов появлялись эффекты. Так как раз для отсева живых от мертвых я юзал ( GetWidgetLife ( GetFilterUnit () ) > 0.405 )
0
21
7 лет назад
0
абила с выбором цели которая кастуется на область
Мог бы перефразировать?
0
12
7 лет назад
0
GF RaiseD:
абила с выбором цели которая кастуется на область
Мог бы перефразировать?
Способность на базе "Канала" с типом наведения "цель - точка".
0
27
7 лет назад
Отредактирован MpW
0
EvilPenguin, если действительно так не работает, не пробовал сохранять координаты при смерти героев, а потом проверить не попадают ли эти координаты в область и ресаем?
0
21
7 лет назад
0
С мертвыми героями в варе вообще странности (если кто, кстати, не знает, при массовых смертях и мб не только герой вообще может просто исчезнуть и последняя известная информация о нём опустошиться, так что всем советую на такой случай впиливать костыль пересоздания с запоминанием важнейших данных на момент смерти).
0
13
7 лет назад
0
Так что я просто пробегаюсь по нему и если герой мертв и расстояние от него до точки каста < 100, то долбавляю его в группу на респ. Потом из группы выбираю рандомного и ресаю.
Так то умершый герой не имеет координатов. При смерти героя записуешь координаты и при касте цыклом сверяешь растояние координатов.
0
12
7 лет назад
0
Не знаю но у меня GetUnitX и GetUnitY без проблем ловят координаты мертвых героев.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.