From c532b6a0b56b3d211f95d49c8f49ebd0519b026b Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 20 Oct 2022 21:42:01 +0000 Subject: [PATCH] Initial changes. --- L2J_Mobius_Essence_6.3_Crusader/.project | 2 +- L2J_Mobius_Essence_6.3_Crusader/build.xml | 8 +- .../dist/game/config/Server.ini | 4 +- .../gameserver/network/ExIncomingPackets.java | 424 +++++++++--------- .../gameserver/network/OutgoingPackets.java | 37 +- .../RequestClanAskJoinByName.java | 2 +- .../clientpackets/RequestJoinPledge.java | 2 +- .../RequestPurchaseLimitShopItemBuy.java | 3 + .../newhenna/RequestNewHennaUnequipInfo.java | 85 ++++ .../variation/RequestRefine.java | 12 +- .../network/serverpackets/AskJoinPledge.java | 12 +- .../network/serverpackets/DropItem.java | 6 +- .../serverpackets/GMViewCharacterInfo.java | 8 +- .../serverpackets/HennaItemRemoveInfo.java | 2 +- .../serverpackets/ShortCutRegister.java | 7 +- .../network/serverpackets/SpawnItem.java | 1 + .../collection/ExCollectionRegister.java | 3 +- .../huntingzones/TimedHuntingZoneList.java | 10 +- .../serverpackets/newhenna/NewHennaList.java | 2 + .../newhenna/NewHennaPotenEnchant.java | 2 + .../raidbossinfo/ExRaidBossSpawnInfo.java | 3 +- .../launcher/Gameserver.launch | 8 +- .../launcher/Loginserver.launch | 8 +- L2J_Mobius_Essence_6.3_Crusader/readme.txt | 11 +- 24 files changed, 413 insertions(+), 249 deletions(-) create mode 100644 L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/newhenna/RequestNewHennaUnequipInfo.java diff --git a/L2J_Mobius_Essence_6.3_Crusader/.project b/L2J_Mobius_Essence_6.3_Crusader/.project index e0085a6eed..213cdb615c 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/.project +++ b/L2J_Mobius_Essence_6.3_Crusader/.project @@ -1,6 +1,6 @@ - L2J_Mobius_Essence_6.2_Vanguard + L2J_Mobius_Essence_6.3_Crusader diff --git a/L2J_Mobius_Essence_6.3_Crusader/build.xml b/L2J_Mobius_Essence_6.3_Crusader/build.xml index 3778791529..add5a5b69b 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/build.xml +++ b/L2J_Mobius_Essence_6.3_Crusader/build.xml @@ -1,6 +1,6 @@ - + This file is part of the L2J Mobius project. @@ -134,15 +134,15 @@ - + - + - + diff --git a/L2J_Mobius_Essence_6.3_Crusader/dist/game/config/Server.ini b/L2J_Mobius_Essence_6.3_Crusader/dist/game/config/Server.ini index 6157257325..1988e55461 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/dist/game/config/Server.ini +++ b/L2J_Mobius_Essence_6.3_Crusader/dist/game/config/Server.ini @@ -101,8 +101,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! -# Vanguard: 362 -AllowedProtocolRevisions = 362 +# Crusader: 388 +AllowedProtocolRevisions = 388 # Displays server type next to the server name on character selection. # Notes: diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java index 3930b938b0..f03dc429c2 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/ExIncomingPackets.java @@ -129,6 +129,7 @@ import org.l2jmobius.gameserver.network.clientpackets.newhenna.RequestNewHennaLi import org.l2jmobius.gameserver.network.clientpackets.newhenna.RequestNewHennaPotenEnchant; import org.l2jmobius.gameserver.network.clientpackets.newhenna.RequestNewHennaPotenSelect; import org.l2jmobius.gameserver.network.clientpackets.newhenna.RequestNewHennaUnequip; +import org.l2jmobius.gameserver.network.clientpackets.newhenna.RequestNewHennaUnequipInfo; import org.l2jmobius.gameserver.network.clientpackets.pet.ExEvolvePet; import org.l2jmobius.gameserver.network.clientpackets.pet.ExPetEquipItem; import org.l2jmobius.gameserver.network.clientpackets.pet.ExPetUnequipItem; @@ -605,211 +606,232 @@ public enum ExIncomingPackets implements IIncomingPackets EX_GACHA_SHOP_GACHA_ITEM(0x17E, null, ConnectionState.IN_GAME), EX_TIME_RESTRICT_FIELD_LIST(0x17F, ExTimedHuntingZoneList::new, ConnectionState.IN_GAME), EX_TIME_RESTRICT_FIELD_USER_ENTER(0x180, ExTimedHuntingZoneEnter::new, ConnectionState.IN_GAME), - EX_RANKING_CHAR_INFO(0x181, RequestRankingCharInfo::new, ConnectionState.IN_GAME), - EX_RANKING_CHAR_HISTORY(0x182, null, ConnectionState.IN_GAME), - EX_RANKING_CHAR_RANKERS(0x183, RequestRankingCharRankers::new, ConnectionState.IN_GAME), - EX_RANKING_CHAR_SPAWN_BUFFZONE_NPC(0x184, RequestExRankingCharSpawnBuffzoneNpc::new, ConnectionState.IN_GAME), - EX_RANKING_CHAR_BUFFZONE_NPC_POSITION(0x185, RequestExRankingCharBuffzoneNpcPosition::new, ConnectionState.IN_GAME), - EX_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x186, null, ConnectionState.IN_GAME), - EX_MERCENARY_CASTLEWAR_CASTLE_INFO(0x187, ExMCWCastleInfo::new, ConnectionState.IN_GAME), - EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_INFO(0x188, null, ConnectionState.IN_GAME), - EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x189, null, ConnectionState.IN_GAME), - EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_DEFENDER_LIST(0x18A, null, ConnectionState.IN_GAME), - EX_PLEDGE_MERCENARY_MEMBER_LIST(0x18B, null, ConnectionState.IN_GAME), - EX_PLEDGE_MERCENARY_MEMBER_JOIN(0x18C, null, ConnectionState.IN_GAME), - EX_PVP_BOOK_LIST(0x18D, ExPvpBookList::new, ConnectionState.IN_GAME), - EX_PVPBOOK_KILLER_LOCATION(0x18E, null, ConnectionState.IN_GAME), - EX_PVPBOOK_TELEPORT_TO_KILLER(0x18F, null, ConnectionState.IN_GAME), - EX_LETTER_COLLECTOR_TAKE_REWARD(0x190, ExLetterCollectorTakeReward::new, ConnectionState.IN_GAME), - EX_SET_STATUS_BONUS(0x191, ExSetStatusBonus::new, ConnectionState.IN_GAME), - EX_RESET_STATUS_BONUS(0x192, ExResetStatusBonus::new, ConnectionState.IN_GAME), - EX_OLYMPIAD_MY_RANKING_INFO(0x193, RequestOlympiadMyRankingInfo::new, ConnectionState.IN_GAME), - EX_OLYMPIAD_RANKING_INFO(0x194, RequestOlympiadRankingInfo::new, ConnectionState.IN_GAME), - EX_OLYMPIAD_HERO_AND_LEGEND_INFO(0x195, RequestOlympiadHeroAndLegendInfo::new, ConnectionState.IN_GAME), - EX_CASTLEWAR_OBSERVER_START(0x196, null, ConnectionState.IN_GAME), - EX_RAID_TELEPORT_INFO(0x197, RequestRaidTeleportInfo::new, ConnectionState.IN_GAME), - EX_TELEPORT_TO_RAID_POSITION(0x198, ExTeleportToRaidPosition::new, ConnectionState.IN_GAME), - EX_CRAFT_EXTRACT(0x199, ExRequestRandomCraftExtract::new, ConnectionState.IN_GAME), - EX_CRAFT_RANDOM_INFO(0x19A, ExRequestRandomCraftInfo::new, ConnectionState.IN_GAME), - EX_CRAFT_RANDOM_LOCK_SLOTEX_CRAFT_RANDOM_INFO(0x19B, ExRequestRandomCraftLockSlot::new, ConnectionState.IN_GAME), - EX_CRAFT_RANDOM_REFRESH(0x19C, ExRequestRandomCraftRefresh::new, ConnectionState.IN_GAME), - EX_CRAFT_RANDOM_MAKE(0x19D, ExRequestRandomCraftMake::new, ConnectionState.IN_GAME), - EX_MULTI_SELL_LIST(0x19E, null, ConnectionState.IN_GAME), - EX_SAVE_ITEM_ANNOUNCE_SETTING(0x19F, ExSaveItemAnnounceSetting::new, ConnectionState.IN_GAME), - EX_OLYMPIAD_UI(0x1A0, null, ConnectionState.IN_GAME), + EX_TIME_RESTRICT_FIELD_USER_LEAVE(0x181, null, ConnectionState.IN_GAME), + EX_RANKING_CHAR_INFO(0x182, RequestRankingCharInfo::new, ConnectionState.IN_GAME), + EX_RANKING_CHAR_HISTORY(0x183, null, ConnectionState.IN_GAME), + EX_RANKING_CHAR_RANKERS(0x184, RequestRankingCharRankers::new, ConnectionState.IN_GAME), + EX_RANKING_CHAR_SPAWN_BUFFZONE_NPC(0x185, RequestExRankingCharSpawnBuffzoneNpc::new, ConnectionState.IN_GAME), + EX_RANKING_CHAR_BUFFZONE_NPC_POSITION(0x186, RequestExRankingCharBuffzoneNpcPosition::new, ConnectionState.IN_GAME), + EX_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x187, null, ConnectionState.IN_GAME), + EX_MERCENARY_CASTLEWAR_CASTLE_INFO(0x188, ExMCWCastleInfo::new, ConnectionState.IN_GAME), + EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_INFO(0x189, null, ConnectionState.IN_GAME), + EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x18A, null, ConnectionState.IN_GAME), + EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_DEFENDER_LIST(0x18B, null, ConnectionState.IN_GAME), + EX_PLEDGE_MERCENARY_MEMBER_LIST(0x18C, null, ConnectionState.IN_GAME), + EX_PLEDGE_MERCENARY_MEMBER_JOIN(0x18D, null, ConnectionState.IN_GAME), + EX_PVP_BOOK_LIST(0x18E, ExPvpBookList::new, ConnectionState.IN_GAME), + EX_PVPBOOK_KILLER_LOCATION(0x18F, null, ConnectionState.IN_GAME), + EX_PVPBOOK_TELEPORT_TO_KILLER(0x190, null, ConnectionState.IN_GAME), + EX_LETTER_COLLECTOR_TAKE_REWARD(0x191, ExLetterCollectorTakeReward::new, ConnectionState.IN_GAME), + EX_SET_STATUS_BONUS(0x192, ExSetStatusBonus::new, ConnectionState.IN_GAME), + EX_RESET_STATUS_BONUS(0x193, ExResetStatusBonus::new, ConnectionState.IN_GAME), + EX_OLYMPIAD_MY_RANKING_INFO(0x194, RequestOlympiadMyRankingInfo::new, ConnectionState.IN_GAME), + EX_OLYMPIAD_RANKING_INFO(0x195, RequestOlympiadRankingInfo::new, ConnectionState.IN_GAME), + EX_OLYMPIAD_HERO_AND_LEGEND_INFO(0x196, RequestOlympiadHeroAndLegendInfo::new, ConnectionState.IN_GAME), + EX_CASTLEWAR_OBSERVER_START(0x197, null, ConnectionState.IN_GAME), + EX_RAID_TELEPORT_INFO(0x198, RequestRaidTeleportInfo::new, ConnectionState.IN_GAME), + EX_TELEPORT_TO_RAID_POSITION(0x199, ExTeleportToRaidPosition::new, ConnectionState.IN_GAME), + EX_CRAFT_EXTRACT(0x19A, ExRequestRandomCraftExtract::new, ConnectionState.IN_GAME), + EX_CRAFT_RANDOM_INFO(0x19B, ExRequestRandomCraftInfo::new, ConnectionState.IN_GAME), + EX_CRAFT_RANDOM_LOCK_SLOTEX_CRAFT_RANDOM_INFO(0x19C, ExRequestRandomCraftLockSlot::new, ConnectionState.IN_GAME), + EX_CRAFT_RANDOM_REFRESH(0x19D, ExRequestRandomCraftRefresh::new, ConnectionState.IN_GAME), + EX_CRAFT_RANDOM_MAKE(0x19E, ExRequestRandomCraftMake::new, ConnectionState.IN_GAME), + EX_MULTI_SELL_LIST(0x19F, null, ConnectionState.IN_GAME), + EX_SAVE_ITEM_ANNOUNCE_SETTING(0x1A0, ExSaveItemAnnounceSetting::new, ConnectionState.IN_GAME), + EX_OLYMPIAD_UI(0x1A1, null, ConnectionState.IN_GAME), // 270 - EX_SHARED_POSITION_SHARING_UI(0x1A1, ExRequestSharingLocationUi::new, ConnectionState.IN_GAME), - EX_SHARED_POSITION_TELEPORT_UI(0x1A2, ExRequestSharedLocationTeleportUi::new, ConnectionState.IN_GAME), - EX_SHARED_POSITION_TELEPORT(0x1A3, ExRequestSharedLocationTeleport::new, ConnectionState.IN_GAME), - EX_AUTH_RECONNECT(0x1A4, null, ConnectionState.IN_GAME), - EX_PET_EQUIP_ITEM(0x1A5, ExPetEquipItem::new, ConnectionState.IN_GAME), - EX_PET_UNEQUIP_ITEM(0x1A6, ExPetUnequipItem::new, ConnectionState.IN_GAME), - EX_SHOW_HOMUNCULUS_INFO(0x1A7, null, ConnectionState.IN_GAME), - EX_HOMUNCULUS_CREATE_START(0x1A8, null, ConnectionState.IN_GAME), - EX_HOMUNCULUS_INSERT(0x1A9, null, ConnectionState.IN_GAME), - EX_HOMUNCULUS_SUMMON(0x1AA, null, ConnectionState.IN_GAME), - EX_DELETE_HOMUNCULUS_DATA(0x1AB, null, ConnectionState.IN_GAME), - EX_REQUEST_ACTIVATE_HOMUNCULUS(0x1AC, null, ConnectionState.IN_GAME), - EX_HOMUNCULUS_GET_ENCHANT_POINT(0x1AD, null, ConnectionState.IN_GAME), - EX_HOMUNCULUS_INIT_POINT(0x1AE, null, ConnectionState.IN_GAME), - EX_EVOLVE_PET(0x1AF, ExEvolvePet::new, ConnectionState.IN_GAME), - EX_ENCHANT_HOMUNCULUS_SKILL(0x1B0, null, ConnectionState.IN_GAME), - EX_HOMUNCULUS_ENCHANT_EXP(0x1B1, null, ConnectionState.IN_GAME), - EX_TELEPORT_FAVORITES_LIST(0x1B2, ExRequestTeleportFavoriteList::new, ConnectionState.IN_GAME), - EX_TELEPORT_FAVORITES_UI_TOGGLE(0x1B3, ExRequestTeleportFavoritesUIToggle::new, ConnectionState.IN_GAME), - EX_TELEPORT_FAVORITES_ADD_DEL(0x1B4, ExRequestTeleportFavoritesAddDel::new, ConnectionState.IN_GAME), - EX_ANTIBOT(0x1B5, null, ConnectionState.IN_GAME), - EX_DPSVR(0x1B6, null, ConnectionState.IN_GAME), - EX_TENPROTECT_DECRYPT_ERROR(0x1B7, null, ConnectionState.IN_GAME), - EX_NET_LATENCY(0x1B8, null, ConnectionState.IN_GAME), - EX_MABLE_GAME_OPEN(0x1B9, null, ConnectionState.IN_GAME), - EX_MABLE_GAME_ROLL_DICE(0x1BA, null, ConnectionState.IN_GAME), - EX_MABLE_GAME_POPUP_OK(0x1BB, null, ConnectionState.IN_GAME), - EX_MABLE_GAME_RESET(0x1BC, null, ConnectionState.IN_GAME), - EX_MABLE_GAME_CLOSE(0x1BD, null, ConnectionState.IN_GAME), - EX_RETURN_TO_ORIGIN(0x1BE, null, ConnectionState.IN_GAME), - EX_PK_PENALTY_LIST(0x1BF, null, ConnectionState.IN_GAME), - EX_PK_PENALTY_LIST_ONLY_LOC(0x1C0, null, ConnectionState.IN_GAME), - EX_BLESS_OPTION_PUT_ITEM(0x1C1, RequestBlessOptionPutItem::new, ConnectionState.IN_GAME), - EX_BLESS_OPTION_ENCHANT(0x1C2, RequestBlessOptionEnchant::new, ConnectionState.IN_GAME), - EX_BLESS_OPTION_CANCEL(0x1C3, RequestBlessOptionCancel::new, ConnectionState.IN_GAME), - EX_PVP_RANKING_MY_INFO(0x1C4, RequestPvpRankingMyInfo::new, ConnectionState.IN_GAME), - EX_PVP_RANKING_LIST(0x1C5, RequestPvpRankingList::new, ConnectionState.IN_GAME), - EX_ACQUIRE_PET_SKILL(0x1C6, RequestExAcquirePetSkill::new, ConnectionState.IN_GAME), - EX_PLEDGE_V3_INFO(0x1C7, RequestExPledgeV3Info::new, ConnectionState.IN_GAME), - EX_PLEDGE_ENEMY_INFO_LIST(0x1C8, RequestExPledgeEnemyInfoList::new, ConnectionState.IN_GAME), - EX_PLEDGE_ENEMY_REGISTER(0x1C9, RequestExPledgeEnemyRegister::new, ConnectionState.IN_GAME), - EX_PLEDGE_ENEMY_DELETE(0x1CA, RequestExPledgeEnemyDelete::new, ConnectionState.IN_GAME), - EX_TRY_PET_EXTRACT_SYSTEM(0x1CB, null, ConnectionState.IN_GAME), - EX_PLEDGE_V3_SET_ANNOUNCE(0x1CC, RequestExPledgeV3SetAnnounce::new, ConnectionState.IN_GAME), + EX_SHARED_POSITION_SHARING_UI(0x1A2, ExRequestSharingLocationUi::new, ConnectionState.IN_GAME), + EX_SHARED_POSITION_TELEPORT_UI(0x1A3, ExRequestSharedLocationTeleportUi::new, ConnectionState.IN_GAME), + EX_SHARED_POSITION_TELEPORT(0x1A4, ExRequestSharedLocationTeleport::new, ConnectionState.IN_GAME), + EX_AUTH_RECONNECT(0x1A5, null, ConnectionState.IN_GAME), + EX_PET_EQUIP_ITEM(0x1A6, ExPetEquipItem::new, ConnectionState.IN_GAME), + EX_PET_UNEQUIP_ITEM(0x1A7, ExPetUnequipItem::new, ConnectionState.IN_GAME), + EX_SHOW_HOMUNCULUS_INFO(0x1A8, null, ConnectionState.IN_GAME), + EX_HOMUNCULUS_CREATE_START(0x1A9, null, ConnectionState.IN_GAME), + EX_HOMUNCULUS_INSERT(0x1AA, null, ConnectionState.IN_GAME), + EX_HOMUNCULUS_SUMMON(0x1AB, null, ConnectionState.IN_GAME), + EX_DELETE_HOMUNCULUS_DATA(0x1AC, null, ConnectionState.IN_GAME), + EX_REQUEST_ACTIVATE_HOMUNCULUS(0x1AD, null, ConnectionState.IN_GAME), + EX_HOMUNCULUS_GET_ENCHANT_POINT(0x1AE, null, ConnectionState.IN_GAME), + EX_HOMUNCULUS_INIT_POINT(0x1AF, null, ConnectionState.IN_GAME), + EX_EVOLVE_PET(0x1B0, ExEvolvePet::new, ConnectionState.IN_GAME), + EX_ENCHANT_HOMUNCULUS_SKILL(0x1B1, null, ConnectionState.IN_GAME), + EX_HOMUNCULUS_ENCHANT_EXP(0x1B2, null, ConnectionState.IN_GAME), + EX_TELEPORT_FAVORITES_LIST(0x1B3, ExRequestTeleportFavoriteList::new, ConnectionState.IN_GAME), + EX_TELEPORT_FAVORITES_UI_TOGGLE(0x1B4, ExRequestTeleportFavoritesUIToggle::new, ConnectionState.IN_GAME), + EX_TELEPORT_FAVORITES_ADD_DEL(0x1B5, ExRequestTeleportFavoritesAddDel::new, ConnectionState.IN_GAME), + EX_ANTIBOT(0x1B6, null, ConnectionState.IN_GAME), + EX_DPSVR(0x1B7, null, ConnectionState.IN_GAME), + EX_TENPROTECT_DECRYPT_ERROR(0x1B8, null, ConnectionState.IN_GAME), + EX_NET_LATENCY(0x1B9, null, ConnectionState.IN_GAME), + EX_MABLE_GAME_OPEN(0x1BA, null, ConnectionState.IN_GAME), + EX_MABLE_GAME_ROLL_DICE(0x1BB, null, ConnectionState.IN_GAME), + EX_MABLE_GAME_POPUP_OK(0x1BC, null, ConnectionState.IN_GAME), + EX_MABLE_GAME_RESET(0x1BD, null, ConnectionState.IN_GAME), + EX_MABLE_GAME_CLOSE(0x1BE, null, ConnectionState.IN_GAME), + EX_RETURN_TO_ORIGIN(0x1BF, null, ConnectionState.IN_GAME), + EX_PK_PENALTY_LIST(0x1C0, null, ConnectionState.IN_GAME), + EX_PK_PENALTY_LIST_ONLY_LOC(0x1C1, null, ConnectionState.IN_GAME), + EX_BLESS_OPTION_PUT_ITEM(0x1C2, RequestBlessOptionPutItem::new, ConnectionState.IN_GAME), + EX_BLESS_OPTION_ENCHANT(0x1C3, RequestBlessOptionEnchant::new, ConnectionState.IN_GAME), + EX_BLESS_OPTION_CANCEL(0x1C4, RequestBlessOptionCancel::new, ConnectionState.IN_GAME), + EX_PVP_RANKING_MY_INFO(0x1C5, RequestPvpRankingMyInfo::new, ConnectionState.IN_GAME), + EX_PVP_RANKING_LIST(0x1C6, RequestPvpRankingList::new, ConnectionState.IN_GAME), + EX_ACQUIRE_PET_SKILL(0x1C7, RequestExAcquirePetSkill::new, ConnectionState.IN_GAME), + EX_PLEDGE_V3_INFO(0x1C8, RequestExPledgeV3Info::new, ConnectionState.IN_GAME), + EX_PLEDGE_ENEMY_INFO_LIST(0x1C9, RequestExPledgeEnemyInfoList::new, ConnectionState.IN_GAME), + EX_PLEDGE_ENEMY_REGISTER(0x1CA, RequestExPledgeEnemyRegister::new, ConnectionState.IN_GAME), + EX_PLEDGE_ENEMY_DELETE(0x1CB, RequestExPledgeEnemyDelete::new, ConnectionState.IN_GAME), + EX_TRY_PET_EXTRACT_SYSTEM(0x1CC, null, ConnectionState.IN_GAME), + EX_PLEDGE_V3_SET_ANNOUNCE(0x1CD, RequestExPledgeV3SetAnnounce::new, ConnectionState.IN_GAME), // 306 - EX_RANKING_FESTIVAL_OPEN(0x1CD, null, ConnectionState.IN_GAME), - EX_RANKING_FESTIVAL_BUY(0x1CE, null, ConnectionState.IN_GAME), - EX_RANKING_FESTIVAL_BONUS(0x1CF, null, ConnectionState.IN_GAME), - EX_RANKING_FESTIVAL_RANKING(0x1D0, null, ConnectionState.IN_GAME), - EX_RANKING_FESTIVAL_MY_RECEIVED_BONUS(0x1D1, null, ConnectionState.IN_GAME), - EX_RANKING_FESTIVAL_REWARD(0x1D2, null, ConnectionState.IN_GAME), - EX_TIMER_CHECK(0x1D3, null, ConnectionState.IN_GAME), - EX_STEADY_BOX_LOAD(0x1D4, null, ConnectionState.IN_GAME), - EX_STEADY_OPEN_SLOT(0x1D5, null, ConnectionState.IN_GAME), - EX_STEADY_OPEN_BOX(0x1D6, null, ConnectionState.IN_GAME), - EX_STEADY_GET_REWARD(0x1D7, null, ConnectionState.IN_GAME), - EX_PET_RANKING_MY_INFO(0x1D8, RequestPetRankingMyInfo::new, ConnectionState.IN_GAME), - EX_PET_RANKING_LIST(0x1D9, RequestPetRankingList::new, ConnectionState.IN_GAME), - EX_COLLECTION_OPEN_UI(0x1DA, RequestExCollectionOpenUI::new, ConnectionState.IN_GAME), - EX_COLLECTION_CLOSE_UI(0x1DB, RequestCollectionCloseUI::new, ConnectionState.IN_GAME), - EX_COLLECTION_LIST(0x1DC, RequestExCollectionList::new, ConnectionState.IN_GAME), - EX_COLLECTION_UPDATE_FAVORITE(0x1DD, RequestCollectionUpdateFavorite::new, ConnectionState.IN_GAME), - EX_COLLECTION_FAVORITE_LIST(0x1DE, RequestCollectionFavoriteList::new, ConnectionState.IN_GAME), - EX_COLLECTION_SUMMARY(0x1DF, null, ConnectionState.IN_GAME), - EX_COLLECTION_REGISTER(0x1E0, RequestCollectionRegister::new, ConnectionState.IN_GAME), - EX_COLLECTION_RECEIVE_REWARD(0x1E1, RequestCollectionReceiveReward::new, ConnectionState.IN_GAME), - EX_PVPBOOK_SHARE_REVENGE_LIST(0x1E2, RequestExPvpBookShareRevengeList::new, ConnectionState.IN_GAME), - EX_PVPBOOK_SHARE_REVENGE_REQ_SHARE_REVENGEINFO(0x1E3, RequestExPvpBookShareRevengeReqShareRevengeInfo::new, ConnectionState.IN_GAME), - EX_PVPBOOK_SHARE_REVENGE_KILLER_LOCATION(0x1E4, RequestExPvpBookShareRevengeKillerLocation::new, ConnectionState.IN_GAME), - EX_PVPBOOK_SHARE_REVENGE_TELEPORT_TO_KILLER(0x1E5, RequestExPvpBookShareRevengeTeleportToKiller::new, ConnectionState.IN_GAME), - EX_PVPBOOK_SHARE_REVENGE_SHARED_TELEPORT_TO_KILLER(0x1E6, RequestExPvpBookShareRevengeSharedTeleportToKiller::new, ConnectionState.IN_GAME), - EX_PENALTY_ITEM_LIST(0x1E7, null, ConnectionState.IN_GAME), - EX_PENALTY_ITEM_RESTORE(0x1E8, null, ConnectionState.IN_GAME), - EX_USER_WATCHER_TARGET_LIST(0x1E9, null, ConnectionState.IN_GAME), - EX_USER_WATCHER_ADD(0x1EA, null, ConnectionState.IN_GAME), - EX_USER_WATCHER_DELETE(0x1EB, null, ConnectionState.IN_GAME), - EX_HOMUNCULUS_ACTIVATE_SLOT(0x1EC, null, ConnectionState.IN_GAME), - EX_SUMMON_HOMUNCULUS_COUPON(0x1ED, null, ConnectionState.IN_GAME), - EX_SUBJUGATION_LIST(0x1EE, RequestSubjugationList::new, ConnectionState.IN_GAME), - EX_SUBJUGATION_RANKING(0x1EF, RequestSubjugationRanking::new, ConnectionState.IN_GAME), - EX_SUBJUGATION_GACHA_UI(0x1F0, RequestSubjugationGachaUI::new, ConnectionState.IN_GAME), - EX_SUBJUGATION_GACHA(0x1F1, RequestSubjugationGacha::new, ConnectionState.IN_GAME), - EX_PLEDGE_DONATION_INFO(0x1F2, RequestExPledgeDonationInfo::new, ConnectionState.IN_GAME), - EX_PLEDGE_DONATION_REQUEST(0x1F3, RequestExPledgeDonationRequest::new, ConnectionState.IN_GAME), - EX_PLEDGE_CONTRIBUTION_LIST(0x1F4, RequestExPledgeContributionList::new, ConnectionState.IN_GAME), - EX_PLEDGE_RANKING_MY_INFO(0x1F5, RequestPledgeRankingMyInfo::new, ConnectionState.IN_GAME), - EX_PLEDGE_RANKING_LIST(0x1F6, RequestPledgeRankingList::new, ConnectionState.IN_GAME), - EX_ITEM_RESTORE_LIST(0x1F7, null, ConnectionState.IN_GAME), - EX_ITEM_RESTORE(0x1F8, null, ConnectionState.IN_GAME), + EX_RANKING_FESTIVAL_OPEN(0x1CE, null, ConnectionState.IN_GAME), + EX_RANKING_FESTIVAL_BUY(0x1CF, null, ConnectionState.IN_GAME), + EX_RANKING_FESTIVAL_BONUS(0x1D0, null, ConnectionState.IN_GAME), + EX_RANKING_FESTIVAL_RANKING(0x1D1, null, ConnectionState.IN_GAME), + EX_RANKING_FESTIVAL_MY_RECEIVED_BONUS(0x1D2, null, ConnectionState.IN_GAME), + EX_RANKING_FESTIVAL_REWARD(0x1D3, null, ConnectionState.IN_GAME), + EX_TIMER_CHECK(0x1D4, null, ConnectionState.IN_GAME), + EX_STEADY_BOX_LOAD(0x1D5, null, ConnectionState.IN_GAME), + EX_STEADY_OPEN_SLOT(0x1D6, null, ConnectionState.IN_GAME), + EX_STEADY_OPEN_BOX(0x1D7, null, ConnectionState.IN_GAME), + EX_STEADY_GET_REWARD(0x1D8, null, ConnectionState.IN_GAME), + EX_PET_RANKING_MY_INFO(0x1D9, RequestPetRankingMyInfo::new, ConnectionState.IN_GAME), + EX_PET_RANKING_LIST(0x1DA, RequestPetRankingList::new, ConnectionState.IN_GAME), + EX_COLLECTION_OPEN_UI(0x1DB, RequestExCollectionOpenUI::new, ConnectionState.IN_GAME), + EX_COLLECTION_CLOSE_UI(0x1DC, RequestCollectionCloseUI::new, ConnectionState.IN_GAME), + EX_COLLECTION_LIST(0x1DD, RequestExCollectionList::new, ConnectionState.IN_GAME), + EX_COLLECTION_UPDATE_FAVORITE(0x1DE, RequestCollectionUpdateFavorite::new, ConnectionState.IN_GAME), + EX_COLLECTION_FAVORITE_LIST(0x1DF, RequestCollectionFavoriteList::new, ConnectionState.IN_GAME), + EX_COLLECTION_SUMMARY(0x1E0, null, ConnectionState.IN_GAME), + EX_COLLECTION_REGISTER(0x1E1, RequestCollectionRegister::new, ConnectionState.IN_GAME), + EX_COLLECTION_RECEIVE_REWARD(0x1E2, RequestCollectionReceiveReward::new, ConnectionState.IN_GAME), + EX_PVPBOOK_SHARE_REVENGE_LIST(0x1E3, RequestExPvpBookShareRevengeList::new, ConnectionState.IN_GAME), + EX_PVPBOOK_SHARE_REVENGE_REQ_SHARE_REVENGEINFO(0x1E4, RequestExPvpBookShareRevengeReqShareRevengeInfo::new, ConnectionState.IN_GAME), + EX_PVPBOOK_SHARE_REVENGE_KILLER_LOCATION(0x1E5, RequestExPvpBookShareRevengeKillerLocation::new, ConnectionState.IN_GAME), + EX_PVPBOOK_SHARE_REVENGE_TELEPORT_TO_KILLER(0x1E6, RequestExPvpBookShareRevengeTeleportToKiller::new, ConnectionState.IN_GAME), + EX_PVPBOOK_SHARE_REVENGE_SHARED_TELEPORT_TO_KILLER(0x1E7, RequestExPvpBookShareRevengeSharedTeleportToKiller::new, ConnectionState.IN_GAME), + EX_PENALTY_ITEM_LIST(0x1E8, null, ConnectionState.IN_GAME), + EX_PENALTY_ITEM_RESTORE(0x1E9, null, ConnectionState.IN_GAME), + EX_USER_WATCHER_TARGET_LIST(0x1EA, null, ConnectionState.IN_GAME), + EX_USER_WATCHER_ADD(0x1EB, null, ConnectionState.IN_GAME), + EX_USER_WATCHER_DELETE(0x1EC, null, ConnectionState.IN_GAME), + EX_HOMUNCULUS_ACTIVATE_SLOT(0x1ED, null, ConnectionState.IN_GAME), + EX_SUMMON_HOMUNCULUS_COUPON(0x1EE, null, ConnectionState.IN_GAME), + EX_SUBJUGATION_LIST(0x1EF, RequestSubjugationList::new, ConnectionState.IN_GAME), + EX_SUBJUGATION_RANKING(0x1F0, RequestSubjugationRanking::new, ConnectionState.IN_GAME), + EX_SUBJUGATION_GACHA_UI(0x1F1, RequestSubjugationGachaUI::new, ConnectionState.IN_GAME), + EX_SUBJUGATION_GACHA(0x1F2, RequestSubjugationGacha::new, ConnectionState.IN_GAME), + EX_PLEDGE_DONATION_INFO(0x1F3, RequestExPledgeDonationInfo::new, ConnectionState.IN_GAME), + EX_PLEDGE_DONATION_REQUEST(0x1F4, RequestExPledgeDonationRequest::new, ConnectionState.IN_GAME), + EX_PLEDGE_CONTRIBUTION_LIST(0x1F5, RequestExPledgeContributionList::new, ConnectionState.IN_GAME), + EX_PLEDGE_RANKING_MY_INFO(0x1F6, RequestPledgeRankingMyInfo::new, ConnectionState.IN_GAME), + EX_PLEDGE_RANKING_LIST(0x1F7, RequestPledgeRankingList::new, ConnectionState.IN_GAME), + EX_ITEM_RESTORE_LIST(0x1F8, null, ConnectionState.IN_GAME), + EX_ITEM_RESTORE(0x1F9, null, ConnectionState.IN_GAME), // 338 - EX_DETHRONE_INFO(0x1F9, null, ConnectionState.IN_GAME), - EX_DETHRONE_RANKING_INFO(0x1FA, null, ConnectionState.IN_GAME), - EX_DETHRONE_SERVER_INFO(0x1FB, null, ConnectionState.IN_GAME), - EX_DETHRONE_DISTRICT_OCCUPATION_INFO(0x1FC, null, ConnectionState.IN_GAME), - EX_DETHRONE_DAILY_MISSION_INFO(0x1FD, null, ConnectionState.IN_GAME), - EX_DETHRONE_DAILY_MISSION_GET_REWARD(0x1FE, null, ConnectionState.IN_GAME), - EX_DETHRONE_PREV_SEASON_INFO(0x1FF, null, ConnectionState.IN_GAME), - EX_DETHRONE_GET_REWARD(0x200, null, ConnectionState.IN_GAME), - EX_DETHRONE_ENTER(0x201, null, ConnectionState.IN_GAME), - EX_DETHRONE_LEAVE(0x202, null, ConnectionState.IN_GAME), - EX_DETHRONE_CHECK_NAME(0x203, null, ConnectionState.IN_GAME), - EX_DETHRONE_CHANGE_NAME(0x204, null, ConnectionState.IN_GAME), - EX_DETHRONE_CONNECT_CASTLE(0x205, null, ConnectionState.IN_GAME), - EX_DETHRONE_DISCONNECT_CASTLE(0x206, null, ConnectionState.IN_GAME), - EX_CHANGE_NICKNAME_COLOR_ICON(0x207, RequestChangeNicknameEmote::new, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_MOVE_TO_HOST(0x208, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_RETURN_TO_ORIGIN_PEER(0x209, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_CASTLE_INFO(0x20A, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_CASTLE_SIEGE_INFO(0x20B, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_CASTLE_SIEGE_JOIN(0x20C, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x20D, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x20E, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_MEMBER_LIST(0x20F, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_MEMBER_JOIN(0x210, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_TELEPORT(0x211, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_OBSERVER_START(0x212, null, ConnectionState.IN_GAME), - EX_PRIVATE_STORE_SEARCH_LIST(0x213, null, ConnectionState.IN_GAME), - EX_PRIVATE_STORE_SEARCH_STATISTICS(0x214, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_HOST_CASTLE_SIEGE_RANKING_INFO(0x215, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_CASTLE_SIEGE_RANKING_INFO(0x216, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_SIEGE_MAINBATTLE_HUD_INFO(0x217, null, ConnectionState.IN_GAME), - EX_NEW_HENNA_LIST(0x218, RequestNewHennaList::new, ConnectionState.IN_GAME), - EX_NEW_HENNA_EQUIP(0x219, RequestNewHennaEquip::new, ConnectionState.IN_GAME), - EX_NEW_HENNA_UNEQUIP(0x21A, RequestNewHennaUnequip::new, ConnectionState.IN_GAME), - EX_NEW_HENNA_POTEN_SELECT(0x21B, RequestNewHennaPotenSelect::new, ConnectionState.IN_GAME), - EX_NEW_HENNA_POTEN_ENCHANT(0x21C, RequestNewHennaPotenEnchant::new, ConnectionState.IN_GAME), - EX_NEW_HENNA_COMPOSE(0x21D, RequestNewHennaCompose::new, ConnectionState.IN_GAME), - EX_REQUEST_INVITE_PARTY(0x21E, null, ConnectionState.IN_GAME), - EX_ITEM_USABLE_LIST(0x21F, null, ConnectionState.IN_GAME), - EX_PACKETREADCOUNTPERSECOND(0x220, null, ConnectionState.IN_GAME), - EX_SELECT_GLOBAL_EVENT_UI(0x221, null, ConnectionState.IN_GAME), - EX_L2PASS_INFO(0x222, RequestHuntPassInfo::new, ConnectionState.IN_GAME), - EX_L2PASS_REQUEST_REWARD(0x223, RequestHuntPassReward::new, ConnectionState.IN_GAME), - EX_L2PASS_REQUEST_REWARD_ALL(0x224, RequestHuntPassRewardAll::new, ConnectionState.IN_GAME), - EX_L2PASS_BUY_PREMIUM(0x225, RequestHuntPassBuyPremium::new, ConnectionState.IN_GAME), - EX_SAYHAS_SUPPORT_TOGGLE(0x226, HuntpassSayhasToggle::new, ConnectionState.IN_GAME), + EX_DETHRONE_INFO(0x1FA, null, ConnectionState.IN_GAME), + EX_DETHRONE_RANKING_INFO(0x1FB, null, ConnectionState.IN_GAME), + EX_DETHRONE_SERVER_INFO(0x1FC, null, ConnectionState.IN_GAME), + EX_DETHRONE_DISTRICT_OCCUPATION_INFO(0x1FD, null, ConnectionState.IN_GAME), + EX_DETHRONE_DAILY_MISSION_INFO(0x1FE, null, ConnectionState.IN_GAME), + EX_DETHRONE_DAILY_MISSION_GET_REWARD(0x1FF, null, ConnectionState.IN_GAME), + EX_DETHRONE_PREV_SEASON_INFO(0x200, null, ConnectionState.IN_GAME), + EX_DETHRONE_GET_REWARD(0x201, null, ConnectionState.IN_GAME), + EX_DETHRONE_ENTER(0x202, null, ConnectionState.IN_GAME), + EX_DETHRONE_LEAVE(0x203, null, ConnectionState.IN_GAME), + EX_DETHRONE_CHECK_NAME(0x204, null, ConnectionState.IN_GAME), + EX_DETHRONE_CHANGE_NAME(0x205, null, ConnectionState.IN_GAME), + EX_DETHRONE_CONNECT_CASTLE(0x206, null, ConnectionState.IN_GAME), + EX_DETHRONE_DISCONNECT_CASTLE(0x207, null, ConnectionState.IN_GAME), + EX_CHANGE_NICKNAME_COLOR_ICON(0x208, RequestChangeNicknameEmote::new, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_MOVE_TO_HOST(0x209, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_RETURN_TO_ORIGIN_PEER(0x20A, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_CASTLE_INFO(0x20B, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_CASTLE_SIEGE_INFO(0x20C, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_CASTLE_SIEGE_JOIN(0x20D, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x20E, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x20F, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_MEMBER_LIST(0x210, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_MEMBER_JOIN(0x211, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_TELEPORT(0x212, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_OBSERVER_START(0x213, null, ConnectionState.IN_GAME), + EX_PRIVATE_STORE_SEARCH_LIST(0x214, null, ConnectionState.IN_GAME), + EX_PRIVATE_STORE_SEARCH_STATISTICS(0x215, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_HOST_CASTLE_SIEGE_RANKING_INFO(0x216, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_CASTLE_SIEGE_RANKING_INFO(0x217, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_SIEGE_MAINBATTLE_HUD_INFO(0x218, null, ConnectionState.IN_GAME), + EX_NEW_HENNA_LIST(0x219, RequestNewHennaList::new, ConnectionState.IN_GAME), + EX_NEW_HENNA_EQUIP(0x21A, RequestNewHennaEquip::new, ConnectionState.IN_GAME), + EX_NEW_HENNA_UNEQUIP(0x21B, RequestNewHennaUnequip::new, ConnectionState.IN_GAME), + EX_NEW_HENNA_POTEN_SELECT(0x21C, RequestNewHennaPotenSelect::new, ConnectionState.IN_GAME), + EX_NEW_HENNA_POTEN_ENCHANT(0x21D, RequestNewHennaPotenEnchant::new, ConnectionState.IN_GAME), + EX_NEW_HENNA_COMPOSE(0x21E, RequestNewHennaCompose::new, ConnectionState.IN_GAME), + EX_REQUEST_INVITE_PARTY(0x21F, null, ConnectionState.IN_GAME), + EX_ITEM_USABLE_LIST(0x220, null, ConnectionState.IN_GAME), + EX_PACKETREADCOUNTPERSECOND(0x221, null, ConnectionState.IN_GAME), + EX_SELECT_GLOBAL_EVENT_UI(0x222, null, ConnectionState.IN_GAME), + EX_L2PASS_INFO(0x223, RequestHuntPassInfo::new, ConnectionState.IN_GAME), + EX_L2PASS_REQUEST_REWARD(0x224, RequestHuntPassReward::new, ConnectionState.IN_GAME), + EX_L2PASS_REQUEST_REWARD_ALL(0x225, RequestHuntPassRewardAll::new, ConnectionState.IN_GAME), + EX_L2PASS_BUY_PREMIUM(0x226, RequestHuntPassBuyPremium::new, ConnectionState.IN_GAME), + EX_SAYHAS_SUPPORT_TOGGLE(0x227, HuntpassSayhasToggle::new, ConnectionState.IN_GAME), // 362 - EX_REQ_ENCHANT_FAIL_REWARD_INFO(0x227, ExRequestEnchantFailRewardInfo::new, ConnectionState.IN_GAME), - EX_SET_ENCHANT_CHALLENGE_POINT(0x228, null, ConnectionState.IN_GAME), - EX_RESET_ENCHANT_CHALLENGE_POINT(0x229, null, ConnectionState.IN_GAME), - EX_REQ_VIEW_ENCHANT_RESULT(0x22A, ExRequestViewEnchantResult::new, ConnectionState.IN_GAME), - EX_REQ_START_MULTI_ENCHANT_SCROLL(0x22B, ExRequestStartMultiEnchantScroll::new, ConnectionState.IN_GAME), - EX_REQ_VIEW_MULTI_ENCHANT_RESULT(0x22C, ExRequestViewMultiEnchantResult::new, ConnectionState.IN_GAME), - EX_REQ_FINISH_MULTI_ENCHANT_SCROLL(0x22D, ExRequestFinishMultiEnchantScroll::new, ConnectionState.IN_GAME), - EX_REQ_CHANGE_MULTI_ENCHANT_SCROLL(0x22E, null, ConnectionState.IN_GAME), - EX_REQ_SET_MULTI_ENCHANT_ITEM_LIST(0x22F, ExRequestSetMultiEnchantItemList::new, ConnectionState.IN_GAME), - EX_REQ_MULTI_ENCHANT_ITEM_LIST(0x230, ExRequestMultiEnchantItemList::new, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_FLAG_SET(0x231, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_INFO_SET(0x232, null, ConnectionState.IN_GAME), - EX_REQ_HOMUNCULUS_PROB_LIST(0x233, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_HOST_CASTLE_SIEGE_ALL_RANKING_INFO(0x234, null, ConnectionState.IN_GAME), - EX_WORLDCASTLEWAR_CASTLE_SIEGE_ALL_RANKING_INFO(0x235, null, ConnectionState.IN_GAME), - EX_MISSION_LEVEL_REWARD_LIST(0x236, RequestMissionRewardList::new, ConnectionState.IN_GAME), - EX_MISSION_LEVEL_RECEIVE_REWARD(0x237, RequestMissionLevelReceiveReward::new, ConnectionState.IN_GAME), - EX_BALROGWAR_TELEPORT(0x238, null, ConnectionState.IN_GAME), - EX_BALROGWAR_SHOW_UI(0x239, null, ConnectionState.IN_GAME), - EX_BALROGWAR_SHOW_RANKING(0x23A, null, ConnectionState.IN_GAME), - EX_BALROGWAR_GET_REWARD(0x23B, null, ConnectionState.IN_GAME), - EX_USER_RESTART_LOCKER_UPDATE(0x23C, null, ConnectionState.IN_GAME), - EX_WORLD_EXCHANGE_ITEM_LIST(0x23D, ExWorldExchangeItemList::new, ConnectionState.IN_GAME), - EX_WORLD_EXCHANGE_REGI_ITEM(0x23E, ExWorldExchangeRegisterItem::new, ConnectionState.IN_GAME), - EX_WORLD_EXCHANGE_BUY_ITEM(0x23F, ExWorldExchangeBuyItem::new, ConnectionState.IN_GAME), - EX_WORLD_EXCHANGE_SETTLE_LIST(0x240, ExWorldExchangeSettleList::new, ConnectionState.IN_GAME), - EX_WORLD_EXCHANGE_SETTLE_RECV_RESULT(0x241, ExWorldExchangeSettleRecvResult::new, ConnectionState.IN_GAME), - EX_READY_ITEM_AUTO_PEEL(0x242, ExRequestReadyItemAutoPeel::new, ConnectionState.IN_GAME), - EX_REQUEST_ITEM_AUTO_PEEL(0x243, ExRequestItemAutoPeel::new, ConnectionState.IN_GAME), - EX_STOP_ITEM_AUTO_PEEL(0x244, ExRequestStopItemAutoPeel::new, ConnectionState.IN_GAME), - EX_VARIATION_OPEN_UI(0x245, ExVariationOpenUi::new, ConnectionState.IN_GAME), - EX_VARIATION_CLOSE_UI(0x246, ExVariationCloseUi::new, ConnectionState.IN_GAME), - EX_APPLY_VARIATION_OPTION(0x247, ExApplyVariationOption::new, ConnectionState.IN_GAME), - EX_BR_VERSION(0x248, RequestBRVersion::new, ConnectionState.AUTHENTICATED, ConnectionState.CONNECTED), - EX_MAX(0x249, null, ConnectionState.IN_GAME); + EX_REQ_ENCHANT_FAIL_REWARD_INFO(0x228, ExRequestEnchantFailRewardInfo::new, ConnectionState.IN_GAME), + EX_SET_ENCHANT_CHALLENGE_POINT(0x229, null, ConnectionState.IN_GAME), + EX_RESET_ENCHANT_CHALLENGE_POINT(0x22A, null, ConnectionState.IN_GAME), + EX_REQ_VIEW_ENCHANT_RESULT(0x22B, ExRequestViewEnchantResult::new, ConnectionState.IN_GAME), + EX_REQ_START_MULTI_ENCHANT_SCROLL(0x22C, ExRequestStartMultiEnchantScroll::new, ConnectionState.IN_GAME), + EX_REQ_VIEW_MULTI_ENCHANT_RESULT(0x22D, ExRequestViewMultiEnchantResult::new, ConnectionState.IN_GAME), + EX_REQ_FINISH_MULTI_ENCHANT_SCROLL(0x22E, ExRequestFinishMultiEnchantScroll::new, ConnectionState.IN_GAME), + EX_REQ_CHANGE_MULTI_ENCHANT_SCROLL(0x22F, null, ConnectionState.IN_GAME), + EX_REQ_SET_MULTI_ENCHANT_ITEM_LIST(0x230, ExRequestSetMultiEnchantItemList::new, ConnectionState.IN_GAME), + EX_REQ_MULTI_ENCHANT_ITEM_LIST(0x231, ExRequestMultiEnchantItemList::new, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_FLAG_SET(0x232, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_INFO_SET(0x233, null, ConnectionState.IN_GAME), + EX_REQ_HOMUNCULUS_PROB_LIST(0x234, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_HOST_CASTLE_SIEGE_ALL_RANKING_INFO(0x235, null, ConnectionState.IN_GAME), + EX_WORLDCASTLEWAR_CASTLE_SIEGE_ALL_RANKING_INFO(0x236, null, ConnectionState.IN_GAME), + EX_MISSION_LEVEL_REWARD_LIST(0x237, RequestMissionRewardList::new, ConnectionState.IN_GAME), + EX_MISSION_LEVEL_RECEIVE_REWARD(0x238, RequestMissionLevelReceiveReward::new, ConnectionState.IN_GAME), + EX_BALROGWAR_TELEPORT(0x239, null, ConnectionState.IN_GAME), + EX_BALROGWAR_SHOW_UI(0x23A, null, ConnectionState.IN_GAME), + EX_BALROGWAR_SHOW_RANKING(0x23B, null, ConnectionState.IN_GAME), + EX_BALROGWAR_GET_REWARD(0x23C, null, ConnectionState.IN_GAME), + EX_USER_RESTART_LOCKER_UPDATE(0x23D, null, ConnectionState.IN_GAME), + EX_WORLD_EXCHANGE_ITEM_LIST(0x23E, ExWorldExchangeItemList::new, ConnectionState.IN_GAME), + EX_WORLD_EXCHANGE_REGI_ITEM(0x23F, ExWorldExchangeRegisterItem::new, ConnectionState.IN_GAME), + EX_WORLD_EXCHANGE_BUY_ITEM(0x240, ExWorldExchangeBuyItem::new, ConnectionState.IN_GAME), + EX_WORLD_EXCHANGE_SETTLE_LIST(0x241, ExWorldExchangeSettleList::new, ConnectionState.IN_GAME), + EX_WORLD_EXCHANGE_SETTLE_RECV_RESULT(0x242, ExWorldExchangeSettleRecvResult::new, ConnectionState.IN_GAME), + EX_READY_ITEM_AUTO_PEEL(0x243, ExRequestReadyItemAutoPeel::new, ConnectionState.IN_GAME), + EX_REQUEST_ITEM_AUTO_PEEL(0x244, ExRequestItemAutoPeel::new, ConnectionState.IN_GAME), + EX_STOP_ITEM_AUTO_PEEL(0x245, ExRequestStopItemAutoPeel::new, ConnectionState.IN_GAME), + EX_VARIATION_OPEN_UI(0x246, ExVariationOpenUi::new, ConnectionState.IN_GAME), + EX_VARIATION_CLOSE_UI(0x247, ExVariationCloseUi::new, ConnectionState.IN_GAME), + EX_APPLY_VARIATION_OPTION(0x248, ExApplyVariationOption::new, ConnectionState.IN_GAME), + EX_REQUEST_AUDIO_LOG_SAVE(0x249, null, ConnectionState.IN_GAME), + EX_BR_VERSION(0x24A, RequestBRVersion::new, ConnectionState.AUTHENTICATED, ConnectionState.CONNECTED), + // 388 + EX_WRANKING_FESTIVAL_INFO(0x24B, null, ConnectionState.IN_GAME), + EX_WRANKING_FESTIVAL_OPEN(0x24C, null, ConnectionState.IN_GAME), + EX_WRANKING_FESTIVAL_BUY(0x24D, null, ConnectionState.IN_GAME), + EX_WRANKING_FESTIVAL_BONUS(0x24E, null, ConnectionState.IN_GAME), + EX_WRANKING_FESTIVAL_RANKING(0x24F, null, ConnectionState.IN_GAME), + EX_WRANKING_FESTIVAL_MY_RECEIVED_BONUS(0x250, null, ConnectionState.IN_GAME), + EX_WRANKING_FESTIVAL_REWARD(0x251, null, ConnectionState.IN_GAME), + EX_HENNA_UNEQUIP_INFO(0x252, RequestNewHennaUnequipInfo::new, ConnectionState.IN_GAME), + EX_HERO_BOOK_CHARGE(0x253, null, ConnectionState.IN_GAME), + EX_HERO_BOOK_ENCHANT(0x254, null, ConnectionState.IN_GAME), + EX_TELEPORT_UI(0x255, null, ConnectionState.IN_GAME), + EX_GOODS_GIFT_LIST_INFO(0x256, null, ConnectionState.IN_GAME), + EX_GOODS_GIFT_ACCEPT(0x257, null, ConnectionState.IN_GAME), + EX_GOODS_GIFT_REFUSE(0x258, null, ConnectionState.IN_GAME), + EX_WORLD_EXCHANGE_AVERAGE_PRICE(0x259, null, ConnectionState.IN_GAME), + EX_WORLD_EXCHANGE_TOTAL_LIST(0x25A, null, ConnectionState.IN_GAME), + EX_PRISON_USER_INFO(0x25B, null, ConnectionState.IN_GAME), + EX_PRISON_USER_DONATION(0x25C, null, ConnectionState.IN_GAME), + EX_MAX(0x25D, null, ConnectionState.IN_GAME); public static final ExIncomingPackets[] PACKET_ARRAY; diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/OutgoingPackets.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/OutgoingPackets.java index c9b949796d..53979ffc30 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/OutgoingPackets.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/OutgoingPackets.java @@ -1065,8 +1065,41 @@ public enum OutgoingPackets EX_STOP_ITEM_AUTO_PEEL(0xFE, 0x305), EX_TIME_RESTRICT_FIELD_DIE_LIMT_TIME(0xFE, 0x306), EX_APPLY_VARIATION_OPTION(0xFE, 0x307), - EX_BR_VERSION(0xFE, 0x308), - EX_MAX(0xFE, 0x309); + EX_REQUEST_AUDIO_LOG_SAVE(0xFE, 0x308), + EX_BR_VERSION(0xFE, 0x309), + // 388 + EX_NOTIFY_ATTENDANCE(0xFE, 0x30A), + EX_WRANKING_FESTIVAL_INFO(0xFE, 0x30B), + EX_WRANKING_FESTIVAL_SIDEBAR_INFO(0xFE, 0x30C), + EX_WRANKING_FESTIVAL_BU(0xFE, 0x30D), + EX_WRANKING_FESTIVAL_BONUS(0xFE, 0x30E), + EX_WRANKING_FESTIVAL_RANKING(0xFE, 0x30F), + EX_WRANKING_FESTIVAL_MYINFO(0xFE, 0x310), + EX_WRANKING_FESTIVAL_MY_RECEIVED_BONUS(0xFE, 0x311), + EX_WRANKING_FESTIVAL_REWARD(0xFE, 0x312), + EX_TOOLTIP_PARAM(0xFE, 0x313), + EX_RECEIVED_POST_LIST(0xFE, 0x314), + EX_TIME_RESTRICT_FIELD_ENTER_INFO(0xFE, 0x315), + EX_TIME_RESTRICT_FIELD_SERVER_GROUP(0xFE, 0x316), + EX_WORLD_EXCHANGE_SETTLE_ALARM(0xFE, 0x317), + EX_HERO_BOOK_INFO(0xFE, 0x318), + EX_HERO_BOOK_UI(0xFE, 0x319), + EX_HERO_BOOK_CHARGE(0xFE, 0x31A), + EX_HERO_BOOK_ENCHANT(0xFE, 0x31B), + EX_TELEPORT_UI(0xFE, 0x31C), + EX_GOODS_GIFT_CHANGED_NOTIFICATION(0xFE, 0x31D), + EX_GOODS_GIFT_LIST_INFO(0xFE, 0x31E), + EX_GOODS_GIFT_ACCEPT_RESULT(0xFE, 0x31F), + EX_GOODS_GIFT_REFUSE_RESULT(0xFE, 0x320), + EX_NONPVPSERVER_NOTIFY_ACTIVATEFLAG(0xFE, 0x321), + EX_WORLD_EXCHANGE_AVERAGE_PRICE(0xFE, 0x322), + EX_WORLD_EXCHANGE_TOTAL_LIST(0xFE, 0x323), + EX_PRISON_USER_ENTER(0xFE, 0x324), + EX_PRISON_USER_EXIT(0xFE, 0x325), + EX_PRISON_USER_INFO(0xFE, 0x326), + EX_PRISON_USER_DONATION(0xFE, 0x327), + EX_ITEM_RESTORE_OPEN(0xFE, 0x328), + EX_MAX(0xFE, 0x329); private final int _id1; private final int _id2; diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/RequestClanAskJoinByName.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/RequestClanAskJoinByName.java index eade985c62..0105591a92 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/RequestClanAskJoinByName.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/RequestClanAskJoinByName.java @@ -57,7 +57,7 @@ public class RequestClanAskJoinByName implements IClientIncomingPacket return; } - invitedPlayer.sendPacket(new AskJoinPledge(player, _pledgeType, player.getClan().getName())); + invitedPlayer.sendPacket(new AskJoinPledge(player, player.getClan().getName())); } public int getPledgeType() diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/RequestJoinPledge.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/RequestJoinPledge.java index 12de7c6044..57fa86b53a 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/RequestJoinPledge.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/RequestJoinPledge.java @@ -110,7 +110,7 @@ public class RequestJoinPledge implements IClientIncomingPacket } final String pledgeName = player.getClan().getName(); - target.sendPacket(new AskJoinPledge(player, _pledgeType, pledgeName)); + target.sendPacket(new AskJoinPledge(player, pledgeName)); } public int getPledgeType() diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/limitshop/RequestPurchaseLimitShopItemBuy.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/limitshop/RequestPurchaseLimitShopItemBuy.java index 59244befcb..5fbcd00cc6 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/limitshop/RequestPurchaseLimitShopItemBuy.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/limitshop/RequestPurchaseLimitShopItemBuy.java @@ -81,6 +81,9 @@ public class RequestPurchaseLimitShopItemBuy implements IClientIncomingPacket } } + packet.readD(); // SuccessionItemSID + packet.readD(); // MaterialItemSID + return true; } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/newhenna/RequestNewHennaUnequipInfo.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/newhenna/RequestNewHennaUnequipInfo.java new file mode 100644 index 0000000000..bb71fec236 --- /dev/null +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/newhenna/RequestNewHennaUnequipInfo.java @@ -0,0 +1,85 @@ +/* + * 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 org.l2jmobius.gameserver.network.clientpackets.newhenna; + +import org.l2jmobius.commons.network.PacketReader; +import org.l2jmobius.gameserver.model.actor.Player; +import org.l2jmobius.gameserver.model.item.henna.Henna; +import org.l2jmobius.gameserver.network.GameClient; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; +import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; +import org.l2jmobius.gameserver.network.serverpackets.newhenna.NewHennaUnequip; + +/** + * @author Index + */ +public class RequestNewHennaUnequipInfo implements IClientIncomingPacket +{ + private int _hennaId; + + @Override + public boolean read(GameClient client, PacketReader packet) + { + _hennaId = packet.readD(); + return true; + } + + @Override + public void run(GameClient client) + { + final Player player = client.getPlayer(); + if (player == null) + { + return; + } + + Henna henna = null; + int slotId = 0; + for (int slot = 1; slot <= 4; slot++) + { + if (player.getHenna(slot) == null) + { + continue; + } + if (player.getHenna(slot).getDyeId() == _hennaId) + { + henna = player.getHenna(slot); + slotId = slot; + break; + } + } + if ((henna == null) || !client.getFloodProtectors().canPerformTransaction()) + { + player.sendPacket(ActionFailed.STATIC_PACKET); + player.sendPacket(new NewHennaUnequip(slotId, 0)); + return; + } + + if (player.getAdena() >= henna.getCancelFee()) + { + player.removeHenna(slotId); + player.sendPacket(new NewHennaUnequip(slotId, 1)); + } + else + { + player.sendPacket(SystemMessageId.NOT_ENOUGH_ADENA); + player.sendPacket(ActionFailed.STATIC_PACKET); + player.sendPacket(new NewHennaUnequip(slotId, 0)); + } + } +} diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/variation/RequestRefine.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/variation/RequestRefine.java index a9668c230f..42a198b9f7 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/variation/RequestRefine.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/variation/RequestRefine.java @@ -30,22 +30,20 @@ import org.l2jmobius.gameserver.network.serverpackets.ExVariationResult; import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate; /** - * Format:(ch) dddd - * @author -Wooden- + * Format:(ch) ddc + * @author -Wooden-, Index */ public class RequestRefine extends AbstractRefinePacket { private int _targetItemObjId; private int _mineralItemObjId; - private long _feeCount; @Override public boolean read(GameClient client, PacketReader packet) { _targetItemObjId = packet.readD(); _mineralItemObjId = packet.readD(); - packet.readD(); // _feeItemObjId - _feeCount = packet.readQ(); + packet.readC(); // is event return true; } @@ -89,7 +87,7 @@ public class RequestRefine extends AbstractRefinePacket return; } - if (_feeCount <= 0) + if (fee.getAdenaFee() <= 0) { player.sendPacket(ExVariationResult.FAIL); player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS); @@ -157,7 +155,7 @@ public class RequestRefine extends AbstractRefinePacket // Consume the gemstones. if (feeItem != null) { - player.destroyItem("RequestRefine", feeItem, _feeCount, null, false); + player.destroyItem("RequestRefine", feeItem, fee.getAdenaFee(), null, false); } // Consume Adena. diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/AskJoinPledge.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/AskJoinPledge.java index c5f848f92d..446a930cf2 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/AskJoinPledge.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/AskJoinPledge.java @@ -23,13 +23,11 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class AskJoinPledge implements IClientOutgoingPacket { private final Player _requestor; - private final int _pledgeType; private final String _pledgeName; - public AskJoinPledge(Player requestor, int pledgeType, String pledgeName) + public AskJoinPledge(Player requestor, String pledgeName) { _requestor = requestor; - _pledgeType = pledgeType; _pledgeName = pledgeName; } @@ -38,12 +36,10 @@ public class AskJoinPledge implements IClientOutgoingPacket { OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet); packet.writeD(_requestor.getObjectId()); - packet.writeS(_requestor.getName()); + packet.writeS(""); packet.writeS(_pledgeName); - if (_pledgeType != 0) - { - packet.writeD(_pledgeType); - } + packet.writeD(0); + packet.writeS(""); return true; } } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/DropItem.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/DropItem.java index 3035890956..f46aa2db5a 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/DropItem.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/DropItem.java @@ -49,11 +49,13 @@ public class DropItem implements IClientOutgoingPacket // only show item count if it is a stackable item packet.writeC(_item.isStackable() ? 1 : 0); packet.writeQ(_item.getCount()); - packet.writeC(0); - // packet.writeD(1); if above C == true (1) then packet.readD() + packet.writeD(0); + packet.writeC(_item.getEnchantLevel() > 0 ? 1 : 0); + packet.writeD(0); packet.writeC(_item.getEnchantLevel()); // Grand Crusade packet.writeC(_item.getAugmentation() != null ? 1 : 0); // Grand Crusade packet.writeC(_item.getSpecialAbilities().size()); // Grand Crusade + packet.writeC(0); return true; } } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/GMViewCharacterInfo.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/GMViewCharacterInfo.java index c2f0803303..a0405daf6d 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/GMViewCharacterInfo.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/GMViewCharacterInfo.java @@ -92,9 +92,15 @@ public class GMViewCharacterInfo implements IClientOutgoingPacket packet.writeD(augment != null ? augment.getOption1Id() : 0); // Confirmed packet.writeD(augment != null ? augment.getOption2Id() : 0); // Confirmed } + for (int index = 0; index < 98; index++) + { + packet.writeD(0); // unk + } + packet.writeC(0); // unk + packet.writeC(0); // unk packet.writeC(_player.getInventory().getTalismanSlots()); // CT2.3 packet.writeC(_player.getInventory().canEquipCloak() ? 1 : 0); // CT2.3 - packet.writeD(0); + packet.writeC(0); packet.writeH(0); packet.writeD(_player.getPAtk()); packet.writeD(_player.getPAtkSpd()); diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/HennaItemRemoveInfo.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/HennaItemRemoveInfo.java index 7837ab01a9..339db92754 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/HennaItemRemoveInfo.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/HennaItemRemoveInfo.java @@ -62,7 +62,7 @@ public class HennaItemRemoveInfo implements IClientOutgoingPacket packet.writeH(0); // equip LUC packet.writeD(0); // current CHA packet.writeH(0); // equip CHA - packet.writeD(0); + packet.writeD(_henna.getDuration() * 60000); return true; } } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/ShortCutRegister.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/ShortCutRegister.java index f85ada83c7..bfcb374a9c 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/ShortCutRegister.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/ShortCutRegister.java @@ -50,7 +50,8 @@ public class ShortCutRegister implements IClientOutgoingPacket packet.writeD(0); // unknown packet.writeD(0); // unknown packet.writeD(0); // item augment id - packet.writeD(0); // TODO: Find me, item visual id ? + packet.writeD(0); // item augment id + packet.writeD(0); // visual id break; } case SKILL: @@ -61,8 +62,8 @@ public class ShortCutRegister implements IClientOutgoingPacket packet.writeD(_shortcut.getSharedReuseGroup()); packet.writeC(0); // C5 packet.writeD(_shortcut.getCharacterType()); - packet.writeD(0); // TODO: Find me - packet.writeD(0); // TODO: Find me + packet.writeD(0); // if 1 - cant use + packet.writeD(0); // reuse delay ? break; } case ACTION: diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/SpawnItem.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/SpawnItem.java index 19066f5f85..cdfd025f7d 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/SpawnItem.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/SpawnItem.java @@ -45,6 +45,7 @@ public class SpawnItem implements IClientOutgoingPacket packet.writeC(_item.getEnchantLevel()); // Grand Crusade packet.writeC(_item.getAugmentation() != null ? 1 : 0); // Grand Crusade packet.writeC(_item.getSpecialAbilities().size()); // Grand Crusade + packet.writeC(0); return true; } } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/collection/ExCollectionRegister.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/collection/ExCollectionRegister.java index 432a3fbfb8..6ab25e38d9 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/collection/ExCollectionRegister.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/collection/ExCollectionRegister.java @@ -45,7 +45,8 @@ public class ExCollectionRegister implements IClientOutgoingPacket OutgoingPackets.EX_COLLECTION_REGISTER.writeId(packet); packet.writeH(_collectionId); packet.writeC(_success); // success - packet.writeH(250); // 256 - size so far + packet.writeC(0); // recursive reward + packet.writeH(249); // 256 - size so far packet.writeC(_index); // slot index packet.writeD(_collectionInfo.getId()); // item classId packet.writeH(_collectionInfo.getEnchantLevel()); // enchant level diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java index 36d05e9317..b37432e19b 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/huntingzones/TimedHuntingZoneList.java @@ -47,7 +47,13 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count for (TimedHuntingZoneHolder holder : TimedHuntingZoneData.getInstance().getAllHuntingZones()) { - packet.writeD(holder.getEntryFee() == 0 ? 0 : 1); // required item count + final boolean isFree = holder.getEntryFee() == 0; + packet.writeD(isFree ? 0 : 1); // size of array - required item count + if (!isFree) // is array + { + packet.writeD(holder.getEntryItemId()); + packet.writeQ(holder.getEntryFee()); + } packet.writeD(holder.getEntryItemId()); packet.writeQ(holder.getEntryFee()); packet.writeD(holder.isWeekly() ? 0 : 1); // reset cycle @@ -70,6 +76,8 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket packet.writeC(0); // bIsInZonePCCafeUserOnly packet.writeC(0); // bIsPCCafeUser packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone + packet.writeC(0); // bCanUseEntranceTicket + packet.writeD(0); // nEntranceCount } return true; } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/newhenna/NewHennaList.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/newhenna/NewHennaList.java index ea65b8f7fb..3c0aa25bfe 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/newhenna/NewHennaList.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/newhenna/NewHennaList.java @@ -59,6 +59,8 @@ public class NewHennaList implements IClientOutgoingPacket packet.writeH(hennaPoten.getEnchantLevel()); packet.writeD(hennaPoten.getEnchantExp()); packet.writeH(hennaPoten.getActiveStep()); + packet.writeH(_dailyStep); + packet.writeH(_dailyCount); } return true; } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/newhenna/NewHennaPotenEnchant.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/newhenna/NewHennaPotenEnchant.java index 08771d0d41..ac63358572 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/newhenna/NewHennaPotenEnchant.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/newhenna/NewHennaPotenEnchant.java @@ -55,6 +55,8 @@ public class NewHennaPotenEnchant implements IClientOutgoingPacket packet.writeH(_dailyCount); packet.writeH(_activeStep); packet.writeC(_success ? 1 : 0); + packet.writeH(_dailyStep); + packet.writeH(_dailyCount); return true; } } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidBossSpawnInfo.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidBossSpawnInfo.java index 31bca3fd66..61158861ce 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidBossSpawnInfo.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/serverpackets/raidbossinfo/ExRaidBossSpawnInfo.java @@ -41,12 +41,13 @@ public class ExRaidBossSpawnInfo implements IClientOutgoingPacket public boolean write(PacketWriter packet) { OutgoingPackets.EX_RAID_BOSS_SPAWN_INFO.writeId(packet); + packet.writeD(0); // BossRespawnFactor packet.writeD(_statuses.size()); // count for (Entry entry : _statuses.entrySet()) { packet.writeD(entry.getKey()); packet.writeD(entry.getValue().ordinal()); - packet.writeD(0); + packet.writeD(0); // DeadDateTime } return true; } diff --git a/L2J_Mobius_Essence_6.3_Crusader/launcher/Gameserver.launch b/L2J_Mobius_Essence_6.3_Crusader/launcher/Gameserver.launch index 9963502398..9c232d01a1 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/launcher/Gameserver.launch +++ b/L2J_Mobius_Essence_6.3_Crusader/launcher/Gameserver.launch @@ -1,7 +1,7 @@ - + @@ -12,7 +12,7 @@ - - - + + + diff --git a/L2J_Mobius_Essence_6.3_Crusader/launcher/Loginserver.launch b/L2J_Mobius_Essence_6.3_Crusader/launcher/Loginserver.launch index c2a2a9fbc4..780fd9af5f 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/launcher/Loginserver.launch +++ b/L2J_Mobius_Essence_6.3_Crusader/launcher/Loginserver.launch @@ -1,7 +1,7 @@ - + @@ -13,7 +13,7 @@ - - - + + + diff --git a/L2J_Mobius_Essence_6.3_Crusader/readme.txt b/L2J_Mobius_Essence_6.3_Crusader/readme.txt index 5dc5de9077..9ce89e2f4b 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/readme.txt +++ b/L2J_Mobius_Essence_6.3_Crusader/readme.txt @@ -1,12 +1,12 @@ -L2J-Mobius Vanguard +L2J-Mobius Crusader JDK: https://www.mediafire.com/file/kb2nfx54wojys4f/bellsoft-jdk17.0.2%252B9-windows-amd64.msi XAMPP: https://www.mediafire.com/file/hkehxpyjn81ybsw/xampp-windows-x64-8.0.11-2-VS16-installer.exe Eclipse: https://www.mediafire.com/file/j208qw3s7zwx7c7/eclipse-java-2021-12-R-win32-x86_64.zip -Geodata: https://www.mediafire.com/file/p1mcjh74p8fn09p/L2J_Mobius_Essence_6.2_Vanguard_Geodata.zip +Geodata: -Client (password L2jMobius): https://drive.google.com/u/0/uc?id=1-8CWkwP7ZZlcmiykFdL_B9WvdSYXaKvI&export=download -System: https://mega.nz/file/oxl2mBQC#yt6P9XkfTbp7Sko7TG54-9vk6r5mAm732mwhbNhwO88 +Client (password L2jMobius): +System: All provided download links are for personal use. Redistribution of these links is bannable. @@ -147,6 +147,9 @@ Vanguard: https://eu.4game.com/patchnotes/lineage2essence/387/ -New enchant system -Chest and box auto-use +Crusader: https://eu.4game.com/patchnotes/lineage2essence/416/ +-Login support + Customs: -Newbie Helper NPC location info -Newbie Helper buff support until 40 level