Package l2p.gameserver.model

Examples of l2p.gameserver.model.Reflection


    if(player.isInParty())
    {
      // TODO возможно, лучше запретить повторный вход "вылетевших"
      if(player.getParty().isInReflection())
      {
        Reflection old_ref = ReflectionTable.getInstance().get(player.getParty().getReflection().getId());
        if(old_ref != null && worlds.containsKey(old_ref.getId()))
        {
          player.setReflection(old_ref);
          player.teleToLocation(old_ref.getTeleportLoc());
          return;
        }
      }
      for(L2Player member : player.getParty().getPartyMembers())
      {
        if(ilm.getTimeToNextEnterInstance(name, member) > 0)
        {
          player.sendPacket(new SystemMessage(SystemMessage.C1_MAY_NOT_RE_ENTER_YET).addName(member));
          return;
        }
      }
      if(!player.getParty().isLeader(player))
      {
        player.sendPacket(Msg.ONLY_A_PARTY_LEADER_CAN_TRY_TO_ENTER);
        return;
      }
      if(player.getParty().getMemberCount() > maxParty)
      {
        player.sendPacket(Msg.YOU_CANNOT_ENTER_DUE_TO_THE_PARTY_HAVING_EXCEEDED_THE_LIMIT);
        return;
      }
      for(L2Player member : player.getParty().getPartyMembers())
      {
        if(member.getLevel() < min_level || member.getLevel() > max_level)
        {
          SystemMessage sm = new SystemMessage(SystemMessage.C1S_LEVEL_REQUIREMENT_IS_NOT_SUFFICIENT_AND_CANNOT_BE_ENTERED).addName(member);
          member.sendPacket(sm);
          player.sendPacket(sm);
          return;
        }
        if(member.isCursedWeaponEquipped())
        {
          player.sendPacket(new SystemMessage(SystemMessage.C1S_QUEST_REQUIREMENT_IS_NOT_SUFFICIENT_AND_CANNOT_BE_ENTERED).addName(member));
          return;
        }
        if(!player.isInRange(member, 500))
        {
          member.sendPacket(Msg.ITS_TOO_FAR_FROM_THE_NPC_TO_WORK);
          player.sendPacket(Msg.ITS_TOO_FAR_FROM_THE_NPC_TO_WORK);
          return;
        }
      }
    }
    Reflection r = new Reflection(name);
    r.setInstancedZoneId(instancedZoneId);
    for(InstancedZone i : ils.values())
    {
      if(r.getReturnLoc() == null)
      {
        r.setReturnLoc(i.getReturnCoords());
      }
      if(r.getTeleportLoc() == null)
      {
        r.setTeleportLoc(i.getTeleportCoords());
      }
      if(i.getDoors() != null)
      {
        for(L2DoorInstance d : i.getDoors())
        {
          L2DoorInstance door = d.clone();
          r.addDoor(door);
          door.setReflection(r);
          door.spawnMe();
          if(d.isOpen())
          {
            door.openMe();
          }
        }
      }
    }
    World world = new World();
    world.rewarded = new GArray<Long>();
    world.instanceId = r.getId();
    worlds.put(r.getId(), world);
    runStartRoom(world);
    for(L2Player member : player.getParty().getPartyMembers())
    {
      if(member != player)
      {
        newQuestState(member, STARTED);
      }
      member.setReflection(r);
      member.teleToLocation(il.getTeleportCoords());
      member.setVar("backCoords", r.getReturnLoc().toXYZString());
      member.setVar(name, String.valueOf(System.currentTimeMillis()));
    }
    player.getParty().setReflection(r);
    r.setParty(player.getParty());
    r.startCollapseTimer(timelimit * 60 * 1000L);
    player.getParty().broadcastToPartyMembers(new SystemMessage(SystemMessage.THIS_DUNGEON_WILL_EXPIRE_IN_S1_MINUTES).addNumber(timelimit));
  }
View Full Code Here


    return true;
  }

  private void chkShadowColumn(World world, L2NpcInstance npc)
  {
    Reflection ref = ReflectionTable.getInstance().get(world.instanceId);
    for(long[] mob : world.ForthRoom.npclist2)
    {
      if(mob[0] == npc.getStoredId())
      {
        for(int i = 0; i <= 7; i++)
        {
          if(mob[2] == i && world.ForthRoom.counter == i)
          {
            ref.openDoor(W1 + i);
            world.ForthRoom.counter += 1;
            if(world.ForthRoom.counter == 7)
            {
              runFifthRoom(world);
            }
View Full Code Here

        }
        if (roomId < 0 || roomId > 11) {
            return;
        }
        getNpc().doDie(null);
        Reflection ref = getSelfPlayer().getReflection();
        ref.startCollapseTimer(300000);
        handleDoors(ref, roomId, AFTER_SPAWN);
        int i = 0;
        while (i < ROOM_MONSTERS[roomId].length) {
            int monsterId = ROOM_MONSTERS[roomId][i++];
            int count = ROOM_MONSTERS[roomId][i++];
            for (int j = 0; j < count; j++) {
                Location loc = new Location(ROOM_MONSTERS[roomId][i++], ROOM_MONSTERS[roomId][i++], ROOM_MONSTERS[roomId][i++]);
                Quest.addSpawnToInstance(monsterId, loc, 150, ref.getReflectionId());
            }
        }
        if (_deadMonsterCheckTask != null) {
            _deadMonsterCheckTask.cancel(true);
        }
View Full Code Here

      L2Player player = object.getPlayer();
      if(player == null || zone.getEvent() == null)
      {
        return;
      }
      Reflection r = player.getReflection();
      if(r.getInstancedZoneId() == zone.getReflectionId())
      {
        // Структура: reuse;chance1,id11,id12,id1N;chance2,id221,id22,id2N;chanceM,idM1,idM2,idMN; .....
        String[] params = zone.getEvent().split(";");
        int reuse = Integer.parseInt(params[0]); // В секундах
        long zoneReuse = getReuseMonsterTrapZone(zone.getId(), r.getId());
        if(zoneReuse != 0 && zoneReuse + reuse * 1000L > System.currentTimeMillis())
        {
          return;
        }
        setReuseMonsterTrapZone(zone.getId(), r.getId(), System.currentTimeMillis());
        int[] chances = new int[params.length - 1];
        int[][] groups = new int[params.length - 1][];
        for(int i = 1; i < params.length; i++)
        {
          // Структура: chance,id1,id2,idN
          String[] group = params[i].split(",");
          chances[i - 1] = Integer.parseInt(group[0]);
          int[] mobs = new int[group.length - 1];
          for(int j = 1; j < group.length; j++)
          {
            mobs[j - 1] = Integer.parseInt(group[j]);
          }
          groups[i - 1] = mobs;
        }
        int[] monsters = groups[choose_group(chances)];
        for(int monster : monsters)
        {
          try
          {
            L2NpcTemplate template = NpcTable.getTemplate(monster);
            if(template == null)
            {
              continue;
            }
            L2Spawn spawn = new L2Spawn(template);
            spawn.setLocation(zone.getLoc().getId());
            spawn.setHeading(-1);
            spawn.setAmount(1);
            spawn.setReflection(r.getId());
            spawn.stopRespawn();
            L2NpcInstance mob = spawn.doSpawn(true);
            if(mob != null)
            {
              ThreadPoolManager.getInstance().scheduleAi(new UnSpawnTask(mob), MONSTER_TRAP_DESPAWN_TIME, false);
View Full Code Here

    int npcId = npc.getNpcId();
    int cond = st.getCond();
    int id = st.getState();
    L2Player player = st.getPlayer();
    final World world = worlds.get(player.getReflection().getId());
    Reflection r = player.getReflection();
    if(npcId == IasonHeine)
    {
      if(!st.isCompleted() && cond < 2)
      {
        if(player.getLevel() < 79)
        {
          st.exitCurrentQuest(true);
          return "30969-00.htm";
        }
        QuestState qs = player.getQuestState("_195_SevenSignSecretRitualOfThePriests");
        if(qs == null || !qs.isCompleted())
        {
          st.exitCurrentQuest(true);
          return "noquest";
        }
        return "30969-01.htm";
      }
      else if(cond == 1)
      {
        return "30969-05.htm";
      }
      else if(cond == 2)
      {
        st.setCond(3);
        st.playSound(SOUND_MIDDLE);
        return "30969-07.htm";
      }
      else if(cond == 3)
      {
        return "30969-07a.htm";
      }
      else if(cond == 5)
      {
        return "30969-08.htm";
      }
      else if(cond == 6)
      {
        return "30969-11.htm";
      }
    }
    if(npcId == MerchantofMammon)
    {
      if(cond == 1)
      {
        return "32584-01.htm";
      }
    }
    if(npcId == PromiseofMammon)
    {
      if(cond >= 3 && cond <= 5)
      {
        enterInstance(player);
        return null;
      }
    }
    if(npcId == Leon)
    {
      if(cond >= 3)
      {
        if(r.getReturnLoc() != null)
        {
          player.teleToLocation(r.getReturnLoc(), 0);
        }
        else
        {
          player.setReflection(0);
        }
View Full Code Here

      return;
    }
    Long old = _instances.get(player.getObjectId());
    if(old != null)
    {
      Reflection old_r = ReflectionTable.getInstance().get(old);
      if(old_r != null)
      {
        player.setReflection(old_r);
        player.teleToLocation(il.getTeleportCoords());
        player.setVar("backCoords", old_r.getReturnLoc().toXYZString());
        return;
      }
    }
    Reflection r = new Reflection(il.getName());
    r.setInstancedZoneId(instancedZoneId);
    for(InstancedZone i : ils.values())
    {
      if(r.getReturnLoc() == null)
      {
        r.setReturnLoc(i.getReturnCoords());
      }
      if(r.getTeleportLoc() == null)
      {
        r.setTeleportLoc(i.getTeleportCoords());
      }
      r.FillSpawns(i.getSpawnsInfo());
      r.FillDoors(i.getDoors());
    }
    World world = new World();
    world.rooms = new GArray<Room>();
    world.instanceId = r.getId();
    world.status = 0;
    worlds.put(r.getId(), world);
    runTheSanctum(world);
    int timelimit = il.getTimelimit();
    player.setReflection(r);
    player.teleToLocation(il.getTeleportCoords());
    player.setVar("backCoords", r.getReturnLoc().toXYZString());
    r.setNotCollapseWithoutPlayers(true);
    r.startCollapseTimer(timelimit * 60 * 1000L);
    _instances.put(player.getObjectId(), r.getId());
  }
View Full Code Here

  }

  private void runTheSanctum(World world)
  {
    Room room = new Room();
    Reflection r = ReflectionTable.getInstance().get(world.instanceId);
    switch(world.status)
    {
      case 0:
        room.center = new Location(-89240, 217928, -7517, 0);
        room.npclist.put(addSpawnToInstance(27371, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27372, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27373, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27374, room.center, roomSpawnOffset, world.instanceId), false);
        world.rooms.add(room);
        break;
      case 1:
        room.center = new Location(-88600, 220264, -7517, 0);
        room.npclist.put(addSpawnToInstance(27371, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27371, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27372, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27373, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27373, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27374, room.center, roomSpawnOffset, world.instanceId), false);
        r.openDoor(17240102);
        world.rooms.add(room);
        break;
      case 2:
        room.center = new Location(-87032, 220632, -7517, 0);
        room.npclist.put(addSpawnToInstance(27371, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27371, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27372, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27372, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27373, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27373, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27374, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27374, room.center, roomSpawnOffset, world.instanceId), false);
        r.openDoor(17240104);
        world.rooms.add(room);
        break;
      case 3:
        room.center = new Location(-85352, 219224, -7517, 0);
        room.npclist.put(addSpawnToInstance(27371, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27372, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27373, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27373, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27374, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27374, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27375, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27377, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27378, room.center, roomSpawnOffset, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27379, room.center, roomSpawnOffset, world.instanceId), false);
        r.openDoor(17240106);
        world.rooms.add(room);
        break;
      case 4:
        room.center = new Location(-87448, 217608, -7517, 0);
        room.npclist.put(addSpawnToInstance(27371, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27372, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27373, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27374, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27375, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27375, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27377, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27377, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27378, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27378, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27379, room.center, roomSpawnOffset2, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27379, room.center, roomSpawnOffset2, world.instanceId), false);
        r.openDoor(17240108);
        world.rooms.add(room);
        break;
      case 5:
        room.npclist.put(addSpawnToInstance(27384, new Location(-83177, 216137, -7517, 0), 0, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27384, new Location(-83177, 217353, -7517, 0), 0, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27384, new Location(-82588, 216754, -7517, 0), 0, world.instanceId), false);
        room.npclist.put(addSpawnToInstance(27384, new Location(-83804, 216754, -7517, 0), 0, world.instanceId), false);
        world.rooms.add(room);
        r.openDoor(17240110);
        break;
    }
  }
View Full Code Here

      return;
    }
    Long old = _instances.get(player.getObjectId());
    if(old != null)
    {
      Reflection old_r = ReflectionTable.getInstance().get(old);
      if(old_r != null)
      {
        player.setReflection(old_r);
        player.teleToLocation(il.getTeleportCoords());
        player.setVar("backCoords", old_r.getReturnLoc().toXYZString());
        return;
      }
    }
    Reflection r = new Reflection(il.getName());
    r.setInstancedZoneId(instancedZoneId);
    for(InstancedZone i : ils.values())
    {
      if(r.getReturnLoc() == null)
      {
        r.setReturnLoc(i.getReturnCoords());
      }
      if(r.getTeleportLoc() == null)
      {
        r.setTeleportLoc(i.getTeleportCoords());
      }
      r.FillSpawns(i.getSpawnsInfo());
    }
    int timelimit = il.getTimelimit();
    player.setReflection(r);
    player.teleToLocation(il.getTeleportCoords());
    player.setVar("backCoords", r.getReturnLoc().toXYZString());
    player.sendPacket(new SystemMessage(SystemMessage.THIS_DUNGEON_WILL_EXPIRE_IN_S1_MINUTES).addNumber(timelimit));
    r.setNotCollapseWithoutPlayers(true);
    r.startCollapseTimer(timelimit * 60 * 1000L);
    _instances.put(player.getObjectId(), r.getId());
  }
View Full Code Here

      return;
    }
    Long old = _instances.get(player.getObjectId());
    if(old != null)
    {
      Reflection old_r = ReflectionTable.getInstance().get(old);
      if(old_r != null)
      {
        player.setReflection(old_r);
        player.teleToLocation(il.getTeleportCoords());
        player.setVar("backCoords", old_r.getReturnLoc().toXYZString());
        return;
      }
    }
    Reflection r = new Reflection(il.getName());
    r.setInstancedZoneId(instancedZoneId);
    for(InstancedZone i : ils.values())
    {
      if(r.getReturnLoc() == null)
      {
        r.setReturnLoc(i.getReturnCoords());
      }
      if(r.getTeleportLoc() == null)
      {
        r.setTeleportLoc(i.getTeleportCoords());
      }
      r.FillSpawns(i.getSpawnsInfo());
    }
    int timelimit = il.getTimelimit();
    player.setReflection(r);
    player.teleToLocation(il.getTeleportCoords());
    player.setVar("backCoords", r.getReturnLoc().toXYZString());
    player.sendPacket(new SystemMessage(SystemMessage.THIS_DUNGEON_WILL_EXPIRE_IN_S1_MINUTES).addNumber(timelimit));
    r.setNotCollapseWithoutPlayers(true);
    r.startCollapseTimer(timelimit * 60 * 1000L);
    _instances.put(player.getObjectId(), r.getId());
  }
View Full Code Here

          if(!playerParty.isLeader(player))
          {
            showChatWindow(player, 8, "a", false);
            break;
          }
          Reflection r = getReflection();
          if(r instanceof DarknessFestival)
          {
            if(((DarknessFestival) r).increaseChallenge())
            {
              showChatWindow(player, 8, "b", false);
View Full Code Here

TOP

Related Classes of l2p.gameserver.model.Reflection

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.