- 注册时间
- 2022-10-18
- 最后登录
- 2023-2-7
- 阅读权限
- 150
- 积分
- 14665
- 精华
- 0
- 帖子
- 4813
 
|
发表于 2023-1-24 12:53:26
|显示全部楼层
判断队伍信息
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; |
|