Добавлен rsfghd,
не публикуется
function IsUnitBack takes unit uF, unit uWhichBack returns boolean
real r1 = bj_RADTODEG * Atan2(GetUnitY(uWhichBack) - GetUnitY(uF), GetUnitX(uWhichBack) - GetUnitX(uF)) + 360.
real r2 = GetUnitFacing(uWhichBack) + 360.
if GetUnitY(uWhichBack) < GetUnitY(uF) then
set r1 = r1 + 360.
endif
return (r1<=(r2+45.) and r1>=(r2-45.))
endfunction
Ещё одна версия от Берги
function IsPointInSector takes real x, real y, real x1, real y1, real orientation, real width, real radius returns boolean
local real lenght = SquareRoot((x-x1)*(x-x1)+(y-y1)*(y-y1))
local real angle = Acos(Cos(orientation*bj_DEGTORAD)*(x-x1)/lenght+Sin(orientation*bj_DEGTORAD)*(y-y1)/lenght )*bj_RADTODEG
return angle<=width and lenght<=radius
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован rsfghd