Я хочу сделать героя,который начинает с очень маленькой скорости,и чем дольше он двигается не останавливаясь,тем быстрее он будет двигаться и так до предела скорости передвижения.Но если он хоть раз остановится то всё сбрасывается.Возможно ли такое вобще?И если да,то как?

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
32
7 лет назад
1
EnergyFrost, абилки сапогов не складываются, будет работать последний добавленный.
Повышать скорость придется триггерно, благо есть такие нативки, проверить что герой двигается очень просто, переодически проверять чему равные его прошлые и текущие координаты, если они не равны то герой движется, и следует повышать скорость.
0
8
7 лет назад
0
ledoed:
отлавливаешь приказ движения и гонишь его к точке с нужным ускорением(таймером) и пределом скорости и делаешь условие типо он не выйдет с таймера пока его расстояние до точки последнего приказа на передвижение не будет меньше 100-50(если скорость не больше 90)
А можете сделать скриншот?А то я не особо понял как это...
0
21
7 лет назад
0
Смотри, довольно интересный код - спелл, на 3 секунды удваивающий любое постепенное перемещение через смещение по координатам. Если немного помозговать, скорее всего его части тебе пригодятся. Функция SeizureFate должна быть действием какого-то триггера, чтобы именно этот спелл действовал; очевидно, с событием на каст спелла каким-то конкретным юнитом или юнитом вообще.
Для начала советую попробовать применить триггер, если сможешь скопировать спелл как действующий, от этого уже будешь дальше плясать.
Кэп намекает, что можно подсчитывать, запоминать, возвращать пройденную дистанцию и в зависимости от этого увеличивать и дистанцию очередного смещения по координатам; а также контролировать время действия спелла.
0
8
7 лет назад
0
ClotPh:
Смотри, довольно интересный код - спелл, на 3 секунды удваивающий любое постепенное перемещение через смещение по координатам. Если немного помозговать, скорее всего его части тебе пригодятся. Функция SeizureFate должна быть действием какого-то триггера, чтобы именно этот спелл действовал; очевидно, с событием на каст спелла каким-то конкретным юнитом или юнитом вообще.
Для начала советую попробовать применить триггер, если сможешь скопировать спелл как действующий, от этого уже будешь дальше плясать.
Кэп намекает, что можно подсчитывать, запоминать, возвращать пройденную дистанцию и в зависимости от этого увеличивать и дистанцию очередного смещения по координатам; а также контролировать время действия спелла.
Мне в этом жесть как тяжело разобраться...
0
21
7 лет назад
0
Тогда сделай много уровней абилки на ускорение. Отлавливай факт перемещения юнита и в зависимости от факта и дистанции выдавай нужный уровень абилки.
0
30
7 лет назад
0
native SetUnitMoveSpeed takes unit whichUnit, real newSpeed returns nothing

constant native GetUnitDefaultMoveSpeed takes unit whichUnit returns real
Эти две нативки тебе очень помогут в твоём начинании, как проверять, что юнит движется - уже сказали (есть ещё вариант с проверкой приказа, но он хуже).
0
17
7 лет назад
Отредактирован ledoed
0
вот вариант с проверкой приказов, открой через нормальный редактор который поддерживает cjass а нестандартный вариковский
Загруженные файлы
0
30
7 лет назад
0
ledoed, ЕМНИП, райтклик на союзного юнита отдаёт приказ "патруль", при этом юнит может стоять на месте, но приказ будет "patrol".
поэтому проверка приказа - хуже
0
17
7 лет назад
Отредактирован ledoed
0
если правильно я понял но это я утчел
if((GetOrderPointX()+GetOrderPointY())!=0){
Name[i].x=GetOrderPointX()
Name[i].y=GetOrderPointY()
}else{
Name[i].x=GetWidgetX(GetOrderTarget())
Name[i].y=GetWidgetY(GetOrderTarget())

}
так что к юнитам подбегать можно
2
18
7 лет назад
2
Загруженные файлы
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.