Спелл, который будет временно удваивать любое постепенное движение юнита (обычную ходьбу, толчки чем-то типа форстаффа и т. п. будут двигать его вдвое дальше).
Будет таймер с малым периодом.
Будет запоминать X и Y юнита и возвращать их определенный период.
Будет запоминать X и Y юнита и возвращать их определенный период.
Будут такие переменные:
u5 - юнит, доставаться из хэндла
x2 - возвращенная СТАРАЯ координата юнита X из хэндла
y2 - возвращенная СТАРАЯ координата юнита Y из хэндла
local real x = GetUnitX(u5)
local real y = GetUnitY(u5)
local real x3
local real y3
x2 - возвращенная СТАРАЯ координата юнита X из хэндла
y2 - возвращенная СТАРАЯ координата юнита Y из хэндла
local real x = GetUnitX(u5)
local real y = GetUnitY(u5)
local real x3
local real y3
УДВОЕНИЕ ПОСТЕПЕННОГО СДВИЖЕНИЯ
...
УДВОЕНИЕ ПОСТЕПЕННОГО СДВИЖЕНИЯ - закрыто.
...
УДВОЕНИЕ ПОСТЕПЕННОГО СДВИЖЕНИЯ - закрыто.
Вместо ... нужен код, который бы подсчитывал дистанцию между старыми координатами юнита и новыми и, если она больше 0, но меньше 200, определял вдвое дальше от дистанции в направлении сдвига новые координаты x3 и y3 сдвигал юнита на вдвое дальше в том же направлении. x3 и y3 для этих новых координат и нужны, на них юнит и должен попасть.
Потом в любом случае текущие координаты X и Y юнита, было сдвижение или нет, будут записываться в хэндл обратно и возвращаться как x2 и y2, и все по новой до завершения действия спелла. Все остальное я там самостоятельно сделаю.
Прошу помочь с написанием кода вместо ..., все необходимые переменные приведены выше, т. к. трудности, с точками не так давно работаю.
Принятый ответ
Это как без корня?
dx = x - x2
dy = y - y2
d2 = dx * dx + dy * dy
if (d2 < 40000) {
x3 = x + dx
y3 = y + dy
}
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Clamp
Теорема_Пифагора.
Отредактирован Clamp
Отредактирован mishanka122
Отредактирован Кет