判断队伍信息

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

var

I: Integer;

P: TPlayObject;

S: String;

begin

if Player.GroupOwner <> nil then //如果存在队长

begin

S := ”;< /FONT>

for I := 0 to Player.GroupCount – 1 do //循环队伍里面的角色,Player.GroupCount为当前角色所在队伍的人数(包含当前角色)

begin

P := Player.Group[I]; //取出一个角色

if P <> nil then //如果角色不为空值

begin

if S <> ” then

S := S + ‘;’;

S := S + Format(‘职业:%d,等级:%d,名称:%s’, [P.Job, P.Level, P.Name]); //将当前角色的信息拼接到字符串

end;

end;

if S <> ” then

Npc.MessageBox(Player, S); //如果字符串不为空则弹出对话框显示

end;

end;

判断两个角色之间的距离

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

begin

if (Abs(Npc.MapX – Player.MapX) > 5) or (Abs(Npc.MapY – Player.MapY)>5) then //ABS为取绝对值函数。此处判断NPC和角色的X坐标或Y坐标距离是否大于5,怪物、NPC及玩家都有MapX和MapY属性

Npc.Say(Player, ‘你离我太远了,我看不清楚。。。’);

end;

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