Initial changes.
This commit is contained in:
parent
d9b0d3a5bb
commit
c532b6a0b5
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<projectDescription>
|
<projectDescription>
|
||||||
<name>L2J_Mobius_Essence_6.2_Vanguard</name>
|
<name>L2J_Mobius_Essence_6.3_Crusader</name>
|
||||||
<comment></comment>
|
<comment></comment>
|
||||||
<projects>
|
<projects>
|
||||||
</projects>
|
</projects>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE xml>
|
<!DOCTYPE xml>
|
||||||
<project name="L2J_Mobius_Essence_6.2_Vanguard" default="cleanup" basedir=".">
|
<project name="L2J_Mobius_Essence_6.3_Crusader" default="cleanup" basedir=".">
|
||||||
<description>
|
<description>
|
||||||
This file is part of the L2J Mobius project.
|
This file is part of the L2J Mobius project.
|
||||||
|
|
||||||
@ -134,15 +134,15 @@
|
|||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="adding-core" depends="jar" description="Adding the compiled jars to the Zip file.">
|
<target name="adding-core" depends="jar" description="Adding the compiled jars to the Zip file.">
|
||||||
<zip destfile="${build}/L2J_Mobius_Essence_6.2_Vanguard.zip" basedir="${build.dist}" level="9" />
|
<zip destfile="${build}/L2J_Mobius_Essence_6.3_Crusader.zip" basedir="${build.dist}" level="9" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="adding-datapack" depends="adding-core" description="Updating the Zip file with datapack content.">
|
<target name="adding-datapack" depends="adding-core" description="Updating the Zip file with datapack content.">
|
||||||
<zip destfile="${build}/L2J_Mobius_Essence_6.2_Vanguard.zip" basedir="${datapack}" excludes="**/*-sources.jar" update="true" level="9" />
|
<zip destfile="${build}/L2J_Mobius_Essence_6.3_Crusader.zip" basedir="${datapack}" excludes="**/*-sources.jar" update="true" level="9" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="adding-readme" depends="adding-datapack" description="Adding readme.txt to the Zip file.">
|
<target name="adding-readme" depends="adding-datapack" description="Adding readme.txt to the Zip file.">
|
||||||
<zip destfile="${build}/L2J_Mobius_Essence_6.2_Vanguard.zip" basedir="." includes="readme.txt" update="true" level="9" />
|
<zip destfile="${build}/L2J_Mobius_Essence_6.3_Crusader.zip" basedir="." includes="readme.txt" update="true" level="9" />
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
<target name="cleanup" depends="adding-readme" description="Cleaning the build folder.">
|
<target name="cleanup" depends="adding-readme" description="Cleaning the build folder.">
|
||||||
|
@ -101,8 +101,8 @@ MaximumOnlineUsers = 2000
|
|||||||
# Numbers of protocol revisions that server allows to connect.
|
# Numbers of protocol revisions that server allows to connect.
|
||||||
# Delimiter is ;
|
# 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>
|
# WARNING: <u><b><font color="red">Changing the protocol revision may result in incompatible communication and many errors in game!</font></b></u>
|
||||||
# Vanguard: 362
|
# Crusader: 388
|
||||||
AllowedProtocolRevisions = 362
|
AllowedProtocolRevisions = 388
|
||||||
|
|
||||||
# Displays server type next to the server name on character selection.
|
# Displays server type next to the server name on character selection.
|
||||||
# Notes:
|
# Notes:
|
||||||
|
@ -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.RequestNewHennaPotenEnchant;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.newhenna.RequestNewHennaPotenSelect;
|
import org.l2jmobius.gameserver.network.clientpackets.newhenna.RequestNewHennaPotenSelect;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.newhenna.RequestNewHennaUnequip;
|
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.ExEvolvePet;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.pet.ExPetEquipItem;
|
import org.l2jmobius.gameserver.network.clientpackets.pet.ExPetEquipItem;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.pet.ExPetUnequipItem;
|
import org.l2jmobius.gameserver.network.clientpackets.pet.ExPetUnequipItem;
|
||||||
@ -605,211 +606,232 @@ public enum ExIncomingPackets implements IIncomingPackets<GameClient>
|
|||||||
EX_GACHA_SHOP_GACHA_ITEM(0x17E, null, ConnectionState.IN_GAME),
|
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_LIST(0x17F, ExTimedHuntingZoneList::new, ConnectionState.IN_GAME),
|
||||||
EX_TIME_RESTRICT_FIELD_USER_ENTER(0x180, ExTimedHuntingZoneEnter::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_TIME_RESTRICT_FIELD_USER_LEAVE(0x181, null, ConnectionState.IN_GAME),
|
||||||
EX_RANKING_CHAR_HISTORY(0x182, null, ConnectionState.IN_GAME),
|
EX_RANKING_CHAR_INFO(0x182, RequestRankingCharInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_RANKING_CHAR_RANKERS(0x183, RequestRankingCharRankers::new, ConnectionState.IN_GAME),
|
EX_RANKING_CHAR_HISTORY(0x183, null, ConnectionState.IN_GAME),
|
||||||
EX_RANKING_CHAR_SPAWN_BUFFZONE_NPC(0x184, RequestExRankingCharSpawnBuffzoneNpc::new, ConnectionState.IN_GAME),
|
EX_RANKING_CHAR_RANKERS(0x184, RequestRankingCharRankers::new, ConnectionState.IN_GAME),
|
||||||
EX_RANKING_CHAR_BUFFZONE_NPC_POSITION(0x185, RequestExRankingCharBuffzoneNpcPosition::new, ConnectionState.IN_GAME),
|
EX_RANKING_CHAR_SPAWN_BUFFZONE_NPC(0x185, RequestExRankingCharSpawnBuffzoneNpc::new, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x186, null, ConnectionState.IN_GAME),
|
EX_RANKING_CHAR_BUFFZONE_NPC_POSITION(0x186, RequestExRankingCharBuffzoneNpcPosition::new, ConnectionState.IN_GAME),
|
||||||
EX_MERCENARY_CASTLEWAR_CASTLE_INFO(0x187, ExMCWCastleInfo::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x187, null, ConnectionState.IN_GAME),
|
||||||
EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_INFO(0x188, null, ConnectionState.IN_GAME),
|
EX_MERCENARY_CASTLEWAR_CASTLE_INFO(0x188, ExMCWCastleInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x189, null, ConnectionState.IN_GAME),
|
EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_INFO(0x189, null, ConnectionState.IN_GAME),
|
||||||
EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_DEFENDER_LIST(0x18A, null, ConnectionState.IN_GAME),
|
EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x18A, null, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_MERCENARY_MEMBER_LIST(0x18B, null, ConnectionState.IN_GAME),
|
EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_DEFENDER_LIST(0x18B, null, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_MERCENARY_MEMBER_JOIN(0x18C, null, ConnectionState.IN_GAME),
|
EX_PLEDGE_MERCENARY_MEMBER_LIST(0x18C, null, ConnectionState.IN_GAME),
|
||||||
EX_PVP_BOOK_LIST(0x18D, ExPvpBookList::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_MERCENARY_MEMBER_JOIN(0x18D, null, ConnectionState.IN_GAME),
|
||||||
EX_PVPBOOK_KILLER_LOCATION(0x18E, null, ConnectionState.IN_GAME),
|
EX_PVP_BOOK_LIST(0x18E, ExPvpBookList::new, ConnectionState.IN_GAME),
|
||||||
EX_PVPBOOK_TELEPORT_TO_KILLER(0x18F, null, ConnectionState.IN_GAME),
|
EX_PVPBOOK_KILLER_LOCATION(0x18F, null, ConnectionState.IN_GAME),
|
||||||
EX_LETTER_COLLECTOR_TAKE_REWARD(0x190, ExLetterCollectorTakeReward::new, ConnectionState.IN_GAME),
|
EX_PVPBOOK_TELEPORT_TO_KILLER(0x190, null, ConnectionState.IN_GAME),
|
||||||
EX_SET_STATUS_BONUS(0x191, ExSetStatusBonus::new, ConnectionState.IN_GAME),
|
EX_LETTER_COLLECTOR_TAKE_REWARD(0x191, ExLetterCollectorTakeReward::new, ConnectionState.IN_GAME),
|
||||||
EX_RESET_STATUS_BONUS(0x192, ExResetStatusBonus::new, ConnectionState.IN_GAME),
|
EX_SET_STATUS_BONUS(0x192, ExSetStatusBonus::new, ConnectionState.IN_GAME),
|
||||||
EX_OLYMPIAD_MY_RANKING_INFO(0x193, RequestOlympiadMyRankingInfo::new, ConnectionState.IN_GAME),
|
EX_RESET_STATUS_BONUS(0x193, ExResetStatusBonus::new, ConnectionState.IN_GAME),
|
||||||
EX_OLYMPIAD_RANKING_INFO(0x194, RequestOlympiadRankingInfo::new, ConnectionState.IN_GAME),
|
EX_OLYMPIAD_MY_RANKING_INFO(0x194, RequestOlympiadMyRankingInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_OLYMPIAD_HERO_AND_LEGEND_INFO(0x195, RequestOlympiadHeroAndLegendInfo::new, ConnectionState.IN_GAME),
|
EX_OLYMPIAD_RANKING_INFO(0x195, RequestOlympiadRankingInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_CASTLEWAR_OBSERVER_START(0x196, null, ConnectionState.IN_GAME),
|
EX_OLYMPIAD_HERO_AND_LEGEND_INFO(0x196, RequestOlympiadHeroAndLegendInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_RAID_TELEPORT_INFO(0x197, RequestRaidTeleportInfo::new, ConnectionState.IN_GAME),
|
EX_CASTLEWAR_OBSERVER_START(0x197, null, ConnectionState.IN_GAME),
|
||||||
EX_TELEPORT_TO_RAID_POSITION(0x198, ExTeleportToRaidPosition::new, ConnectionState.IN_GAME),
|
EX_RAID_TELEPORT_INFO(0x198, RequestRaidTeleportInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_CRAFT_EXTRACT(0x199, ExRequestRandomCraftExtract::new, ConnectionState.IN_GAME),
|
EX_TELEPORT_TO_RAID_POSITION(0x199, ExTeleportToRaidPosition::new, ConnectionState.IN_GAME),
|
||||||
EX_CRAFT_RANDOM_INFO(0x19A, ExRequestRandomCraftInfo::new, ConnectionState.IN_GAME),
|
EX_CRAFT_EXTRACT(0x19A, ExRequestRandomCraftExtract::new, ConnectionState.IN_GAME),
|
||||||
EX_CRAFT_RANDOM_LOCK_SLOTEX_CRAFT_RANDOM_INFO(0x19B, ExRequestRandomCraftLockSlot::new, ConnectionState.IN_GAME),
|
EX_CRAFT_RANDOM_INFO(0x19B, ExRequestRandomCraftInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_CRAFT_RANDOM_REFRESH(0x19C, ExRequestRandomCraftRefresh::new, ConnectionState.IN_GAME),
|
EX_CRAFT_RANDOM_LOCK_SLOTEX_CRAFT_RANDOM_INFO(0x19C, ExRequestRandomCraftLockSlot::new, ConnectionState.IN_GAME),
|
||||||
EX_CRAFT_RANDOM_MAKE(0x19D, ExRequestRandomCraftMake::new, ConnectionState.IN_GAME),
|
EX_CRAFT_RANDOM_REFRESH(0x19D, ExRequestRandomCraftRefresh::new, ConnectionState.IN_GAME),
|
||||||
EX_MULTI_SELL_LIST(0x19E, null, ConnectionState.IN_GAME),
|
EX_CRAFT_RANDOM_MAKE(0x19E, ExRequestRandomCraftMake::new, ConnectionState.IN_GAME),
|
||||||
EX_SAVE_ITEM_ANNOUNCE_SETTING(0x19F, ExSaveItemAnnounceSetting::new, ConnectionState.IN_GAME),
|
EX_MULTI_SELL_LIST(0x19F, null, ConnectionState.IN_GAME),
|
||||||
EX_OLYMPIAD_UI(0x1A0, null, ConnectionState.IN_GAME),
|
EX_SAVE_ITEM_ANNOUNCE_SETTING(0x1A0, ExSaveItemAnnounceSetting::new, ConnectionState.IN_GAME),
|
||||||
|
EX_OLYMPIAD_UI(0x1A1, null, ConnectionState.IN_GAME),
|
||||||
// 270
|
// 270
|
||||||
EX_SHARED_POSITION_SHARING_UI(0x1A1, ExRequestSharingLocationUi::new, ConnectionState.IN_GAME),
|
EX_SHARED_POSITION_SHARING_UI(0x1A2, ExRequestSharingLocationUi::new, ConnectionState.IN_GAME),
|
||||||
EX_SHARED_POSITION_TELEPORT_UI(0x1A2, ExRequestSharedLocationTeleportUi::new, ConnectionState.IN_GAME),
|
EX_SHARED_POSITION_TELEPORT_UI(0x1A3, ExRequestSharedLocationTeleportUi::new, ConnectionState.IN_GAME),
|
||||||
EX_SHARED_POSITION_TELEPORT(0x1A3, ExRequestSharedLocationTeleport::new, ConnectionState.IN_GAME),
|
EX_SHARED_POSITION_TELEPORT(0x1A4, ExRequestSharedLocationTeleport::new, ConnectionState.IN_GAME),
|
||||||
EX_AUTH_RECONNECT(0x1A4, null, ConnectionState.IN_GAME),
|
EX_AUTH_RECONNECT(0x1A5, null, ConnectionState.IN_GAME),
|
||||||
EX_PET_EQUIP_ITEM(0x1A5, ExPetEquipItem::new, ConnectionState.IN_GAME),
|
EX_PET_EQUIP_ITEM(0x1A6, ExPetEquipItem::new, ConnectionState.IN_GAME),
|
||||||
EX_PET_UNEQUIP_ITEM(0x1A6, ExPetUnequipItem::new, ConnectionState.IN_GAME),
|
EX_PET_UNEQUIP_ITEM(0x1A7, ExPetUnequipItem::new, ConnectionState.IN_GAME),
|
||||||
EX_SHOW_HOMUNCULUS_INFO(0x1A7, null, ConnectionState.IN_GAME),
|
EX_SHOW_HOMUNCULUS_INFO(0x1A8, null, ConnectionState.IN_GAME),
|
||||||
EX_HOMUNCULUS_CREATE_START(0x1A8, null, ConnectionState.IN_GAME),
|
EX_HOMUNCULUS_CREATE_START(0x1A9, null, ConnectionState.IN_GAME),
|
||||||
EX_HOMUNCULUS_INSERT(0x1A9, null, ConnectionState.IN_GAME),
|
EX_HOMUNCULUS_INSERT(0x1AA, null, ConnectionState.IN_GAME),
|
||||||
EX_HOMUNCULUS_SUMMON(0x1AA, null, ConnectionState.IN_GAME),
|
EX_HOMUNCULUS_SUMMON(0x1AB, null, ConnectionState.IN_GAME),
|
||||||
EX_DELETE_HOMUNCULUS_DATA(0x1AB, null, ConnectionState.IN_GAME),
|
EX_DELETE_HOMUNCULUS_DATA(0x1AC, null, ConnectionState.IN_GAME),
|
||||||
EX_REQUEST_ACTIVATE_HOMUNCULUS(0x1AC, null, ConnectionState.IN_GAME),
|
EX_REQUEST_ACTIVATE_HOMUNCULUS(0x1AD, null, ConnectionState.IN_GAME),
|
||||||
EX_HOMUNCULUS_GET_ENCHANT_POINT(0x1AD, null, ConnectionState.IN_GAME),
|
EX_HOMUNCULUS_GET_ENCHANT_POINT(0x1AE, null, ConnectionState.IN_GAME),
|
||||||
EX_HOMUNCULUS_INIT_POINT(0x1AE, null, ConnectionState.IN_GAME),
|
EX_HOMUNCULUS_INIT_POINT(0x1AF, null, ConnectionState.IN_GAME),
|
||||||
EX_EVOLVE_PET(0x1AF, ExEvolvePet::new, ConnectionState.IN_GAME),
|
EX_EVOLVE_PET(0x1B0, ExEvolvePet::new, ConnectionState.IN_GAME),
|
||||||
EX_ENCHANT_HOMUNCULUS_SKILL(0x1B0, null, ConnectionState.IN_GAME),
|
EX_ENCHANT_HOMUNCULUS_SKILL(0x1B1, null, ConnectionState.IN_GAME),
|
||||||
EX_HOMUNCULUS_ENCHANT_EXP(0x1B1, null, ConnectionState.IN_GAME),
|
EX_HOMUNCULUS_ENCHANT_EXP(0x1B2, null, ConnectionState.IN_GAME),
|
||||||
EX_TELEPORT_FAVORITES_LIST(0x1B2, ExRequestTeleportFavoriteList::new, ConnectionState.IN_GAME),
|
EX_TELEPORT_FAVORITES_LIST(0x1B3, ExRequestTeleportFavoriteList::new, ConnectionState.IN_GAME),
|
||||||
EX_TELEPORT_FAVORITES_UI_TOGGLE(0x1B3, ExRequestTeleportFavoritesUIToggle::new, ConnectionState.IN_GAME),
|
EX_TELEPORT_FAVORITES_UI_TOGGLE(0x1B4, ExRequestTeleportFavoritesUIToggle::new, ConnectionState.IN_GAME),
|
||||||
EX_TELEPORT_FAVORITES_ADD_DEL(0x1B4, ExRequestTeleportFavoritesAddDel::new, ConnectionState.IN_GAME),
|
EX_TELEPORT_FAVORITES_ADD_DEL(0x1B5, ExRequestTeleportFavoritesAddDel::new, ConnectionState.IN_GAME),
|
||||||
EX_ANTIBOT(0x1B5, null, ConnectionState.IN_GAME),
|
EX_ANTIBOT(0x1B6, null, ConnectionState.IN_GAME),
|
||||||
EX_DPSVR(0x1B6, null, ConnectionState.IN_GAME),
|
EX_DPSVR(0x1B7, null, ConnectionState.IN_GAME),
|
||||||
EX_TENPROTECT_DECRYPT_ERROR(0x1B7, null, ConnectionState.IN_GAME),
|
EX_TENPROTECT_DECRYPT_ERROR(0x1B8, null, ConnectionState.IN_GAME),
|
||||||
EX_NET_LATENCY(0x1B8, null, ConnectionState.IN_GAME),
|
EX_NET_LATENCY(0x1B9, null, ConnectionState.IN_GAME),
|
||||||
EX_MABLE_GAME_OPEN(0x1B9, null, ConnectionState.IN_GAME),
|
EX_MABLE_GAME_OPEN(0x1BA, null, ConnectionState.IN_GAME),
|
||||||
EX_MABLE_GAME_ROLL_DICE(0x1BA, null, ConnectionState.IN_GAME),
|
EX_MABLE_GAME_ROLL_DICE(0x1BB, null, ConnectionState.IN_GAME),
|
||||||
EX_MABLE_GAME_POPUP_OK(0x1BB, null, ConnectionState.IN_GAME),
|
EX_MABLE_GAME_POPUP_OK(0x1BC, null, ConnectionState.IN_GAME),
|
||||||
EX_MABLE_GAME_RESET(0x1BC, null, ConnectionState.IN_GAME),
|
EX_MABLE_GAME_RESET(0x1BD, null, ConnectionState.IN_GAME),
|
||||||
EX_MABLE_GAME_CLOSE(0x1BD, null, ConnectionState.IN_GAME),
|
EX_MABLE_GAME_CLOSE(0x1BE, null, ConnectionState.IN_GAME),
|
||||||
EX_RETURN_TO_ORIGIN(0x1BE, null, ConnectionState.IN_GAME),
|
EX_RETURN_TO_ORIGIN(0x1BF, null, ConnectionState.IN_GAME),
|
||||||
EX_PK_PENALTY_LIST(0x1BF, null, ConnectionState.IN_GAME),
|
EX_PK_PENALTY_LIST(0x1C0, null, ConnectionState.IN_GAME),
|
||||||
EX_PK_PENALTY_LIST_ONLY_LOC(0x1C0, null, ConnectionState.IN_GAME),
|
EX_PK_PENALTY_LIST_ONLY_LOC(0x1C1, null, ConnectionState.IN_GAME),
|
||||||
EX_BLESS_OPTION_PUT_ITEM(0x1C1, RequestBlessOptionPutItem::new, ConnectionState.IN_GAME),
|
EX_BLESS_OPTION_PUT_ITEM(0x1C2, RequestBlessOptionPutItem::new, ConnectionState.IN_GAME),
|
||||||
EX_BLESS_OPTION_ENCHANT(0x1C2, RequestBlessOptionEnchant::new, ConnectionState.IN_GAME),
|
EX_BLESS_OPTION_ENCHANT(0x1C3, RequestBlessOptionEnchant::new, ConnectionState.IN_GAME),
|
||||||
EX_BLESS_OPTION_CANCEL(0x1C3, RequestBlessOptionCancel::new, ConnectionState.IN_GAME),
|
EX_BLESS_OPTION_CANCEL(0x1C4, RequestBlessOptionCancel::new, ConnectionState.IN_GAME),
|
||||||
EX_PVP_RANKING_MY_INFO(0x1C4, RequestPvpRankingMyInfo::new, ConnectionState.IN_GAME),
|
EX_PVP_RANKING_MY_INFO(0x1C5, RequestPvpRankingMyInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_PVP_RANKING_LIST(0x1C5, RequestPvpRankingList::new, ConnectionState.IN_GAME),
|
EX_PVP_RANKING_LIST(0x1C6, RequestPvpRankingList::new, ConnectionState.IN_GAME),
|
||||||
EX_ACQUIRE_PET_SKILL(0x1C6, RequestExAcquirePetSkill::new, ConnectionState.IN_GAME),
|
EX_ACQUIRE_PET_SKILL(0x1C7, RequestExAcquirePetSkill::new, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_V3_INFO(0x1C7, RequestExPledgeV3Info::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_V3_INFO(0x1C8, RequestExPledgeV3Info::new, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_ENEMY_INFO_LIST(0x1C8, RequestExPledgeEnemyInfoList::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_ENEMY_INFO_LIST(0x1C9, RequestExPledgeEnemyInfoList::new, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_ENEMY_REGISTER(0x1C9, RequestExPledgeEnemyRegister::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_ENEMY_REGISTER(0x1CA, RequestExPledgeEnemyRegister::new, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_ENEMY_DELETE(0x1CA, RequestExPledgeEnemyDelete::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_ENEMY_DELETE(0x1CB, RequestExPledgeEnemyDelete::new, ConnectionState.IN_GAME),
|
||||||
EX_TRY_PET_EXTRACT_SYSTEM(0x1CB, null, ConnectionState.IN_GAME),
|
EX_TRY_PET_EXTRACT_SYSTEM(0x1CC, null, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_V3_SET_ANNOUNCE(0x1CC, RequestExPledgeV3SetAnnounce::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_V3_SET_ANNOUNCE(0x1CD, RequestExPledgeV3SetAnnounce::new, ConnectionState.IN_GAME),
|
||||||
// 306
|
// 306
|
||||||
EX_RANKING_FESTIVAL_OPEN(0x1CD, null, ConnectionState.IN_GAME),
|
EX_RANKING_FESTIVAL_OPEN(0x1CE, null, ConnectionState.IN_GAME),
|
||||||
EX_RANKING_FESTIVAL_BUY(0x1CE, null, ConnectionState.IN_GAME),
|
EX_RANKING_FESTIVAL_BUY(0x1CF, null, ConnectionState.IN_GAME),
|
||||||
EX_RANKING_FESTIVAL_BONUS(0x1CF, null, ConnectionState.IN_GAME),
|
EX_RANKING_FESTIVAL_BONUS(0x1D0, null, ConnectionState.IN_GAME),
|
||||||
EX_RANKING_FESTIVAL_RANKING(0x1D0, null, ConnectionState.IN_GAME),
|
EX_RANKING_FESTIVAL_RANKING(0x1D1, null, ConnectionState.IN_GAME),
|
||||||
EX_RANKING_FESTIVAL_MY_RECEIVED_BONUS(0x1D1, null, ConnectionState.IN_GAME),
|
EX_RANKING_FESTIVAL_MY_RECEIVED_BONUS(0x1D2, null, ConnectionState.IN_GAME),
|
||||||
EX_RANKING_FESTIVAL_REWARD(0x1D2, null, ConnectionState.IN_GAME),
|
EX_RANKING_FESTIVAL_REWARD(0x1D3, null, ConnectionState.IN_GAME),
|
||||||
EX_TIMER_CHECK(0x1D3, null, ConnectionState.IN_GAME),
|
EX_TIMER_CHECK(0x1D4, null, ConnectionState.IN_GAME),
|
||||||
EX_STEADY_BOX_LOAD(0x1D4, null, ConnectionState.IN_GAME),
|
EX_STEADY_BOX_LOAD(0x1D5, null, ConnectionState.IN_GAME),
|
||||||
EX_STEADY_OPEN_SLOT(0x1D5, null, ConnectionState.IN_GAME),
|
EX_STEADY_OPEN_SLOT(0x1D6, null, ConnectionState.IN_GAME),
|
||||||
EX_STEADY_OPEN_BOX(0x1D6, null, ConnectionState.IN_GAME),
|
EX_STEADY_OPEN_BOX(0x1D7, null, ConnectionState.IN_GAME),
|
||||||
EX_STEADY_GET_REWARD(0x1D7, null, ConnectionState.IN_GAME),
|
EX_STEADY_GET_REWARD(0x1D8, null, ConnectionState.IN_GAME),
|
||||||
EX_PET_RANKING_MY_INFO(0x1D8, RequestPetRankingMyInfo::new, ConnectionState.IN_GAME),
|
EX_PET_RANKING_MY_INFO(0x1D9, RequestPetRankingMyInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_PET_RANKING_LIST(0x1D9, RequestPetRankingList::new, ConnectionState.IN_GAME),
|
EX_PET_RANKING_LIST(0x1DA, RequestPetRankingList::new, ConnectionState.IN_GAME),
|
||||||
EX_COLLECTION_OPEN_UI(0x1DA, RequestExCollectionOpenUI::new, ConnectionState.IN_GAME),
|
EX_COLLECTION_OPEN_UI(0x1DB, RequestExCollectionOpenUI::new, ConnectionState.IN_GAME),
|
||||||
EX_COLLECTION_CLOSE_UI(0x1DB, RequestCollectionCloseUI::new, ConnectionState.IN_GAME),
|
EX_COLLECTION_CLOSE_UI(0x1DC, RequestCollectionCloseUI::new, ConnectionState.IN_GAME),
|
||||||
EX_COLLECTION_LIST(0x1DC, RequestExCollectionList::new, ConnectionState.IN_GAME),
|
EX_COLLECTION_LIST(0x1DD, RequestExCollectionList::new, ConnectionState.IN_GAME),
|
||||||
EX_COLLECTION_UPDATE_FAVORITE(0x1DD, RequestCollectionUpdateFavorite::new, ConnectionState.IN_GAME),
|
EX_COLLECTION_UPDATE_FAVORITE(0x1DE, RequestCollectionUpdateFavorite::new, ConnectionState.IN_GAME),
|
||||||
EX_COLLECTION_FAVORITE_LIST(0x1DE, RequestCollectionFavoriteList::new, ConnectionState.IN_GAME),
|
EX_COLLECTION_FAVORITE_LIST(0x1DF, RequestCollectionFavoriteList::new, ConnectionState.IN_GAME),
|
||||||
EX_COLLECTION_SUMMARY(0x1DF, null, ConnectionState.IN_GAME),
|
EX_COLLECTION_SUMMARY(0x1E0, null, ConnectionState.IN_GAME),
|
||||||
EX_COLLECTION_REGISTER(0x1E0, RequestCollectionRegister::new, ConnectionState.IN_GAME),
|
EX_COLLECTION_REGISTER(0x1E1, RequestCollectionRegister::new, ConnectionState.IN_GAME),
|
||||||
EX_COLLECTION_RECEIVE_REWARD(0x1E1, RequestCollectionReceiveReward::new, ConnectionState.IN_GAME),
|
EX_COLLECTION_RECEIVE_REWARD(0x1E2, RequestCollectionReceiveReward::new, ConnectionState.IN_GAME),
|
||||||
EX_PVPBOOK_SHARE_REVENGE_LIST(0x1E2, RequestExPvpBookShareRevengeList::new, ConnectionState.IN_GAME),
|
EX_PVPBOOK_SHARE_REVENGE_LIST(0x1E3, RequestExPvpBookShareRevengeList::new, ConnectionState.IN_GAME),
|
||||||
EX_PVPBOOK_SHARE_REVENGE_REQ_SHARE_REVENGEINFO(0x1E3, RequestExPvpBookShareRevengeReqShareRevengeInfo::new, ConnectionState.IN_GAME),
|
EX_PVPBOOK_SHARE_REVENGE_REQ_SHARE_REVENGEINFO(0x1E4, RequestExPvpBookShareRevengeReqShareRevengeInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_PVPBOOK_SHARE_REVENGE_KILLER_LOCATION(0x1E4, RequestExPvpBookShareRevengeKillerLocation::new, ConnectionState.IN_GAME),
|
EX_PVPBOOK_SHARE_REVENGE_KILLER_LOCATION(0x1E5, RequestExPvpBookShareRevengeKillerLocation::new, ConnectionState.IN_GAME),
|
||||||
EX_PVPBOOK_SHARE_REVENGE_TELEPORT_TO_KILLER(0x1E5, RequestExPvpBookShareRevengeTeleportToKiller::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(0x1E6, RequestExPvpBookShareRevengeSharedTeleportToKiller::new, ConnectionState.IN_GAME),
|
EX_PVPBOOK_SHARE_REVENGE_SHARED_TELEPORT_TO_KILLER(0x1E7, RequestExPvpBookShareRevengeSharedTeleportToKiller::new, ConnectionState.IN_GAME),
|
||||||
EX_PENALTY_ITEM_LIST(0x1E7, null, ConnectionState.IN_GAME),
|
EX_PENALTY_ITEM_LIST(0x1E8, null, ConnectionState.IN_GAME),
|
||||||
EX_PENALTY_ITEM_RESTORE(0x1E8, null, ConnectionState.IN_GAME),
|
EX_PENALTY_ITEM_RESTORE(0x1E9, null, ConnectionState.IN_GAME),
|
||||||
EX_USER_WATCHER_TARGET_LIST(0x1E9, null, ConnectionState.IN_GAME),
|
EX_USER_WATCHER_TARGET_LIST(0x1EA, null, ConnectionState.IN_GAME),
|
||||||
EX_USER_WATCHER_ADD(0x1EA, null, ConnectionState.IN_GAME),
|
EX_USER_WATCHER_ADD(0x1EB, null, ConnectionState.IN_GAME),
|
||||||
EX_USER_WATCHER_DELETE(0x1EB, null, ConnectionState.IN_GAME),
|
EX_USER_WATCHER_DELETE(0x1EC, null, ConnectionState.IN_GAME),
|
||||||
EX_HOMUNCULUS_ACTIVATE_SLOT(0x1EC, null, ConnectionState.IN_GAME),
|
EX_HOMUNCULUS_ACTIVATE_SLOT(0x1ED, null, ConnectionState.IN_GAME),
|
||||||
EX_SUMMON_HOMUNCULUS_COUPON(0x1ED, null, ConnectionState.IN_GAME),
|
EX_SUMMON_HOMUNCULUS_COUPON(0x1EE, null, ConnectionState.IN_GAME),
|
||||||
EX_SUBJUGATION_LIST(0x1EE, RequestSubjugationList::new, ConnectionState.IN_GAME),
|
EX_SUBJUGATION_LIST(0x1EF, RequestSubjugationList::new, ConnectionState.IN_GAME),
|
||||||
EX_SUBJUGATION_RANKING(0x1EF, RequestSubjugationRanking::new, ConnectionState.IN_GAME),
|
EX_SUBJUGATION_RANKING(0x1F0, RequestSubjugationRanking::new, ConnectionState.IN_GAME),
|
||||||
EX_SUBJUGATION_GACHA_UI(0x1F0, RequestSubjugationGachaUI::new, ConnectionState.IN_GAME),
|
EX_SUBJUGATION_GACHA_UI(0x1F1, RequestSubjugationGachaUI::new, ConnectionState.IN_GAME),
|
||||||
EX_SUBJUGATION_GACHA(0x1F1, RequestSubjugationGacha::new, ConnectionState.IN_GAME),
|
EX_SUBJUGATION_GACHA(0x1F2, RequestSubjugationGacha::new, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_DONATION_INFO(0x1F2, RequestExPledgeDonationInfo::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_DONATION_INFO(0x1F3, RequestExPledgeDonationInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_DONATION_REQUEST(0x1F3, RequestExPledgeDonationRequest::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_DONATION_REQUEST(0x1F4, RequestExPledgeDonationRequest::new, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_CONTRIBUTION_LIST(0x1F4, RequestExPledgeContributionList::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_CONTRIBUTION_LIST(0x1F5, RequestExPledgeContributionList::new, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_RANKING_MY_INFO(0x1F5, RequestPledgeRankingMyInfo::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_RANKING_MY_INFO(0x1F6, RequestPledgeRankingMyInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_PLEDGE_RANKING_LIST(0x1F6, RequestPledgeRankingList::new, ConnectionState.IN_GAME),
|
EX_PLEDGE_RANKING_LIST(0x1F7, RequestPledgeRankingList::new, ConnectionState.IN_GAME),
|
||||||
EX_ITEM_RESTORE_LIST(0x1F7, null, ConnectionState.IN_GAME),
|
EX_ITEM_RESTORE_LIST(0x1F8, null, ConnectionState.IN_GAME),
|
||||||
EX_ITEM_RESTORE(0x1F8, null, ConnectionState.IN_GAME),
|
EX_ITEM_RESTORE(0x1F9, null, ConnectionState.IN_GAME),
|
||||||
// 338
|
// 338
|
||||||
EX_DETHRONE_INFO(0x1F9, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_INFO(0x1FA, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_RANKING_INFO(0x1FA, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_RANKING_INFO(0x1FB, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_SERVER_INFO(0x1FB, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_SERVER_INFO(0x1FC, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_DISTRICT_OCCUPATION_INFO(0x1FC, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_DISTRICT_OCCUPATION_INFO(0x1FD, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_DAILY_MISSION_INFO(0x1FD, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_DAILY_MISSION_INFO(0x1FE, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_DAILY_MISSION_GET_REWARD(0x1FE, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_DAILY_MISSION_GET_REWARD(0x1FF, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_PREV_SEASON_INFO(0x1FF, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_PREV_SEASON_INFO(0x200, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_GET_REWARD(0x200, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_GET_REWARD(0x201, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_ENTER(0x201, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_ENTER(0x202, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_LEAVE(0x202, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_LEAVE(0x203, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_CHECK_NAME(0x203, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_CHECK_NAME(0x204, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_CHANGE_NAME(0x204, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_CHANGE_NAME(0x205, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_CONNECT_CASTLE(0x205, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_CONNECT_CASTLE(0x206, null, ConnectionState.IN_GAME),
|
||||||
EX_DETHRONE_DISCONNECT_CASTLE(0x206, null, ConnectionState.IN_GAME),
|
EX_DETHRONE_DISCONNECT_CASTLE(0x207, null, ConnectionState.IN_GAME),
|
||||||
EX_CHANGE_NICKNAME_COLOR_ICON(0x207, RequestChangeNicknameEmote::new, ConnectionState.IN_GAME),
|
EX_CHANGE_NICKNAME_COLOR_ICON(0x208, RequestChangeNicknameEmote::new, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_MOVE_TO_HOST(0x208, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_MOVE_TO_HOST(0x209, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_RETURN_TO_ORIGIN_PEER(0x209, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_RETURN_TO_ORIGIN_PEER(0x20A, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_CASTLE_INFO(0x20A, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_CASTLE_INFO(0x20B, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_CASTLE_SIEGE_INFO(0x20B, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_CASTLE_SIEGE_INFO(0x20C, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_CASTLE_SIEGE_JOIN(0x20C, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_CASTLE_SIEGE_JOIN(0x20D, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x20D, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x20E, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x20E, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_RECRUIT_INFO_SET(0x20F, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_MEMBER_LIST(0x20F, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_MEMBER_LIST(0x210, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_MEMBER_JOIN(0x210, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_PLEDGE_MERCENARY_MEMBER_JOIN(0x211, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_TELEPORT(0x211, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_TELEPORT(0x212, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_OBSERVER_START(0x212, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_OBSERVER_START(0x213, null, ConnectionState.IN_GAME),
|
||||||
EX_PRIVATE_STORE_SEARCH_LIST(0x213, null, ConnectionState.IN_GAME),
|
EX_PRIVATE_STORE_SEARCH_LIST(0x214, null, ConnectionState.IN_GAME),
|
||||||
EX_PRIVATE_STORE_SEARCH_STATISTICS(0x214, null, ConnectionState.IN_GAME),
|
EX_PRIVATE_STORE_SEARCH_STATISTICS(0x215, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_HOST_CASTLE_SIEGE_RANKING_INFO(0x215, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_HOST_CASTLE_SIEGE_RANKING_INFO(0x216, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_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(0x217, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_SIEGE_MAINBATTLE_HUD_INFO(0x218, null, ConnectionState.IN_GAME),
|
||||||
EX_NEW_HENNA_LIST(0x218, RequestNewHennaList::new, ConnectionState.IN_GAME),
|
EX_NEW_HENNA_LIST(0x219, RequestNewHennaList::new, ConnectionState.IN_GAME),
|
||||||
EX_NEW_HENNA_EQUIP(0x219, RequestNewHennaEquip::new, ConnectionState.IN_GAME),
|
EX_NEW_HENNA_EQUIP(0x21A, RequestNewHennaEquip::new, ConnectionState.IN_GAME),
|
||||||
EX_NEW_HENNA_UNEQUIP(0x21A, RequestNewHennaUnequip::new, ConnectionState.IN_GAME),
|
EX_NEW_HENNA_UNEQUIP(0x21B, RequestNewHennaUnequip::new, ConnectionState.IN_GAME),
|
||||||
EX_NEW_HENNA_POTEN_SELECT(0x21B, RequestNewHennaPotenSelect::new, ConnectionState.IN_GAME),
|
EX_NEW_HENNA_POTEN_SELECT(0x21C, RequestNewHennaPotenSelect::new, ConnectionState.IN_GAME),
|
||||||
EX_NEW_HENNA_POTEN_ENCHANT(0x21C, RequestNewHennaPotenEnchant::new, ConnectionState.IN_GAME),
|
EX_NEW_HENNA_POTEN_ENCHANT(0x21D, RequestNewHennaPotenEnchant::new, ConnectionState.IN_GAME),
|
||||||
EX_NEW_HENNA_COMPOSE(0x21D, RequestNewHennaCompose::new, ConnectionState.IN_GAME),
|
EX_NEW_HENNA_COMPOSE(0x21E, RequestNewHennaCompose::new, ConnectionState.IN_GAME),
|
||||||
EX_REQUEST_INVITE_PARTY(0x21E, null, ConnectionState.IN_GAME),
|
EX_REQUEST_INVITE_PARTY(0x21F, null, ConnectionState.IN_GAME),
|
||||||
EX_ITEM_USABLE_LIST(0x21F, null, ConnectionState.IN_GAME),
|
EX_ITEM_USABLE_LIST(0x220, null, ConnectionState.IN_GAME),
|
||||||
EX_PACKETREADCOUNTPERSECOND(0x220, null, ConnectionState.IN_GAME),
|
EX_PACKETREADCOUNTPERSECOND(0x221, null, ConnectionState.IN_GAME),
|
||||||
EX_SELECT_GLOBAL_EVENT_UI(0x221, null, ConnectionState.IN_GAME),
|
EX_SELECT_GLOBAL_EVENT_UI(0x222, null, ConnectionState.IN_GAME),
|
||||||
EX_L2PASS_INFO(0x222, RequestHuntPassInfo::new, ConnectionState.IN_GAME),
|
EX_L2PASS_INFO(0x223, RequestHuntPassInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_L2PASS_REQUEST_REWARD(0x223, RequestHuntPassReward::new, ConnectionState.IN_GAME),
|
EX_L2PASS_REQUEST_REWARD(0x224, RequestHuntPassReward::new, ConnectionState.IN_GAME),
|
||||||
EX_L2PASS_REQUEST_REWARD_ALL(0x224, RequestHuntPassRewardAll::new, ConnectionState.IN_GAME),
|
EX_L2PASS_REQUEST_REWARD_ALL(0x225, RequestHuntPassRewardAll::new, ConnectionState.IN_GAME),
|
||||||
EX_L2PASS_BUY_PREMIUM(0x225, RequestHuntPassBuyPremium::new, ConnectionState.IN_GAME),
|
EX_L2PASS_BUY_PREMIUM(0x226, RequestHuntPassBuyPremium::new, ConnectionState.IN_GAME),
|
||||||
EX_SAYHAS_SUPPORT_TOGGLE(0x226, HuntpassSayhasToggle::new, ConnectionState.IN_GAME),
|
EX_SAYHAS_SUPPORT_TOGGLE(0x227, HuntpassSayhasToggle::new, ConnectionState.IN_GAME),
|
||||||
// 362
|
// 362
|
||||||
EX_REQ_ENCHANT_FAIL_REWARD_INFO(0x227, ExRequestEnchantFailRewardInfo::new, ConnectionState.IN_GAME),
|
EX_REQ_ENCHANT_FAIL_REWARD_INFO(0x228, ExRequestEnchantFailRewardInfo::new, ConnectionState.IN_GAME),
|
||||||
EX_SET_ENCHANT_CHALLENGE_POINT(0x228, null, ConnectionState.IN_GAME),
|
EX_SET_ENCHANT_CHALLENGE_POINT(0x229, null, ConnectionState.IN_GAME),
|
||||||
EX_RESET_ENCHANT_CHALLENGE_POINT(0x229, null, ConnectionState.IN_GAME),
|
EX_RESET_ENCHANT_CHALLENGE_POINT(0x22A, null, ConnectionState.IN_GAME),
|
||||||
EX_REQ_VIEW_ENCHANT_RESULT(0x22A, ExRequestViewEnchantResult::new, ConnectionState.IN_GAME),
|
EX_REQ_VIEW_ENCHANT_RESULT(0x22B, ExRequestViewEnchantResult::new, ConnectionState.IN_GAME),
|
||||||
EX_REQ_START_MULTI_ENCHANT_SCROLL(0x22B, ExRequestStartMultiEnchantScroll::new, ConnectionState.IN_GAME),
|
EX_REQ_START_MULTI_ENCHANT_SCROLL(0x22C, ExRequestStartMultiEnchantScroll::new, ConnectionState.IN_GAME),
|
||||||
EX_REQ_VIEW_MULTI_ENCHANT_RESULT(0x22C, ExRequestViewMultiEnchantResult::new, ConnectionState.IN_GAME),
|
EX_REQ_VIEW_MULTI_ENCHANT_RESULT(0x22D, ExRequestViewMultiEnchantResult::new, ConnectionState.IN_GAME),
|
||||||
EX_REQ_FINISH_MULTI_ENCHANT_SCROLL(0x22D, ExRequestFinishMultiEnchantScroll::new, ConnectionState.IN_GAME),
|
EX_REQ_FINISH_MULTI_ENCHANT_SCROLL(0x22E, ExRequestFinishMultiEnchantScroll::new, ConnectionState.IN_GAME),
|
||||||
EX_REQ_CHANGE_MULTI_ENCHANT_SCROLL(0x22E, null, ConnectionState.IN_GAME),
|
EX_REQ_CHANGE_MULTI_ENCHANT_SCROLL(0x22F, null, ConnectionState.IN_GAME),
|
||||||
EX_REQ_SET_MULTI_ENCHANT_ITEM_LIST(0x22F, ExRequestSetMultiEnchantItemList::new, ConnectionState.IN_GAME),
|
EX_REQ_SET_MULTI_ENCHANT_ITEM_LIST(0x230, ExRequestSetMultiEnchantItemList::new, ConnectionState.IN_GAME),
|
||||||
EX_REQ_MULTI_ENCHANT_ITEM_LIST(0x230, ExRequestMultiEnchantItemList::new, ConnectionState.IN_GAME),
|
EX_REQ_MULTI_ENCHANT_ITEM_LIST(0x231, ExRequestMultiEnchantItemList::new, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_FLAG_SET(0x231, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_FLAG_SET(0x232, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_INFO_SET(0x232, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_SUPPORT_PLEDGE_INFO_SET(0x233, null, ConnectionState.IN_GAME),
|
||||||
EX_REQ_HOMUNCULUS_PROB_LIST(0x233, null, ConnectionState.IN_GAME),
|
EX_REQ_HOMUNCULUS_PROB_LIST(0x234, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLDCASTLEWAR_HOST_CASTLE_SIEGE_ALL_RANKING_INFO(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(0x235, null, ConnectionState.IN_GAME),
|
EX_WORLDCASTLEWAR_CASTLE_SIEGE_ALL_RANKING_INFO(0x236, null, ConnectionState.IN_GAME),
|
||||||
EX_MISSION_LEVEL_REWARD_LIST(0x236, RequestMissionRewardList::new, ConnectionState.IN_GAME),
|
EX_MISSION_LEVEL_REWARD_LIST(0x237, RequestMissionRewardList::new, ConnectionState.IN_GAME),
|
||||||
EX_MISSION_LEVEL_RECEIVE_REWARD(0x237, RequestMissionLevelReceiveReward::new, ConnectionState.IN_GAME),
|
EX_MISSION_LEVEL_RECEIVE_REWARD(0x238, RequestMissionLevelReceiveReward::new, ConnectionState.IN_GAME),
|
||||||
EX_BALROGWAR_TELEPORT(0x238, null, ConnectionState.IN_GAME),
|
EX_BALROGWAR_TELEPORT(0x239, null, ConnectionState.IN_GAME),
|
||||||
EX_BALROGWAR_SHOW_UI(0x239, null, ConnectionState.IN_GAME),
|
EX_BALROGWAR_SHOW_UI(0x23A, null, ConnectionState.IN_GAME),
|
||||||
EX_BALROGWAR_SHOW_RANKING(0x23A, null, ConnectionState.IN_GAME),
|
EX_BALROGWAR_SHOW_RANKING(0x23B, null, ConnectionState.IN_GAME),
|
||||||
EX_BALROGWAR_GET_REWARD(0x23B, null, ConnectionState.IN_GAME),
|
EX_BALROGWAR_GET_REWARD(0x23C, null, ConnectionState.IN_GAME),
|
||||||
EX_USER_RESTART_LOCKER_UPDATE(0x23C, null, ConnectionState.IN_GAME),
|
EX_USER_RESTART_LOCKER_UPDATE(0x23D, null, ConnectionState.IN_GAME),
|
||||||
EX_WORLD_EXCHANGE_ITEM_LIST(0x23D, ExWorldExchangeItemList::new, ConnectionState.IN_GAME),
|
EX_WORLD_EXCHANGE_ITEM_LIST(0x23E, ExWorldExchangeItemList::new, ConnectionState.IN_GAME),
|
||||||
EX_WORLD_EXCHANGE_REGI_ITEM(0x23E, ExWorldExchangeRegisterItem::new, ConnectionState.IN_GAME),
|
EX_WORLD_EXCHANGE_REGI_ITEM(0x23F, ExWorldExchangeRegisterItem::new, ConnectionState.IN_GAME),
|
||||||
EX_WORLD_EXCHANGE_BUY_ITEM(0x23F, ExWorldExchangeBuyItem::new, ConnectionState.IN_GAME),
|
EX_WORLD_EXCHANGE_BUY_ITEM(0x240, ExWorldExchangeBuyItem::new, ConnectionState.IN_GAME),
|
||||||
EX_WORLD_EXCHANGE_SETTLE_LIST(0x240, ExWorldExchangeSettleList::new, ConnectionState.IN_GAME),
|
EX_WORLD_EXCHANGE_SETTLE_LIST(0x241, ExWorldExchangeSettleList::new, ConnectionState.IN_GAME),
|
||||||
EX_WORLD_EXCHANGE_SETTLE_RECV_RESULT(0x241, ExWorldExchangeSettleRecvResult::new, ConnectionState.IN_GAME),
|
EX_WORLD_EXCHANGE_SETTLE_RECV_RESULT(0x242, ExWorldExchangeSettleRecvResult::new, ConnectionState.IN_GAME),
|
||||||
EX_READY_ITEM_AUTO_PEEL(0x242, ExRequestReadyItemAutoPeel::new, ConnectionState.IN_GAME),
|
EX_READY_ITEM_AUTO_PEEL(0x243, ExRequestReadyItemAutoPeel::new, ConnectionState.IN_GAME),
|
||||||
EX_REQUEST_ITEM_AUTO_PEEL(0x243, ExRequestItemAutoPeel::new, ConnectionState.IN_GAME),
|
EX_REQUEST_ITEM_AUTO_PEEL(0x244, ExRequestItemAutoPeel::new, ConnectionState.IN_GAME),
|
||||||
EX_STOP_ITEM_AUTO_PEEL(0x244, ExRequestStopItemAutoPeel::new, ConnectionState.IN_GAME),
|
EX_STOP_ITEM_AUTO_PEEL(0x245, ExRequestStopItemAutoPeel::new, ConnectionState.IN_GAME),
|
||||||
EX_VARIATION_OPEN_UI(0x245, ExVariationOpenUi::new, ConnectionState.IN_GAME),
|
EX_VARIATION_OPEN_UI(0x246, ExVariationOpenUi::new, ConnectionState.IN_GAME),
|
||||||
EX_VARIATION_CLOSE_UI(0x246, ExVariationCloseUi::new, ConnectionState.IN_GAME),
|
EX_VARIATION_CLOSE_UI(0x247, ExVariationCloseUi::new, ConnectionState.IN_GAME),
|
||||||
EX_APPLY_VARIATION_OPTION(0x247, ExApplyVariationOption::new, ConnectionState.IN_GAME),
|
EX_APPLY_VARIATION_OPTION(0x248, ExApplyVariationOption::new, ConnectionState.IN_GAME),
|
||||||
EX_BR_VERSION(0x248, RequestBRVersion::new, ConnectionState.AUTHENTICATED, ConnectionState.CONNECTED),
|
EX_REQUEST_AUDIO_LOG_SAVE(0x249, null, ConnectionState.IN_GAME),
|
||||||
EX_MAX(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;
|
public static final ExIncomingPackets[] PACKET_ARRAY;
|
||||||
|
|
||||||
|
@ -1065,8 +1065,41 @@ public enum OutgoingPackets
|
|||||||
EX_STOP_ITEM_AUTO_PEEL(0xFE, 0x305),
|
EX_STOP_ITEM_AUTO_PEEL(0xFE, 0x305),
|
||||||
EX_TIME_RESTRICT_FIELD_DIE_LIMT_TIME(0xFE, 0x306),
|
EX_TIME_RESTRICT_FIELD_DIE_LIMT_TIME(0xFE, 0x306),
|
||||||
EX_APPLY_VARIATION_OPTION(0xFE, 0x307),
|
EX_APPLY_VARIATION_OPTION(0xFE, 0x307),
|
||||||
EX_BR_VERSION(0xFE, 0x308),
|
EX_REQUEST_AUDIO_LOG_SAVE(0xFE, 0x308),
|
||||||
EX_MAX(0xFE, 0x309);
|
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 _id1;
|
||||||
private final int _id2;
|
private final int _id2;
|
||||||
|
@ -57,7 +57,7 @@ public class RequestClanAskJoinByName implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
invitedPlayer.sendPacket(new AskJoinPledge(player, _pledgeType, player.getClan().getName()));
|
invitedPlayer.sendPacket(new AskJoinPledge(player, player.getClan().getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPledgeType()
|
public int getPledgeType()
|
||||||
|
@ -110,7 +110,7 @@ public class RequestJoinPledge implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
final String pledgeName = player.getClan().getName();
|
final String pledgeName = player.getClan().getName();
|
||||||
target.sendPacket(new AskJoinPledge(player, _pledgeType, pledgeName));
|
target.sendPacket(new AskJoinPledge(player, pledgeName));
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPledgeType()
|
public int getPledgeType()
|
||||||
|
@ -81,6 +81,9 @@ public class RequestPurchaseLimitShopItemBuy implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
packet.readD(); // SuccessionItemSID
|
||||||
|
packet.readD(); // MaterialItemSID
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -30,22 +30,20 @@ import org.l2jmobius.gameserver.network.serverpackets.ExVariationResult;
|
|||||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Format:(ch) dddd
|
* Format:(ch) ddc
|
||||||
* @author -Wooden-
|
* @author -Wooden-, Index
|
||||||
*/
|
*/
|
||||||
public class RequestRefine extends AbstractRefinePacket
|
public class RequestRefine extends AbstractRefinePacket
|
||||||
{
|
{
|
||||||
private int _targetItemObjId;
|
private int _targetItemObjId;
|
||||||
private int _mineralItemObjId;
|
private int _mineralItemObjId;
|
||||||
private long _feeCount;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean read(GameClient client, PacketReader packet)
|
public boolean read(GameClient client, PacketReader packet)
|
||||||
{
|
{
|
||||||
_targetItemObjId = packet.readD();
|
_targetItemObjId = packet.readD();
|
||||||
_mineralItemObjId = packet.readD();
|
_mineralItemObjId = packet.readD();
|
||||||
packet.readD(); // _feeItemObjId
|
packet.readC(); // is event
|
||||||
_feeCount = packet.readQ();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,7 +87,7 @@ public class RequestRefine extends AbstractRefinePacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_feeCount <= 0)
|
if (fee.getAdenaFee() <= 0)
|
||||||
{
|
{
|
||||||
player.sendPacket(ExVariationResult.FAIL);
|
player.sendPacket(ExVariationResult.FAIL);
|
||||||
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
|
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
|
||||||
@ -157,7 +155,7 @@ public class RequestRefine extends AbstractRefinePacket
|
|||||||
// Consume the gemstones.
|
// Consume the gemstones.
|
||||||
if (feeItem != null)
|
if (feeItem != null)
|
||||||
{
|
{
|
||||||
player.destroyItem("RequestRefine", feeItem, _feeCount, null, false);
|
player.destroyItem("RequestRefine", feeItem, fee.getAdenaFee(), null, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Consume Adena.
|
// Consume Adena.
|
||||||
|
@ -23,13 +23,11 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
public class AskJoinPledge implements IClientOutgoingPacket
|
public class AskJoinPledge implements IClientOutgoingPacket
|
||||||
{
|
{
|
||||||
private final Player _requestor;
|
private final Player _requestor;
|
||||||
private final int _pledgeType;
|
|
||||||
private final String _pledgeName;
|
private final String _pledgeName;
|
||||||
|
|
||||||
public AskJoinPledge(Player requestor, int pledgeType, String pledgeName)
|
public AskJoinPledge(Player requestor, String pledgeName)
|
||||||
{
|
{
|
||||||
_requestor = requestor;
|
_requestor = requestor;
|
||||||
_pledgeType = pledgeType;
|
|
||||||
_pledgeName = pledgeName;
|
_pledgeName = pledgeName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,12 +36,10 @@ public class AskJoinPledge implements IClientOutgoingPacket
|
|||||||
{
|
{
|
||||||
OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet);
|
OutgoingPackets.ASK_JOIN_PLEDGE.writeId(packet);
|
||||||
packet.writeD(_requestor.getObjectId());
|
packet.writeD(_requestor.getObjectId());
|
||||||
packet.writeS(_requestor.getName());
|
packet.writeS("");
|
||||||
packet.writeS(_pledgeName);
|
packet.writeS(_pledgeName);
|
||||||
if (_pledgeType != 0)
|
packet.writeD(0);
|
||||||
{
|
packet.writeS("");
|
||||||
packet.writeD(_pledgeType);
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,11 +49,13 @@ public class DropItem implements IClientOutgoingPacket
|
|||||||
// only show item count if it is a stackable item
|
// only show item count if it is a stackable item
|
||||||
packet.writeC(_item.isStackable() ? 1 : 0);
|
packet.writeC(_item.isStackable() ? 1 : 0);
|
||||||
packet.writeQ(_item.getCount());
|
packet.writeQ(_item.getCount());
|
||||||
packet.writeC(0);
|
packet.writeD(0);
|
||||||
// packet.writeD(1); if above C == true (1) then packet.readD()
|
packet.writeC(_item.getEnchantLevel() > 0 ? 1 : 0);
|
||||||
|
packet.writeD(0);
|
||||||
packet.writeC(_item.getEnchantLevel()); // Grand Crusade
|
packet.writeC(_item.getEnchantLevel()); // Grand Crusade
|
||||||
packet.writeC(_item.getAugmentation() != null ? 1 : 0); // Grand Crusade
|
packet.writeC(_item.getAugmentation() != null ? 1 : 0); // Grand Crusade
|
||||||
packet.writeC(_item.getSpecialAbilities().size()); // Grand Crusade
|
packet.writeC(_item.getSpecialAbilities().size()); // Grand Crusade
|
||||||
|
packet.writeC(0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,9 +92,15 @@ public class GMViewCharacterInfo implements IClientOutgoingPacket
|
|||||||
packet.writeD(augment != null ? augment.getOption1Id() : 0); // Confirmed
|
packet.writeD(augment != null ? augment.getOption1Id() : 0); // Confirmed
|
||||||
packet.writeD(augment != null ? augment.getOption2Id() : 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().getTalismanSlots()); // CT2.3
|
||||||
packet.writeC(_player.getInventory().canEquipCloak() ? 1 : 0); // CT2.3
|
packet.writeC(_player.getInventory().canEquipCloak() ? 1 : 0); // CT2.3
|
||||||
packet.writeD(0);
|
packet.writeC(0);
|
||||||
packet.writeH(0);
|
packet.writeH(0);
|
||||||
packet.writeD(_player.getPAtk());
|
packet.writeD(_player.getPAtk());
|
||||||
packet.writeD(_player.getPAtkSpd());
|
packet.writeD(_player.getPAtkSpd());
|
||||||
|
@ -62,7 +62,7 @@ public class HennaItemRemoveInfo implements IClientOutgoingPacket
|
|||||||
packet.writeH(0); // equip LUC
|
packet.writeH(0); // equip LUC
|
||||||
packet.writeD(0); // current CHA
|
packet.writeD(0); // current CHA
|
||||||
packet.writeH(0); // equip CHA
|
packet.writeH(0); // equip CHA
|
||||||
packet.writeD(0);
|
packet.writeD(_henna.getDuration() * 60000);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,8 @@ public class ShortCutRegister implements IClientOutgoingPacket
|
|||||||
packet.writeD(0); // unknown
|
packet.writeD(0); // unknown
|
||||||
packet.writeD(0); // unknown
|
packet.writeD(0); // unknown
|
||||||
packet.writeD(0); // item augment id
|
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;
|
break;
|
||||||
}
|
}
|
||||||
case SKILL:
|
case SKILL:
|
||||||
@ -61,8 +62,8 @@ public class ShortCutRegister implements IClientOutgoingPacket
|
|||||||
packet.writeD(_shortcut.getSharedReuseGroup());
|
packet.writeD(_shortcut.getSharedReuseGroup());
|
||||||
packet.writeC(0); // C5
|
packet.writeC(0); // C5
|
||||||
packet.writeD(_shortcut.getCharacterType());
|
packet.writeD(_shortcut.getCharacterType());
|
||||||
packet.writeD(0); // TODO: Find me
|
packet.writeD(0); // if 1 - cant use
|
||||||
packet.writeD(0); // TODO: Find me
|
packet.writeD(0); // reuse delay ?
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ACTION:
|
case ACTION:
|
||||||
|
@ -45,6 +45,7 @@ public class SpawnItem implements IClientOutgoingPacket
|
|||||||
packet.writeC(_item.getEnchantLevel()); // Grand Crusade
|
packet.writeC(_item.getEnchantLevel()); // Grand Crusade
|
||||||
packet.writeC(_item.getAugmentation() != null ? 1 : 0); // Grand Crusade
|
packet.writeC(_item.getAugmentation() != null ? 1 : 0); // Grand Crusade
|
||||||
packet.writeC(_item.getSpecialAbilities().size()); // Grand Crusade
|
packet.writeC(_item.getSpecialAbilities().size()); // Grand Crusade
|
||||||
|
packet.writeC(0);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,8 @@ public class ExCollectionRegister implements IClientOutgoingPacket
|
|||||||
OutgoingPackets.EX_COLLECTION_REGISTER.writeId(packet);
|
OutgoingPackets.EX_COLLECTION_REGISTER.writeId(packet);
|
||||||
packet.writeH(_collectionId);
|
packet.writeH(_collectionId);
|
||||||
packet.writeC(_success); // success
|
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.writeC(_index); // slot index
|
||||||
packet.writeD(_collectionInfo.getId()); // item classId
|
packet.writeD(_collectionInfo.getId()); // item classId
|
||||||
packet.writeH(_collectionInfo.getEnchantLevel()); // enchant level
|
packet.writeH(_collectionInfo.getEnchantLevel()); // enchant level
|
||||||
|
@ -47,7 +47,13 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
|||||||
packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count
|
packet.writeD(TimedHuntingZoneData.getInstance().getSize()); // zone count
|
||||||
for (TimedHuntingZoneHolder holder : TimedHuntingZoneData.getInstance().getAllHuntingZones())
|
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.writeD(holder.getEntryItemId());
|
||||||
packet.writeQ(holder.getEntryFee());
|
packet.writeQ(holder.getEntryFee());
|
||||||
packet.writeD(holder.isWeekly() ? 0 : 1); // reset cycle
|
packet.writeD(holder.isWeekly() ? 0 : 1); // reset cycle
|
||||||
@ -70,6 +76,8 @@ public class TimedHuntingZoneList implements IClientOutgoingPacket
|
|||||||
packet.writeC(0); // bIsInZonePCCafeUserOnly
|
packet.writeC(0); // bIsInZonePCCafeUserOnly
|
||||||
packet.writeC(0); // bIsPCCafeUser
|
packet.writeC(0); // bIsPCCafeUser
|
||||||
packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone
|
packet.writeC(holder.useWorldPrefix() ? 1 : 0); // bWorldInZone
|
||||||
|
packet.writeC(0); // bCanUseEntranceTicket
|
||||||
|
packet.writeD(0); // nEntranceCount
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,8 @@ public class NewHennaList implements IClientOutgoingPacket
|
|||||||
packet.writeH(hennaPoten.getEnchantLevel());
|
packet.writeH(hennaPoten.getEnchantLevel());
|
||||||
packet.writeD(hennaPoten.getEnchantExp());
|
packet.writeD(hennaPoten.getEnchantExp());
|
||||||
packet.writeH(hennaPoten.getActiveStep());
|
packet.writeH(hennaPoten.getActiveStep());
|
||||||
|
packet.writeH(_dailyStep);
|
||||||
|
packet.writeH(_dailyCount);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,8 @@ public class NewHennaPotenEnchant implements IClientOutgoingPacket
|
|||||||
packet.writeH(_dailyCount);
|
packet.writeH(_dailyCount);
|
||||||
packet.writeH(_activeStep);
|
packet.writeH(_activeStep);
|
||||||
packet.writeC(_success ? 1 : 0);
|
packet.writeC(_success ? 1 : 0);
|
||||||
|
packet.writeH(_dailyStep);
|
||||||
|
packet.writeH(_dailyCount);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,12 +41,13 @@ public class ExRaidBossSpawnInfo implements IClientOutgoingPacket
|
|||||||
public boolean write(PacketWriter packet)
|
public boolean write(PacketWriter packet)
|
||||||
{
|
{
|
||||||
OutgoingPackets.EX_RAID_BOSS_SPAWN_INFO.writeId(packet);
|
OutgoingPackets.EX_RAID_BOSS_SPAWN_INFO.writeId(packet);
|
||||||
|
packet.writeD(0); // BossRespawnFactor
|
||||||
packet.writeD(_statuses.size()); // count
|
packet.writeD(_statuses.size()); // count
|
||||||
for (Entry<Integer, RaidBossStatus> entry : _statuses.entrySet())
|
for (Entry<Integer, RaidBossStatus> entry : _statuses.entrySet())
|
||||||
{
|
{
|
||||||
packet.writeD(entry.getKey());
|
packet.writeD(entry.getKey());
|
||||||
packet.writeD(entry.getValue().ordinal());
|
packet.writeD(entry.getValue().ordinal());
|
||||||
packet.writeD(0);
|
packet.writeD(0); // DeadDateTime
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
<listEntry value="/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/GameServer.java"/>
|
<listEntry value="/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/GameServer.java"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
<listEntry value="1"/>
|
<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_CLASSPATH_ONLY_JAR" value="false"/>
|
||||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
<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.MAIN_TYPE" value="org.l2jmobius.gameserver.GameServer"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_Essence_6.2_Vanguard"/>
|
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_Essence_6.3_Crusader"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_Essence_6.2_Vanguard"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_Essence_6.3_Crusader"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_Essence_6.2_Vanguard}/dist/game/"/>
|
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_Essence_6.3_Crusader}/dist/game/"/>
|
||||||
</launchConfiguration>
|
</launchConfiguration>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||||
<listEntry value="/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/loginserver/LoginServer.java"/>
|
<listEntry value="/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/loginserver/LoginServer.java"/>
|
||||||
</listAttribute>
|
</listAttribute>
|
||||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||||
<listEntry value="1"/>
|
<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_CLASSPATH_ONLY_JAR" value="false"/>
|
||||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
<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.MAIN_TYPE" value="org.l2jmobius.loginserver.LoginServer"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_Essence_6.2_Vanguard"/>
|
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="L2J_Mobius_Essence_6.3_Crusader"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_Essence_6.2_Vanguard"/>
|
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="L2J_Mobius_Essence_6.3_Crusader"/>
|
||||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_Essence_6.2_Vanguard}/dist/login/"/>
|
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:L2J_Mobius_Essence_6.3_Crusader}/dist/login/"/>
|
||||||
</launchConfiguration>
|
</launchConfiguration>
|
||||||
|
@ -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
|
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
|
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
|
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
|
Client (password L2jMobius):
|
||||||
System: https://mega.nz/file/oxl2mBQC#yt6P9XkfTbp7Sko7TG54-9vk6r5mAm732mwhbNhwO88
|
System:
|
||||||
|
|
||||||
All provided download links are for personal use. Redistribution of these links is bannable.
|
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
|
-New enchant system
|
||||||
-Chest and box auto-use
|
-Chest and box auto-use
|
||||||
|
|
||||||
|
Crusader: https://eu.4game.com/patchnotes/lineage2essence/416/
|
||||||
|
-Login support
|
||||||
|
|
||||||
Customs:
|
Customs:
|
||||||
-Newbie Helper NPC location info
|
-Newbie Helper NPC location info
|
||||||
-Newbie Helper buff support until 40 level
|
-Newbie Helper buff support until 40 level
|
||||||
|
Loading…
Reference in New Issue
Block a user