From 96529d260bbb015feb54959a9a3b07a5334efba0 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 8 Mar 2018 18:20:12 +0000 Subject: [PATCH] Support for Zaken login. --- L2J_Mobius_Classic_2.0_Zaken/.project | 2 +- L2J_Mobius_Classic_2.0_Zaken/build.xml | 8 +- .../dist/game/config/Server.ini | 4 +- .../dist/game/data/DailyMission.xml | 144 ++--- .../playeractions/InstanceZoneInfo.java | 2 +- .../usercommandhandlers/InstanceZone.java | 2 +- .../dist/game/data/xsd/DailyMission.xsd | 3 + .../handler/AbstractDailyMissionHandler.java | 7 + .../instancemanager/GrandBossManager.java | 4 + .../model/DailyMissionDataHolder.java | 53 +- .../model/DailyMissionPlayerEntry.java | 11 + .../l2jmobius/gameserver/model/TradeList.java | 6 + .../gameserver/model/actor/stat/PcStat.java | 2 +- .../gameserver/network/ExIncomingPackets.java | 45 +- .../gameserver/network/OutgoingPackets.java | 74 ++- .../gameserver/network/SystemMessageId.java | 500 +++++++++++++++++- .../network/clientpackets/EnterWorld.java | 4 +- .../RequestInzoneWaitingTime.java | 2 +- .../clientpackets/SetPrivateStoreListBuy.java | 19 + .../RequestChangeAttributeItem.java | 4 + .../RequestOneDayRewardReceive.java | 12 +- .../dailymission/RequestTodoList.java | 9 +- .../RequestRaidBossSpawnInfo.java | 65 +++ .../raidbossinfo/RequestRaidServerInfo.java | 39 ++ .../serverpackets/AbstractMessagePacket.java | 8 + .../network/serverpackets/CharInfo.java | 1 + .../network/serverpackets/DropItem.java | 4 + .../serverpackets/ExInzoneWaiting.java | 5 +- .../ExPrivateStoreBuyingResult.java | 44 ++ .../ExPrivateStoreSellingResult.java | 44 ++ .../serverpackets/ExShowCastleInfo.java | 4 +- .../serverpackets/ExShowSeedMapInfo.java | 8 +- .../network/serverpackets/FakePlayerInfo.java | 1 + .../network/serverpackets/MultiSellList.java | 1 + .../serverpackets/MyTargetSelected.java | 1 + .../network/serverpackets/SpawnItem.java | 13 + .../TutorialShowQuestionMark.java | 10 +- .../network/serverpackets/UserInfo.java | 7 +- .../ExConnectedTimeAndGettableReward.java | 24 +- .../ExOneDayReceiveRewardList.java | 24 +- .../raidbossinfo/ExRaidBossSpawnInfo.java | 50 ++ .../raidbossinfo/ExRaidServerInfo.java | 38 ++ .../launcher/Gameserver.launch | 8 +- .../launcher/Loginserver.launch | 8 +- L2J_Mobius_Classic_2.0_Zaken/readme.txt | 14 +- 45 files changed, 1168 insertions(+), 170 deletions(-) create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/raidbossinfo/RequestRaidBossSpawnInfo.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/raidbossinfo/RequestRaidServerInfo.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExPrivateStoreBuyingResult.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExPrivateStoreSellingResult.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidBossSpawnInfo.java create mode 100644 L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidServerInfo.java diff --git a/L2J_Mobius_Classic_2.0_Zaken/.project b/L2J_Mobius_Classic_2.0_Zaken/.project index 34c87a733d..0ef999cab2 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/.project +++ b/L2J_Mobius_Classic_2.0_Zaken/.project @@ -1,6 +1,6 @@ - L2J_Mobius_Classic_2.0_Saviors + L2J_Mobius_Classic_2.0_Zaken diff --git a/L2J_Mobius_Classic_2.0_Zaken/build.xml b/L2J_Mobius_Classic_2.0_Zaken/build.xml index c5dc6a1123..98a418d572 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/build.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/build.xml @@ -1,6 +1,6 @@ - + This file is part of the L2J Mobius project. @@ -136,15 +136,15 @@ - + - + - + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/config/Server.ini b/L2J_Mobius_Classic_2.0_Zaken/dist/game/config/Server.ini index 8b3305d448..d2fc771b9d 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/config/Server.ini +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/config/Server.ini @@ -88,8 +88,8 @@ MaximumOnlineUsers = 2000 # Numbers of protocol revisions that server allows to connect. # Delimiter is ; # WARNING: Changing the protocol revision may result in incompatible communication and many errors in game! -# Helios: 64 -AllowedProtocolRevisions = 64 +# Grand Crusade: 110 +AllowedProtocolRevisions = 110 # Displays server type next to the server name on character selection. # Notes: diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/DailyMission.xml b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/DailyMission.xml index 72fa87d412..a14c49c9b0 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/DailyMission.xml +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/DailyMission.xml @@ -1,6 +1,6 @@ - + 2 @@ -8,7 +8,7 @@ - + 3 @@ -16,7 +16,7 @@ - + 4 @@ -24,7 +24,7 @@ - + 5 @@ -32,7 +32,7 @@ - + 6 @@ -40,7 +40,7 @@ - + 7 @@ -48,7 +48,7 @@ - + 8 @@ -56,7 +56,7 @@ - + 9 @@ -64,7 +64,7 @@ - + 0 18 31 @@ -106,7 +106,7 @@ - + 7 22 35 @@ -138,7 +138,7 @@ - + 10 25 38 @@ -183,7 +183,7 @@ - + 11 @@ -191,7 +191,7 @@ - + 12 @@ -199,7 +199,7 @@ - + 13 @@ -207,7 +207,7 @@ - + 14 @@ -215,7 +215,7 @@ - + 15 @@ -223,7 +223,7 @@ - + 16 @@ -231,7 +231,7 @@ - + 17 @@ -239,7 +239,7 @@ - + 0 18 31 @@ -279,7 +279,7 @@ - + 7 22 35 @@ -309,7 +309,7 @@ - + 10 25 38 @@ -352,7 +352,7 @@ - + 19 @@ -360,7 +360,7 @@ - + 20 @@ -371,7 +371,7 @@ - + 21 @@ -379,7 +379,7 @@ - + 22 @@ -387,7 +387,7 @@ - + 0 18 31 @@ -427,7 +427,7 @@ - + 7 22 35 @@ -457,7 +457,7 @@ - + 10 25 38 @@ -500,7 +500,7 @@ - + 24 @@ -510,7 +510,7 @@ - + 25 @@ -518,7 +518,7 @@ - + 26 @@ -526,7 +526,7 @@ - + 27 @@ -534,7 +534,7 @@ - + 0 18 31 @@ -574,7 +574,7 @@ - + 7 22 35 @@ -604,7 +604,7 @@ - + 10 25 38 @@ -647,7 +647,7 @@ - + 29 @@ -657,7 +657,7 @@ - + 30 @@ -665,7 +665,7 @@ - + 31 @@ -673,7 +673,7 @@ - + 32 @@ -681,7 +681,7 @@ - + 33 @@ -689,7 +689,7 @@ - + 34 @@ -699,7 +699,7 @@ - + 35 @@ -707,7 +707,7 @@ - + 36 @@ -715,7 +715,7 @@ - + 37 @@ -723,7 +723,7 @@ - + 0 18 31 @@ -763,7 +763,7 @@ - + 7 22 35 @@ -793,7 +793,7 @@ - + 10 25 38 @@ -836,7 +836,7 @@ - + 39 @@ -846,7 +846,7 @@ - + 40 @@ -854,7 +854,7 @@ - + 41 @@ -862,7 +862,7 @@ - + 42 @@ -870,7 +870,7 @@ - + 0 18 31 @@ -910,7 +910,7 @@ - + 10 25 38 @@ -953,7 +953,7 @@ - + 10 25 38 @@ -996,7 +996,7 @@ - + 44 @@ -1006,7 +1006,7 @@ - + 45 @@ -1014,7 +1014,7 @@ - + 46 @@ -1022,7 +1022,7 @@ - + 47 @@ -1030,7 +1030,7 @@ - + 0 18 31 @@ -1070,7 +1070,7 @@ - + 10 25 38 @@ -1113,7 +1113,7 @@ - + 10 25 38 @@ -1156,7 +1156,7 @@ - + 49 @@ -1164,7 +1164,7 @@ - + 50 @@ -1174,49 +1174,51 @@ - + + - + - + - + - + diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/handlers/playeractions/InstanceZoneInfo.java b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/handlers/playeractions/InstanceZoneInfo.java index 0644b22915..d2f245154f 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/handlers/playeractions/InstanceZoneInfo.java +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/handlers/playeractions/InstanceZoneInfo.java @@ -30,6 +30,6 @@ public final class InstanceZoneInfo implements IPlayerActionHandler @Override public void useAction(L2PcInstance activeChar, ActionDataHolder data, boolean ctrlPressed, boolean shiftPressed) { - activeChar.sendPacket(new ExInzoneWaiting(activeChar)); + activeChar.sendPacket(new ExInzoneWaiting(activeChar, false)); } } diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/handlers/usercommandhandlers/InstanceZone.java b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/handlers/usercommandhandlers/InstanceZone.java index b0bc10bd40..7adb3c0db6 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/handlers/usercommandhandlers/InstanceZone.java +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/scripts/handlers/usercommandhandlers/InstanceZone.java @@ -44,7 +44,7 @@ public class InstanceZone implements IUserCommandHandler { return false; } - activeChar.sendPacket(new ExInzoneWaiting(activeChar)); + activeChar.sendPacket(new ExInzoneWaiting(activeChar, false)); return true; } } diff --git a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/xsd/DailyMission.xsd b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/xsd/DailyMission.xsd index 4a0c3294ed..b2f4826356 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/xsd/DailyMission.xsd +++ b/L2J_Mobius_Classic_2.0_Zaken/dist/game/data/xsd/DailyMission.xsd @@ -38,6 +38,9 @@ + + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java index be6c70ea35..660b537dc5 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/handler/AbstractDailyMissionHandler.java @@ -69,6 +69,12 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer return entry != null ? entry.getProgress() : 0; } + public boolean getRecentlyCompleted(L2PcInstance player) + { + final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), false); + return (entry != null) && entry.getRecentlyCompleted(); + } + public synchronized void reset() { try (Connection con = DatabaseFactory.getInstance().getConnection(); @@ -97,6 +103,7 @@ public abstract class AbstractDailyMissionHandler extends ListenersContainer final DailyMissionPlayerEntry entry = getPlayerEntry(player.getObjectId(), true); entry.setStatus(DailyMissionStatus.COMPLETED); entry.setLastCompleted(System.currentTimeMillis()); + entry.setRecentlyCompleted(true); storePlayerEntry(entry); return true; diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/instancemanager/GrandBossManager.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/instancemanager/GrandBossManager.java index c06464b525..4704d55126 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/instancemanager/GrandBossManager.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/instancemanager/GrandBossManager.java @@ -109,6 +109,10 @@ public final class GrandBossManager implements IStorable public int getBossStatus(int bossId) { + if (!_bossStatus.containsKey(bossId)) + { + return -1; + } return _bossStatus.get(bossId); } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/DailyMissionDataHolder.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/DailyMissionDataHolder.java index 0481d0a8b0..ef04df8c87 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/DailyMissionDataHolder.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/DailyMissionDataHolder.java @@ -38,6 +38,9 @@ public class DailyMissionDataHolder private final int _requiredCompletions; private final StatsSet _params; private final boolean _isOneTime; + private final boolean _isMainClassOnly; + private final boolean _isDualClassOnly; + private final boolean _isDisplayedWhenNotAvailable; private final AbstractDailyMissionHandler _handler; public DailyMissionDataHolder(StatsSet set) @@ -51,6 +54,9 @@ public class DailyMissionDataHolder _classRestriction = set.getList("classRestriction", ClassId.class); _params = set.getObject("params", StatsSet.class); _isOneTime = set.getBoolean("isOneTime", true); + _isMainClassOnly = set.getBoolean("isMainClassOnly", true); + _isDualClassOnly = set.getBoolean("isDualClassOnly", false); + _isDisplayedWhenNotAvailable = set.getBoolean("isDisplayedWhenNotAvailable", true); _handler = handler != null ? handler.apply(this) : null; } @@ -89,9 +95,49 @@ public class DailyMissionDataHolder return _isOneTime; } + public boolean isMainClassOnly() + { + return _isMainClassOnly; + } + + public boolean isDualClassOnly() + { + return _isDualClassOnly; + } + + public boolean isDisplayedWhenNotAvailable() + { + return _isDisplayedWhenNotAvailable; + } + public boolean isDisplayable(L2PcInstance player) { - return (!_isOneTime || (getStatus(player) != DailyMissionStatus.COMPLETED.getClientId())) && (_classRestriction.isEmpty() || _classRestriction.contains(player.getClassId())); + // Check if its main class only + if (isMainClassOnly() && (player.isSubClassActive() || player.isDualClassActive())) + { + return false; + } + + // Check if its dual class only. + if (isDualClassOnly() && !player.isDualClassActive()) + { + return false; + } + + // Check for specific class restrictions + if (!_classRestriction.isEmpty() && !_classRestriction.contains(player.getClassId())) + { + return false; + } + + final int status = getStatus(player); + if (!isDisplayedWhenNotAvailable() && (status == DailyMissionStatus.NOT_AVAILABLE.getClientId())) + { + return false; + } + + // Show only if its repeatable, recently completed or incompleted that has met the checks above. + return (!isOneTime() || getRecentlyCompleted(player) || (status != DailyMissionStatus.COMPLETED.getClientId())); } public void requestReward(L2PcInstance player) @@ -112,6 +158,11 @@ public class DailyMissionDataHolder return _handler != null ? _handler.getProgress(player) : DailyMissionStatus.NOT_AVAILABLE.getClientId(); } + public boolean getRecentlyCompleted(L2PcInstance player) + { + return (_handler != null) && _handler.getRecentlyCompleted(player); + } + public void reset() { if (_handler != null) diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/DailyMissionPlayerEntry.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/DailyMissionPlayerEntry.java index f4a361e03b..a3ac7e51d9 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/DailyMissionPlayerEntry.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/DailyMissionPlayerEntry.java @@ -28,6 +28,7 @@ public class DailyMissionPlayerEntry private DailyMissionStatus _status = DailyMissionStatus.NOT_AVAILABLE; private int _progress; private long _lastCompleted; + private boolean _recentlyCompleted; public DailyMissionPlayerEntry(int objectId, int rewardId) { @@ -88,4 +89,14 @@ public class DailyMissionPlayerEntry { _lastCompleted = lastCompleted; } + + public boolean getRecentlyCompleted() + { + return _recentlyCompleted; + } + + public void setRecentlyCompleted(boolean recentlyCompleted) + { + _recentlyCompleted = recentlyCompleted; + } } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/TradeList.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/TradeList.java index 29362b8549..7a25f5afe4 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/TradeList.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/TradeList.java @@ -33,6 +33,8 @@ import com.l2jmobius.gameserver.model.itemcontainer.PcInventory; import com.l2jmobius.gameserver.model.items.L2Item; import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance; import com.l2jmobius.gameserver.network.SystemMessageId; +import com.l2jmobius.gameserver.network.serverpackets.ExPrivateStoreBuyingResult; +import com.l2jmobius.gameserver.network.serverpackets.ExPrivateStoreSellingResult; import com.l2jmobius.gameserver.network.serverpackets.InventoryUpdate; import com.l2jmobius.gameserver.network.serverpackets.SystemMessage; import com.l2jmobius.gameserver.util.Util; @@ -872,6 +874,8 @@ public class TradeList msg.addItemName(newItem); player.sendPacket(msg); } + + _owner.sendPacket(new ExPrivateStoreSellingResult(item.getObjectId(), item.getCount(), player.getAppearance().getVisibleName())); } // Send inventory update packet @@ -1063,6 +1067,8 @@ public class TradeList msg.addItemName(newItem); player.sendPacket(msg); } + + _owner.sendPacket(new ExPrivateStoreBuyingResult(item.getObjectId(), item.getCount(), player.getAppearance().getVisibleName())); } if (totalPrice > 0) diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java index 6b6dc1554d..369aa4a4b9 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/model/actor/stat/PcStat.java @@ -288,7 +288,7 @@ public class PcStat extends PlayableStat // Send acquirable skill list getActiveChar().sendPacket(new AcquireSkillList(getActiveChar())); getActiveChar().sendPacket(new ExVoteSystemInfo(getActiveChar())); - getActiveChar().sendPacket(new ExOneDayReceiveRewardList(getActiveChar())); + getActiveChar().sendPacket(new ExOneDayReceiveRewardList(getActiveChar(), true)); return levelIncreased; } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/ExIncomingPackets.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/ExIncomingPackets.java index 92769007fa..f42ff105f7 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/ExIncomingPackets.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/ExIncomingPackets.java @@ -77,6 +77,8 @@ import com.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRPresent import com.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProductInfo; import com.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProductList; import com.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRRecentProductList; +import com.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidBossSpawnInfo; +import com.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidServerInfo; import com.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMove; import com.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMoveStart; import com.l2jmobius.gameserver.network.clientpackets.shuttle.CannotMoveAnymoreInShuttle; @@ -334,6 +336,7 @@ public enum ExIncomingPackets implements IIncomingPackets REQUEST_NEW_ENCHANT_REMOVE_TWO(0xF7, RequestNewEnchantRemoveTwo::new, ConnectionState.IN_GAME), REQUEST_NEW_ENCHANT_CLOSE(0xF8, RequestNewEnchantClose::new, ConnectionState.IN_GAME), REQUEST_NEW_ENCHANT_TRY(0xF9, RequestNewEnchantTry::new, ConnectionState.IN_GAME), + REQUEST_NEW_ENCHANT_RETRY_TO_PUT_ITEMS(0xFA, RequestNewEnchantRetryToPutItems::new, ConnectionState.IN_GAME), EX_SEND_SELECTED_QUEST_ZONE_ID(0xFF, ExSendSelectedQuestZoneID::new, ConnectionState.IN_GAME), REQUEST_ALCHEMY_SKILL_LIST(0x100, RequestAlchemySkillList::new, ConnectionState.IN_GAME), REQUEST_ALCHEMY_TRY_MIX_CUBE(0x101, null, ConnectionState.IN_GAME), @@ -358,22 +361,40 @@ public enum ExIncomingPackets implements IIncomingPackets EX_CANCEL_MATCH_ARENA(0x114, null, ConnectionState.IN_GAME), EX_CHANGE_CLASS_ARENA(0x115, null, ConnectionState.IN_GAME), EX_CONFIRM_CLASS_ARENA(0x116, null, ConnectionState.IN_GAME), - // TODO: Check Helios updates + REQUEST_OPEN_DECO_NPCUI(0x117, null, ConnectionState.IN_GAME), + REQUEST_CHECK_AGIT_DECO_AVAILABILITY(0x118, null, ConnectionState.IN_GAME), REQUEST_USER_FACTION_INFO(0x119, null, ConnectionState.IN_GAME), EX_EXIT_ARENA(0x11A, null, ConnectionState.IN_GAME), REQUEST_EVENT_BALTHUS_TOKEN(0x11B, null, ConnectionState.IN_GAME), REQUEST_PARTY_MATCHING_HISTORY(0x11C, null, ConnectionState.IN_GAME), - REQUEST_TODO_LIST(0x11D, RequestTodoList::new, ConnectionState.IN_GAME), - REQUEST_TODO_LIST_HTML(0x11E, null, ConnectionState.IN_GAME), - REQUEST_ONE_DAY_REWARD_RECEIVE(0x11F, RequestOneDayRewardReceive::new, ConnectionState.IN_GAME), - REQUEST_QUEUE_TICKET(0x120, null, ConnectionState.IN_GAME), - REQUEST_PLEDGE_BONUS_OPEN(0x121, RequestPledgeBonusOpen::new, ConnectionState.IN_GAME), - REQUEST_PLEDGE_BONUS_REWARD_LIST(0x122, RequestPledgeBonusRewardList::new, ConnectionState.IN_GAME), - REQUEST_PLEDGE_BONUS_REWARD(0x123, RequestPledgeBonusReward::new, ConnectionState.IN_GAME), - REQUEST_SSO_AUTHN_TOKEN(0x124, null, ConnectionState.IN_GAME), - REQUEST_QUEUE_TICKET_LOGIN(0x125, null, ConnectionState.IN_GAME), - REQUEST_BLOCK_MEMO_INFO(0x126, null, ConnectionState.IN_GAME), - REQUEST_TRY_EN_SOUL_EXTRACTION(0x127, null, ConnectionState.IN_GAME); + EX_ARENA_CUSTOM_NOTIFICATION(0x11D, null, ConnectionState.IN_GAME), + REQUEST_TODO_LIST(0x11E, RequestTodoList::new, ConnectionState.IN_GAME), + REQUEST_TODO_LIST_HTML(0x11F, null, ConnectionState.IN_GAME), + REQUEST_ONE_DAY_REWARD_RECEIVE(0x120, RequestOneDayRewardReceive::new, ConnectionState.IN_GAME), + REQUEST_QUEUE_TICKET(0x121, null, ConnectionState.IN_GAME), + REQUEST_PLEDGE_BONUS_OPEN(0x122, RequestPledgeBonusOpen::new, ConnectionState.IN_GAME), + REQUEST_PLEDGE_BONUS_REWARD_LIST(0x123, RequestPledgeBonusRewardList::new, ConnectionState.IN_GAME), + REQUEST_PLEDGE_BONUS_REWARD(0x124, RequestPledgeBonusReward::new, ConnectionState.IN_GAME), + REQUEST_SSO_AUTHN_TOKEN(0x125, null, ConnectionState.IN_GAME), + REQUEST_QUEUE_TICKET_LOGIN(0x126, null, ConnectionState.IN_GAME), + REQUEST_BLOCK_MEMO_INFO(0x127, null, ConnectionState.IN_GAME), + REQUEST_TRY_EN_SOUL_EXTRACTION(0x128, null, ConnectionState.IN_GAME), + REQUEST_RAIDBOSS_SPAWN_INFO(0x129, RequestRaidBossSpawnInfo::new, ConnectionState.IN_GAME), + REQUEST_RAID_SERVER_INFO(0x12A, RequestRaidServerInfo::new, ConnectionState.IN_GAME), + REQUEST_SHOW_AGIT_SIEGE_INFO(0x12B, null, ConnectionState.IN_GAME), + REQUEST_ITEM_AUCTION_STATUS(0x12C, null, ConnectionState.IN_GAME), + REQUEST_MONSTER_BOOK_OPEN(0x12D, null, ConnectionState.IN_GAME), + REQUEST_MONSTER_BOOK_CLOSE(0x12E, null, ConnectionState.IN_GAME), + REQUEST_MONSTER_BOOK_REWARD(0x12F, null, ConnectionState.IN_GAME), + EXREQUEST_MATCH_GROUP(0x130, null, ConnectionState.IN_GAME), + EXREQUEST_MATCH_GROUP_ASK(0x131, null, ConnectionState.IN_GAME), + EXREQUEST_MATCH_GROUP_ANSWER(0x132, null, ConnectionState.IN_GAME), + EXREQUEST_MATCH_GROUP_WITHDRAW(0x133, null, ConnectionState.IN_GAME), + EXREQUEST_MATCH_GROUP_OUST(0x134, null, ConnectionState.IN_GAME), + EXREQUEST_MATCH_GROUP_CHANGE_MASTER(0x135, null, ConnectionState.IN_GAME), + REQUEST_BLOCK_LIST_FOR_AD(0x136, null, ConnectionState.IN_GAME), + REQUEST_UPGRADE_SYSTEM_RESULT(0x137, null, ConnectionState.IN_GAME), + REQUEST_USER_BAN_INFO(0x138, null, ConnectionState.IN_GAME); public static final ExIncomingPackets[] PACKET_ARRAY; diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/OutgoingPackets.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/OutgoingPackets.java index 0cf66739f8..27c56590a5 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/OutgoingPackets.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/OutgoingPackets.java @@ -694,28 +694,58 @@ public enum OutgoingPackets EX_CLOSING_ARENA(0xFE, 0x19B), EX_CLOSED_ARENA(0xFE, 0x19C), EX_DIE_IN_ARENA(0xFE, 0x19D), - EX_ARENA_DASHBOARD(0xFE, 0x19E), - EX_ARENA_UPDATE_EQUIP_SLOT(0xFE, 0x19F), - EX_ARENA_KILL_INFO(0xFE, 0x1A0), - EX_EXIT_ARENA(0xFE, 0x1A1), - EX_BALTHUS_EVENT(0xFE, 0x1A2), - EX_BALTHUS_EVENT_JACKPOT_USER(0xFE, 0x1A3), - EX_PARTY_MATCHING_ROOM_HISTORY(0xFE, 0x1A4), - EX_AI_CONTENT_UI_EVENT(0xFE, 0x1A5), - EX_ONE_DAY_RECEIVE_REWARD_LIST(0xFE, 0x1A7), - EX_CONNECTED_TIME_AND_GETTABLE_REWARD(0xFE, 0x1A8), - EX_TODO_LIST_RECOMMAND(0xFE, 0x1A9), - EX_TODO_LIST_INZONE(0xFE, 0x1AA), - EX_TODO_LIST_HTML(0xFE, 0x1AB), - EX_QUEUE_TICKET(0xFE, 0x1AC), - EX_PLEDGE_BONUS_OPEN(0xFE, 0x1AD), - EX_PLEDGE_BONUS_LIST(0xFE, 0x1AE), - EX_PLEDGE_BONUS_MARK_RESET(0xFE, 0x1AF), - EX_PLEDGE_BONUS_UPDATE(0xFE, 0x1B0), - EX_SSO_AUTH_TOKEN(0xFE, 0x1B1), - EX_QUEUE_TICKET_LOGIN(0xFE, 0x1B2), - EX_ENSOUL_EXTRACTION_SHOW(0xFE, 0x1B3), - EX_ENSOUL_EXTRACTION_RESULT(0xFE, 0x1B4); + DUMMY_PACKET(0xFE, 0x19E), + EX_ARENA_DASHBOARD(0xFE, 0x19F), + EX_ARENA_UPDATE_EQUIP_SLOT(0xFE, 0x1A0), + EX_ARENA_KILL_INFO(0xFE, 0x1A1), + EX_EXIT_ARENA(0xFE, 0x1A2), + EX_BALTHUS_EVENT(0xFE, 0x1A3), + EX_BALTHUS_EVENT_JACKPOT_USER(0xFE, 0x1A4), + EX_PARTY_MATCHING_ROOM_HISTORY(0xFE, 0x1A5), + EX_AI_CONTENT_UI_EVENT(0xFE, 0x1A6), + EX_ARENA_CUSTOM_NOTIFICATION(0xFE, 0x1A7), + EX_ONE_DAY_RECEIVE_REWARD_LIST(0xFE, 0x1A8), + EX_CONNECTED_TIME_AND_GETTABLE_REWARD(0xFE, 0x1A9), + EX_TODO_LIST_RECOMMAND(0xFE, 0x1AA), + EX_TODO_LIST_INZONE(0xFE, 0x1AB), + EX_TODO_LIST_HTML(0xFE, 0x1AC), + EX_QUEUE_TICKET(0xFE, 0x1AD), + EX_PLEDGE_BONUS_OPEN(0xFE, 0x1AE), + EX_PLEDGE_BONUS_LIST(0xFE, 0x1AF), + EX_PLEDGE_BONUS_MARK_RESET(0xFE, 0x1B0), + EX_PLEDGE_BONUS_UPDATE(0xFE, 0x1B1), + EX_SSO_AUTH_TOKEN(0xFE, 0x1B2), + EX_QUEUE_TICKET_LOGIN(0xFE, 0x1B3), + EX_ENSOUL_EXTRACTION_SHOW(0xFE, 0x1B4), + EX_ENSOUL_EXTRACTION_RESULT(0xFE, 0x1B5), + EX_FIELD_EVENT_STEP(0xFE, 0x1B6), + EX_FIELD_EVENT_POINT(0xFE, 0x1B7), + EX_FIELD_EVENT_EFFECT(0xFE, 0x1B8), + EX_RAID_BOSS_SPAWN_INFO(0xFE, 0x1B9), + EX_RAID_SERVER_INFO(0xFE, 0x1BA), + EX_SHOW_AGIT_SIEGE_INFO(0xFE, 0x1BB), + EX_ITEM_ACTION_STATUS(0xFE, 0x1BC), + EX_MONSTER_BOOK(0xFE, 0x1BD), + EX_MONSTER_BOOK_REWARD_ICON(0xFE, 0x1BE), + EX_MONSTER_BOOK_REWARD_FACTION_UI(0xFE, 0x1BF), + EX_MONSTER_BOOK_OPEN_RESULT(0xFE, 0x1C0), + EX_MONSTER_BOOK_CLOSE_FORCE(0xFE, 0x1C1), + EX_FACTION_LEVEL_UP_NOTIFY(0xFE, 0x1C2), + EX_ITEM_AUCTION_NEXT_INFO(0xFE, 0x1C3), + EX_ITEM_AUCTION_UPDATE_BIDDING_INFO(0xFE, 0x1C4), + EX_PRIVATE_STORE_BUYING_RESULT(0xFE, 0x1C5), + EX_PRIVATE_STORE_SELLING_RESULT(0xFE, 0x1C6), + EX_ENTER_WORLD(0xFE, 0x1C7), + EX_MATCH_GROUP(0xFE, 0x1C8), + EX_MATCH_GROUP_ASK(0xFE, 0x1C9), + EX_MATCH_GROUP_WITHDRAW(0xFE, 0x1CA), + EX_MATCH_GROUP_OUST(0xFE, 0x1CB), + EX_ARENA_SHOW_ENEMY_PARTY_LOCATION(0xFE, 0x1CC), + EX_DRESS_ROOM_UI_OPEN(0xFE, 0x1CD), + EX_DRESS_HANGER_LIST(0xFE, 0x1CE), + EX_SHOW_UPGRADE_SYSTEM(0xFE, 0x1CF), + EX_UPGRADE_SYSTEM_RESULT(0xFE, 0x1D0), + EX_USER_BAN_INFO(0xFE, 0x1D1); private final int _id1; private final int _id2; diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/SystemMessageId.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/SystemMessageId.java index 9b36c44a1a..b00080881d 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/SystemMessageId.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/SystemMessageId.java @@ -11890,8 +11890,8 @@ public final class SystemMessageId @ClientString(id = 4194, message = "Ability Points: $s1") public static SystemMessageId ABILITY_POINTS_S1; - @ClientString(id = 4195, message = "Abilities can be used by Noblesse/Exalted Lv. 99 or above.") - public static SystemMessageId ABILITIES_CAN_BE_USED_BY_NOBLESSE_EXALTED_LV_99_OR_ABOVE; + @ClientString(id = 4195, message = "Reach level 85 to use the ability.") + public static SystemMessageId REACH_LEVEL_85_TO_USE_THE_ABILITY; @ClientString(id = 4196, message = "The requested operation has failed. Please try again.") public static SystemMessageId THE_REQUESTED_OPERATION_HAS_FAILED_PLEASE_TRY_AGAIN; @@ -12373,9 +12373,369 @@ public final class SystemMessageId @ClientString(id = 4355, message = "Failed to apply the Soul Crystal effect because of abnormal circumstances.") public static SystemMessageId FAILED_TO_APPLY_THE_SOUL_CRYSTAL_EFFECT_BECAUSE_OF_ABNORMAL_CIRCUMSTANCES; + @ClientString(id = 4356, message = "There are no items that can be searched byn<$s1>.") + public static SystemMessageId THERE_ARE_NO_ITEMS_THAT_CAN_BE_SEARCHED_BY_N_S1; + + @ClientString(id = 4357, message = "There are no items that can be traded.") + public static SystemMessageId THERE_ARE_NO_ITEMS_THAT_CAN_BE_TRADED; + @ClientString(id = 4358, message = "The trade was successful.") public static SystemMessageId THE_TRADE_WAS_SUCCESSFUL; + @ClientString(id = 4359, message = "Not enough items that are needed. Please check the number of items.") + public static SystemMessageId NOT_ENOUGH_ITEMS_THAT_ARE_NEEDED_PLEASE_CHECK_THE_NUMBER_OF_ITEMS; + + @ClientString(id = 4360, message = "Less than $s1 minute") + public static SystemMessageId LESS_THAN_S1_MINUTE2; + + @ClientString(id = 4361, message = "Cannot show because the conditions are not met.") + public static SystemMessageId CANNOT_SHOW_BECAUSE_THE_CONDITIONS_ARE_NOT_MET; + + @ClientString(id = 4362, message = "Enter the number to be traded.") + public static SystemMessageId ENTER_THE_NUMBER_TO_BE_TRADED; + + @ClientString(id = 4363, message = "When trading, the effects applied to the item might get reset, so keep that in mind. Continue with the trade?") + public static SystemMessageId WHEN_TRADING_THE_EFFECTS_APPLIED_TO_THE_ITEM_MIGHT_GET_RESET_SO_KEEP_THAT_IN_MIND_CONTINUE_WITH_THE_TRADE; + + @ClientString(id = 4364, message = "Not enough $s1 and $s2.") + public static SystemMessageId NOT_ENOUGH_S1_AND_S2; + + @ClientString(id = 4365, message = "The expert has been placed successfully.") + public static SystemMessageId THE_EXPERT_HAS_BEEN_PLACED_SUCCESSFULLY; + + @ClientString(id = 4366, message = "The allocation fee will be deducted from the clan's warehouse, and once the duration expires, it will be withdrawn.nContinue?") + public static SystemMessageId THE_ALLOCATION_FEE_WILL_BE_DEDUCTED_FROM_THE_CLAN_S_WAREHOUSE_AND_ONCE_THE_DURATION_EXPIRES_IT_WILL_BE_WITHDRAWN_NCONTINUE; + + @ClientString(id = 4367, message = "Clan $s1 currently has the 1 day penalty for kicking out a member, so it cannot accept new members.") + public static SystemMessageId CLAN_S1_CURRENTLY_HAS_THE_1_DAY_PENALTY_FOR_KICKING_OUT_A_MEMBER_SO_IT_CANNOT_ACCEPT_NEW_MEMBERS; + + @ClientString(id = 4368, message = "The Academy/Royal Guard/Order of Knights have been fully filled, so you cannot join the clan.") + public static SystemMessageId THE_ACADEMY_ROYAL_GUARD_ORDER_OF_KNIGHTS_HAVE_BEEN_FULLY_FILLED_SO_YOU_CANNOT_JOIN_THE_CLAN; + + @ClientString(id = 4369, message = "Clan $s1 has requested to be dissolved, so you cannot join the clan.") + public static SystemMessageId CLAN_S1_HAS_REQUESTED_TO_BE_DISSOLVED_SO_YOU_CANNOT_JOIN_THE_CLAN; + + @ClientString(id = 4370, message = "You've already graduated from the Clan Academy, so you cannot join again.") + public static SystemMessageId YOU_VE_ALREADY_GRADUATED_FROM_THE_CLAN_ACADEMY_SO_YOU_CANNOT_JOIN_AGAIN; + + @ClientString(id = 4371, message = "You cannot join a clan while you are in the Training Camp.") + public static SystemMessageId YOU_CANNOT_JOIN_A_CLAN_WHILE_YOU_ARE_IN_THE_TRAINING_CAMP; + + @ClientString(id = 4372, message = "You cannot join another clan for 1 day after leaving a clan.") + public static SystemMessageId YOU_CANNOT_JOIN_ANOTHER_CLAN_FOR_1_DAY_AFTER_LEAVING_A_CLAN; + + @ClientString(id = 4373, message = "The clan has been dissolved so you cannot join it.") + public static SystemMessageId THE_CLAN_HAS_BEEN_DISSOLVED_SO_YOU_CANNOT_JOIN_IT; + + @ClientString(id = 4374, message = "You are trying to join Clan $s1.") + public static SystemMessageId YOU_ARE_TRYING_TO_JOIN_CLAN_S1; + + @ClientString(id = 4375, message = "You have gained $s1 Blackbird Clan Faction points.") + public static SystemMessageId YOU_HAVE_GAINED_S1_BLACKBIRD_CLAN_FACTION_POINTS; + + @ClientString(id = 4376, message = "You have gained $s1 Mother Tree Guardians Faction points.") + public static SystemMessageId YOU_HAVE_GAINED_S1_MOTHER_TREE_GUARDIANS_FACTION_POINTS; + + @ClientString(id = 4377, message = "You have gained $s1 Giant Trackers Faction points.") + public static SystemMessageId YOU_HAVE_GAINED_S1_GIANT_TRACKERS_FACTION_POINTS; + + @ClientString(id = 4378, message = "You have gained $s1 Unworldly Visitors Faction points.") + public static SystemMessageId YOU_HAVE_GAINED_S1_UNWORLDLY_VISITORS_FACTION_POINTS; + + @ClientString(id = 4379, message = "You have gained $s1 Kingdom's Royal Guard Faction points.") + public static SystemMessageId YOU_HAVE_GAINED_S1_KINGDOM_S_ROYAL_GUARD_FACTION_POINTS; + + @ClientString(id = 4380, message = "Expert successfully removed.") + public static SystemMessageId EXPERT_SUCCESSFULLY_REMOVED; + + @ClientString(id = 4381, message = "Experts with the same class within the same forces cannot be placed together.") + public static SystemMessageId EXPERTS_WITH_THE_SAME_CLASS_WITHIN_THE_SAME_FORCES_CANNOT_BE_PLACED_TOGETHER; + + @ClientString(id = 4382, message = "Another expert has already been placed there. The expert must be removed first before placing a new one.") + public static SystemMessageId ANOTHER_EXPERT_HAS_ALREADY_BEEN_PLACED_THERE_THE_EXPERT_MUST_BE_REMOVED_FIRST_BEFORE_PLACING_A_NEW_ONE; + + @ClientString(id = 4383, message = "The cost for placing an Emissary Leader for your forces is zero. The Emissary Leader for your forces, once placed, cannot be changed until the term expires, and the Emissary Leader will be removed once the term expires. nContinue?") + public static SystemMessageId THE_COST_FOR_PLACING_AN_EMISSARY_LEADER_FOR_YOUR_FORCES_IS_ZERO_THE_EMISSARY_LEADER_FOR_YOUR_FORCES_ONCE_PLACED_CANNOT_BE_CHANGED_UNTIL_THE_TERM_EXPIRES_AND_THE_EMISSARY_LEADER_WILL_BE_REMOVED_ONCE_THE_TERM_EXPIRES_NCONTINUE; + + @ClientString(id = 4384, message = "The expert currently in place will be removed. The placement cost will not be refunded.nContinue?") + public static SystemMessageId THE_EXPERT_CURRENTLY_IN_PLACE_WILL_BE_REMOVED_THE_PLACEMENT_COST_WILL_NOT_BE_REFUNDED_NCONTINUE; + + @ClientString(id = 4385, message = "That expert cannot be removed.") + public static SystemMessageId THAT_EXPERT_CANNOT_BE_REMOVED; + + @ClientString(id = 4386, message = "There's not enough Adena in the clan's warehouse.") + public static SystemMessageId THERE_S_NOT_ENOUGH_ADENA_IN_THE_CLAN_S_WAREHOUSE; + + @ClientString(id = 4387, message = "There's not enough $s1 in the clan's warehouse.") + public static SystemMessageId THERE_S_NOT_ENOUGH_S1_IN_THE_CLAN_S_WAREHOUSE; + + @ClientString(id = 4388, message = "There's not enough $s1 and $s2 in the clan's warehouse.") + public static SystemMessageId THERE_S_NOT_ENOUGH_S1_AND_S2_IN_THE_CLAN_S_WAREHOUSE; + + @ClientString(id = 4389, message = "Current Position : $s1 / $s2 / $s3 (Inside Superion)") + public static SystemMessageId CURRENT_POSITION_S1_S2_S3_INSIDE_SUPERION; + + @ClientString(id = 4390, message = "When the clan's information is changed, the waitlist of players trying to join will be deleted.") + public static SystemMessageId WHEN_THE_CLAN_S_INFORMATION_IS_CHANGED_THE_WAITLIST_OF_PLAYERS_TRYING_TO_JOIN_WILL_BE_DELETED; + + @ClientString(id = 4391, message = "Current Position : $s1 / $s2 / $s3 (Battle Fortress Superion)") + public static SystemMessageId CURRENT_POSITION_S1_S2_S3_BATTLE_FORTRESS_SUPERION; + + @ClientString(id = 4392, message = "Failed to place/delete expert; abnormal expert placement/deletion attempt.") + public static SystemMessageId FAILED_TO_PLACE_DELETE_EXPERT_ABNORMAL_EXPERT_PLACEMENT_DELETION_ATTEMPT; + + @ClientString(id = 4393, message = "Cannot enter; some users may not yet be seated.") + public static SystemMessageId CANNOT_ENTER_SOME_USERS_MAY_NOT_YET_BE_SEATED; + + @ClientString(id = 4394, message = "Currently in Stage $s1, Round $s2.") + public static SystemMessageId CURRENTLY_IN_STAGE_S1_ROUND_S2; + + @ClientString(id = 4395, message = "Supply Items are being prepared. The next supply items will be available on the hour.") + public static SystemMessageId SUPPLY_ITEMS_ARE_BEING_PREPARED_THE_NEXT_SUPPLY_ITEMS_WILL_BE_AVAILABLE_ON_THE_HOUR; + + @ClientString(id = 4396, message = "Current Position : $s1 / $s2 / $s3 (Dimensional Rift)") + public static SystemMessageId CURRENT_POSITION_S1_S2_S3_DIMENSIONAL_RIFT; + + @ClientString(id = 4397, message = "Only Level 3-4 Clans can be registered in a Castle Siege") + public static SystemMessageId ONLY_LEVEL_3_4_CLANS_CAN_BE_REGISTERED_IN_A_CASTLE_SIEGE; + + @ClientString(id = 4398, message = "Clans that own castles are automatically registered to the attacking side.") + public static SystemMessageId CLANS_THAT_OWN_CASTLES_ARE_AUTOMATICALLY_REGISTERED_TO_THE_ATTACKING_SIDE; + + @ClientString(id = 4399, message = "Macro copied to the clipboard.") + public static SystemMessageId MACRO_COPIED_TO_THE_CLIPBOARD; + + @ClientString(id = 4400, message = "This command can be used when the target is of Lv. 61 or higher and has completed the 2nd class transfer.") + public static SystemMessageId THIS_COMMAND_CAN_BE_USED_WHEN_THE_TARGET_IS_OF_LV_61_OR_HIGHER_AND_HAS_COMPLETED_THE_2ND_CLASS_TRANSFER; + + @ClientString(id = 4401, message = "The selected preset has been applied.") + public static SystemMessageId THE_SELECTED_PRESET_HAS_BEEN_APPLIED; + + @ClientString(id = 4402, message = "The account has already been used to receive items; cannot receive items again.") + public static SystemMessageId THE_ACCOUNT_HAS_ALREADY_BEEN_USED_TO_RECEIVE_ITEMS_CANNOT_RECEIVE_ITEMS_AGAIN; + + @ClientString(id = 4403, message = "Current Position : $s1 / $s2 / $s3 (West Side, Prison of the Abyss)") + public static SystemMessageId CURRENT_POSITION_S1_S2_S3_WEST_SIDE_PRISON_OF_THE_ABYSS; + + @ClientString(id = 4404, message = "Current Position : $s1 / $s2 / $s3 (East Side, Prison of the Abyss)") + public static SystemMessageId CURRENT_POSITION_S1_S2_S3_EAST_SIDE_PRISON_OF_THE_ABYSS; + + @ClientString(id = 4405, message = "Current Position : $s1 / $s2 / $s3 (Monster Arena)") + public static SystemMessageId CURRENT_POSITION_S1_S2_S3_MONSTER_ARENA; + + @ClientString(id = 4406, message = "Cannot receive the reward; no ranking or reward already received.") + public static SystemMessageId CANNOT_RECEIVE_THE_REWARD_NO_RANKING_OR_REWARD_ALREADY_RECEIVED; + + @ClientString(id = 4407, message = "Current Position : $s1 / $s2 / $s3 (Prison of the Abyss)") + public static SystemMessageId CURRENT_POSITION_S1_S2_S3_PRISON_OF_THE_ABYSS; + + @ClientString(id = 4408, message = "Cannot restart while participating in, or waiting to participate in the Olympiad.") + public static SystemMessageId CANNOT_RESTART_WHILE_PARTICIPATING_IN_OR_WAITING_TO_PARTICIPATE_IN_THE_OLYMPIAD; + + @ClientString(id = 4409, message = "You may only use arenas with the same mode as the first monster arena you have used this week.") + public static SystemMessageId YOU_MAY_ONLY_USE_ARENAS_WITH_THE_SAME_MODE_AS_THE_FIRST_MONSTER_ARENA_YOU_HAVE_USED_THIS_WEEK; + + @ClientString(id = 4410, message = "Chat ban will be lifted in $s1 seconds.") + public static SystemMessageId CHAT_BAN_WILL_BE_LIFTED_IN_S1_SECONDS; + + @ClientString(id = 4411, message = "Macros consisting of chat messages only cannot be used automatically.") + public static SystemMessageId MACROS_CONSISTING_OF_CHAT_MESSAGES_ONLY_CANNOT_BE_USED_AUTOMATICALLY; + + @ClientString(id = 4412, message = "Send $s1") + public static SystemMessageId SEND_S1; + + @ClientString(id = 4413, message = "Congratulations. Compounding was successful and you obtained $s2 of $s1.") + public static SystemMessageId CONGRATULATIONS_COMPOUNDING_WAS_SUCCESSFUL_AND_YOU_OBTAINED_S2_OF_S1; + + @ClientString(id = 4414, message = "Compounding failed and you obtained $s2 of $s1.") + public static SystemMessageId COMPOUNDING_FAILED_AND_YOU_OBTAINED_S2_OF_S1; + + @ClientString(id = 4415, message = "A remote control program has been detected. Please keep in mind that your game data may be compromised while using the program.") + public static SystemMessageId A_REMOTE_CONTROL_PROGRAM_HAS_BEEN_DETECTED_PLEASE_KEEP_IN_MIND_THAT_YOUR_GAME_DATA_MAY_BE_COMPROMISED_WHILE_USING_THE_PROGRAM; + + @ClientString(id = 4416, message = "You have to register the items in order.") + public static SystemMessageId YOU_HAVE_TO_REGISTER_THE_ITEMS_IN_ORDER; + + @ClientString(id = 4417, message = "You obtained $s2 of $s1 after compounding.") + public static SystemMessageId YOU_OBTAINED_S2_OF_S1_AFTER_COMPOUNDING; + + @ClientString(id = 4418, message = "You don't have enough space in your inventory to continue with compounding. You need more than 2 empty slots.") + public static SystemMessageId YOU_DON_T_HAVE_ENOUGH_SPACE_IN_YOUR_INVENTORY_TO_CONTINUE_WITH_COMPOUNDING_YOU_NEED_MORE_THAN_2_EMPTY_SLOTS; + + @ClientString(id = 4419, message = "The auction for $s1 will begin in 24 hours.") + public static SystemMessageId THE_AUCTION_FOR_S1_WILL_BEGIN_IN_24_HOURS; + + @ClientString(id = 4420, message = "The auction for $s1 is in progress.") + public static SystemMessageId THE_AUCTION_FOR_S1_IS_IN_PROGRESS; + + @ClientString(id = 4421, message = "$s1 is sold for $s2 Adena.") + public static SystemMessageId S1_IS_SOLD_FOR_S2_ADENA; + + @ClientString(id = 4422, message = "Processing failed due to death of a character. Resurrect first and try again.") + public static SystemMessageId PROCESSING_FAILED_DUE_TO_DEATH_OF_A_CHARACTER_RESURRECT_FIRST_AND_TRY_AGAIN; + + @ClientString(id = 4423, message = "The Faction Level of $s1 has increased. Open the Factions window to check.") + public static SystemMessageId THE_FACTION_LEVEL_OF_S1_HAS_INCREASED_OPEN_THE_FACTIONS_WINDOW_TO_CHECK; + + @ClientString(id = 4424, message = "When you compound, you may lose some or all of the ingredients. Continue?") + public static SystemMessageId WHEN_YOU_COMPOUND_YOU_MAY_LOSE_SOME_OR_ALL_OF_THE_INGREDIENTS_CONTINUE; + + @ClientString(id = 4425, message = "$s1 Raid Monster") + public static SystemMessageId S1_RAID_MONSTER; + + @ClientString(id = 4426, message = "Completed all objectives of the $s2 Monster Collection level $s1.") + public static SystemMessageId COMPLETED_ALL_OBJECTIVES_OF_THE_S2_MONSTER_COLLECTION_LEVEL_S1; + + @ClientString(id = 4427, message = "Completed all levels of the $s1 Monster Collection.") + public static SystemMessageId COMPLETED_ALL_LEVELS_OF_THE_S1_MONSTER_COLLECTION; + + @ClientString(id = 4428, message = "Only characters of level $s1 or higher are eligible for rewards.") + public static SystemMessageId ONLY_CHARACTERS_OF_LEVEL_S1_OR_HIGHER_ARE_ELIGIBLE_FOR_REWARDS; + + @ClientString(id = 4429, message = "No rewards can be obtained while changing class.") + public static SystemMessageId NO_REWARDS_CAN_BE_OBTAINED_WHILE_CHANGING_CLASS; + + @ClientString(id = 4430, message = "You cannot abandon missions in the area while defending the Keucereus Alliance Base.") + public static SystemMessageId YOU_CANNOT_ABANDON_MISSIONS_IN_THE_AREA_WHILE_DEFENDING_THE_KEUCEREUS_ALLIANCE_BASE; + + @ClientString(id = 4431, message = "Location information is needed to show this.") + public static SystemMessageId LOCATION_INFORMATION_IS_NEEDED_TO_SHOW_THIS; + + @ClientString(id = 4432, message = "Keucereus Defense - In progress") + public static SystemMessageId KEUCEREUS_DEFENSE_IN_PROGRESS; + + @ClientString(id = 4433, message = "Keucereus Defense - Won") + public static SystemMessageId KEUCEREUS_DEFENSE_WON; + + @ClientString(id = 4434, message = "Keucereus Defense - Lost") + public static SystemMessageId KEUCEREUS_DEFENSE_LOST; + + @ClientString(id = 4435, message = "Keucereus Defense - Invasion declared") + public static SystemMessageId KEUCEREUS_DEFENSE_INVASION_DECLARED; + + @ClientString(id = 4436, message = "$s1 Territory") + public static SystemMessageId S1_TERRITORY; + + @ClientString(id = 4437, message = "$s1 appeared - Click it to track down.") + public static SystemMessageId S1_APPEARED_CLICK_IT_TO_TRACK_DOWN; + + @ClientString(id = 4438, message = "Nothing has been recorded in the Monster Collection.") + public static SystemMessageId NOTHING_HAS_BEEN_RECORDED_IN_THE_MONSTER_COLLECTION; + + @ClientString(id = 4439, message = "Ka...Kain?") + public static SystemMessageId KA_KAIN; + + @ClientString(id = 4440, message = "We could defeat Kain van Halter...ntogether.") + public static SystemMessageId WE_COULD_DEFEAT_KAIN_VAN_HALTER_NTOGETHER; + + @ClientString(id = 4441, message = "Now it's time to show our strength.nLet's go to the Messiah Castle.") + public static SystemMessageId NOW_IT_S_TIME_TO_SHOW_OUR_STRENGTH_NLET_S_GO_TO_THE_MESSIAH_CASTLE; + + @ClientString(id = 4442, message = "We had to retreat... to live to fight another day.") + public static SystemMessageId WE_HAD_TO_RETREAT_TO_LIVE_TO_FIGHT_ANOTHER_DAY; + + @ClientString(id = 4443, message = "Let's sharpen our blades until we return to Gracia.") + public static SystemMessageId LET_S_SHARPEN_OUR_BLADES_UNTIL_WE_RETURN_TO_GRACIA; + + @ClientString(id = 4444, message = "The mission is a success. Fall back!") + public static SystemMessageId THE_MISSION_IS_A_SUCCESS_FALL_BACK; + + @ClientString(id = 4445, message = "Where in the world was the castle-guarding apostle?") + public static SystemMessageId WHERE_IN_THE_WORLD_WAS_THE_CASTLE_GUARDING_APOSTLE; + + @ClientString(id = 4446, message = "Leona Blackbird...Your days are numbered...") + public static SystemMessageId LEONA_BLACKBIRD_YOUR_DAYS_ARE_NUMBERED; + + @ClientString(id = 4447, message = "Now is the time! Charge into the courtyard!") + public static SystemMessageId NOW_IS_THE_TIME_CHARGE_INTO_THE_COURTYARD; + + @ClientString(id = 4448, message = "Why is there no one here?") + public static SystemMessageId WHY_IS_THERE_NO_ONE_HERE; + + @ClientString(id = 4449, message = "Gis...Giselle?") + public static SystemMessageId GIS_GISELLE; + + @ClientString(id = 4450, message = "All stages are completed.") + public static SystemMessageId ALL_STAGES_ARE_COMPLETED; + + @ClientString(id = 4451, message = "You obtained $s1 Faction Points for $s2") + public static SystemMessageId YOU_OBTAINED_S1_FACTION_POINTS_FOR_S2; + + @ClientString(id = 4452, message = "Current location: $s1/$s2/$s3 (Messiah Castle)") + public static SystemMessageId CURRENT_LOCATION_S1_S2_S3_MESSIAH_CASTLE; + + @ClientString(id = 4453, message = "$c1 cannot perform the Couple Action as the person is using a skill.") + public static SystemMessageId C1_CANNOT_PERFORM_THE_COUPLE_ACTION_AS_THE_PERSON_IS_USING_A_SKILL; + + @ClientString(id = 4454, message = "$c1 cannot perform the Couple Action as the person is using Sayunes.") + public static SystemMessageId C1_CANNOT_PERFORM_THE_COUPLE_ACTION_AS_THE_PERSON_IS_USING_SAYUNES; + + @ClientString(id = 4455, message = "You cannot attack other players in this area.") + public static SystemMessageId YOU_CANNOT_ATTACK_OTHER_PLAYERS_IN_THIS_AREA; + + @ClientString(id = 4456, message = "You cannot attack players who are in a non-combat area.") + public static SystemMessageId YOU_CANNOT_ATTACK_PLAYERS_WHO_ARE_IN_A_NON_COMBAT_AREA; + + @ClientString(id = 4457, message = "The items sent can be retrieved only through an Alchemist or Dimensional Merchant on the same server. Are you sure you want to continue?") + public static SystemMessageId THE_ITEMS_SENT_CAN_BE_RETRIEVED_ONLY_THROUGH_AN_ALCHEMIST_OR_DIMENSIONAL_MERCHANT_ON_THE_SAME_SERVER_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE; + + @ClientString(id = 4458, message = "Pull yourself together, Kain! Are you trying to get us killed?") + public static SystemMessageId PULL_YOURSELF_TOGETHER_KAIN_ARE_YOU_TRYING_TO_GET_US_KILLED; + + @ClientString(id = 4459, message = "You have reputations to keep, Karla. What a shame.") + public static SystemMessageId YOU_HAVE_REPUTATIONS_TO_KEEP_KARLA_WHAT_A_SHAME; + + @ClientString(id = 4460, message = "This man is no longer our ally.") + public static SystemMessageId THIS_MAN_IS_NO_LONGER_OUR_ALLY; + + @ClientString(id = 4461, message = "Get back, everyone! You might all get killed the next time!") + public static SystemMessageId GET_BACK_EVERYONE_YOU_MIGHT_ALL_GET_KILLED_THE_NEXT_TIME; + + @ClientString(id = 4462, message = "You exceeded the limit and cannot complete the task.") + public static SystemMessageId YOU_EXCEEDED_THE_LIMIT_AND_CANNOT_COMPLETE_THE_TASK; + + @ClientString(id = 4463, message = "Before the scheduled maintenance on $s1.$s2.$s3") + public static SystemMessageId BEFORE_THE_SCHEDULED_MAINTENANCE_ON_S1_S2_S3; + + @ClientString(id = 4464, message = "After the scheduled maintenance on $s1.$s2.$s3") + public static SystemMessageId AFTER_THE_SCHEDULED_MAINTENANCE_ON_S1_S2_S3; + + @ClientString(id = 4465, message = "From $s1 $s2 to $s3") + public static SystemMessageId FROM_S1_S2_TO_S3; + + @ClientString(id = 4466, message = "$s1 day(s) $s2 hour(s) $s3 minute(s)") + public static SystemMessageId S1_DAY_S_S2_HOUR_S_S3_MINUTE_S; + + @ClientString(id = 4467, message = "$s1.$s2.$s3") + public static SystemMessageId S1_S2_S3; + + @ClientString(id = 4468, message = "Task cannot be completed: Your selling price exceeds the Adena limit.") + public static SystemMessageId TASK_CANNOT_BE_COMPLETED_YOUR_SELLING_PRICE_EXCEEDS_THE_ADENA_LIMIT; + + @ClientString(id = 4469, message = "Task cannot be completed: Your balance exceeds the Adena limit.") + public static SystemMessageId TASK_CANNOT_BE_COMPLETED_YOUR_BALANCE_EXCEEDS_THE_ADENA_LIMIT; + + @ClientString(id = 4470, message = "Task cannot be completed: Your balance after the transaction exceeds the Adena limit.") + public static SystemMessageId TASK_CANNOT_BE_COMPLETED_YOUR_BALANCE_AFTER_THE_TRANSACTION_EXCEEDS_THE_ADENA_LIMIT; + + @ClientString(id = 4471, message = "The item was upgraded successfully and you obtained a $s1.") + public static SystemMessageId THE_ITEM_WAS_UPGRADED_SUCCESSFULLY_AND_YOU_OBTAINED_A_S1; + + @ClientString(id = 4472, message = "$c1 has succeeded in upgrading equipment and obtained a $s2.") + public static SystemMessageId C1_HAS_SUCCEEDED_IN_UPGRADING_EQUIPMENT_AND_OBTAINED_A_S2; + + @ClientString(id = 4473, message = "Failed the operation.") + public static SystemMessageId FAILED_THE_OPERATION; + + @ClientString(id = 4474, message = "Failed because the target item does not exist.") + public static SystemMessageId FAILED_BECAUSE_THE_TARGET_ITEM_DOES_NOT_EXIST; + + @ClientString(id = 4475, message = "Failed because there are not enough ingredients.") + public static SystemMessageId FAILED_BECAUSE_THERE_ARE_NOT_ENOUGH_INGREDIENTS; + + @ClientString(id = 4476, message = "Failed because there's not enough Adena.") + public static SystemMessageId FAILED_BECAUSE_THERE_S_NOT_ENOUGH_ADENA; + @ClientString(id = 4601, message = "- Great P. Def. and skillful Shield Defense(br)- Increased P. Def. for the whole party(br)- Protect party members") public static SystemMessageId GREAT_P_DEF_AND_SKILLFUL_SHIELD_DEFENSE_BR_INCREASED_P_DEF_FOR_THE_WHOLE_PARTY_BR_PROTECT_PARTY_MEMBERS; @@ -13471,6 +13831,126 @@ public final class SystemMessageId @ClientString(id = 5331, message = "Your account has been restricted for violating the EULA, RoC and/or the User Agreement. When a user violates the terms of the User Agreement, the company can impose a restriction on their account. For more information, please visit the Support Center on the NCSOFT website (https://support.lineage2.com).") public static SystemMessageId YOUR_ACCOUNT_HAS_BEEN_RESTRICTED_FOR_VIOLATING_THE_EULA_ROC_AND_OR_THE_USER_AGREEMENT_WHEN_A_USER_VIOLATES_THE_TERMS_OF_THE_USER_AGREEMENT_THE_COMPANY_CAN_IMPOSE_A_RESTRICTION_ON_THEIR_ACCOUNT_FOR_MORE_INFORMATION_PLEASE_VISIT_THE_SUPPORT_CENTER_ON_THE_NCSOFT_WEBSITE_HTTPS_SUPPORT_LINEAGE2_COM122; + @ClientString(id = 5332, message = "Your account has been idle for a long time. If you do not play the game for a certain period, your account will become idle. You can reactivate your account at the plaync webpage (id.plaync.com/account/dormant/index).") + public static SystemMessageId YOUR_ACCOUNT_HAS_BEEN_IDLE_FOR_A_LONG_TIME_IF_YOU_DO_NOT_PLAY_THE_GAME_FOR_A_CERTAIN_PERIOD_YOUR_ACCOUNT_WILL_BECOME_IDLE_YOU_CAN_REACTIVATE_YOUR_ACCOUNT_AT_THE_FONT_COLOR_FFDF4C_PLAYNC_WEBPAGE_FONT_FONT_COLOR_6699FF_A_ACTION_URL_HTTPS_ID_PLAYNC_COM_ACCOUNT_DORMANT_INDEX_ID_PLAYNC_COM_ACCOUNT_DORMANT_INDEX_A_FONT_FONT_COLOR_FFDF4C_FONT; + + @ClientString(id = 5333, message = "Your account has been completely blocked due to account theft. For more information, go to the plaync Homepage (www.plaync.com) and contact us via the Support Center.") + public static SystemMessageId YOUR_ACCOUNT_HAS_BEEN_COMPLETELY_BLOCKED_DUE_TO_ACCOUNT_THEFT_FOR_MORE_INFORMATION_GO_TO_THE_FONT_COLOR_FFDF4C_PLAYNC_HOMEPAGE_FONT_FONT_COLOR_6699FF_A_ACTION_URL_HTTP_WWW_PLAYNC_COM_WWW_PLAYNC_COM_A_FONT_FONT_COLOR_FFDF4C_AND_CONTACT_US_VIA_THE_SUPPORT_CENTER_FONT; + + @ClientString(id = 5501, message = "$s1 has been killed by $s2.") + public static SystemMessageId S1_HAS_BEEN_KILLED_BY_S2; + + @ClientString(id = 5502, message = "$s1 has been killed by a monster.") + public static SystemMessageId S1_HAS_BEEN_KILLED_BY_A_MONSTER; + + @ClientString(id = 5503, message = "$s1 has died.") + public static SystemMessageId S1_HAS_DIED; + + @ClientString(id = 5504, message = "The outer castle gates of the village have been taken! All shall gather here!") + public static SystemMessageId THE_OUTER_CASTLE_GATES_OF_THE_VILLAGE_HAVE_BEEN_TAKEN_ALL_SHALL_GATHER_HERE; + + @ClientString(id = 5505, message = "A hidden path into the village has been discovered! All troops gather at the strondhold!") + public static SystemMessageId A_HIDDEN_PATH_INTO_THE_VILLAGE_HAS_BEEN_DISCOVERED_ALL_TROOPS_GATHER_AT_THE_STRONDHOLD; + + @ClientString(id = 5506, message = "The Inner Castle Gate has been opened! All troops, attack Turakan!") + public static SystemMessageId THE_INNER_CASTLE_GATE_HAS_BEEN_OPENED_ALL_TROOPS_ATTACK_TURAKAN; + + @ClientString(id = 5507, message = "What's that? Something has appeared at the center of the village!") + public static SystemMessageId WHAT_S_THAT_SOMETHING_HAS_APPEARED_AT_THE_CENTER_OF_THE_VILLAGE; + + @ClientString(id = 5508, message = "Engrave a seal on the Tower of Seals to take the Orc Castle!") + public static SystemMessageId ENGRAVE_A_SEAL_ON_THE_TOWER_OF_SEALS_TO_TAKE_THE_ORC_CASTLE; + + @ClientString(id = 5509, message = "Starting matching...") + public static SystemMessageId STARTING_MATCHING; + + @ClientString(id = 5510, message = "Matching canceled.") + public static SystemMessageId MATCHING_CANCELED; + + @ClientString(id = 5511, message = "Standing by...") + public static SystemMessageId STANDING_BY; + + @ClientString(id = 5512, message = "$s1 has chosen a class. ") + public static SystemMessageId S1_HAS_CHOSEN_A_CLASS; + + @ClientString(id = 5513, message = "The battle will soon begin.") + public static SystemMessageId THE_BATTLE_WILL_SOON_BEGIN; + + @ClientString(id = 5514, message = "Skill enhancement complete.") + public static SystemMessageId SKILL_ENHANCEMENT_COMPLETE; + + @ClientString(id = 5515, message = "The selected player is in the Arena lobby and cannot be invited to the party.") + public static SystemMessageId THE_SELECTED_PLAYER_IS_IN_THE_ARENA_LOBBY_AND_CANNOT_BE_INVITED_TO_THE_PARTY; + + @ClientString(id = 5516, message = "Users participating in Arena cannot be invited to a party.") + public static SystemMessageId USERS_PARTICIPATING_IN_ARENA_CANNOT_BE_INVITED_TO_A_PARTY; + + @ClientString(id = 5517, message = "This function is unavailable to use in Arena.") + public static SystemMessageId THIS_FUNCTION_IS_UNAVAILABLE_TO_USE_IN_ARENA; + + @ClientString(id = 5518, message = "User preparing for Arena battle cannot join a party.") + public static SystemMessageId USER_PREPARING_FOR_ARENA_BATTLE_CANNOT_JOIN_A_PARTY; + + @ClientString(id = 5519, message = "The user invited to the party is preparing for Arena battle, and the invitation failed.") + public static SystemMessageId THE_USER_INVITED_TO_THE_PARTY_IS_PREPARING_FOR_ARENA_BATTLE_AND_THE_INVITATION_FAILED; + + @ClientString(id = 5520, message = "You can no longer queue with that class.") + public static SystemMessageId YOU_CAN_NO_LONGER_QUEUE_WITH_THAT_CLASS; + + @ClientString(id = 5521, message = "Begin matchmaking.") + public static SystemMessageId BEGIN_MATCHMAKING; + + @ClientString(id = 5522, message = "Matchmaking has been canceled.") + public static SystemMessageId MATCHMAKING_HAS_BEEN_CANCELED; + + @ClientString(id = 5523, message = "A match was found.") + public static SystemMessageId A_MATCH_WAS_FOUND; + + @ClientString(id = 5524, message = "You are already in the queue.") + public static SystemMessageId YOU_ARE_ALREADY_IN_THE_QUEUE; + + @ClientString(id = 5525, message = "Up to 2 players per class can queue.") + public static SystemMessageId UP_TO_2_PLAYERS_PER_CLASS_CAN_QUEUE; + + @ClientString(id = 5526, message = "Matching will be canceled unless all the classes are confirmed within the set time.") + public static SystemMessageId MATCHING_WILL_BE_CANCELED_UNLESS_ALL_THE_CLASSES_ARE_CONFIRMED_WITHIN_THE_SET_TIME; + + @ClientString(id = 5527, message = "$s1 has confirmed the class.") + public static SystemMessageId S1_HAS_CONFIRMED_THE_CLASS; + + @ClientString(id = 5528, message = "Click here to enchant your skill!") + public static SystemMessageId CLICK_HERE_TO_ENCHANT_YOUR_SKILL; + + @ClientString(id = 5529, message = "Enhanced the $s1 skill.") + public static SystemMessageId ENHANCED_THE_S1_SKILL; + + @ClientString(id = 5530, message = "Reached the consecutive notifications limit.") + public static SystemMessageId REACHED_THE_CONSECUTIVE_NOTIFICATIONS_LIMIT; + + @ClientString(id = 5531, message = "$s1 is under attack.") + public static SystemMessageId S1_IS_UNDER_ATTACK; + + @ClientString(id = 5532, message = "$s1: Attacking $s2.") + public static SystemMessageId S1_ATTACKING_S2; + + @ClientString(id = 5533, message = "$s1: Watch out for $s2!") + public static SystemMessageId S1_WATCH_OUT_FOR_S2; + + @ClientString(id = 5534, message = "$s1: Protecting $s2.") + public static SystemMessageId S1_PROTECTING_S2; + + @ClientString(id = 5535, message = "$s1: Abandoning $s2.") + public static SystemMessageId S1_ABANDONING_S2; + + @ClientString(id = 5536, message = "$s1: Moving.") + public static SystemMessageId S1_MOVING; + + @ClientString(id = 5537, message = "$s1: Be careful!") + public static SystemMessageId S1_BE_CAREFUL; + + @ClientString(id = 5538, message = "You must be in a group to access the Group channel.") + public static SystemMessageId YOU_MUST_BE_IN_A_GROUP_TO_ACCESS_THE_GROUP_CHANNEL; + @ClientString(id = 6001, message = "The item has been successfully purchased.") public static SystemMessageId THE_ITEM_HAS_BEEN_SUCCESSFULLY_PURCHASED2; @@ -14197,6 +14677,18 @@ public final class SystemMessageId @ClientString(id = 6829, message = "You don't have any Beast Soulshots/Spiritshots. Please buy them at the shop.") public static SystemMessageId YOU_DON_T_HAVE_ANY_BEAST_SOULSHOTS_SPIRITSHOTS_PLEASE_BUY_THEM_AT_THE_SHOP; + @ClientString(id = 6830, message = "There are $s1 players in the qeue. Click on cancel to end the server connection.") + public static SystemMessageId THERE_ARE_S1_PLAYERS_IN_THE_QEUE_CLICK_ON_CANCEL_TO_END_THE_SERVER_CONNECTION; + + @ClientString(id = 6831, message = "Cannot request duels when participating in the Olympiad/Ceremony of Chaos.") + public static SystemMessageId CANNOT_REQUEST_DUELS_WHEN_PARTICIPATING_IN_THE_OLYMPIAD_CEREMONY_OF_CHAOS; + + @ClientString(id = 6832, message = "You cannot drop any more items in this zone. Please try again after picking up the item on the ground.") + public static SystemMessageId YOU_CANNOT_DROP_ANY_MORE_ITEMS_IN_THIS_ZONE_PLEASE_TRY_AGAIN_AFTER_PICKING_UP_THE_ITEM_ON_THE_GROUND; + + @ClientString(id = 6833, message = "The character has already been blocked.") + public static SystemMessageId THE_CHARACTER_HAS_ALREADY_BEEN_BLOCKED; + @ClientString(id = 7001, message = "Cannot proceed until the current dice roll is over.") public static SystemMessageId CANNOT_PROCEED_UNTIL_THE_CURRENT_DICE_ROLL_IS_OVER; @@ -14212,7 +14704,7 @@ public final class SystemMessageId @ClientString(id = 7005, message = "$c1 rolled the dice and got $s2 points.") public static SystemMessageId C1_ROLLED_THE_DICE_AND_GOT_S2_POINTS; - @ClientString(id = 7006, message = "$c1 rolled the highest with $s2 points and acquired the $s3%.") + @ClientString(id = 7006, message = "$c1 rolled the highest with $s2 points and acquired the $s3.") public static SystemMessageId C1_ROLLED_THE_HIGHEST_WITH_S2_POINTS_AND_ACQUIRED_THE_S3; @ClientString(id = 7007, message = "A party member is rolling the dice, so the party cannot be disbanded.") @@ -15203,7 +15695,7 @@ public final class SystemMessageId public static SystemMessageId S1_HAS_BECOME_YOUR_STUDENT; @ClientString(id = 7354, message = "$s1 day(s), $s2 hour(s), $s3 minute(s)") - public static SystemMessageId S1_DAY_S_S2_HOUR_S_S3_MINUTE_S; + public static SystemMessageId S1_DAY_S_S2_HOUR_S_S3_MINUTE_S_2; @ClientString(id = 7355, message = "Your student has achieved a goal so you are sending a reward.") public static SystemMessageId YOUR_STUDENT_HAS_ACHIEVED_A_GOAL_SO_YOU_ARE_SENDING_A_REWARD; diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 604e5728cd..bf85a9eec1 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -638,8 +638,8 @@ public class EnterWorld implements IClientIncomingPacket { activeChar.sendPacket(new ExWorldChatCnt(activeChar)); } - activeChar.sendPacket(new ExOneDayReceiveRewardList(activeChar)); - activeChar.sendPacket(ExConnectedTimeAndGettableReward.STATIC_PACKET); + activeChar.sendPacket(new ExConnectedTimeAndGettableReward(activeChar)); + activeChar.sendPacket(new ExOneDayReceiveRewardList(activeChar, true)); // Handle soulshots, disable all on EnterWorld activeChar.sendPacket(new ExAutoSoulShot(0, true, 0)); diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/RequestInzoneWaitingTime.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/RequestInzoneWaitingTime.java index 42bdbbdcdd..3bb1e3d444 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/RequestInzoneWaitingTime.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/RequestInzoneWaitingTime.java @@ -40,6 +40,6 @@ public class RequestInzoneWaitingTime implements IClientIncomingPacket { return; } - client.sendPacket(new ExInzoneWaiting(activeChar)); + client.sendPacket(new ExInzoneWaiting(activeChar, true)); } } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java index 037da6bf54..712d599e7d 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java @@ -18,14 +18,18 @@ package com.l2jmobius.gameserver.network.clientpackets; import static com.l2jmobius.gameserver.model.itemcontainer.Inventory.MAX_ADENA; +import java.util.Arrays; + import com.l2jmobius.Config; import com.l2jmobius.commons.network.PacketReader; +import com.l2jmobius.gameserver.data.xml.impl.EnsoulData; import com.l2jmobius.gameserver.datatables.ItemTable; import com.l2jmobius.gameserver.enums.AttributeType; import com.l2jmobius.gameserver.enums.PrivateStoreType; import com.l2jmobius.gameserver.model.TradeItem; import com.l2jmobius.gameserver.model.TradeList; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.ensoul.EnsoulOption; import com.l2jmobius.gameserver.model.items.L2Item; import com.l2jmobius.gameserver.model.zone.ZoneId; import com.l2jmobius.gameserver.network.L2GameClient; @@ -83,6 +87,18 @@ public final class SetPrivateStoreListBuy implements IClientIncomingPacket final int defenceEarth = packet.readH(); final int defenceHoly = packet.readH(); final int defenceDark = packet.readH(); + final int visualId = packet.readD(); + + final EnsoulOption[] soulCrystalOptions = new EnsoulOption[packet.readC()]; + for (int k = 0; k < soulCrystalOptions.length; k++) + { + soulCrystalOptions[k] = EnsoulData.getInstance().getOption(packet.readD()); + } + final EnsoulOption[] soulCrystalSpecialOptions = new EnsoulOption[packet.readC()]; + for (int k = 0; k < soulCrystalSpecialOptions.length; k++) + { + soulCrystalSpecialOptions[k] = EnsoulData.getInstance().getOption(packet.readD()); + } final TradeItem item = new TradeItem(template, cnt, price); item.setEnchant(enchantLevel); @@ -95,6 +111,9 @@ public final class SetPrivateStoreListBuy implements IClientIncomingPacket item.setElementDefAttr(AttributeType.EARTH, defenceEarth); item.setElementDefAttr(AttributeType.HOLY, defenceHoly); item.setElementDefAttr(AttributeType.DARK, defenceDark); + item.setVisualId(visualId); + item.setSoulCrystalOptions(Arrays.asList(soulCrystalOptions)); + item.setSoulCrystalSpecialOptions(Arrays.asList(soulCrystalSpecialOptions)); _items[i] = item; } return true; diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/attributechange/RequestChangeAttributeItem.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/attributechange/RequestChangeAttributeItem.java index eb4e92cdf9..ae8b7753d1 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/attributechange/RequestChangeAttributeItem.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/attributechange/RequestChangeAttributeItem.java @@ -85,6 +85,10 @@ public class RequestChangeAttributeItem implements IClientIncomingPacket activeChar.sendPacket(msg); InventoryUpdate iu = new InventoryUpdate(); iu.addModifiedItem(item); + for (L2ItemInstance i : activeChar.getInventory().getItemsByItemId(_consumeItemId)) + { + iu.addItem(i); + } activeChar.sendPacket(iu); activeChar.broadcastUserInfo(); activeChar.sendPacket(ExChangeAttributeOk.STATIC); diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java index bc5977368e..ac239f828f 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/dailymission/RequestOneDayRewardReceive.java @@ -24,6 +24,7 @@ import com.l2jmobius.gameserver.model.DailyMissionDataHolder; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.L2GameClient; import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; +import com.l2jmobius.gameserver.network.serverpackets.dailymission.ExConnectedTimeAndGettableReward; import com.l2jmobius.gameserver.network.serverpackets.dailymission.ExOneDayReceiveRewardList; /** @@ -31,12 +32,12 @@ import com.l2jmobius.gameserver.network.serverpackets.dailymission.ExOneDayRecei */ public class RequestOneDayRewardReceive implements IClientIncomingPacket { - private int _reward; + private int _id; @Override public boolean read(L2GameClient client, PacketReader packet) { - _reward = packet.readC(); + _id = packet.readH(); return true; } @@ -49,13 +50,14 @@ public class RequestOneDayRewardReceive implements IClientIncomingPacket return; } - final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_reward); - if (reward.isEmpty()) + final Collection reward = DailyMissionData.getInstance().getDailyMissionData(_id); + if ((reward == null) || reward.isEmpty()) { return; } reward.stream().filter(o -> o.isDisplayable(player)).forEach(r -> r.requestReward(player)); - player.sendPacket(new ExOneDayReceiveRewardList(player)); + player.sendPacket(new ExConnectedTimeAndGettableReward(player)); + player.sendPacket(new ExOneDayReceiveRewardList(player, true)); } } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/dailymission/RequestTodoList.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/dailymission/RequestTodoList.java index 11a8e5e05a..b54a659430 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/dailymission/RequestTodoList.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/dailymission/RequestTodoList.java @@ -29,13 +29,13 @@ public class RequestTodoList implements IClientIncomingPacket { private int _tab; @SuppressWarnings("unused") - private int _showAllLevels; + private boolean _showAllLevels; @Override public boolean read(L2GameClient client, PacketReader packet) { _tab = packet.readC(); // Daily Reward = 9, Event = 1, Instance Zone = 2 - _showAllLevels = packet.readC(); // Disabled = 0, Enabled = 1 + _showAllLevels = packet.readC() == 1; // Disabled = 0, Enabled = 1 return true; } @@ -60,9 +60,10 @@ public class RequestTodoList implements IClientIncomingPacket // player.sendPacket(new ExTodoListInzone()); // break; // } - case 9: + case 9: // Daily Rewards { - player.sendPacket(new ExOneDayReceiveRewardList(player)); + // Initial EW request should be false + player.sendPacket(new ExOneDayReceiveRewardList(player, true)); break; } } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/raidbossinfo/RequestRaidBossSpawnInfo.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/raidbossinfo/RequestRaidBossSpawnInfo.java new file mode 100644 index 0000000000..84775d784d --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/raidbossinfo/RequestRaidBossSpawnInfo.java @@ -0,0 +1,65 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.network.clientpackets.raidbossinfo; + +import java.util.ArrayList; +import java.util.List; + +import com.l2jmobius.commons.network.PacketReader; +import com.l2jmobius.gameserver.instancemanager.DBSpawnManager; +import com.l2jmobius.gameserver.instancemanager.DBSpawnManager.DBStatusType; +import com.l2jmobius.gameserver.instancemanager.GrandBossManager; +import com.l2jmobius.gameserver.network.L2GameClient; +import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; +import com.l2jmobius.gameserver.network.serverpackets.raidbossinfo.ExRaidBossSpawnInfo; + +/** + * @author Mobius + */ +public class RequestRaidBossSpawnInfo implements IClientIncomingPacket +{ + private final List _bossIds = new ArrayList<>(); + + @Override + public boolean read(L2GameClient client, PacketReader packet) + { + final int count = packet.readD(); + for (int i = 0; i < count; i++) + { + final int bossId = packet.readD(); + if (DBSpawnManager.getInstance().getNpcStatusId(bossId).equals(DBStatusType.ALIVE)) + { + _bossIds.add(bossId); + } + else if (GrandBossManager.getInstance().getBossStatus(bossId) == 0) + { + _bossIds.add(bossId); + } + /* + * else { String message = "Could not find spawn info for boss " + bossId; final L2NpcTemplate template = NpcData.getInstance().getTemplate(bossId); if (template != null) { message += " - " + template.getName() + "."; } else { message += " - NPC template not found."; } + * System.out.println(message); } + */ + } + return true; + } + + @Override + public void run(L2GameClient client) + { + client.sendPacket(new ExRaidBossSpawnInfo(_bossIds)); + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/raidbossinfo/RequestRaidServerInfo.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/raidbossinfo/RequestRaidServerInfo.java new file mode 100644 index 0000000000..5fa92bb4ab --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/clientpackets/raidbossinfo/RequestRaidServerInfo.java @@ -0,0 +1,39 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.network.clientpackets.raidbossinfo; + +import com.l2jmobius.commons.network.PacketReader; +import com.l2jmobius.gameserver.network.L2GameClient; +import com.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; + +/** + * @author Mobius + */ +public class RequestRaidServerInfo implements IClientIncomingPacket +{ + @Override + public boolean read(L2GameClient client, PacketReader packet) + { + // System.out.println("RequestRaidServerInfo"); + return true; + } + + @Override + public void run(L2GameClient client) + { + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/AbstractMessagePacket.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/AbstractMessagePacket.java index 4160658f49..106d602916 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/AbstractMessagePacket.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/AbstractMessagePacket.java @@ -76,6 +76,7 @@ public abstract class AbstractMessagePacket> } } + private static final byte TYPE_FACTION_NAME = 24; // c(short), faction id. // id 22 d (shared with 1-3,17,22 // id 21 h // id 20 c @@ -313,6 +314,12 @@ public abstract class AbstractMessagePacket> return (T) this; } + public final T addFactionName(int factionId) + { + append(new SMParam(TYPE_FACTION_NAME, factionId)); + return (T) this; + } + public final T addPopup(int target, int attacker, int damage) { append(new SMParam(TYPE_POPUP_ID, new int[] @@ -364,6 +371,7 @@ public abstract class AbstractMessagePacket> { case TYPE_ELEMENT_NAME: case TYPE_BYTE: + case TYPE_FACTION_NAME: { packet.writeC(param.getIntValue()); break; diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/CharInfo.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/CharInfo.java index 1a334fc6a0..55817534a9 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/CharInfo.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/CharInfo.java @@ -116,6 +116,7 @@ public class CharInfo implements IClientOutgoingPacket OutgoingPackets.CHAR_INFO.writeId(packet); final CeremonyOfChaosEvent event = _activeChar.getEvent(CeremonyOfChaosEvent.class); final CeremonyOfChaosMember cocPlayer = event != null ? event.getMember(_activeChar.getObjectId()) : null; + packet.writeC(0x00); // Grand Crusade packet.writeD(_x); // Confirmed packet.writeD(_y); // Confirmed packet.writeD(_z); // Confirmed diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/DropItem.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/DropItem.java index e71b29cd3f..73fa406dbd 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/DropItem.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/DropItem.java @@ -54,6 +54,10 @@ public class DropItem implements IClientOutgoingPacket packet.writeC(0x00); // packet.writeD(0x01); if above C == true (1) then packet.readD() + + packet.writeC(_item.getEnchantLevel()); // Grand Crusade + packet.writeC(_item.getAugmentation() != null ? 1 : 0); // Grand Crusade + packet.writeC(_item.getSpecialAbilities().size()); // Grand Crusade return true; } } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExInzoneWaiting.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExInzoneWaiting.java index 236eacb7ef..e56bfeecaa 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExInzoneWaiting.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExInzoneWaiting.java @@ -33,12 +33,14 @@ public class ExInzoneWaiting implements IClientOutgoingPacket { private final int _currentTemplateId; private final Map _instanceTimes; + private final boolean _sendByClient; - public ExInzoneWaiting(L2PcInstance activeChar) + public ExInzoneWaiting(L2PcInstance activeChar, boolean sendByClient) { final Instance instance = InstanceManager.getInstance().getPlayerInstance(activeChar, false); _currentTemplateId = ((instance != null) && (instance.getTemplateId() >= 0)) ? instance.getTemplateId() : -1; _instanceTimes = InstanceManager.getInstance().getAllInstanceTimes(activeChar); + _sendByClient = sendByClient; } @Override @@ -46,6 +48,7 @@ public class ExInzoneWaiting implements IClientOutgoingPacket { OutgoingPackets.EX_INZONE_WAITING_INFO.writeId(packet); + packet.writeC(_sendByClient ? 0x00 : 0x01); // Grand Crusade packet.writeD(_currentTemplateId); packet.writeD(_instanceTimes.size()); for (Entry entry : _instanceTimes.entrySet()) diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExPrivateStoreBuyingResult.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExPrivateStoreBuyingResult.java new file mode 100644 index 0000000000..61ae3e37d1 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExPrivateStoreBuyingResult.java @@ -0,0 +1,44 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.network.serverpackets; + +import com.l2jmobius.commons.network.PacketWriter; +import com.l2jmobius.gameserver.network.OutgoingPackets; + +public class ExPrivateStoreBuyingResult implements IClientOutgoingPacket +{ + private final int _objectId; + private final long _count; + private final String _seller; + + public ExPrivateStoreBuyingResult(int objectId, long count, String seller) + { + _objectId = objectId; + _count = count; + _seller = seller; + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_PRIVATE_STORE_BUYING_RESULT.writeId(packet); + packet.writeD(_objectId); + packet.writeQ(_count); + packet.writeS(_seller); + return true; + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExPrivateStoreSellingResult.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExPrivateStoreSellingResult.java new file mode 100644 index 0000000000..8d587b215f --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExPrivateStoreSellingResult.java @@ -0,0 +1,44 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.network.serverpackets; + +import com.l2jmobius.commons.network.PacketWriter; +import com.l2jmobius.gameserver.network.OutgoingPackets; + +public class ExPrivateStoreSellingResult implements IClientOutgoingPacket +{ + private final int _objectId; + private final long _count; + private final String _buyer; + + public ExPrivateStoreSellingResult(int objectId, long count, String buyer) + { + _objectId = objectId; + _count = count; + _buyer = buyer; + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_PRIVATE_STORE_SELLING_RESULT.writeId(packet); + packet.writeD(_objectId); + packet.writeQ(_count); + packet.writeS(_buyer); + return true; + } +} \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExShowCastleInfo.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExShowCastleInfo.java index 0616962b58..ef264eb715 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExShowCastleInfo.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExShowCastleInfo.java @@ -34,7 +34,6 @@ public class ExShowCastleInfo implements IClientOutgoingPacket private ExShowCastleInfo() { - } @Override @@ -65,6 +64,9 @@ public class ExShowCastleInfo implements IClientOutgoingPacket } packet.writeD(castle.getTaxPercent(TaxType.BUY)); packet.writeD((int) (castle.getSiege().getSiegeDate().getTimeInMillis() / 1000)); + + packet.writeC(castle.getSiege().isInProgress() ? 0x01 : 0x00); // Grand Crusade + packet.writeC(castle.getSide().ordinal()); // Grand Crusade } return true; } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExShowSeedMapInfo.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExShowSeedMapInfo.java index 19fdbdaf4c..ce1cbff7e8 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExShowSeedMapInfo.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/ExShowSeedMapInfo.java @@ -36,15 +36,11 @@ public class ExShowSeedMapInfo implements IClientOutgoingPacket packet.writeD(2); // seed count // Seed of Destruction - packet.writeD(-246857); // x coord - packet.writeD(251960); // y coord - packet.writeD(4331); // z coord + packet.writeD(1); // id 1? Grand Crusade packet.writeD(2770 + GraciaSeedsManager.getInstance().getSoDState()); // sys msg id // Seed of Infinity - packet.writeD(-213770); // x coord - packet.writeD(210760); // y coord - packet.writeD(4400); // z coord + packet.writeD(2); // id 2? Grand Crusade // Manager not implemented yet packet.writeD(2766); // sys msg id return true; diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java index 64ac2bc55c..37c2af813a 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java @@ -74,6 +74,7 @@ public class FakePlayerInfo implements IClientOutgoingPacket public boolean write(PacketWriter packet) { OutgoingPackets.CHAR_INFO.writeId(packet); + packet.writeC(0x00); // Grand Crusade packet.writeD(_x); packet.writeD(_y); packet.writeD(_z); diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/MultiSellList.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/MultiSellList.java index 84aa9d3629..2be6f8c06e 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/MultiSellList.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/MultiSellList.java @@ -62,6 +62,7 @@ public final class MultiSellList extends AbstractItemPacket packet.writeD(_finished ? 0x01 : 0x00); // finished packet.writeD(PAGE_SIZE); // size of pages packet.writeD(_size); // list length + packet.writeC(0x00); // Grand Crusade packet.writeC(_list.isChanceMultisell() ? 0x01 : 0x00); // new multisell window packet.writeD(0x20); // Helios - Always 32 diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/MyTargetSelected.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/MyTargetSelected.java index e31f5d0654..27db466c99 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/MyTargetSelected.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/MyTargetSelected.java @@ -46,6 +46,7 @@ public class MyTargetSelected implements IClientOutgoingPacket { OutgoingPackets.MY_TARGET_SELECTED.writeId(packet); + packet.writeD(0x01); // Grand Crusade packet.writeD(_objectId); packet.writeH(_color); packet.writeD(0x00); diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/SpawnItem.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/SpawnItem.java index 8b2215fbf1..f79b842efb 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/SpawnItem.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/SpawnItem.java @@ -28,6 +28,9 @@ public final class SpawnItem implements IClientOutgoingPacket private final int _x, _y, _z; private int _stackable; private long _count; + private int _enchantLevl; + private int _isAugmented; + private int _saCount; public SpawnItem(L2Object obj) { @@ -42,12 +45,18 @@ public final class SpawnItem implements IClientOutgoingPacket _itemId = item.getDisplayId(); _stackable = item.isStackable() ? 0x01 : 0x00; _count = item.getCount(); + _enchantLevl = item.getEnchantLevel(); + _isAugmented = item.getAugmentation() != null ? 1 : 0; + _saCount = item.getSpecialAbilities().size(); } else { _itemId = obj.getPoly().getPolyId(); _stackable = 0; _count = 1; + _enchantLevl = 0; + _isAugmented = 0; + _saCount = 0; } } @@ -66,6 +75,10 @@ public final class SpawnItem implements IClientOutgoingPacket packet.writeD(_stackable); packet.writeQ(_count); packet.writeD(0x00); // c2 + + packet.writeC(_enchantLevl); // Grand Crusade + packet.writeC(_isAugmented); // Grand Crusade + packet.writeC(_saCount); // Grand Crusade return true; } } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/TutorialShowQuestionMark.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/TutorialShowQuestionMark.java index 5fd2636bd2..7f2312472b 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/TutorialShowQuestionMark.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/TutorialShowQuestionMark.java @@ -24,12 +24,12 @@ import com.l2jmobius.gameserver.network.OutgoingPackets; */ public final class TutorialShowQuestionMark implements IClientOutgoingPacket { - private final int _questid; // quest id? - private final int _condition; // cond? + private final int _questId; + private final int _condition; - public TutorialShowQuestionMark(int questid, int condition) + public TutorialShowQuestionMark(int questId, int condition) { - _questid = questid; + _questId = questId; _condition = condition; } @@ -39,7 +39,7 @@ public final class TutorialShowQuestionMark implements IClientOutgoingPacket OutgoingPackets.TUTORIAL_SHOW_QUESTION_MARK.writeId(packet); packet.writeC(_condition); - packet.writeD(_questid); + packet.writeD(_questId); return true; } } \ No newline at end of file diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/UserInfo.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/UserInfo.java index 8ece0327c1..b91fbda6c7 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/UserInfo.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/UserInfo.java @@ -20,6 +20,7 @@ import com.l2jmobius.Config; import com.l2jmobius.commons.network.PacketWriter; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.enums.UserInfoType; +import com.l2jmobius.gameserver.instancemanager.CursedWeaponsManager; import com.l2jmobius.gameserver.model.L2Clan; import com.l2jmobius.gameserver.model.L2Party; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; @@ -301,7 +302,7 @@ public class UserInfo extends AbstractMaskPacket packet.writeH(22); packet.writeC(_activeChar.getPvpFlag()); packet.writeD(_activeChar.getReputation()); // Reputation - packet.writeC(0x00); + packet.writeC(_activeChar.isNoble() ? 1 : 0); packet.writeC(_activeChar.isHero() || (_activeChar.isGM() && Config.GM_HERO_AURA) ? 1 : 0); packet.writeC(_activeChar.getPledgeClass()); packet.writeD(_activeChar.getPkKills()); @@ -313,7 +314,7 @@ public class UserInfo extends AbstractMaskPacket if (containsMask(UserInfoType.VITA_FAME)) { packet.writeH(15); - packet.writeD(0x00); + packet.writeD(_activeChar.getVitalityPoints()); packet.writeC(0x00); // Vita Bonus packet.writeD(_activeChar.getFame()); packet.writeD(_activeChar.getRaidbossPoints()); @@ -351,7 +352,7 @@ public class UserInfo extends AbstractMaskPacket packet.writeH(0x00); packet.writeH(0x00); packet.writeH(_activeChar.getInventoryLimit()); - packet.writeC(0); + packet.writeC(_activeChar.isCursedWeaponEquipped() ? CursedWeaponsManager.getInstance().getLevel(_activeChar.getCursedWeaponEquippedId()) : 0); } if (containsMask(UserInfoType.UNK_3)) diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/dailymission/ExConnectedTimeAndGettableReward.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/dailymission/ExConnectedTimeAndGettableReward.java index bb394d05f6..53d5518773 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/dailymission/ExConnectedTimeAndGettableReward.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/dailymission/ExConnectedTimeAndGettableReward.java @@ -18,6 +18,7 @@ package com.l2jmobius.gameserver.network.serverpackets.dailymission; import com.l2jmobius.commons.network.PacketWriter; import com.l2jmobius.gameserver.data.xml.impl.DailyMissionData; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.OutgoingPackets; import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; @@ -26,7 +27,12 @@ import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; */ public class ExConnectedTimeAndGettableReward implements IClientOutgoingPacket { - public static final ExConnectedTimeAndGettableReward STATIC_PACKET = new ExConnectedTimeAndGettableReward(); + private final int _oneDayRewardAvailableCount; + + public ExConnectedTimeAndGettableReward(L2PcInstance player) + { + _oneDayRewardAvailableCount = DailyMissionData.getInstance().getDailyMissionData(player).size(); + } @Override public boolean write(PacketWriter packet) @@ -37,10 +43,18 @@ public class ExConnectedTimeAndGettableReward implements IClientOutgoingPacket } OutgoingPackets.EX_CONNECTED_TIME_AND_GETTABLE_REWARD.writeId(packet); - for (int i = 0; i < 16; i++) // TODO : Find what the hell it is - { - packet.writeD(0x00); - } + packet.writeD(0x00); + packet.writeD(_oneDayRewardAvailableCount); + packet.writeD(0x00); + packet.writeD(0x00); + packet.writeD(0x00); + packet.writeD(0x00); + packet.writeD(0x00); + packet.writeD(0x00); + packet.writeD(0x00); + packet.writeD(0x00); + packet.writeD(0x00); + packet.writeD(0x00); return true; } } diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/dailymission/ExOneDayReceiveRewardList.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/dailymission/ExOneDayReceiveRewardList.java index b0ff91ace9..4a65398244 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/dailymission/ExOneDayReceiveRewardList.java +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/dailymission/ExOneDayReceiveRewardList.java @@ -18,6 +18,8 @@ package com.l2jmobius.gameserver.network.serverpackets.dailymission; import java.time.LocalDate; import java.util.Collection; +import java.util.Collections; +import java.util.function.Function; import com.l2jmobius.commons.network.PacketWriter; import com.l2jmobius.gameserver.data.xml.impl.DailyMissionData; @@ -25,6 +27,7 @@ import com.l2jmobius.gameserver.model.DailyMissionDataHolder; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.network.OutgoingPackets; import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; +import com.l2jmobius.gameserver.util.cron4j.Predictor; /** * @author Sdw @@ -33,11 +36,19 @@ public class ExOneDayReceiveRewardList implements IClientOutgoingPacket { final L2PcInstance _player; private final Collection _rewards; + private final static Function _remainTime = pattern -> (new Predictor(pattern).nextMatchingTime() - System.currentTimeMillis()) / 1000L; - public ExOneDayReceiveRewardList(L2PcInstance player) + private final long _dayRemainTime; + private final long _weekRemainTime; + private final long _monthRemainTime; + + public ExOneDayReceiveRewardList(L2PcInstance player, boolean sendRewards) { _player = player; - _rewards = DailyMissionData.getInstance().getDailyMissionData(player); + _rewards = sendRewards ? DailyMissionData.getInstance().getDailyMissionData(player) : Collections.emptyList(); + _dayRemainTime = _remainTime.apply("30 6 * * *"); + _weekRemainTime = _remainTime.apply("30 6 * * 1"); + _monthRemainTime = _remainTime.apply("30 6 1 * *"); } @Override @@ -50,7 +61,10 @@ public class ExOneDayReceiveRewardList implements IClientOutgoingPacket OutgoingPackets.EX_ONE_DAY_RECEIVE_REWARD_LIST.writeId(packet); - packet.writeC(0x23); + packet.writeD((int) _dayRemainTime); + packet.writeD((int) _weekRemainTime); + packet.writeD((int) _monthRemainTime); + packet.writeC(0x17); packet.writeD(_player.getClassId().getId()); packet.writeD(LocalDate.now().getDayOfWeek().ordinal()); // Day of week packet.writeD(_rewards.size()); @@ -58,8 +72,8 @@ public class ExOneDayReceiveRewardList implements IClientOutgoingPacket { packet.writeH(reward.getId()); packet.writeC(reward.getStatus(_player)); - packet.writeC(reward.getRequiredCompletions() > 0 ? 0x01 : 0x00); - packet.writeD(reward.getProgress(_player)); + packet.writeC(reward.getRequiredCompletions() > 1 ? 0x01 : 0x00); + packet.writeD(Math.min(reward.getProgress(_player), _player.getLevel())); packet.writeD(reward.getRequiredCompletions()); } return true; diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidBossSpawnInfo.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidBossSpawnInfo.java new file mode 100644 index 0000000000..c3faf2cf5b --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidBossSpawnInfo.java @@ -0,0 +1,50 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.network.serverpackets.raidbossinfo; + +import java.util.List; + +import com.l2jmobius.commons.network.PacketWriter; +import com.l2jmobius.gameserver.network.OutgoingPackets; +import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; + +/** + * @author Mobius + */ +public class ExRaidBossSpawnInfo implements IClientOutgoingPacket +{ + private final List _bossIds; + + public ExRaidBossSpawnInfo(List bossIds) + { + _bossIds = bossIds; + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_RAID_BOSS_SPAWN_INFO.writeId(packet); + + packet.writeD(_bossIds.size()); // alive count + for (int id : _bossIds) // alive ids + { + packet.writeD(id); + } + + return true; + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidServerInfo.java b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidServerInfo.java new file mode 100644 index 0000000000..9e64c52668 --- /dev/null +++ b/L2J_Mobius_Classic_2.0_Zaken/java/com/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidServerInfo.java @@ -0,0 +1,38 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.l2jmobius.gameserver.network.serverpackets.raidbossinfo; + +import com.l2jmobius.commons.network.PacketWriter; +import com.l2jmobius.gameserver.network.OutgoingPackets; +import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; + +/** + * @author Mobius + */ +public class ExRaidServerInfo implements IClientOutgoingPacket +{ + public ExRaidServerInfo() + { + } + + @Override + public boolean write(PacketWriter packet) + { + OutgoingPackets.EX_RAID_SERVER_INFO.writeId(packet); + return true; + } +} diff --git a/L2J_Mobius_Classic_2.0_Zaken/launcher/Gameserver.launch b/L2J_Mobius_Classic_2.0_Zaken/launcher/Gameserver.launch index 16116bb966..58921abb29 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/launcher/Gameserver.launch +++ b/L2J_Mobius_Classic_2.0_Zaken/launcher/Gameserver.launch @@ -1,18 +1,18 @@ - + - + - - + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/launcher/Loginserver.launch b/L2J_Mobius_Classic_2.0_Zaken/launcher/Loginserver.launch index 4ec891b090..87783448c1 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/launcher/Loginserver.launch +++ b/L2J_Mobius_Classic_2.0_Zaken/launcher/Loginserver.launch @@ -1,19 +1,19 @@ - + - + - - + + diff --git a/L2J_Mobius_Classic_2.0_Zaken/readme.txt b/L2J_Mobius_Classic_2.0_Zaken/readme.txt index 0ce19a0cd8..4689e39e8d 100644 --- a/L2J_Mobius_Classic_2.0_Zaken/readme.txt +++ b/L2J_Mobius_Classic_2.0_Zaken/readme.txt @@ -1,9 +1,7 @@ L2J-Mobius Classic 2.0 -Client: https://drive.google.com/file/d/0B0Pl9EOrFIjuSVNPXzRpRFRZWlk -Mirror: https://mega.nz/#!0lcGQaaI!tuZUFcQS0gVPjzAIPquznOehLqJq0BR-5rm3BXxn6pg - -Geodata: http://www.mediafire.com/file/r8ryrhw7d5p858g/mobius_geodata_saviors_l2d.zip +Client: https://drive.google.com/uc?id=1i8udOtNak2ANythwdPYY3sVdawOxuyBo&export=download +Geodata: http://www.mediafire.com/file/98mbrlontaoaxou/mobius_geodata_zaken_l2d.zip Saviors: @@ -52,6 +50,14 @@ Saviors: -Attendance rewards -Various retail Classic events +Zaken: +-TODO: Parse item names from client +-TODO: Parse skill names from client +-TODO: Parse NPC names from client +-TODO: Add raidbosses according to map +-TODO: Zaken boss +-TODO: Newbie quest changes + Customs: -Newbie Helper NPC location info -Newbie Helper buff support until 40 level