diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Antharas.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Antharas.java index cf35dc74a6..36e49c4120 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Antharas.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Antharas.java @@ -958,7 +958,7 @@ public class Antharas extends Quest { if ((npc.getNpcId() == 29019) || (npc.getNpcId() == 29066) || (npc.getNpcId() == 29067) || (npc.getNpcId() == 29068)) { - npc.broadcastPacket(new PlaySound(1, "BS01_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); + npc.broadcastPacket(new PlaySound(1, "BS01_D", npc)); if (!npc.getSpawn().is_customBossInstance()) { diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Baium.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Baium.java index 57dab42b47..496dd9cecd 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Baium.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Baium.java @@ -418,7 +418,7 @@ public class Baium extends Quest @Override public String onKill(NpcInstance npc, PlayerInstance killer, boolean isPet) { - npc.broadcastPacket(new PlaySound(1, "BS01_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); + npc.broadcastPacket(new PlaySound(1, "BS01_D", npc)); if (!npc.getSpawn().is_customBossInstance()) { diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Core.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Core.java index bfb965b79c..cef628d658 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Core.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Core.java @@ -146,7 +146,7 @@ public class Core extends Quest public void spawnBoss(GrandBossInstance npc) { GrandBossManager.getInstance().addBoss(npc); - npc.broadcastPacket(new PlaySound(1, "BS01_A", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); + npc.broadcastPacket(new PlaySound(1, "BS01_A", npc)); // Spawn minions Attackable mob; Location spawnLocation; @@ -223,11 +223,10 @@ public class Core extends Quest final String name = npc.getName(); if (npcId == CORE) { - final int objId = npc.getObjectId(); - npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, objId, npc.getX(), npc.getY(), npc.getZ())); - npc.broadcastPacket(new CreatureSay(objId, 0, name, "A fatal error has occurred.")); - npc.broadcastPacket(new CreatureSay(objId, 0, name, "System is being shut down...")); - npc.broadcastPacket(new CreatureSay(objId, 0, name, "......")); + npc.broadcastPacket(new PlaySound(1, "BS02_D", npc)); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), 0, name, "A fatal error has occurred.")); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), 0, name, "System is being shut down...")); + npc.broadcastPacket(new CreatureSay(npc.getObjectId(), 0, name, "......")); _firstAttacked = false; if (!npc.getSpawn().is_customBossInstance()) diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/DrChaos.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/DrChaos.java index 17927f6211..21616edca7 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/DrChaos.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/DrChaos.java @@ -102,7 +102,7 @@ public class DrChaos extends Quest final NpcInstance golem = addSpawn(CHAOS_GOLEM, 94640, -112496, -3336, 0, false, 0); _golemSpawned = 1; startQuestTimer("6", 1000, golem, player); - player.sendPacket(new PlaySound(1, "Rm03_A", 0, 0, 0, 0, 0)); + player.sendPacket(new PlaySound(1, "Rm03_A")); } break; } diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Frintezza.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Frintezza.java index 5a84a29454..098647d169 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Frintezza.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Frintezza.java @@ -1232,7 +1232,7 @@ public class Frintezza extends Quest if (npc.isDead()) { _onMorph = 1; - _zone.broadcastPacket(new PlaySound(1, "BS01_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); + _zone.broadcastPacket(new PlaySound(1, "BS01_D", npc)); startQuestTimer("attack_stop", 0, _frintezza, null); startQuestTimer("stop_pc", 0, npc, null); diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Orfen.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Orfen.java index e84cf9ad6b..19939b39f2 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Orfen.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Orfen.java @@ -234,7 +234,7 @@ public class Orfen extends Quest { if (npc.getNpcId() == ORFEN) { - npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); + npc.broadcastPacket(new PlaySound(1, "BS02_D", npc)); if (!npc.getSpawn().is_customBossInstance()) { diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/QueenAnt.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/QueenAnt.java index f48b65c2ba..0ff7e62679 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/QueenAnt.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/QueenAnt.java @@ -150,7 +150,7 @@ public class QueenAnt extends Quest private void spawnBoss(GrandBossInstance npc) { startQuestTimer("ACTION", 10000, npc, null, true); - npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); + npc.broadcastPacket(new PlaySound(1, "BS02_D", npc)); startQuestTimer("SPAWN_ROYAL", 1000, npc, null); startQuestTimer("NURSES_SPAWN", 1000, npc, null); startQuestTimer("CHECK_MINIONS_ZONE", 30000, npc, null, true); @@ -365,7 +365,7 @@ public class QueenAnt extends Quest if (npcId == QUEEN) { - npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); + npc.broadcastPacket(new PlaySound(1, "BS02_D", npc)); if (!npc.getSpawn().is_customBossInstance()) { diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Valakas.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Valakas.java index c531771dba..cb68b3c02f 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Valakas.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Valakas.java @@ -599,7 +599,7 @@ public class Valakas extends Quest public String onKill(NpcInstance npc, PlayerInstance killer, boolean isPet) { npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1700, 2000, 130, -1, 0)); - npc.broadcastPacket(new PlaySound(1, "B03_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); + npc.broadcastPacket(new PlaySound(1, "B03_D", npc)); startQuestTimer("1111", 500, npc, null); if (!npc.getSpawn().is_customBossInstance()) @@ -969,7 +969,7 @@ public class Valakas extends Quest { if ((obj instanceof PlayerInstance) && Util.checkIfInRange(10000, npc, obj, true)) { - ((Creature) obj).sendPacket(new PlaySound(1, "B03_A", 1, npc.getObjectId(), 212852, -114842, -1632)); + ((Creature) obj).sendPacket(new PlaySound(1, "B03_A", npc)); ((Creature) obj).sendPacket(new SocialAction(npc.getObjectId(), 3)); } } diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Zaken.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Zaken.java index 7e39851f9d..66d8c09c7b 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Zaken.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/ai/bosses/Zaken.java @@ -205,7 +205,7 @@ public class Zaken extends Quest } GrandBossManager.getInstance().addBoss(npc); - npc.broadcastPacket(new PlaySound(1, "BS01_A", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); + npc.broadcastPacket(new PlaySound(1, "BS01_A", npc)); _ai0 = 0; _ai1 = npc.getX(); _ai2 = npc.getY(); @@ -857,7 +857,7 @@ public class Zaken extends Quest if (npcId == ZAKEN) { - npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ())); + npc.broadcastPacket(new PlaySound(1, "BS02_D", npc)); if (!npc.getSpawn().is_customBossInstance()) { diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/quests/Q635_InTheDimensionalRift/Q635_InTheDimensionalRift.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/quests/Q635_InTheDimensionalRift/Q635_InTheDimensionalRift.java index ea717dc644..ac29c8d6a2 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/quests/Q635_InTheDimensionalRift/Q635_InTheDimensionalRift.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/quests/Q635_InTheDimensionalRift/Q635_InTheDimensionalRift.java @@ -125,7 +125,7 @@ public class Q635_InTheDimensionalRift extends Quest qs.exitQuest(true); htmltext = "1.htm"; } - else if (player.getAllActiveQuests().length > MAX_QUEST) + else if (player.getAllActiveQuests().size() > MAX_QUEST) { qs.exitQuest(true); htmltext = "1a.htm"; diff --git a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/teleports/OracleTeleport/OracleTeleport.java b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/teleports/OracleTeleport/OracleTeleport.java index f5b4cc5ee7..7cacc99d3b 100644 --- a/L2J_Mobius_C6_Interlude/dist/game/data/scripts/teleports/OracleTeleport/OracleTeleport.java +++ b/L2J_Mobius_C6_Interlude/dist/game/data/scripts/teleports/OracleTeleport/OracleTeleport.java @@ -429,7 +429,7 @@ public class OracleTeleport extends Quest htmltext = "1.htm"; st.exitQuest(true); } - else if (player.getAllActiveQuests().length >= 25) + else if (player.getAllActiveQuests().size() >= 25) { htmltext = "1a.htm"; st.exitQuest(true); @@ -452,7 +452,7 @@ public class OracleTeleport extends Quest htmltext = "ziggurat_lowlevel.htm"; st.exitQuest(true); } - else if (player.getAllActiveQuests().length >= 25) + else if (player.getAllActiveQuests().size() >= 25) { player.sendPacket(SystemMessageId.TOO_MANY_QUESTS); st.exitQuest(true); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminEffects.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminEffects.java index 63a54b3aef..b87dd7e045 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminEffects.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminEffects.java @@ -792,7 +792,7 @@ public class AdminEffects implements IAdminCommandHandler private void playAdminSound(PlayerInstance activeChar, String sound) { - final PlaySound snd = new PlaySound(1, sound, 0, 0, 0, 0, 0); + final PlaySound snd = new PlaySound(1, sound); activeChar.sendPacket(snd); activeChar.broadcastPacket(snd); BuilderUtil.sendSysMessage(activeChar, "Playing " + sound + "."); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminEventEngine.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminEventEngine.java index 2bed3c14d8..1c734f2c13 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminEventEngine.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminEventEngine.java @@ -443,7 +443,7 @@ public class AdminEventEngine implements IAdminCommandHandler muestraNpcConInfoAPlayers(activeChar, GameEvent.id); - final PlaySound snd = new PlaySound(1, "B03_F", 0, 0, 0, 0, 0); + final PlaySound snd = new PlaySound(1, "B03_F"); activeChar.sendPacket(snd); activeChar.broadcastPacket(snd); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminMonsterRace.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminMonsterRace.java index ee0f101c9c..5b1af28152 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminMonsterRace.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/admincommandhandlers/AdminMonsterRace.java @@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.handler.admincommandhandlers; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.gameserver.handler.IAdminCommandHandler; +import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.entity.MonsterRace; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -99,11 +100,11 @@ public class AdminMonsterRace implements IAdminCommandHandler sm.addNumber(0); activeChar.sendPacket(sm); - final PlaySound sRace = new PlaySound(1, "S_Race", 0, 0, 0, 0, 0); + final PlaySound sRace = new PlaySound(1, "S_Race"); activeChar.sendPacket(sRace); activeChar.broadcastPacket(sRace); - final PlaySound sRace2 = new PlaySound(0, "ItemSound2.race_start", 1, 121209259, 12125, 182487, -3559); + final PlaySound sRace2 = new PlaySound(0, "ItemSound2.race_start", true, 121209259, new Location(12125, 182487, -3559), 0); activeChar.sendPacket(sRace2); activeChar.broadcastPacket(sRace2); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java index 5032a5c0ee..64b2ca77cc 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java @@ -128,7 +128,7 @@ public class ItemsOnGroundManager } item.getPosition().setWorldPosition(result.getInt(5), result.getInt(6), result.getInt(7)); - item.getPosition().setWorldRegion(World.getInstance().getRegion(item.getPosition().getWorldPosition())); + item.getPosition().setWorldRegion(World.getInstance().getRegion(item.getLocation())); item.getPosition().getWorldRegion().addVisibleObject(item); item.setDropTime(result.getLong(8)); item.setProtected(result.getLong(8) == -1); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/QuestManager.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/QuestManager.java index 4ae01a643c..0a83f1fa2e 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/QuestManager.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/QuestManager.java @@ -98,7 +98,7 @@ public class QuestManager { for (Quest q : getQuests().values()) { - if (q.getQuestIntId() == questId) + if (q.getQuestId() == questId) { return q; } @@ -112,7 +112,7 @@ public class QuestManager { LOGGER.info("Replaced: " + newQuest.getName() + " with a new version."); } - else if (newQuest.getQuestIntId() > 0) + else if (newQuest.getQuestId() > 0) { _questCount++; } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/CursedWeapon.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/CursedWeapon.java index 92f79dc5bf..0d50532b1a 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/CursedWeapon.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/CursedWeapon.java @@ -674,12 +674,12 @@ public class CursedWeapon { if (_isActivated && (_player != null)) { - return _player.getPosition().getWorldPosition(); + return _player.getLocation(); } if (_isDropped && (_item != null)) { - return _item.getPosition().getWorldPosition(); + return _item.getLocation(); } return null; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Fishing.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Fishing.java index aa0e09dfb3..9bb969d06a 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Fishing.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Fishing.java @@ -103,7 +103,7 @@ public class Fishing implements Runnable final ExFishingStartCombat efsc = new ExFishingStartCombat(_fisher, _time, _fishMaxHp, _mode, _lureType, _deceptiveMode); _fisher.broadcastPacket(efsc); - _fisher.sendPacket(new PlaySound(1, "SF_S_01", 0, 0, 0, 0, 0)); + _fisher.sendPacket(new PlaySound(1, "SF_S_01")); // Succeeded in getting a bite _fisher.sendPacket(SystemMessageId.GOT_A_BITE); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Location.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Location.java index acb2c0a62a..7bf3ceb70e 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Location.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Location.java @@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.model.actor.Creature; public class Location { + public static final Location DUMMY_LOC = new Location(0, 0, 0); + protected int _x; protected int _y; protected int _z; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java index d1c4f12daa..6a89a161b9 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -386,10 +386,14 @@ public abstract class WorldObject { _position = new ObjectPosition(this); } - return _position; } + public Location getLocation() + { + return getPosition().getWorldPosition(); + } + /** * @return reference to region this object is in */ diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/BoatInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/BoatInstance.java index cf41d21102..162d4913e0 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/BoatInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/BoatInstance.java @@ -581,7 +581,7 @@ public class BoatInstance extends Creature { sm = new CreatureSay(0, Say2.SHOUT, _t2.npc1, _t2.sysmess10_1); } - ps = new PlaySound(0, "itemsound.ship_arrival_departure", 1, getObjectId(), getX(), getY(), getZ()); + ps = new PlaySound(0, "itemsound.ship_arrival_departure", this); if ((knownPlayers == null) || knownPlayers.isEmpty()) { return; @@ -605,7 +605,7 @@ public class BoatInstance extends Creature { sm = new CreatureSay(0, Say2.SHOUT, _t2.npc1, _t2.sysmess5_1); } - ps = new PlaySound(0, "itemsound.ship_5min", 1, getObjectId(), getX(), getY(), getZ()); + ps = new PlaySound(0, "itemsound.ship_5min", this); if ((knownPlayers == null) || knownPlayers.isEmpty()) { return; @@ -627,7 +627,7 @@ public class BoatInstance extends Creature { sm = new CreatureSay(0, Say2.SHOUT, _t2.npc1, _t2.sysmess1_1); } - ps = new PlaySound(0, "itemsound.ship_1min", 1, getObjectId(), getX(), getY(), getZ()); + ps = new PlaySound(0, "itemsound.ship_1min", this); if ((knownPlayers == null) || knownPlayers.isEmpty()) { return; @@ -669,7 +669,7 @@ public class BoatInstance extends Creature { sm = new CreatureSay(0, Say2.SHOUT, _t2.npc1, _t2.sysmessb_1); } - ps = new PlaySound(0, "itemsound.ship_arrival_departure", 1, getObjectId(), getX(), getY(), getZ()); + ps = new PlaySound(0, "itemsound.ship_arrival_departure", this); for (PlayerInstance player : knownPlayers) { player.sendPacket(sm); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/NpcInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/NpcInstance.java index c1ec22aee1..948c69e0cd 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/NpcInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/NpcInstance.java @@ -1814,7 +1814,7 @@ public class NpcInstance extends Creature } else { - if ((player.getWeightPenalty() >= 3) && (q.getQuestIntId() >= 1) && (q.getQuestIntId() < 1000)) + if ((player.getWeightPenalty() >= 3) && (q.getQuestId() >= 1) && (q.getQuestId() < 1000)) { player.sendPacket(SystemMessageId.INVENTORY_LESS_THAN_80_PERCENT); return; @@ -1822,10 +1822,10 @@ public class NpcInstance extends Creature if (qs == null) { - if ((q.getQuestIntId() >= 1) && (q.getQuestIntId() < 20000)) + if ((q.getQuestId() >= 1) && (q.getQuestId() < 20000)) { - final Quest[] questList = player.getAllActiveQuests(); - if (questList.length >= 25) // if too many ongoing quests, don't show window and send message + final List questList = player.getAllActiveQuests(); + if (questList.size() >= 25) // if too many ongoing quests, don't show window and send message { player.sendMessage("You have too many quests, cannot register"); return; @@ -1886,7 +1886,7 @@ public class NpcInstance extends Creature { for (QuestState x : awaits) { - if (!options.contains(x.getQuest()) && (x.getQuest().getQuestIntId() > 0) && (x.getQuest().getQuestIntId() < 1000)) + if (!options.contains(x.getQuest()) && (x.getQuest().getQuestId() > 0) && (x.getQuest().getQuestId() < 1000)) { options.add(x.getQuest()); } @@ -1897,7 +1897,7 @@ public class NpcInstance extends Creature { for (Quest x : starts) { - if (!options.contains(x) && (x.getQuestIntId() > 0) && (x.getQuestIntId() < 1000)) + if (!options.contains(x) && (x.getQuestId() > 0) && (x.getQuestId() < 1000)) { options.add(x); } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 04c2f0bde7..2d853ae35c 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -1598,11 +1598,10 @@ public class PlayerInstance extends Playable } /** - * Return a table containing all Quest in progress from the table _quests.
- *
+ * Return a list containing all Quest in progress from the table _quests. * @return the all active quests */ - public Quest[] getAllActiveQuests() + public List getAllActiveQuests() { final List quests = new ArrayList<>(); @@ -1610,7 +1609,7 @@ public class PlayerInstance extends Playable { if (qs != null) { - if (qs.getQuest().getQuestIntId() >= 1999) + if (qs.getQuest().getQuestId() >= 1999) { continue; } @@ -1629,7 +1628,7 @@ public class PlayerInstance extends Playable } } - return quests.toArray(new Quest[quests.size()]); + return quests; } /** @@ -1794,7 +1793,7 @@ public class PlayerInstance extends Playable { for (QuestState state : states) { - if ((state.getQuest().getQuestIntId() == qs.getQuest().getQuestIntId()) && !qs.isCompleted()) + if ((state.getQuest().getQuestId() == qs.getQuest().getQuestId()) && !qs.isCompleted()) { if (qs.getQuest().notifyEvent(event, npc, this)) { @@ -1804,7 +1803,7 @@ public class PlayerInstance extends Playable retval = qs; } } - sendPacket(new QuestList()); + sendPacket(new QuestList(this)); } } } @@ -6326,7 +6325,7 @@ public class PlayerInstance extends Playable { if (!(pk._teamNameTvT.equals(_teamNameTvT))) { - final PlaySound ps = new PlaySound(0, "ItemSound.quest_itemget", 1, getObjectId(), getX(), getY(), getZ()); + final PlaySound ps = new PlaySound(0, "ItemSound.quest_itemget", this); _countTvTdies++; pk._countTvTkills++; pk.setTitle("Kills: " + pk._countTvTkills); @@ -6381,7 +6380,7 @@ public class PlayerInstance extends Playable if (DM.isTeleport() || DM.is_started()) { pk._countDMkills++; - final PlaySound ps = new PlaySound(0, "ItemSound.quest_itemget", 1, getObjectId(), getX(), getY(), getZ()); + final PlaySound ps = new PlaySound(0, "ItemSound.quest_itemget", this); pk.setTitle("Kills: " + pk._countDMkills); pk.sendPacket(ps); pk.broadcastUserInfo(); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/RaceManagerInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/RaceManagerInstance.java index 8efda00f6f..370ec6efef 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/RaceManagerInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/RaceManagerInstance.java @@ -21,6 +21,7 @@ import java.util.List; import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.gameserver.idfactory.IdFactory; +import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.actor.knownlist.RaceManagerKnownList; import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; import org.l2jmobius.gameserver.model.entity.MonsterRace; @@ -223,9 +224,9 @@ public class RaceManagerInstance extends NpcInstance final MonsterRace race = MonsterRace.getInstance(); if (_state == STARTING_RACE) { - final PlaySound sRace = new PlaySound(1, "S_Race", 0, 0, 0, 0, 0); + final PlaySound sRace = new PlaySound(1, "S_Race"); broadcast(sRace); - final PlaySound sRace2 = new PlaySound(0, "ItemSound2.race_start", 1, 121209259, 12125, 182487, -3559); + final PlaySound sRace2 = new PlaySound(0, "ItemSound2.race_start", true, 121209259, new Location(12125, 182487, -3559), 0); broadcast(sRace2); _packet = new MonRaceInfo(_codes[1][0], _codes[1][1], race.getMonsters(), race.getSpeeds()); sendMonsterInfo(); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java index c4b55b3b52..2e2d89565e 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java @@ -178,7 +178,7 @@ public class PlayerKnownList extends PlayableKnownList final PlayerInstance otherPlayer = (PlayerInstance) object; if (otherPlayer.isInBoat()) { - otherPlayer.getPosition().setWorldPosition(otherPlayer.getBoat().getPosition().getWorldPosition()); + otherPlayer.getPosition().setWorldPosition(otherPlayer.getBoat().getLocation()); activeChar.sendPacket(new CharInfo(otherPlayer)); final int relation = otherPlayer.getRelation(activeChar); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/Duel.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/Duel.java index c20dbad6ed..3f4c16f212 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/Duel.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/Duel.java @@ -509,7 +509,7 @@ public class Duel } // play sound - final PlaySound ps = new PlaySound(1, "B04_S01", 0, 0, 0, 0, 0); + final PlaySound ps = new PlaySound(1, "B04_S01"); broadcastToTeam1(ps); broadcastToTeam2(ps); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Castle.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Castle.java index 196c95fd85..fc349e0787 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Castle.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Castle.java @@ -679,7 +679,7 @@ public class Castle clan.setHasCastle(_castleId); // Set has castle flag for new owner Announcements.getInstance().announceToAll(clan.getName() + " has taken " + getName() + " castle!"); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); - clan.broadcastToOnlineMembers(new PlaySound(1, "Siege_Victory", 0, 0, 0, 0, 0)); + clan.broadcastToOnlineMembers(new PlaySound(1, "Siege_Victory")); // give crowns CrownManager.getInstance().checkCrowns(clan); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Fort.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Fort.java index b2b86eedf0..e1e0cc7661 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Fort.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/entity/siege/Fort.java @@ -496,7 +496,7 @@ public class Fort clan.setHasFort(_fortId); // Set has fort flag for new owner Announcements.getInstance().announceToAll(clan.getName() + " has taken " + getName() + " fort!"); clan.broadcastToOnlineMembers(new PledgeShowInfoUpdate(clan)); - clan.broadcastToOnlineMembers(new PlaySound(1, "Siege_Victory", 0, 0, 0, 0, 0)); + clan.broadcastToOnlineMembers(new PlaySound(1, "Siege_Victory")); } } catch (Exception e) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java index 714d9f51b5..5581665cdd 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/Quest.java @@ -241,7 +241,7 @@ public class Quest extends ManagedScript * Return ID of the quest * @return int */ - public int getQuestIntId() + public int getQuestId() { return _questId; } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/QuestState.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/QuestState.java index 6f2923de68..c21a1de110 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/QuestState.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/quest/QuestState.java @@ -174,8 +174,7 @@ public class QuestState _state = state; Quest.updateQuestInDb(this); - final QuestList ql = new QuestList(); - _player.sendPacket(ql); + _player.sendPacket(new QuestList(_player)); return state; } @@ -341,10 +340,9 @@ public class QuestState } // send a packet to the client to inform it of the quest progress (step change) - final QuestList ql = new QuestList(); - _player.sendPacket(ql); + _player.sendPacket(new QuestList(_player)); - final int questId = getQuest().getQuestIntId(); + final int questId = getQuest().getQuestId(); if ((questId > 0) && (questId < 999) && (cond > 0)) { @@ -553,7 +551,7 @@ public class QuestState return; } - final int questId = getQuest().getQuestIntId(); + final int questId = getQuest().getQuestId(); // If item for reward is gold (ID=57), modify count with rate for quest reward if ((itemId == 57) && ((questId < 217) || (questId > 233)) && ((questId < 401) || (questId > 418))) @@ -1239,7 +1237,7 @@ public class QuestState public void playTutorialVoice(String voice) { - _player.sendPacket(new PlaySound(2, voice, 0, 0, _player.getX(), _player.getY(), _player.getZ())); + _player.sendPacket(new PlaySound(2, voice, false, 0, _player.getLocation(), 0)); } public void showTutorialHTML(String html) @@ -1256,7 +1254,7 @@ public class QuestState public void closeTutorialHtml() { - _player.sendPacket(new TutorialCloseHtml()); + _player.sendPacket(TutorialCloseHtml.STATIC_PACKET); } public void onTutorialClientEvent(int number) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 266910a17a..c7578ed84b 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -156,7 +156,7 @@ public class EnterWorld extends GameClientPacket EnterGM(player); Quest.playerEnter(player); - player.sendPacket(new QuestList()); + player.sendPacket(new QuestList(player)); if (Config.ENABLE_COMMUNITY_BOARD) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestQuestAbort.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestQuestAbort.java index c9642aae05..59f57164f0 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestQuestAbort.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestQuestAbort.java @@ -64,7 +64,7 @@ public class RequestQuestAbort extends GameClientPacket final SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2); sm.addString("Quest aborted."); player.sendPacket(sm); - final QuestList ql = new QuestList(); + final QuestList ql = new QuestList(player); player.sendPacket(ql); } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestQuestList.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestQuestList.java index 484bfbb254..02b41dae91 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestQuestList.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestQuestList.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.network.clientpackets; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.serverpackets.QuestList; public class RequestQuestList extends GameClientPacket @@ -23,13 +24,17 @@ public class RequestQuestList extends GameClientPacket @Override protected void readImpl() { - // trigger } @Override protected void runImpl() { - final QuestList ql = new QuestList(); - sendPacket(ql); + final PlayerInstance player = getClient().getPlayer(); + if (player == null) + { + return; + } + + player.sendPacket(new QuestList(player)); } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java index a834ccf770..95bfa00971 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java @@ -133,7 +133,7 @@ public class RequestRecordInfo extends GameClientPacket if (otherPlayer.isInBoat()) { - otherPlayer.getPosition().setWorldPosition(otherPlayer.getBoat().getPosition().getWorldPosition()); + otherPlayer.getPosition().setWorldPosition(otherPlayer.getBoat().getLocation()); player.sendPacket(new CharInfo(otherPlayer)); final int relation = otherPlayer.getRelation(player); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/GMViewQuestList.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/GMViewQuestList.java index 85eb7efda3..8c9683e358 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/GMViewQuestList.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/GMViewQuestList.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.List; + import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.QuestState; @@ -39,24 +41,13 @@ public class GMViewQuestList extends GameServerPacket writeC(0x93); writeS(_player.getName()); - final Quest[] questList = _player.getAllActiveQuests(); - - if (questList.length == 0) - { - writeC(0); - writeH(0); - writeH(0); - return; - } - - writeH(questList.length); // quest count + final List questList = _player.getAllActiveQuests(); + writeH(questList.size()); // quest count for (Quest q : questList) { - writeD(q.getQuestIntId()); - + writeD(q.getQuestId()); final QuestState qs = _player.getQuestState(q.getName()); - if (qs == null) { writeD(0); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java index 9e694e1de6..004515f023 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java @@ -16,51 +16,93 @@ */ package org.l2jmobius.gameserver.network.serverpackets; -/** - * @version $Revision: 1.1.6.2 $ $Date: 2005/03/27 15:29:39 $ - */ +import org.l2jmobius.gameserver.model.Location; +import org.l2jmobius.gameserver.model.WorldObject; + public class PlaySound extends GameServerPacket { - private final int _unknown1; + private final int _unknown; private final String _soundFile; - private final int _unknown3; - private final int _unknown4; - private final int _unknown5; - private final int _unknown6; - private final int _unknown7; + private final boolean _isObject; + private final int _objectId; + private final Location _loc; + private final int _duration; + /** + * Used for static sound. + * @param soundFile : The name of the sound file. + */ public PlaySound(String soundFile) { - _unknown1 = 0; + _unknown = 0; _soundFile = soundFile; - _unknown3 = 0; - _unknown4 = 0; - _unknown5 = 0; - _unknown6 = 0; - _unknown7 = 0; + _isObject = false; + _objectId = 0; + _loc = Location.DUMMY_LOC; + _duration = 0; } - public PlaySound(int unknown1, String soundFile, int unknown3, int unknown4, int unknown5, int unknown6, int unknown7) + /** + * Used for static sound. + * @param unknown : Unknown parameter. Seems linked to sound names with dots (.), tutorials, sieges/bosses. + * @param soundFile : The name of the sound file. + */ + public PlaySound(int unknown, String soundFile) { - _unknown1 = unknown1; + _unknown = unknown; _soundFile = soundFile; - _unknown3 = unknown3; - _unknown4 = unknown4; - _unknown5 = unknown5; - _unknown6 = unknown6; - _unknown7 = unknown7; + _isObject = false; + _objectId = 0; + _loc = Location.DUMMY_LOC; + _duration = 0; + } + + /** + * Play the sound file in the client. We use a {@link WorldObject} as parameter, notably to find the position of the sound. + * @param unknown + * @param soundFile : The name of the sound file. + * @param object : The object to use. + */ + public PlaySound(int unknown, String soundFile, WorldObject object) + { + _unknown = unknown; + _soundFile = soundFile; + _isObject = true; + _objectId = object.getObjectId(); + _loc = object.getLocation(); + _duration = 0; + } + + /** + * Play the sound file in the client. All parameters can be set. + * @param unknown + * @param soundFile : The name of the sound file. + * @param isObject - true, if sound file calls someone else, but not character + * @param objectId - object ID of caller. 0 - for quest, tutorial, etc. + * @param loc - Location of object + * @param duration - playing time + */ + public PlaySound(int unknown, String soundFile, boolean isObject, int objectId, Location loc, int duration) + { + _unknown = unknown; + _soundFile = soundFile; + _isObject = isObject; + _objectId = objectId; + _loc = loc; + _duration = duration; } @Override protected final void writeImpl() { writeC(0x98); - writeD(_unknown1); // unknown 0 for quest and ship; + writeD(_unknown); writeS(_soundFile); - writeD(_unknown3); // unknown 0 for quest; 1 for ship; - writeD(_unknown4); // 0 for quest; objectId of ship - writeD(_unknown5); // x - writeD(_unknown6); // y - writeD(_unknown7); // z + writeD(_isObject ? 1 : 0); + writeD(_objectId); + writeD(_loc.getX()); + writeD(_loc.getY()); + writeD(_loc.getZ()); + writeD(_duration); } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/QuestList.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/QuestList.java index 54706837a5..7673919572 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/QuestList.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/QuestList.java @@ -16,54 +16,32 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.List; + import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.quest.Quest; import org.l2jmobius.gameserver.model.quest.QuestState; -/** - * sample for rev 377: 98 05 00 number of quests ff 00 00 00 0a 01 00 00 39 01 00 00 04 01 00 00 a2 00 00 00 format h (d) h (dddh) rev 377 format h (dd) h (dddd) rev 417 - * @version $Revision: 1.4.2.2.2.2 $ $Date: 2005/02/10 16:44:28 $ - */ public class QuestList extends GameServerPacket { - private Quest[] _quests; - private PlayerInstance _player; + private final List _quests; + private final PlayerInstance _activeChar; - @Override - public void runImpl() + public QuestList(PlayerInstance player) { - if ((getClient() != null) && (getClient().getPlayer() != null)) - { - _player = getClient().getPlayer(); - _quests = _player.getAllActiveQuests(); - } + _activeChar = player; + _quests = player.getAllActiveQuests(); } @Override protected final void writeImpl() { - /** - * This text was wrote by XaKa QuestList packet structure: { 1 byte - 0x80 2 byte - Number of Quests for Quest in AvailibleQuests { 4 byte - Quest ID 4 byte - Quest Status } } NOTE: The following special constructs are true for the 4-byte Quest Status: If the most significant bit is 0, this - * means that no progress-step got skipped. In this case, merely passing the rank of the latest step gets the client to mark it as current and mark all previous steps as complete. If the most significant bit is 1, it means that some steps may have been skipped. In that case, each bit - * represents a quest step (max 30) with 0 indicating that it was skipped and 1 indicating that it either got completed or is currently active (the client will automatically assume the largest step as active and all smaller ones as completed). For example, the following bit sequences will - * yield the same results: 1000 0000 0000 0000 0000 0011 1111 1111: Indicates some steps may be skipped but each of the first 10 steps did not get skipped and current step is the 10th. 0000 0000 0000 0000 0000 0000 0000 1010: Indicates that no steps were skipped and current is the 10th. It - * is speculated that the latter will be processed faster by the client, so it is preferred when no steps have been skipped. However, the sequence "1000 0000 0000 0000 0000 0010 1101 1111" indicates that the current step is the 10th but the 6th and 9th are not to be shown at all (not - * completed, either). - */ - if ((_quests == null) || (_quests.length == 0)) - { - writeC(0x80); - writeH(0); - writeH(0); - return; - } - writeC(0x80); - writeH(_quests.length); + writeH(_quests.size()); for (Quest q : _quests) { - writeD(q.getQuestIntId()); - final QuestState qs = _player.getQuestState(q.getName()); + writeD(q.getQuestId()); + final QuestState qs = _activeChar.getQuestState(q.getName()); if (qs == null) { writeD(0); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/TutorialCloseHtml.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/TutorialCloseHtml.java index e035d44e8e..2773e405ff 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/TutorialCloseHtml.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/TutorialCloseHtml.java @@ -18,6 +18,12 @@ package org.l2jmobius.gameserver.network.serverpackets; public class TutorialCloseHtml extends GameServerPacket { + public static final TutorialCloseHtml STATIC_PACKET = new TutorialCloseHtml(); + + private TutorialCloseHtml() + { + } + @Override protected void writeImpl() {