Всем привет! Короче функция:
call SetUnitFlyHeight(u, GetUnitFlyHeight(u) - 20, GetUnitFlyHeight(u))
на минус значении работает плохо. Останавливается на середине. Короче я сделал полет который поднимается в воздухе каждые 0.02 секунд +50. Когда взлет достигает до 800 останавливаю и делаю обратную взлет минус. По идее герой должен был падать аккуратно вниз, но нет), останавливается по середине почему то. Да и еще через условие проверяю if GetUnitFlyHeight(u) == 0 только после удаляю ворона и устанавливаю значение SetUnitFlyHeight на 0, иначе действие на SetUnitFlyHeight(u, GetUnitFlyHeight(u) - 20, GetUnitFlyHeight(u))

Насколько я знаю полёт юнита не может быть ниже 0.10 после дергания его полёта, если в ро выставить минусовое значение - пожалуйста, но сменив высоту полёта оно собьётся. Функция работает корректно всегда, видимо ручки кривые если что-то пошло не так)
Останавливается по середине в плане высоты или горизонтального движения?
Научись пользоваться отладкой, дебаж и смотри что не так

Ах да, ещё кое-что. Ты видимо даже не знаешь как работает эта функция
Первый аргумент это юнит, второй аргумент это на какую высоту его сдвинуть, а третий это скорость изменения полёта, можешь поставить там просто 0
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
Насколько я знаю полёт юнита не может быть ниже 0.10 после дергания его полёта, если в ро выставить минусовое значение - пожалуйста, но сменив высоту полёта оно собьётся. Функция работает корректно всегда, видимо ручки кривые если что-то пошло не так)
Останавливается по середине в плане высоты или горизонтального движения?
Научись пользоваться отладкой, дебаж и смотри что не так

Ах да, ещё кое-что. Ты видимо даже не знаешь как работает эта функция
Первый аргумент это юнит, второй аргумент это на какую высоту его сдвинуть, а третий это скорость изменения полёта, можешь поставить там просто 0
Принятый ответ
14
я делал так
нужные вещи Хеш если не vJass иначе структура хотя советую структуру
GetExpiredTimer() = 0.02
if LoadReal(Hashtable,GetHandleId(u),StringHash("Height")) < Нужного значения and LoadReal(Hashtable,GetHandleId(u),StringHash("Height")) >= 0.10 then
call SetUnitFlyHeight(u, GetUnitFlyHeight(u) + 10, 0)
else
call SetUnitFlyHeight(u, GetUnitFlyHeight(u) - 10, 0)
endif
SaveReal(Hashtable,GetHandleId(u),StringHash("Height"),GetUnitFlyHeight(u))

делай условие что высота юнита ниже 0.10 а потом все отключай
28
То что вы оба делаете это не парабола, если что, а треугольник, если присутствует горизонтальная скорость

раскрыть


делай условие что высота юнита ниже 0.10 а потом все отключай
Я же сказал, после изменения высоты юнита она не может быть ниже 0.10, дебагом пользуйтесь
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.