function HardLine takes unit A returns real real AC real AM real AD real KB real Kx real Ky real DO real BO real x = GetUnitX(A) real y = GetUnitY(A) real x1 = GetRectMaxX(gg_rct_GameZone) real x2 = GetRectMinX(gg_rct_GameZone) real y1 = GetRectMaxY(gg_rct_GameZone) real y2 = GetRectMinY(gg_rct_GameZone) real a = Atan2( -y, -x) if y > y1 then BO = y1 DO = y AM = DO - BO AD = SR(x, y, y, 0) Kx = BO * Cos(a) Ky = BO * Sin(a) KB = SR(Kx, Ky, y1, 0) elseif x > x1 BO = x1 DO = x AM = DO - BO AD = SR(x, y, 0, x) Kx = BO * Cos(a) Ky = BO * Sin(a) KB = SR(Kx, Ky, 0, x1) elseif y < y2 BO = y2 DO = y AM = DO - BO AD = SR(x, y, y2, 0) Kx = BO * Cos(a) Ky = BO * Sin(a) KB = SR(Kx, Ky, y2, 0) elseif x < x2 BO = x2 DO = x AM = DO - BO AD = SR(x, y, 0, x2) Kx = BO * Cos(a) Ky = BO * Sin(a) KB = SR(Kx, Ky, 0, x2) endif
AC = SquareRoot(AM * AM + AD - SquareRoot((KB * DO / BO) * (KB * DO / BO) - AM * AM)) return AC endfunction
Вопрос , прежде чем читать это наверняка вопрос "Почему сюда?" , насколько я знаю Wolfkil3 любит геометрию , тогда вопрос таков : Я делаю Grand Chariot Джерара и не могу установить все верно , то-есть если я юзаю его на ~270 градусов ( поворот кастера таков ) то все выходит правильно , юзаю ~90 градусов то выходит наоборот , не могу толком настроить , на молнии я забил т.к. какой-то баг ... Так вот вернусь к сути вопроса , как мне составить верную формулу если например я создаю 1ного из юнитов так : Боевая ед. создать юнит через угол поворота - Создать его со смещением ( X = -200 Y = 0 ) по отношению угла поворота Применяющего , вышла полная шняга как я описал выше , я по-пробывал изменить формулу таким образом Боевая ед. создать юнит через угол поворота - Создать его со смещением ( X = -200 Y =180-угол поворота кастера ) сейчас я понял что это еще глупее , так вот все тот-же вопрос как составить правильно формулу на Триггерах???? Только если не сложно как можно больше понятнее .... Надеюсь получу ответ ...