Ребята как сделать так что бы когда юнит кастовал в точку абилку он подпрыгивал и приземлялся сам попробовал сделать но высота героя глючит то нормально то остантся на высоте надо что бы до половины пути поднимался а после опускался

Есть как бы формула.
Да и вообще, их можно много разных самому придумать...
Но в любом случае тебе придётся записывать ряд данных, по которым она будет выдавать тебе нужное значение. Например максимальная высота, общее время прыжка (может выводиться из дистанции и скорости), дальность прыжка (соответственно из скорости и времени), скорость (время и дистанция), далее будет что-то из разряда "текущее время" или "пройденная дистанция". И почти всё это будет таймером изменяться, и в итоге ты получишь нужную высоту.
Я например давно придумал один вариант, и до сих пор его использую - по таймеру прибавляю к высоте (height) разницу между текущим временем (time) и половиной общей длительности (timeMax/2.).
set height = height + (time - timeMax / 2.)
В итоге я получаю цепочку из последовательных прибавлений в духе... 0 + 10 = 10, 10 + 9 = 19, 19 + 8 = 27... 34... 40... 45... 49... 52... 54... 55... 55... 54... 52... 49... 45... 40... 34... 27... 19... 10... 0...
Если нарисовать примерный график по этим числам, то получается что-то в таком духе (скрин в прикрепе).
В итоге высота будет маленькая, поэтому когда я её выставляю юниту я дополнительно множу её на какое либо число, например на 50. Если будет мало/много, то просто повышаю/понижаю это цифру вручную (да, тут высота будет зависеть от времени, но... таков путь!)
call SetUnitFlyHeightBJ(my_unit, height * 50., 0.)
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
На сайте, вот тут, есть хорошая статья об этом. Там не совсем то, что вам нужно, но на базе данного примера вы сможете создать всё самостоятельно.
+
И, между прочим, старый форум ещё никто не отменял.
Барахолка:
Старая академия:
ответ
AllChosen, ты пока что не понимаешь, что делаешь.
ты должен вместо цикла с вэйтом использовать "периодичный" таймер и сдвигать координаты, но пока что советуют посмотреть примеры xgm.guru/p/wc3/spellmaker-stomp-spell-creation
есть таймер одноразовый и периодичный, это все один и то же таймер, просто запускает разные режимы. через TimerStart. Вы таймер уже создали так смотрю, теперь нужно ловить запуски таймеров

26
Есть как бы формула.
Да и вообще, их можно много разных самому придумать...
Но в любом случае тебе придётся записывать ряд данных, по которым она будет выдавать тебе нужное значение. Например максимальная высота, общее время прыжка (может выводиться из дистанции и скорости), дальность прыжка (соответственно из скорости и времени), скорость (время и дистанция), далее будет что-то из разряда "текущее время" или "пройденная дистанция". И почти всё это будет таймером изменяться, и в итоге ты получишь нужную высоту.
Я например давно придумал один вариант, и до сих пор его использую - по таймеру прибавляю к высоте (height) разницу между текущим временем (time) и половиной общей длительности (timeMax/2.).
set height = height + (time - timeMax / 2.)
В итоге я получаю цепочку из последовательных прибавлений в духе... 0 + 10 = 10, 10 + 9 = 19, 19 + 8 = 27... 34... 40... 45... 49... 52... 54... 55... 55... 54... 52... 49... 45... 40... 34... 27... 19... 10... 0...
Если нарисовать примерный график по этим числам, то получается что-то в таком духе (скрин в прикрепе).
В итоге высота будет маленькая, поэтому когда я её выставляю юниту я дополнительно множу её на какое либо число, например на 50. Если будет мало/много, то просто повышаю/понижаю это цифру вручную (да, тут высота будет зависеть от времени, но... таков путь!)
call SetUnitFlyHeightBJ(my_unit, height * 50., 0.)
Загруженные файлы
Принятый ответ
14
Extremator:
Есть как бы формула.
Да и вообще, их можно много разных самому придумать...
Но в любом случае тебе придётся записывать ряд данных, по которым она будет выдавать тебе нужное значение. Например максимальная высота, общее время прыжка (может выводиться из дистанции и скорости), дальность прыжка (соответственно из скорости и времени), скорость (время и дистанция), далее будет что-то из разряда "текущее время" или "пройденная дистанция". И почти всё это будет таймером изменяться, и в итоге ты получишь нужную высоту.
Я например давно придумал один вариант, и до сих пор его использую - по таймеру прибавляю к высоте (height) разницу между текущим временем (time) и половиной общей длительности (timeMax/2.).
set height = height + (time - timeMax / 2.)
В итоге я получаю цепочку из последовательных прибавлений в духе... 0 + 10 = 10, 10 + 9 = 19, 19 + 8 = 27... 34... 40... 45... 49... 52... 54... 55... 55... 54... 52... 49... 45... 40... 34... 27... 19... 10... 0...
Если нарисовать примерный график по этим числам, то получается что-то в таком духе (скрин в прикрепе).
В итоге высота будет маленькая, поэтому когда я её выставляю юниту я дополнительно множу её на какое либо число, например на 50. Если будет мало/много, то просто повышаю/понижаю это цифру вручную (да, тут высота будет зависеть от времени, но... таков путь!)
call SetUnitFlyHeightBJ(my_unit, height * 50., 0.)
Привет мифка! Как дела) спасибо за помощь дружище
26
Extremator:
Есть как бы формула.
rsfghd:
для этого есть формулы
Нее?)
28
Extremator, а, да? из-за картинки я даже не обратил внимание, сорян)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.