|
发表于 2006-8-30 16:00:35
|
显示全部楼层
实际就是选择一个大区域包含该区域
然后判断单位位置
http://bbs.uuu9.com/viewthread.php?tid=280648&highlight=
function GetArea takes real L,real r returns boolean
local real x0 = GetUnitX(GetTriggerUnit())
local real y0 = GetUnitY(GetTriggerUnit())
local real x = GetUnitX(GetEnumUnit())
local real y = GetUnitY(GetEnumUnit())
local real a = Atan2(y - y0, x - x0) - Atan2(GetLocationY(GetSpellTargetLoc()) - y0, GetLocationX(GetSpellTargetLoc()) - x0)
local real w = SquareRoot((x-x0)*(x-x0)+(y-y0)*(y-y0))
return (w*Cos(a)>0 and w*Cos(a)<L and w*Sin(a)>-r and w*Sin(a)<r)
endfunction
参数L为区域长度,r为1/2宽度
矩形的选取,U9上的贴
[ 本帖最后由 Red_Wolf 于 2006-8-30 16:02 编辑 ] |
|