Esempio n. 1
0
  /** 比武岛旗帜抢夺 结束 */
  @Override
  public void gather(Player player, NPC npc) {

    if (ManagerPool.biWuDaoManager.getBiwudaostate() != 1) {
      /* xuliang
      MessageUtil.notify_player(player, Notifys.ERROR, ResManager.getInstance().getString("现在不是比武岛活动时间,不能对旗帜操作."));
      */
      return;
    }

    if (player.getGuildId() > 0) {
      String gname = ResManager.getInstance().getString("未知战盟");
      Map map = ManagerPool.mapManager.getMap(player);

      // npc消失
      ManagerPool.npcManager.hideNpc(npc);

      // 夺旗剩余冷却时间地图广播
      ResBiWuDaoFlagCoolDownToClientMessage cmsg = new ResBiWuDaoFlagCoolDownToClientMessage();
      cmsg.setFlagcooldown(BiWuDaoManager.BIWUDAO_FLAGCOOLDOWNMAX);
      MessageUtil.tell_map_message(map, cmsg);

      GuildTmpInfo guildTmpInfo =
          ManagerPool.guildServerManager.getGuildTmpInfo(player.getGuildId());
      if (guildTmpInfo != null) {
        gname = guildTmpInfo.getGuildname();
        npc.setName(gname);
      }

      // 设定当前占领者和冷却开始时间
      ManagerPool.biWuDaoManager.setBiwudaoguildid(player.getGuildId());
      ManagerPool.biWuDaoManager.setBiwudaoguildname(gname);
      ManagerPool.biWuDaoManager.setFlagcooldown(System.currentTimeMillis() / 1000);

      // 比武岛旗帜占领者战盟名字地图广播
      ResBiWuDaoGuildnameToClientMessage gmsg = new ResBiWuDaoGuildnameToClientMessage();
      gmsg.setGuildid(player.getGuildId());
      gmsg.setGuildname(gname);
      MessageUtil.tell_map_message(map, gmsg);

      ManagerPool.npcManager.showNpc(npc);
      // 夺旗者加军功
      int num = 10;
      if (player.getBiwudaototalrank() < BiWuDaoManager.BIWUDAO_RAMKMAX) {
        if (BiWuDaoManager.BIWUDAO_RAMKMAX - player.getBiwudaototalrank() < num) {
          num = BiWuDaoManager.BIWUDAO_RAMKMAX - player.getBiwudaototalrank();
        }
        ManagerPool.rankManager.addranknum(player, num, RankType.BIWUDAO);
        player.setBiwudaototalrank(player.getBiwudaototalrank() + num);
      } else {
        MessageUtil.notify_player(
            player, Notifys.CHAT_SYSTEM, ResManager.getInstance().getString("已到达活动可获得军功300点上限"));
      }

      ParseUtil parseUtil = new ParseUtil();
      parseUtil.setValue(
          String.format(
              ResManager.getInstance().getString("【%s】的【%s】在比武岛占领战旗获得10点军功奖励,该战盟成员获得真气、经验收益翻倍!{@}"),
              gname,
              player.getName()),
          new ParseUtil.VipParm(
              VipManager.getInstance().getVIPLevel(player), GuideType.BIWUDAO_MOVE.getValue()));
      MessageUtil.notify_All_player(
          Notifys.CHAT_BULL,
          parseUtil.toString(),
          new ArrayList<GoodsInfoRes>(),
          GuideType.BIWUDAO_MOVE.getValue());
      // player停止采集
      ManagerPool.npcManager.playerStopGather(player, true);
      ScriptsUtils.call(ScriptEnum.BIWUDAO, "setmapbuff"); // 地图所有玩家加减BUFF
      return;

    } else {
      MessageUtil.notify_player(
          player, Notifys.ERROR, ResManager.getInstance().getString("只有战盟成员才能夺旗"));
    }
    // player停止采集
    ManagerPool.npcManager.playerStopGather(player, true);
  }