Sync with L2jServer HighFive Feb 15th 2015.

This commit is contained in:
mobius
2015-02-15 23:48:35 +00:00
parent f2d6aedabe
commit 06c765ea63
45 changed files with 474 additions and 843 deletions

View File

@ -36,7 +36,6 @@ import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.data.xml.impl.DoorData;
import com.l2jserver.gameserver.data.xml.impl.NpcData;
import com.l2jserver.gameserver.datatables.SpawnTable;
import com.l2jserver.gameserver.instancemanager.tasks.FourSepulchersChangeAttackTimeTask;
import com.l2jserver.gameserver.instancemanager.tasks.FourSepulchersChangeCoolDownTimeTask;
@ -48,7 +47,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2SepulcherMonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2SepulcherNpcInstance;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
@ -276,25 +274,14 @@ public final class FourSepulchersManager
{
_managers = new ArrayList<>();
int i = 31921;
for (L2Spawn spawnDat; i <= 31924; i++)
for (int npcId = 31921; npcId <= 31924; npcId++)
{
if ((i < 31921) || (i > 31924))
{
continue;
}
L2NpcTemplate template1 = NpcData.getInstance().getTemplate(i);
if (template1 == null)
{
continue;
}
try
{
spawnDat = new L2Spawn(template1);
final L2Spawn spawnDat = new L2Spawn(npcId);
spawnDat.setAmount(1);
spawnDat.setRespawnDelay(60);
switch (i)
switch (npcId)
{
case 31921: // conquerors
spawnDat.setX(181061);
@ -427,29 +414,18 @@ public final class FourSepulchersManager
ps.setInt(1, 0);
try (ResultSet rs = ps.executeQuery())
{
L2Spawn spawnDat;
L2NpcTemplate template1;
while (rs.next())
{
template1 = NpcData.getInstance().getTemplate(rs.getInt("npc_templateid"));
if (template1 != null)
{
spawnDat = new L2Spawn(template1);
spawnDat.setAmount(rs.getInt("count"));
spawnDat.setX(rs.getInt("locx"));
spawnDat.setY(rs.getInt("locy"));
spawnDat.setZ(rs.getInt("locz"));
spawnDat.setHeading(rs.getInt("heading"));
spawnDat.setRespawnDelay(rs.getInt("respawn_delay"));
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
int keyNpcId = rs.getInt("key_npc_id");
_mysteriousBoxSpawns.put(keyNpcId, spawnDat);
}
else
{
_log.warning("FourSepulchersManager.LoadMysteriousBox: Data missing in NPC table for ID: " + rs.getInt("npc_templateid") + ".");
}
final L2Spawn spawnDat = new L2Spawn(rs.getInt("npc_templateid"));
spawnDat.setAmount(rs.getInt("count"));
spawnDat.setX(rs.getInt("locx"));
spawnDat.setY(rs.getInt("locy"));
spawnDat.setZ(rs.getInt("locz"));
spawnDat.setHeading(rs.getInt("heading"));
spawnDat.setRespawnDelay(rs.getInt("respawn_delay"));
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
int keyNpcId = rs.getInt("key_npc_id");
_mysteriousBoxSpawns.put(keyNpcId, spawnDat);
}
}
_log.info(getClass().getSimpleName() + ": loaded " + _mysteriousBoxSpawns.size() + " Mysterious-Box spawns.");
@ -463,29 +439,19 @@ public final class FourSepulchersManager
private void initKeyBoxSpawns()
{
L2Spawn spawnDat;
L2NpcTemplate template;
for (Entry<Integer, Integer> keyNpc : _keyBoxNpc.entrySet())
{
try
{
template = NpcData.getInstance().getTemplate(keyNpc.getValue());
if (template != null)
{
spawnDat = new L2Spawn(template);
spawnDat.setAmount(1);
spawnDat.setX(0);
spawnDat.setY(0);
spawnDat.setZ(0);
spawnDat.setHeading(0);
spawnDat.setRespawnDelay(3600);
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_keyBoxSpawns.put(keyNpc.getKey(), spawnDat);
}
else
{
_log.warning("FourSepulchersManager.InitKeyBoxSpawns: Data missing in NPC table for ID: " + keyNpc.getValue() + ".");
}
final L2Spawn spawnDat = new L2Spawn(keyNpc.getValue());
spawnDat.setAmount(1);
spawnDat.setX(0);
spawnDat.setY(0);
spawnDat.setZ(0);
spawnDat.setHeading(0);
spawnDat.setRespawnDelay(3600);
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_keyBoxSpawns.put(keyNpc.getKey(), spawnDat);
}
catch (Exception e)
{
@ -506,8 +472,6 @@ public final class FourSepulchersManager
try (ResultSet rs1 = ps1.executeQuery();
PreparedStatement ps2 = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay, key_npc_id FROM four_sepulchers_spawnlist Where key_npc_id = ? and spawntype = ? ORDER BY id"))
{
L2Spawn spawnDat;
L2NpcTemplate template1;
while (rs1.next())
{
int keyNpcId = rs1.getInt("key_npc_id");
@ -519,24 +483,16 @@ public final class FourSepulchersManager
_physicalSpawns = new ArrayList<>();
while (rs2.next())
{
template1 = NpcData.getInstance().getTemplate(rs2.getInt("npc_templateid"));
if (template1 != null)
{
spawnDat = new L2Spawn(template1);
spawnDat.setAmount(rs2.getInt("count"));
spawnDat.setX(rs2.getInt("locx"));
spawnDat.setY(rs2.getInt("locy"));
spawnDat.setZ(rs2.getInt("locz"));
spawnDat.setHeading(rs2.getInt("heading"));
spawnDat.setRespawnDelay(rs2.getInt("respawn_delay"));
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_physicalSpawns.add(spawnDat);
loaded++;
}
else
{
_log.warning("FourSepulchersManager.LoadPhysicalMonsters: Data missing in NPC table for ID: " + rs2.getInt("npc_templateid") + ".");
}
final L2Spawn spawnDat = new L2Spawn(rs2.getInt("npc_templateid"));
spawnDat.setAmount(rs2.getInt("count"));
spawnDat.setX(rs2.getInt("locx"));
spawnDat.setY(rs2.getInt("locy"));
spawnDat.setZ(rs2.getInt("locz"));
spawnDat.setHeading(rs2.getInt("heading"));
spawnDat.setRespawnDelay(rs2.getInt("respawn_delay"));
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_physicalSpawns.add(spawnDat);
loaded++;
}
}
ps2.clearParameters();
@ -563,8 +519,6 @@ public final class FourSepulchersManager
try (ResultSet rs1 = ps1.executeQuery();
PreparedStatement ps2 = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay, key_npc_id FROM four_sepulchers_spawnlist WHERE key_npc_id = ? AND spawntype = ? ORDER BY id"))
{
L2Spawn spawnDat;
L2NpcTemplate template1;
while (rs1.next())
{
int keyNpcId = rs1.getInt("key_npc_id");
@ -577,24 +531,16 @@ public final class FourSepulchersManager
while (rset2.next())
{
template1 = NpcData.getInstance().getTemplate(rset2.getInt("npc_templateid"));
if (template1 != null)
{
spawnDat = new L2Spawn(template1);
spawnDat.setAmount(rset2.getInt("count"));
spawnDat.setX(rset2.getInt("locx"));
spawnDat.setY(rset2.getInt("locy"));
spawnDat.setZ(rset2.getInt("locz"));
spawnDat.setHeading(rset2.getInt("heading"));
spawnDat.setRespawnDelay(rset2.getInt("respawn_delay"));
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_magicalSpawns.add(spawnDat);
loaded++;
}
else
{
_log.warning("FourSepulchersManager.LoadMagicalMonsters: Data missing in NPC table for ID: " + rset2.getInt("npc_templateid") + ".");
}
final L2Spawn spawnDat = new L2Spawn(rset2.getInt("npc_templateid"));
spawnDat.setAmount(rset2.getInt("count"));
spawnDat.setX(rset2.getInt("locx"));
spawnDat.setY(rset2.getInt("locy"));
spawnDat.setZ(rset2.getInt("locz"));
spawnDat.setHeading(rset2.getInt("heading"));
spawnDat.setRespawnDelay(rset2.getInt("respawn_delay"));
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_magicalSpawns.add(spawnDat);
loaded++;
}
}
ps2.clearParameters();
@ -622,8 +568,6 @@ public final class FourSepulchersManager
try (ResultSet rs1 = ps1.executeQuery();
PreparedStatement ps2 = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay, key_npc_id FROM four_sepulchers_spawnlist WHERE key_npc_id = ? AND spawntype = ? ORDER BY id"))
{
L2Spawn spawnDat;
L2NpcTemplate template1;
while (rs1.next())
{
int keyNpcId = rs1.getInt("key_npc_id");
@ -638,24 +582,16 @@ public final class FourSepulchersManager
while (rset2.next())
{
template1 = NpcData.getInstance().getTemplate(rset2.getInt("npc_templateid"));
if (template1 != null)
{
spawnDat = new L2Spawn(template1);
spawnDat.setAmount(rset2.getInt("count"));
spawnDat.setX(rset2.getInt("locx"));
spawnDat.setY(rset2.getInt("locy"));
spawnDat.setZ(rset2.getInt("locz"));
spawnDat.setHeading(rset2.getInt("heading"));
spawnDat.setRespawnDelay(rset2.getInt("respawn_delay"));
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_dukeFinalSpawns.add(spawnDat);
loaded++;
}
else
{
_log.warning("FourSepulchersManager.LoadDukeMonsters: Data missing in NPC table for ID: " + rset2.getInt("npc_templateid") + ".");
}
final L2Spawn spawnDat = new L2Spawn(rset2.getInt("npc_templateid"));
spawnDat.setAmount(rset2.getInt("count"));
spawnDat.setX(rset2.getInt("locx"));
spawnDat.setY(rset2.getInt("locy"));
spawnDat.setZ(rset2.getInt("locz"));
spawnDat.setHeading(rset2.getInt("heading"));
spawnDat.setRespawnDelay(rset2.getInt("respawn_delay"));
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_dukeFinalSpawns.add(spawnDat);
loaded++;
}
}
ps2.clearParameters();
@ -683,8 +619,6 @@ public final class FourSepulchersManager
try (ResultSet rs1 = ps1.executeQuery();
PreparedStatement ps2 = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay, key_npc_id FROM four_sepulchers_spawnlist WHERE key_npc_id = ? and spawntype = ? ORDER BY id"))
{
L2Spawn spawnDat;
L2NpcTemplate template1;
while (rs1.next())
{
int keyNpcId = rs1.getInt("key_npc_id");
@ -697,24 +631,16 @@ public final class FourSepulchersManager
while (rs2.next())
{
template1 = NpcData.getInstance().getTemplate(rs2.getInt("npc_templateid"));
if (template1 != null)
{
spawnDat = new L2Spawn(template1);
spawnDat.setAmount(rs2.getInt("count"));
spawnDat.setX(rs2.getInt("locx"));
spawnDat.setY(rs2.getInt("locy"));
spawnDat.setZ(rs2.getInt("locz"));
spawnDat.setHeading(rs2.getInt("heading"));
spawnDat.setRespawnDelay(rs2.getInt("respawn_delay"));
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_emperorsGraveSpawns.add(spawnDat);
loaded++;
}
else
{
_log.warning("FourSepulchersManager.LoadEmperorsGraveMonsters: Data missing in NPC table for ID: " + rs2.getInt("npc_templateid") + ".");
}
final L2Spawn spawnDat = new L2Spawn(rs2.getInt("npc_templateid"));
spawnDat.setAmount(rs2.getInt("count"));
spawnDat.setX(rs2.getInt("locx"));
spawnDat.setY(rs2.getInt("locy"));
spawnDat.setZ(rs2.getInt("locz"));
spawnDat.setHeading(rs2.getInt("heading"));
spawnDat.setRespawnDelay(rs2.getInt("respawn_delay"));
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_emperorsGraveSpawns.add(spawnDat);
loaded++;
}
}
ps2.clearParameters();
@ -740,66 +666,43 @@ public final class FourSepulchersManager
31944
};
L2Spawn spawnDat;
L2NpcTemplate template;
_shadowSpawns.clear();
for (int i = 0; i <= 3; i++)
{
template = NpcData.getInstance().getTemplate(_shadowSpawnLoc[locNo][i][0]);
if (template != null)
try
{
try
{
spawnDat = new L2Spawn(template);
spawnDat.setAmount(1);
spawnDat.setX(_shadowSpawnLoc[locNo][i][1]);
spawnDat.setY(_shadowSpawnLoc[locNo][i][2]);
spawnDat.setZ(_shadowSpawnLoc[locNo][i][3]);
spawnDat.setHeading(_shadowSpawnLoc[locNo][i][4]);
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
int keyNpcId = gateKeeper[i];
_shadowSpawns.put(keyNpcId, spawnDat);
}
catch (Exception e)
{
_log.log(Level.SEVERE, "Error on InitLocationShadowSpawns", e);
}
final L2Spawn spawnDat = new L2Spawn(_shadowSpawnLoc[locNo][i][0]);
spawnDat.setAmount(1);
spawnDat.setX(_shadowSpawnLoc[locNo][i][1]);
spawnDat.setY(_shadowSpawnLoc[locNo][i][2]);
spawnDat.setZ(_shadowSpawnLoc[locNo][i][3]);
spawnDat.setHeading(_shadowSpawnLoc[locNo][i][4]);
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_shadowSpawns.put(gateKeeper[i], spawnDat);
}
else
catch (Exception e)
{
_log.warning("FourSepulchersManager.InitLocationShadowSpawns: Data missing in NPC table for ID: " + _shadowSpawnLoc[locNo][i][0] + ".");
_log.log(Level.SEVERE, "Error on InitLocationShadowSpawns", e);
}
}
}
protected void initExecutionerSpawns()
{
L2Spawn spawnDat;
L2NpcTemplate template;
for (int keyNpcId : _victim.keySet())
{
try
{
template = NpcData.getInstance().getTemplate(_victim.get(keyNpcId));
if (template != null)
{
spawnDat = new L2Spawn(template);
spawnDat.setAmount(1);
spawnDat.setX(0);
spawnDat.setY(0);
spawnDat.setZ(0);
spawnDat.setHeading(0);
spawnDat.setRespawnDelay(3600);
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_executionerSpawns.put(keyNpcId, spawnDat);
}
else
{
_log.warning("FourSepulchersManager.InitExecutionerSpawns: Data missing in NPC table for ID: " + _victim.get(keyNpcId) + ".");
}
final L2Spawn spawnDat = new L2Spawn(_victim.get(keyNpcId));
spawnDat.setAmount(1);
spawnDat.setX(0);
spawnDat.setY(0);
spawnDat.setZ(0);
spawnDat.setHeading(0);
spawnDat.setRespawnDelay(3600);
SpawnTable.getInstance().addNewSpawn(spawnDat, false);
_executionerSpawns.put(keyNpcId, spawnDat);
}
catch (Exception e)
{
@ -1183,7 +1086,6 @@ public final class FourSepulchersManager
List<L2Spawn> monsterList;
List<L2SepulcherMonsterInstance> mobs = new ArrayList<>();
L2Spawn keyBoxMobSpawn;
if (Rnd.get(2) == 0)
{
@ -1229,21 +1131,13 @@ public final class FourSepulchersManager
{
try
{
L2NpcTemplate template = NpcData.getInstance().getTemplate(18149);
if (template != null)
{
keyBoxMobSpawn = new L2Spawn(template);
keyBoxMobSpawn.setAmount(1);
keyBoxMobSpawn.setLocation(spawnDat.getLocation());
keyBoxMobSpawn.setRespawnDelay(3600);
SpawnTable.getInstance().addNewSpawn(keyBoxMobSpawn, false);
mob = (L2SepulcherMonsterInstance) keyBoxMobSpawn.doSpawn();
keyBoxMobSpawn.stopRespawn();
}
else
{
_log.warning("FourSepulchersManager.SpawnMonster: Data missing in NPC table for ID: 18149");
}
final L2Spawn keyBoxMobSpawn = new L2Spawn(18149);
keyBoxMobSpawn.setAmount(1);
keyBoxMobSpawn.setLocation(spawnDat.getLocation());
keyBoxMobSpawn.setRespawnDelay(3600);
SpawnTable.getInstance().addNewSpawn(keyBoxMobSpawn, false);
mob = (L2SepulcherMonsterInstance) keyBoxMobSpawn.doSpawn();
keyBoxMobSpawn.stopRespawn();
}
catch (Exception e)
{