🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
``` unit Q2; interface uses Classes, SysUtils; procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs); implementation //判断以当前的5职业为例 procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs); var AJobFlags: array[0..4] of Boolean; //标记5个职业是否存在 I: Integer; begin //FillChar(AJobFlags, 5, #0); 将标记初始化为False,和下面的For循环结果是相同的 for I := 0 to 4 do AJobFlags[I] := False; if Player.GroupCount <> 5 then //判断队伍人数是否满足5人 Player.SendMessage('队伍必须要有5个人!') else begin for I := 0 to Player.GroupCount - 1 do //循环队伍人员 begin if Player.Group[I] <> nil then //如果人员存在 begin if AJobFlags[Player.Group[I].Job] then //如果AJobFlags中对应的职业标记已经被标记了(即职业角色已存在) begin Player.SendMessage('队伍必须是由5个不同职业的人物组成!'); Exit; //一旦发现职业存在重复就退出,不需要继续后面的循环了 end; AJobFlags[Player.Group[I].Job] := True; //将AJobFlags中对应的职业标记置为True end; end; Player.SendMessage('当前队伍由5个不同职业的人物组成!'); end; end; end. ```