如何获取坐标上指定范围内的全部怪物

unit Q2;

inte**ce

uses Classes, SysUtils;

procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);

implementation

procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);

var

AActorList: TActorList;

AActor: TActor;

I: Integer;

begin

//取出指定范围里的对象列表

AActorList := Player.Map.GetActorListAt(Player.MapX + 1, Player.MapY, ‘白野猪'{如果不指定名称则取出的是全部对象}); //取出一个坐标上的全部白野猪列表

try

for I := 0 to AActorList.Count – 1 do //循环处理列表中的对象

begin

AActor := AActorList.Items[I];

try

//针对AActor做些处理

except

end;

end;

finally

AActorList.Free; //这个列表需要执行Free释放掉

end;

//取出以某坐标为中心范围内的怪物列表

AActorList := Player.Map.GetActorListInRange(Player.MapX, Player.MapY, 3{3格范围}, ‘白野猪'{如果不指定名称则取出的是全部对象});

try

for I := 0 to AActorList.Count – 1 do //循环处理列表中的对象

begin

AActor := AActorList.Items[I];

try

//针对AActor做些处理

except

end;

end;

finally

AActorList.Free;

end;

end;

end.

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。