如何创建一个副本地图

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

var

  AMap: TEnvirnoment;   

  I: Integer;

begin

  AMap:= Gamelib.CreateDuplicateMap(‘Dota对战’, 300); //创建一个Dota副本,副本持续时间为300秒

  if AMap <> nil then //如果创建成功,则不为nil

  begin

    AMap.RunMon := False; //设置地图为不允许穿过怪物的模式

    for I := 0 to Player.GroupCount – 1 do //循环当前玩家所在的队伍

      if Player.Group[I] <> nil then

      begin

        Player.Group[I].MapMoveEx(AMap, 100, 100); //将队员传送到副本的指定坐标

        Player.SendCountDownMessage(‘离副本关闭还有{$Time:300$}’, 0); //向队员发送一个倒计时信息

      end;

  end

  else

    Npc.MessageBox(Player, ‘副本创建失败!!’);

end;

注:副本地图不是预生成的,而是调用脚本后才开始创建的,没有做数量上的限制,实际应用中则最好根据副本配置情况限制副本同一时间最大允许数量

副本的持续时间不得低于1分钟

如何删除一个副本地图

unit Q2;

inte**ce

  uses Classes, SysUtils;

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

implementation

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

begin

  if Player.Map.Duplicate then //如果玩家当前处于副本地图中

    Gamelib.CloseDuplicateMap(Player.Map.Name); //关闭副本,人物都回城,副本地图怪物清理掉

end;

end.

 

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