Initial changes.

This commit is contained in:
MobiusDevelopment 2022-10-20 21:46:12 +00:00
parent f30b6b8cb3
commit 27a7721818
25 changed files with 392 additions and 251 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>L2J_Mobius_10.2_MasterClass</name>
<name>L2J_Mobius_10.3_MasterClass</name>
<comment></comment>
<projects>
</projects>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<project name="L2J_Mobius_10.2_MasterClass" default="cleanup" basedir=".">
<project name="L2J_Mobius_10.3_MasterClass" default="cleanup" basedir=".">
<description>
This file is part of the L2J Mobius project.
@ -134,15 +134,15 @@
</target>
<target name="adding-core" depends="jar" description="Adding the compiled jars to the Zip file.">
<zip destfile="${build}/L2J_Mobius_10.2_MasterClass.zip" basedir="${build.dist}" level="9" />
<zip destfile="${build}/L2J_Mobius_10.3_MasterClass.zip" basedir="${build.dist}" level="9" />
</target>
<target name="adding-datapack" depends="adding-core" description="Updating the Zip file with datapack content.">
<zip destfile="${build}/L2J_Mobius_10.2_MasterClass.zip" basedir="${datapack}" excludes="**/*-sources.jar" update="true" level="9" />
<zip destfile="${build}/L2J_Mobius_10.3_MasterClass.zip" basedir="${datapack}" excludes="**/*-sources.jar" update="true" level="9" />
</target>
<target name="adding-readme" depends="adding-datapack" description="Adding readme.txt to the Zip file.">
<zip destfile="${build}/L2J_Mobius_10.2_MasterClass.zip" basedir="." includes="readme.txt" update="true" level="9" />
<zip destfile="${build}/L2J_Mobius_10.3_MasterClass.zip" basedir="." includes="readme.txt" update="true" level="9" />
</target>
<target name="cleanup" depends="adding-readme" description="Cleaning the build folder.">

View File

@ -101,8 +101,8 @@ MaximumOnlineUsers = 2000
# Numbers of protocol revisions that server allows to connect.
# Delimiter is ;
# WARNING: <u><b><font color="red">Changing the protocol revision may result in incompatible communication and many errors in game!</font></b></u>
# Master Class Chapter 2: 362
AllowedProtocolRevisions = 362
# Master Class Chapter 3: 388
AllowedProtocolRevisions = 388
# Displays server type next to the server name on character selection.
# Notes:

View File

@ -573,211 +573,232 @@ public enum ExIncomingPackets implements IIncomingPackets<GameClient>
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, null, ConnectionState.IN_GAME),
EX_RANKING_CHAR_BUFFZONE_NPC_POSITION(0x185, null, ConnectionState.IN_GAME),
EX_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x186, null, ConnectionState.IN_GAME),
EX_MERCENARY_CASTLEWAR_CASTLE_INFO(0x187, null, 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, null, ConnectionState.IN_GAME),
EX_RESET_STATUS_BONUS(0x192, null, 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, null, ConnectionState.IN_GAME),
EX_TELEPORT_TO_RAID_POSITION(0x198, null, ConnectionState.IN_GAME),
EX_CRAFT_EXTRACT(0x199, null, ConnectionState.IN_GAME),
EX_CRAFT_RANDOM_INFO(0x19A, null, ConnectionState.IN_GAME),
EX_CRAFT_RANDOM_LOCK_SLOTEX_CRAFT_RANDOM_INFO(0x19B, null, ConnectionState.IN_GAME),
EX_CRAFT_RANDOM_REFRESH(0x19C, null, ConnectionState.IN_GAME),
EX_CRAFT_RANDOM_MAKE(0x19D, null, 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, OlympiadUI::new, 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, null, ConnectionState.IN_GAME),
EX_RANKING_CHAR_BUFFZONE_NPC_POSITION(0x186, null, ConnectionState.IN_GAME),
EX_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x187, null, ConnectionState.IN_GAME),
EX_MERCENARY_CASTLEWAR_CASTLE_INFO(0x188, null, 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, null, ConnectionState.IN_GAME),
EX_RESET_STATUS_BONUS(0x193, null, 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, null, ConnectionState.IN_GAME),
EX_TELEPORT_TO_RAID_POSITION(0x199, null, ConnectionState.IN_GAME),
EX_CRAFT_EXTRACT(0x19A, null, ConnectionState.IN_GAME),
EX_CRAFT_RANDOM_INFO(0x19B, null, ConnectionState.IN_GAME),
EX_CRAFT_RANDOM_LOCK_SLOTEX_CRAFT_RANDOM_INFO(0x19C, null, ConnectionState.IN_GAME),
EX_CRAFT_RANDOM_REFRESH(0x19D, null, ConnectionState.IN_GAME),
EX_CRAFT_RANDOM_MAKE(0x19E, null, 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, OlympiadUI::new, ConnectionState.IN_GAME),
// 270
EX_SHARED_POSITION_SHARING_UI(0x1A1, null, ConnectionState.IN_GAME),
EX_SHARED_POSITION_TELEPORT_UI(0x1A2, null, ConnectionState.IN_GAME),
EX_SHARED_POSITION_TELEPORT(0x1A3, null, ConnectionState.IN_GAME),
EX_AUTH_RECONNECT(0x1A4, null, ConnectionState.IN_GAME),
EX_PET_EQUIP_ITEM(0x1A5, null, ConnectionState.IN_GAME),
EX_PET_UNEQUIP_ITEM(0x1A6, null, ConnectionState.IN_GAME),
EX_SHOW_HOMUNCULUS_INFO(0x1A7, RequestExShowHomunculusInfo::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_CREATE_START(0x1A8, RequestExHomunculusCreateStart::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_INSERT(0x1A9, RequestExHomunculusInsert::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_SUMMON(0x1AA, RequestExHomunculusSummon::new, ConnectionState.IN_GAME),
EX_DELETE_HOMUNCULUS_DATA(0x1AB, RequestExDeleteHomunculusData::new, ConnectionState.IN_GAME),
EX_REQUEST_ACTIVATE_HOMUNCULUS(0x1AC, RequestExActivateHomunculus::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_GET_ENCHANT_POINT(0x1AD, RequestExHomunculusGetEnchantPoint::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_INIT_POINT(0x1AE, RequestExHomunculusInitPoint::new, ConnectionState.IN_GAME),
EX_EVOLVE_PET(0x1AF, ExHomunculusEvolve::new, ConnectionState.IN_GAME),
EX_ENCHANT_HOMUNCULUS_SKILL(0x1B0, RequestExEnchantHomunculusSkill::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_ENCHANT_EXP(0x1B1, RequestExHomunculusEnchantExp::new, 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, RequestExPkPenaltyList::new, ConnectionState.IN_GAME),
EX_PK_PENALTY_LIST_ONLY_LOC(0x1C0, RequestExPkPenaltyListOnlyLoc::new, ConnectionState.IN_GAME),
EX_BLESS_OPTION_PUT_ITEM(0x1C1, null, ConnectionState.IN_GAME),
EX_BLESS_OPTION_ENCHANT(0x1C2, null, ConnectionState.IN_GAME),
EX_BLESS_OPTION_CANCEL(0x1C3, null, 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, null, ConnectionState.IN_GAME),
EX_PLEDGE_V3_INFO(0x1C7, null, ConnectionState.IN_GAME),
EX_PLEDGE_ENEMY_INFO_LIST(0x1C8, null, ConnectionState.IN_GAME),
EX_PLEDGE_ENEMY_REGISTER(0x1C9, null, ConnectionState.IN_GAME),
EX_PLEDGE_ENEMY_DELETE(0x1CA, null, ConnectionState.IN_GAME),
EX_TRY_PET_EXTRACT_SYSTEM(0x1CB, null, ConnectionState.IN_GAME),
EX_PLEDGE_V3_SET_ANNOUNCE(0x1CC, null, ConnectionState.IN_GAME),
EX_SHARED_POSITION_SHARING_UI(0x1A2, null, ConnectionState.IN_GAME),
EX_SHARED_POSITION_TELEPORT_UI(0x1A3, null, ConnectionState.IN_GAME),
EX_SHARED_POSITION_TELEPORT(0x1A4, null, ConnectionState.IN_GAME),
EX_AUTH_RECONNECT(0x1A5, null, ConnectionState.IN_GAME),
EX_PET_EQUIP_ITEM(0x1A6, null, ConnectionState.IN_GAME),
EX_PET_UNEQUIP_ITEM(0x1A7, null, ConnectionState.IN_GAME),
EX_SHOW_HOMUNCULUS_INFO(0x1A8, RequestExShowHomunculusInfo::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_CREATE_START(0x1A9, RequestExHomunculusCreateStart::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_INSERT(0x1AA, RequestExHomunculusInsert::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_SUMMON(0x1AB, RequestExHomunculusSummon::new, ConnectionState.IN_GAME),
EX_DELETE_HOMUNCULUS_DATA(0x1AC, RequestExDeleteHomunculusData::new, ConnectionState.IN_GAME),
EX_REQUEST_ACTIVATE_HOMUNCULUS(0x1AD, RequestExActivateHomunculus::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_GET_ENCHANT_POINT(0x1AE, RequestExHomunculusGetEnchantPoint::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_INIT_POINT(0x1AF, RequestExHomunculusInitPoint::new, ConnectionState.IN_GAME),
EX_EVOLVE_PET(0x1B0, ExHomunculusEvolve::new, ConnectionState.IN_GAME),
EX_ENCHANT_HOMUNCULUS_SKILL(0x1B1, RequestExEnchantHomunculusSkill::new, ConnectionState.IN_GAME),
EX_HOMUNCULUS_ENCHANT_EXP(0x1B2, RequestExHomunculusEnchantExp::new, 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, RequestExPkPenaltyList::new, ConnectionState.IN_GAME),
EX_PK_PENALTY_LIST_ONLY_LOC(0x1C1, RequestExPkPenaltyListOnlyLoc::new, ConnectionState.IN_GAME),
EX_BLESS_OPTION_PUT_ITEM(0x1C2, null, ConnectionState.IN_GAME),
EX_BLESS_OPTION_ENCHANT(0x1C3, null, ConnectionState.IN_GAME),
EX_BLESS_OPTION_CANCEL(0x1C4, null, 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, null, ConnectionState.IN_GAME),
EX_PLEDGE_V3_INFO(0x1C8, null, ConnectionState.IN_GAME),
EX_PLEDGE_ENEMY_INFO_LIST(0x1C9, null, ConnectionState.IN_GAME),
EX_PLEDGE_ENEMY_REGISTER(0x1CA, null, ConnectionState.IN_GAME),
EX_PLEDGE_ENEMY_DELETE(0x1CB, null, ConnectionState.IN_GAME),
EX_TRY_PET_EXTRACT_SYSTEM(0x1CC, null, ConnectionState.IN_GAME),
EX_PLEDGE_V3_SET_ANNOUNCE(0x1CD, null, 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, null, ConnectionState.IN_GAME),
EX_PET_RANKING_LIST(0x1D9, null, 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, null, ConnectionState.IN_GAME),
EX_PVPBOOK_SHARE_REVENGE_REQ_SHARE_REVENGEINFO(0x1E3, null, ConnectionState.IN_GAME),
EX_PVPBOOK_SHARE_REVENGE_KILLER_LOCATION(0x1E4, null, ConnectionState.IN_GAME),
EX_PVPBOOK_SHARE_REVENGE_TELEPORT_TO_KILLER(0x1E5, null, ConnectionState.IN_GAME),
EX_PVPBOOK_SHARE_REVENGE_SHARED_TELEPORT_TO_KILLER(0x1E6, null, 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, RequestExHomunculusActivateSlot::new, ConnectionState.IN_GAME),
EX_SUMMON_HOMUNCULUS_COUPON(0x1ED, RequestExSummonHomunculusCouponResult::new, ConnectionState.IN_GAME),
EX_SUBJUGATION_LIST(0x1EE, null, ConnectionState.IN_GAME),
EX_SUBJUGATION_RANKING(0x1EF, null, ConnectionState.IN_GAME),
EX_SUBJUGATION_GACHA_UI(0x1F0, null, ConnectionState.IN_GAME),
EX_SUBJUGATION_GACHA(0x1F1, null, ConnectionState.IN_GAME),
EX_PLEDGE_DONATION_INFO(0x1F2, null, ConnectionState.IN_GAME),
EX_PLEDGE_DONATION_REQUEST(0x1F3, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_LIST(0x1F4, null, ConnectionState.IN_GAME),
EX_PLEDGE_RANKING_MY_INFO(0x1F5, null, ConnectionState.IN_GAME),
EX_PLEDGE_RANKING_LIST(0x1F6, null, 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, null, ConnectionState.IN_GAME),
EX_PET_RANKING_LIST(0x1DA, null, 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, null, ConnectionState.IN_GAME),
EX_PVPBOOK_SHARE_REVENGE_REQ_SHARE_REVENGEINFO(0x1E4, null, ConnectionState.IN_GAME),
EX_PVPBOOK_SHARE_REVENGE_KILLER_LOCATION(0x1E5, null, ConnectionState.IN_GAME),
EX_PVPBOOK_SHARE_REVENGE_TELEPORT_TO_KILLER(0x1E6, null, ConnectionState.IN_GAME),
EX_PVPBOOK_SHARE_REVENGE_SHARED_TELEPORT_TO_KILLER(0x1E7, null, 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, RequestExHomunculusActivateSlot::new, ConnectionState.IN_GAME),
EX_SUMMON_HOMUNCULUS_COUPON(0x1EE, RequestExSummonHomunculusCouponResult::new, ConnectionState.IN_GAME),
EX_SUBJUGATION_LIST(0x1EF, null, ConnectionState.IN_GAME),
EX_SUBJUGATION_RANKING(0x1F0, null, ConnectionState.IN_GAME),
EX_SUBJUGATION_GACHA_UI(0x1F1, null, ConnectionState.IN_GAME),
EX_SUBJUGATION_GACHA(0x1F2, null, ConnectionState.IN_GAME),
EX_PLEDGE_DONATION_INFO(0x1F3, null, ConnectionState.IN_GAME),
EX_PLEDGE_DONATION_REQUEST(0x1F4, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_LIST(0x1F5, null, ConnectionState.IN_GAME),
EX_PLEDGE_RANKING_MY_INFO(0x1F6, null, ConnectionState.IN_GAME),
EX_PLEDGE_RANKING_LIST(0x1F7, null, 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, null, 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, null, ConnectionState.IN_GAME),
EX_NEW_HENNA_EQUIP(0x219, null, ConnectionState.IN_GAME),
EX_NEW_HENNA_UNEQUIP(0x21A, null, ConnectionState.IN_GAME),
EX_NEW_HENNA_POTEN_SELECT(0x21B, null, ConnectionState.IN_GAME),
EX_NEW_HENNA_POTEN_ENCHANT(0x21C, null, ConnectionState.IN_GAME),
EX_NEW_HENNA_COMPOSE(0x21D, null, 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, null, ConnectionState.IN_GAME),
EX_L2PASS_REQUEST_REWARD(0x223, null, ConnectionState.IN_GAME),
EX_L2PASS_REQUEST_REWARD_ALL(0x224, null, ConnectionState.IN_GAME),
EX_L2PASS_BUY_PREMIUM(0x225, null, ConnectionState.IN_GAME),
EX_SAYHAS_SUPPORT_TOGGLE(0x226, null, 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, null, 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, null, ConnectionState.IN_GAME),
EX_NEW_HENNA_EQUIP(0x21A, null, ConnectionState.IN_GAME),
EX_NEW_HENNA_UNEQUIP(0x21B, null, ConnectionState.IN_GAME),
EX_NEW_HENNA_POTEN_SELECT(0x21C, null, ConnectionState.IN_GAME),
EX_NEW_HENNA_POTEN_ENCHANT(0x21D, null, ConnectionState.IN_GAME),
EX_NEW_HENNA_COMPOSE(0x21E, null, 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, null, ConnectionState.IN_GAME),
EX_L2PASS_REQUEST_REWARD(0x224, null, ConnectionState.IN_GAME),
EX_L2PASS_REQUEST_REWARD_ALL(0x225, null, ConnectionState.IN_GAME),
EX_L2PASS_BUY_PREMIUM(0x226, null, ConnectionState.IN_GAME),
EX_SAYHAS_SUPPORT_TOGGLE(0x227, null, 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, ExRequestHomunculusProbabilityList::new, 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, null, ConnectionState.IN_GAME),
EX_MISSION_LEVEL_RECEIVE_REWARD(0x237, null, 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, null, ConnectionState.IN_GAME),
EX_WORLD_EXCHANGE_REGI_ITEM(0x23E, null, ConnectionState.IN_GAME),
EX_WORLD_EXCHANGE_BUY_ITEM(0x23F, null, ConnectionState.IN_GAME),
EX_WORLD_EXCHANGE_SETTLE_LIST(0x240, null, ConnectionState.IN_GAME),
EX_WORLD_EXCHANGE_SETTLE_RECV_RESULT(0x241, null, ConnectionState.IN_GAME),
EX_READY_ITEM_AUTO_PEEL(0x242, null, ConnectionState.IN_GAME),
EX_REQUEST_ITEM_AUTO_PEEL(0x243, null, ConnectionState.IN_GAME),
EX_STOP_ITEM_AUTO_PEEL(0x244, null, 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, null, ConnectionState.IN_GAME),
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, ExRequestHomunculusProbabilityList::new, 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, null, ConnectionState.IN_GAME),
EX_MISSION_LEVEL_RECEIVE_REWARD(0x238, null, 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, null, ConnectionState.IN_GAME),
EX_WORLD_EXCHANGE_REGI_ITEM(0x23F, null, ConnectionState.IN_GAME),
EX_WORLD_EXCHANGE_BUY_ITEM(0x240, null, ConnectionState.IN_GAME),
EX_WORLD_EXCHANGE_SETTLE_LIST(0x241, null, ConnectionState.IN_GAME),
EX_WORLD_EXCHANGE_SETTLE_RECV_RESULT(0x242, null, ConnectionState.IN_GAME),
EX_READY_ITEM_AUTO_PEEL(0x243, null, ConnectionState.IN_GAME),
EX_REQUEST_ITEM_AUTO_PEEL(0x244, null, ConnectionState.IN_GAME),
EX_STOP_ITEM_AUTO_PEEL(0x245, null, 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, null, ConnectionState.IN_GAME),
// 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;

View File

@ -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;

View File

@ -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()

View File

@ -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()

View File

@ -0,0 +1,61 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package org.l2jmobius.gameserver.network.clientpackets;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.xml.HennaData;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.item.Henna;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.PacketLogger;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import org.l2jmobius.gameserver.network.serverpackets.HennaItemRemoveInfo;
/**
* @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) || (_hennaId == 0))
{
return;
}
final Henna henna = HennaData.getInstance().getHenna(_hennaId);
if (henna == null)
{
PacketLogger.warning("Invalid Henna Id: " + _hennaId + " from " + player);
player.sendPacket(ActionFailed.STATIC_PACKET);
return;
}
player.sendPacket(new HennaItemRemoveInfo(henna, player));
}
}

View File

@ -74,6 +74,9 @@ public class RequestPurchaseLimitShopItemBuy implements IClientIncomingPacket
}
}
packet.readD(); // SuccessionItemSID
packet.readD(); // MaterialItemSID
return true;
}

View File

@ -30,22 +30,20 @@ import org.l2jmobius.gameserver.network.clientpackets.AbstractRefinePacket;
import org.l2jmobius.gameserver.network.serverpackets.ExVariationResult;
/**
* 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);
@ -145,7 +143,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.

View File

@ -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;
}
}

View File

@ -110,6 +110,10 @@ public class Die implements IClientOutgoingPacket
packet.writeD(0);
packet.writeD(0);
packet.writeD(0);
packet.writeD(0);
packet.writeD(0);
packet.writeD(0);
packet.writeD(0);
return true;
}
}

View File

@ -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;
}
}

View File

@ -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());

View File

@ -62,7 +62,7 @@ public class HennaItemRemoveInfo implements IClientOutgoingPacket
packet.writeH(_player.getLUC() - _player.getHennaValue(BaseStat.LUC)); // equip LUC
packet.writeD(_player.getCHA()); // current CHA
packet.writeH(_player.getCHA() - _player.getHennaValue(BaseStat.CHA)); // equip CHA
packet.writeD(0);
packet.writeD(_henna.getDuration() * 60000);
return true;
}
}

View File

@ -49,8 +49,8 @@ public class HennaRemoveList implements IClientOutgoingPacket
packet.writeD(henna.getDyeItemId());
packet.writeQ(henna.getCancelCount());
packet.writeQ(henna.getCancelFee());
packet.writeD(0);
packet.writeD(0);
packet.writeD(henna.isAllowedClass(_player.getClassId()) ? 1 : 0);
packet.writeD(henna.getDuration() * 60000);
}
}
return true;

View File

@ -45,6 +45,8 @@ public class KeyPacket implements IClientOutgoingPacket
packet.writeC(1);
packet.writeD(0); // obfuscation key
packet.writeC((Config.SERVER_LIST_TYPE & 0x400) == 0x400 ? 1 : 0); // isClassic
packet.writeC(0);
packet.writeC(0);
return true;
}
}

View File

@ -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:

View File

@ -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;
}
}

View File

@ -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

View File

@ -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;
}

View File

@ -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<Integer, RaidBossStatus> entry : _statuses.entrySet())
{
packet.writeD(entry.getKey());
packet.writeD(entry.getValue().ordinal());
packet.writeD(0);
packet.writeD(0); // DeadDateTime
}
return true;
}

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/GameServer.java"/>
<listEntry value="/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/GameServer.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@ -12,7 +12,7 @@
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.l2jmobius.gameserver.GameServer"/>
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_10.2_MasterClass"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_10.2_MasterClass"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_10.2_MasterClass}/dist/game/"/>
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_10.3_MasterClass"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_10.3_MasterClass"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_10.3_MasterClass}/dist/game/"/>
</launchConfiguration>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/loginserver/LoginServer.java"/>
<listEntry value="/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/loginserver/LoginServer.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@ -13,7 +13,7 @@
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.l2jmobius.loginserver.LoginServer"/>
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_10.2_MasterClass"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_10.2_MasterClass"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_10.2_MasterClass}/dist/login/"/>
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_10.3_MasterClass"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_10.3_MasterClass"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_10.3_MasterClass}/dist/login/"/>
</launchConfiguration>

View File

@ -1,12 +1,12 @@
L2J-Mobius Master Class Chapter 2
L2J-Mobius Master Class Chapter 3
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/ai74r89czoj6rye/L2J_Mobius_10.2_MasterClass_Geodata.zip
Geodata:
Client (password L2jMobius): https://drive.google.com/u/0/uc?id=1-8CWkwP7ZZlcmiykFdL_B9WvdSYXaKvI&export=download
System: https://mega.nz/file/dplgmYRa#vvg45gwevALzoPmfsZY-nnUFLYvLn5UXEo6XegENiLA
Client (password L2jMobius):
System:
All provided download links are for personal use. Redistribution of these links is bannable.
@ -131,6 +131,9 @@ Master Class: https://eu.4game.com/patchnotes/lineage2/362/
Master Class Chapter 2: https://eu.4game.com/patchnotes/lineage2/374/
-New enchant system
Master Class Chapter 3: https://eu.4gameforum.com/threads/690625/
-Login support.
Events:
-Birth of Draco
-Character Birthday