|
[codes=jass]
//根据中点获得最接近指定点的单位
function GetUnitOfLate takes group whichgroup, location center , real radius returns unit
local unit Enum
local real dis=0
local real x=GetLocationX(center)
local real y=GetLocationY(center)
local unit Runit
local integer i
if(whichgroup==null)then
return null
endif
//测试用的 判断单位组是不是为空
call BJDebugMsg(I2S(CountUnitsInGroup(whichgroup)))
loop
//同上
call BJDebugMsg(I2S(CountUnitsInGroup(whichgroup)))
//循环获得单位组中的第一个单位
set Enum=FirstOfGroup(whichgroup)
exitwhen Enum==null
//也是循环用的 发现他一次也没打印
call BJDebugMsg(I2S(i))
//获得当前单位与中心点的距离的自定义函数
set dis=DistanceBetweenPosition(x,y,GetUnitX(Enum),GetUnitY(Enum))
//判断当前单位与点的距离是否小于最小的与点的距离
if(dis<radius)then
/如果距离小于最短于点距离就设置他为最短距离
set radius=dis
//设置为返回单位
set Runit=Enum
//从单位组中把单位灭了
call GroupRemoveUnit(whichgroup,Runit)
endif
set i=i+1
endloop
return Runit
endfunction
[/codes]
写了一个自定义函数 获得一个与单位组中与指定点距离最近的单位 不知道怎么的没成功
开关WE 很多次了 自己也没看出什么问题 可能脑子秀逗了 单位组中明明有6个单位 他楞就是一次也不循环
现在更神奇了 i 居然冒出了300多... |
-
两个6都打印出来了
|