判断队伍信息
procedureMain(Npc:TNormNpc;Player:TPlayObject;Args:TArgs);
var
I:Integer;
P:TPlayObject;
S:String;
begin
ifPlayer.GroupOwner<>nilthen//如果存在队长
begin
S:='';</FONT>
forI:=0toPlayer.GroupCount-1do//循环队伍里面的角色Player.GroupCount为当前角色所在队伍的人数(包含当前角色)
begin
P:=Player.Group[I];//取出一个角色
ifP<>nilthen//如果角色不为空值
begin
ifS<>''then
S:=S+';';
S:=S+Format('职业:%d,等级:%d,名称:%s'[P.JobP.LevelP.Name]);//将当前角色的信息拼接到字符串
end;
end;
ifS<>''then
Npc.MessageBox(PlayerS);//如果字符串不为空则弹出对话框显示
end;
end;
判断两个角色之间的距离
procedureMain(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;
procedureMain(Npc:TNormNpc;Player:TPlayObject;Args:TArgs);
var
I:Integer;
P:TPlayObject;
S:String;
begin
ifPlayer.GroupOwner<>nilthen//如果存在队长
begin
S:='';</FONT>
forI:=0toPlayer.GroupCount-1do//循环队伍里面的角色Player.GroupCount为当前角色所在队伍的人数(包含当前角色)
begin
P:=Player.Group[I];//取出一个角色
ifP<>nilthen//如果角色不为空值
begin
ifS<>''then
S:=S+';';
S:=S+Format('职业:%d,等级:%d,名称:%s'[P.JobP.LevelP.Name]);//将当前角色的信息拼接到字符串
end;
end;
ifS<>''then
Npc.MessageBox(PlayerS);//如果字符串不为空则弹出对话框显示
end;
end;
判断两个角色之间的距离
procedureMain(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;

