Есть пеший герой, которому способностью "сфинкс" дается полет.
Герой может менять высоту в разных ситуациях, но в какой то момент отображение высоты ломается.
Герой может менять высоту в разных ситуациях, но в какой то момент отображение высоты ломается.
Основной затык в том, что мне пока не удается определить где и когда начинаются проблемы.
Смерть и воскрешение героя не сбивают эффекта, при этом GetUnitHeight возвращает значения, будто герой в воздухе.
Смерть и воскрешение героя не сбивают эффекта, при этом GetUnitHeight возвращает значения, будто герой в воздухе.
Как выяснилось спускать модель не затрагивая UnitHeight
могут "корни" и они у меня используются в паре мест.
могут "корни" и они у меня используются в паре мест.
Однако, в отличие от "корней" когда происходит этот баг герой может свободно перемещаться,
так что версия с "корнями" либо отпадает, либо это какой то их очень редкий баг.
так что версия с "корнями" либо отпадает, либо это какой то их очень редкий баг.
Принятый ответ
Bergi_Bear:
Кажется я понял в чем дело.
Кажется я понял в чем дело.
Такое ощущение, что корни/сеть как то фиксируют максимальную высоту полета.
Те. если юнит до корней не поднимался в воздух или поднимался на слишком низкую высоту,
то после корней он забагуется.
Те. если юнит до корней не поднимался в воздух или поднимался на слишком низкую высоту,
то после корней он забагуется.
Лечиться подъемом юнита верх/вниз сразу после спавна.
После воскрешения нужно повторять фикс.
Как вылечить уже сломавшегося юнита пока не нашел
После воскрешения нужно повторять фикс.
Как вылечить уже сломавшегося юнита пока не нашел
код
boolean is_fix = false
u = CreateUnit(Player(0),'opeo',x,y,0) //Создан юнит
UnitAddAbility(u,'A000'); UnitRemoveAbility(u,'A000') //Добавление удаление сфинкса
//==========!!fix
if is_fix { //После восскрешения следует применить снова
SetUnitFlyHeight (u,99999,0)
SetUnitFlyHeight (u,0,0)
}
//==========!!end_fix
//==========!!BUG
SetUnitFlyHeight (u,0,0) //До корней высота должна измениться высота хотябы раз (высота должна быть меньше x в моем случае < 100, возможно зависит от высоты рельефа)
TriggerSleepAction ( 2 ) //Задержка может быть любой
DummyAbilityCastL (u,'A048',1,"entanglingroots") //Дамми каст корней
//==========!!end_BUG
//==========!!ПРОВЕРЯЕМ
TriggerSleepAction ( 3 ) //Задержка что бы корни успели кастануться
SetUnitFlyHeight(u,40,0) //Пробуем поднять юнита ()
TriggerSleepAction( 1 ) //Юнит остается на земле
Msg("GetUnitZ = "+R2S(GetUnitFlyHeight(u))) //Запрашиваем высоту - высота всегда корректная (и с багом, и без)
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Я 2 раза такое ловил, в одном я использовал сетку наездников ensnare в другом корни хранителя рощи
Отредактирован Jack-of-shadow
Кажется я понял в чем дело.
Те. если юнит до корней не поднимался в воздух или поднимался на слишком низкую высоту,
то после корней он забагуется.
После воскрешения нужно повторять фикс.
Как вылечить уже сломавшегося юнита пока не нашел
Не, смерть/воскрешение не помогают, по крайней мере с героями это не сработало. Ну в любом случае вроде как фикс страхует от подобных ситуаций, если пробрасывать его на спавне и воскрешении.