Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Отправляй теперь резюме Илону Маскуразобрался, оказывается был прописан C:\ProgramData\Oracle\Java\javapath удалил папку Oracle и все заработало.
Это же протокол 235 а сервер держит 228Вот, качай.
/**
* @author JoeAlisson
*/
public class ExAutoPlaySetting extends ClientPacket {
private short options;
private boolean active;
private boolean pickUp;
private short nextTargetMode;
private boolean isNearTarget;
private int usableHpPotionPercent;
private boolean mannerMode;
@Override
protected void readImpl() throws Exception {
options = readShort();
active = readByteAsBoolean();
pickUp = readByteAsBoolean();
nextTargetMode = readShort();
isNearTarget = readByteAsBoolean();
usableHpPotionPercent = readInt();
mannerMode = readByteAsBoolean();
}
@Override
protected void runImpl() {
var setting = new AutoPlaySetting(options, active, pickUp, nextTargetMode, isNearTarget, usableHpPotionPercent, mannerMode);
if(active) {
AutoPlayEngine.getInstance().startAutoPlay(client.getPlayer(), setting);
} else {
AutoPlayEngine.getInstance().stopAutoPlay(client.getPlayer());
}
client.sendPacket(new org.l2j.gameserver.network.serverpackets.autoplay.ExAutoPlaySetting(setting));
}
}
/**
* @author JoeAlisson
*/
public class ExRequestActivateAutoShortcut extends ClientPacket {
private boolean activate;
private int room;
@Override
protected void readImpl() throws Exception {
room = readShort();
activate = readByteAsBoolean();
}
@Override
protected void runImpl() throws Exception {
if(!activate) {
client.sendPacket(new ExActivateAutoShortcut(room, activate));
return;
}
if(room == -1) {
// TODO auto supply
client.sendPacket(new ExActivateAutoShortcut(room, activate));
} else {
var slot = room % 12;
var page = room / 12;
var player = client.getPlayer();
var shortcut = player.getShortCut(slot, page);
if (nonNull(shortcut)) {
if (page == 23 && slot == 1) { // auto potion
var item = player.getInventory().getItemByObjectId(shortcut.getId());
if (isNull(item) || !item.isPotion()) {
return;
}
}
// TODO auto skill
client.sendPacket(new ExActivateAutoShortcut(room, activate));
}
}
}
}
/**
* @author JoeAlisson
*/
public class ExActivateAutoShortcut extends ServerPacket {
private final int room;
private final boolean activate;
public ExActivateAutoShortcut(int room, boolean activate) {
this.room = room;
this.activate = activate;
}
@Override
protected void writeImpl(GameClient client) {
writeId(ServerPacketId.EX_ACTIVATE_AUTO_SHORTCUT);
writeShort(room);
writeByte(activate);
}
}
/**
* @author JoeAlisson
*/
@StaticPacket
public final class ExAutoPlayDoMacro extends ServerPacket {
public static ExAutoPlayDoMacro STATIC = new ExAutoPlayDoMacro();
private ExAutoPlayDoMacro() {
}
@Override
protected void writeImpl(GameClient client) throws Exception {
writeId(ServerPacketId.EX_AUTOPLAY_DO_MACRO);
writeInt(0x114); // macro number ?
}
}
/**
* @author JoeAlisson
*/
public class ExAutoPlaySetting extends ServerPacket {
private final AutoPlaySetting setting;
public ExAutoPlaySetting(AutoPlaySetting setting) {
this.setting = setting;
}
@Override
protected void writeImpl(GameClient client) {
writeId(ServerPacketId.EX_AUTOPLAY_SETTING);
writeShort(setting.getOptions());
writeByte(setting.isActive());
writeByte(setting.isAutoPickUpOn());
writeShort(setting.getNextTargetMode());
writeByte(setting.isNearTarget());
writeInt(setting.getUsableHpPotionPercent());
writeByte(setting.isMannerMode());
}
}
/**
* @author JoeAlisson
*/
public final class AutoPlayEngine {
private static final int AUTO_PLAY_INTERVAL = 2000;
private final WeakHashMap<Player, AutoPlaySetting> players = new WeakHashMap<>();
private final DoMacro doMacroTask = new DoMacro();
private ScheduledFuture<?> scheduled;
private final Object taskLocker = new Object();
private AutoPlayEngine() {
}
public void startAutoPlay(Player player, AutoPlaySetting setting) {
players.put(player, setting);
synchronized (taskLocker) {
if(isNull(scheduled)) {
scheduled = ThreadPool.scheduleAtFixedDelay(doMacroTask, AUTO_PLAY_INTERVAL, AUTO_PLAY_INTERVAL);
}
}
}
public void stopAutoPlay(Player player) {
players.remove(player);
synchronized (taskLocker) {
if (players.isEmpty() && nonNull(scheduled)) {
scheduled.cancel(false);
scheduled = null;
}
}
}
public static AutoPlayEngine getInstance() {
return Singleton.INSTANCE;
}
private final class DoMacro implements Runnable {
@Override
public void run() {
var world = World.getInstance();
var it = players.entrySet().iterator();
while (it.hasNext()) {
var entry = it.next();
var player = entry.getKey();
if(isNull(player)) {
it.remove();
} else {
var setting = entry.getValue();
var range = setting.isNearTarget() ? 600 : 1400;
if(setting.isAutoPickUpOn()) {
world.forAnyVisibleObjectInRange(player, Item.class, range,
item -> player.getAI().setIntention(CtrlIntention.AI_INTENTION_PICK_UP, item),
item -> item.getDropProtection().tryPickUp(player));
}
if(player.getAI().getIntention() == CtrlIntention.AI_INTENTION_PICK_UP) {
continue;
}
var target = player.getTarget();
if(isNull(target) || (isMonster(target) && ((Monster) target).isDead())) {
var monster = world.findAnyVisibleObject(player, Monster.class, range, false, m -> canBeTargeted(player, setting, m));
player.setTarget(monster);
}
if(nonNull(player.getTarget())) {
player.sendPacket(ExAutoPlayDoMacro.STATIC);
}
}
}
}
private boolean canBeTargeted(Player player, AutoPlaySetting setting, Monster monster) {
var attackerList = monster.getAggroList();
return !monster.isDead() && monster.isAutoAttackable(player) && (!setting.isMannerMode() || attackerList.isEmpty() || attackerList.size() == 1 && attackerList.containsKey(player));
}
}
private static final class Singleton {
private static final AutoPlayEngine INSTANCE = new AutoPlayEngine();
}
}
/**
* @author JoeAlisson
*/
public class AutoPlaySetting {
private final short options;
private final boolean active;
private final boolean pickUp;
private final short nextTargetMode;
private final boolean isNearTarget;
private final int usableHpPotionPercent;
private final boolean mannerMode;
public AutoPlaySetting(short options, boolean active, boolean pickUp, short nextTargetMode, boolean isNearTarget, int usableHpPotionPercent, boolean mannerMode) {
this.options = options;
this.active = active;
this.pickUp = pickUp;
this.nextTargetMode = nextTargetMode;
this.isNearTarget = isNearTarget;
this.usableHpPotionPercent = usableHpPotionPercent;
this.mannerMode = mannerMode;
}
public short getOptions() {
return options;
}
public boolean isActive() {
return active;
}
public boolean isAutoPickUpOn() {
return pickUp;
}
public short getNextTargetMode() {
return nextTargetMode;
}
public boolean isNearTarget() {
return isNearTarget;
}
public int getUsableHpPotionPercent() {
return usableHpPotionPercent;
}
public boolean isMannerMode() {
return mannerMode;
}
}
Кто нибудь решил данную проблему?Авто фарм/авто юз и все что авто - должно быть реализовано на стороне сервера (пакетка это показала)
В данном сурсе реализовано: вход в мир ( может парс болванок ДП, енд)
Больше копатьПодскажите куда копать
package org.l2jmobius.gameserver.network.clientpackets.autoplay;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend;
public class ExAutoPlaySetting implements IClientIncomingPacket
{
private int _options;
private boolean _active;
private boolean _pickUp;
private int _nextTargetMode;
private boolean _longRange;
private int _potionPercent;
private boolean _respectfulHunting;
@Override
public boolean read(GameClient client, PacketReader packet)
{
_options = packet.readH();
_active = packet.readC() == 1;
_pickUp = packet.readC() == 1;
_nextTargetMode = packet.readH();
_longRange = packet.readC() == 0;
_potionPercent = packet.readD();
_respectfulHunting = packet.readC() == 1;
return true;
}
@Override
public void run(GameClient client)
{
final PlayerInstance player = client.getPlayer();
if (player == null)
{
return;
}
player.sendPacket(new ExAutoPlaySettingSend(_options, _active, _pickUp, _nextTargetMode, _longRange, _potionPercent, _respectfulHunting));
player.setAutoPotionPercent(_potionPercent);
if (_active)
{
player.startAutoPlayTask(_pickUp, _longRange, _respectfulHunting);
}
else
{
player.stopAutoPlayTask();
}
}
}
package org.l2jmobius.gameserver.network.clientpackets.autoplay;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.Shortcut;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
public class ExRequestActivateAutoShortcut implements IClientIncomingPacket
{
private boolean _activate;
private int _room;
@Override
public boolean read(GameClient client, PacketReader packet)
{
_room = packet.readH();
_activate = packet.readC() == 1;
return true;
}
@Override
public void run(GameClient client)
{
final PlayerInstance player = client.getPlayer();
if (player == null)
{
return;
}
final int slot = _room % 12;
final int page = _room / 12;
final Shortcut shortcut = player.getShortCut(slot, page);
if (shortcut == null)
{
return;
}
client.sendPacket(new ExActivateAutoShortcut(_room, _activate));
final ItemInstance item = player.getInventory().getItemByObjectId(shortcut.getId());
Skill skill = null;
if (item == null)
{
skill = player.getKnownSkill(shortcut.getId());
}
// stop
if (!_activate)
{
if (item != null)
{
// auto supply
if (_room == -1)
{
player.removeAutoSupplyItem(item.getId());
}
else // auto potion
{
player.removeAutoPotionItem(item.getId());
}
}
// TODO: auto skill
if (skill != null)
{
player.removeAutoSkill(skill.getId());
}
return;
}
// start
if (_room == -1)
{
// auto supply
if (item != null)
{
player.addAutoSupplyItem(item.getId());
return;
}
}
else
{
// auto potion
if ((page == 23) && (slot == 1))
{
if ((item != null) && item.isPotion())
{
player.addAutoPotionItem(item.getId());
return;
}
}
// TODO: auto skill
if (skill != null)
{
player.addAutoSkill(skill.getId());
}
}
}
}
package org.l2jmobius.gameserver.network.serverpackets.autoplay;
import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
public class ExActivateAutoShortcut implements IClientOutgoingPacket
{
private final int _room;
private final boolean _activate;
public ExActivateAutoShortcut(int room, boolean activate)
{
_room = room;
_activate = activate;
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_ACTIVATE_AUTO_SHORTCUT.writeId(packet);
packet.writeH(_room);
packet.writeC(_activate ? 0x01 : 0x00);
return true;
}
}
package org.l2jmobius.gameserver.network.serverpackets.autoplay;
import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
public class ExAutoPlayDoMacro implements IClientOutgoingPacket
{
public static final ExAutoPlayDoMacro STATIC_PACKET = new ExAutoPlayDoMacro();
public ExAutoPlayDoMacro()
{
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_AUTOPLAY_DO_MACRO.writeId(packet);
packet.writeD(0x114);
return true;
}
}
package org.l2jmobius.gameserver.network.serverpackets.autoplay;
import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
public class ExAutoPlaySettingSend implements IClientOutgoingPacket
{
private final int _options;
private final boolean _active;
private final boolean _pickUp;
private final int _nextTargetMode;
private final boolean _longRange;
private final int _potionPercent;
private final boolean _respectfulHunting;
public ExAutoPlaySettingSend(int options, boolean active, boolean pickUp, int nextTargetMode, boolean longRange, int potionPercent, boolean respectfulHunting)
{
_options = options;
_active = active;
_pickUp = pickUp;
_nextTargetMode = nextTargetMode;
_longRange = longRange;
_potionPercent = potionPercent;
_respectfulHunting = respectfulHunting;
}
@Override
public boolean write(PacketWriter packet)
{
OutgoingPackets.EX_AUTOPLAY_SETTING.writeId(packet);
packet.writeH(_options);
packet.writeC(_active ? 1 : 0);
packet.writeC(_pickUp ? 1 : 0);
packet.writeH(_nextTargetMode);
packet.writeC(_longRange ? 1 : 0);
packet.writeD(_potionPercent);
packet.writeC(_respectfulHunting ? 1 : 0);
return true;
}
}
package org.l2jmobius.gameserver.network;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Supplier;
import org.l2jmobius.commons.network.IConnectionState;
import org.l2jmobius.commons.network.IIncomingPacket;
import org.l2jmobius.commons.network.IIncomingPackets;
import org.l2jmobius.gameserver.network.clientpackets.*;
import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdena;
import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdenaCancel;
import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdenaStart;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExCancelShape_Shifting_Item;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExTryToPutShapeShiftingEnchantSupportItem;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExTryToPutShapeShiftingTargetItem;
import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestShapeShiftingItem;
import org.l2jmobius.gameserver.network.clientpackets.attendance.RequestVipAttendanceCheck;
import org.l2jmobius.gameserver.network.clientpackets.attendance.RequestVipAttendanceItemList;
import org.l2jmobius.gameserver.network.clientpackets.attributechange.RequestChangeAttributeCancel;
import org.l2jmobius.gameserver.network.clientpackets.attributechange.RequestChangeAttributeItem;
import org.l2jmobius.gameserver.network.clientpackets.attributechange.SendChangeAttributeTargetItem;
import org.l2jmobius.gameserver.network.clientpackets.autoplay.ExAutoPlaySetting;
import org.l2jmobius.gameserver.network.clientpackets.autoplay.ExRequestActivateAutoShortcut;
import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestCancelCuriousHouse;
import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestCuriousHouseHtml;
import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestJoinCuriousHouse;
import org.l2jmobius.gameserver.network.clientpackets.classchange.ExRequestClassChange;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionBuyInfo;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionBuyItem;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionCancel;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionDelete;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionInfo;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionList;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegister;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegisteredItem;
import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegistrableItemList;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantClose;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantPushOne;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantPushTwo;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveOne;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveTwo;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRetryToPutItems;
import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantTry;
import org.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeEstimate;
import org.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeItemCancel;
import org.l2jmobius.gameserver.network.clientpackets.dailymission.RequestOneDayRewardReceive;
import org.l2jmobius.gameserver.network.clientpackets.dailymission.RequestTodoList;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalInitTalent;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritAbsorb;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritAbsorbInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritChangeType;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritEvolution;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritEvolutionInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritExtract;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritExtractInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritInfo;
import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritSetTalent;
import org.l2jmobius.gameserver.network.clientpackets.ensoul.RequestItemEnsoul;
import org.l2jmobius.gameserver.network.clientpackets.ensoul.RequestTryEnSoulExtraction;
import org.l2jmobius.gameserver.network.clientpackets.equipmentupgrade.RequestUpgradeSystemResult;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDetailInfo;
import org.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGamePlay;
import org.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGameStartInfo;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.ConfirmMenteeAdd;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMenteeAdd;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMenteeWaitingList;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMentorCancel;
import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMentorList;
import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusOpen;
import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusReward;
import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusRewardList;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRBuyProduct;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRGamePoint;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRPresentBuyProduct;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProductInfo;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProductList;
import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRRecentProductList;
import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidBossSpawnInfo;
import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidServerInfo;
import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankCharInfo;
import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankingCharRankers;
import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMove;
import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMoveStart;
import org.l2jmobius.gameserver.network.clientpackets.sessionzones.ExTimedHuntingZoneList;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.CannotMoveAnymoreInShuttle;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.MoveToLocationInShuttle;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.RequestShuttleGetOff;
import org.l2jmobius.gameserver.network.clientpackets.shuttle.RequestShuttleGetOn;
import org.l2jmobius.gameserver.network.clientpackets.training.NotifyTrainingRoomEnd;
/**
* @author Sdw
*/
public enum ExIncomingPackets implements IIncomingPackets<GameClient>
{
REQUEST_GOTO_LOBBY(0x33, RequestGotoLobby::new, ConnectionState.AUTHENTICATED),
REQUEST_EX_2ND_PASSWORD_CHECK(0xA6, RequestEx2ndPasswordCheck::new, ConnectionState.AUTHENTICATED),
REQUEST_EX_2ND_PASSWORD_VERIFY(0xA7, RequestEx2ndPasswordVerify::new, ConnectionState.AUTHENTICATED),
REQUEST_EX_2ND_PASSWORD_REQ(0xA8, RequestEx2ndPasswordReq::new, ConnectionState.AUTHENTICATED),
REQUEST_CHARACTER_NAME_CREATABLE(0xA9, RequestCharacterNameCreatable::new, ConnectionState.AUTHENTICATED),
REQUEST_MANOR_LIST(0x01, RequestManorList::new, ConnectionState.IN_GAME),
REQUEST_PROCEDURE_CROP_LIST(0x02, RequestProcureCropList::new, ConnectionState.IN_GAME),
REQUEST_SET_SEED(0x03, RequestSetSeed::new, ConnectionState.IN_GAME),
REQUEST_SET_CROP(0x04, RequestSetCrop::new, ConnectionState.IN_GAME),
REQUEST_WRITE_HERO_WORDS(0x05, RequestWriteHeroWords::new, ConnectionState.IN_GAME),
REQUEST_EX_ASK_JOIN_MPCC(0x06, RequestExAskJoinMPCC::new, ConnectionState.IN_GAME),
REQUEST_EX_ACCEPT_JOIN_MPCC(0x07, RequestExAcceptJoinMPCC::new, ConnectionState.IN_GAME),
REQUEST_EX_OUST_FROM_MPCC(0x08, RequestExOustFromMPCC::new, ConnectionState.IN_GAME),
REQUEST_OUST_FROM_PARTY_ROOM(0x09, RequestOustFromPartyRoom::new, ConnectionState.IN_GAME),
REQUEST_DISMISS_PARTY_ROOM(0x0A, RequestDismissPartyRoom::new, ConnectionState.IN_GAME),
REQUEST_WITHDRAW_PARTY_ROOM(0x0B, RequestWithdrawPartyRoom::new, ConnectionState.IN_GAME),
REQUEST_CHANGE_PARTY_LEADER(0x0C, RequestChangePartyLeader::new, ConnectionState.IN_GAME),
REQUEST_AUTO_SOULSHOT(0x0D, RequestAutoSoulShot::new, ConnectionState.IN_GAME),
REQUEST_EX_ENCHANT_SKILL_INFO(0x0E, RequestExEnchantSkillInfo::new, ConnectionState.IN_GAME),
REQUEST_EX_ENCHANT_SKILL(0x0F, RequestExEnchantSkill::new, ConnectionState.IN_GAME),
REQUEST_EX_PLEDGE_CREST_LARGE(0x10, RequestExPledgeCrestLarge::new, ConnectionState.IN_GAME),
REQUEST_EX_SET_PLEDGE_CREST_LARGE(0x11, RequestExSetPledgeCrestLarge::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_SET_ACADEMY_MASTER(0x12, RequestPledgeSetAcademyMaster::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_POWER_GRADE_LIST(0x13, RequestPledgePowerGradeList::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_MEMBER_POWER_INFO(0x14, RequestPledgeMemberPowerInfo::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_SET_MEMBER_POWER_GRADE(0x15, RequestPledgeSetMemberPowerGrade::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_MEMBER_INFO(0x16, RequestPledgeMemberInfo::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_WAR_LIST(0x17, RequestPledgeWarList::new, ConnectionState.IN_GAME),
REQUEST_EX_FISH_RANKING(0x18, RequestExFishRanking::new, ConnectionState.IN_GAME),
REQUEST_PCCAFE_COUPON_USE(0x19, RequestPCCafeCouponUse::new, ConnectionState.IN_GAME),
REQUEST_SERVER_LOGIN(0x1A, null, ConnectionState.IN_GAME),
REQUEST_DUEL_START(0x1B, RequestDuelStart::new, ConnectionState.IN_GAME),
REQUEST_DUAL_ANSWER_START(0x1C, RequestDuelAnswerStart::new, ConnectionState.IN_GAME),
REQUEST_EX_SET_TUTORIAL(0x1D, null, ConnectionState.IN_GAME),
REQUEST_EX_RQ_ITEM_LINK(0x1E, RequestExRqItemLink::new, ConnectionState.IN_GAME),
CANNOT_MOVE_ANYMORE_AIR_SHIP(0x1F, null, ConnectionState.IN_GAME),
MOVE_TO_LOCATION_IN_AIR_SHIP(0x20, MoveToLocationInAirShip::new, ConnectionState.IN_GAME),
REQUEST_KEY_MAPPING(0x21, RequestKeyMapping::new, ConnectionState.ENTERING_AND_IN_GAME),
REQUEST_SAVE_KEY_MAPPING(0x22, RequestSaveKeyMapping::new, ConnectionState.IN_GAME),
REQUEST_EX_REMOVE_ITEM_ATTRIBUTE(0x23, RequestExRemoveItemAttribute::new, ConnectionState.IN_GAME),
REQUEST_SAVE_INVENTORY_ORDER(0x24, RequestSaveInventoryOrder::new, ConnectionState.IN_GAME),
REQUEST_EXIT_PARTY_MATCHING_WAITING_ROOM(0x25, RequestExitPartyMatchingWaitingRoom::new, ConnectionState.IN_GAME),
REQUEST_CONFIRM_TARGET_ITEM(0x26, RequestConfirmTargetItem::new, ConnectionState.IN_GAME),
REQUEST_CONFIRM_REFINER_ITEM(0x27, RequestConfirmRefinerItem::new, ConnectionState.IN_GAME),
REQUEST_CONFIRM_GEMSTONE(0x28, RequestConfirmGemStone::new, ConnectionState.IN_GAME),
REQUEST_OLYMPIAD_OBSERVER_END(0x29, RequestOlympiadObserverEnd::new, ConnectionState.IN_GAME),
REQUEST_CURSED_WEAPON_LIST(0x2A, RequestCursedWeaponList::new, ConnectionState.IN_GAME),
REQUEST_CURSED_WEAPON_LOCATION(0x2B, RequestCursedWeaponLocation::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_REORGANIZE_MEMBER(0x2C, RequestPledgeReorganizeMember::new, ConnectionState.IN_GAME),
REQUEST_EX_MPCC_SHOW_PARTY_MEMBERS_INFO(0x2D, RequestExMPCCShowPartyMembersInfo::new, ConnectionState.IN_GAME),
REQUEST_OLYMPIAD_MATCH_LIST(0x2E, RequestOlympiadMatchList::new, ConnectionState.IN_GAME),
REQUEST_ASK_JOIN_PARTY_ROOM(0x2F, RequestAskJoinPartyRoom::new, ConnectionState.IN_GAME),
ANSWER_JOIN_PARTY_ROOM(0x30, AnswerJoinPartyRoom::new, ConnectionState.IN_GAME),
REQUEST_LIST_PARTY_MATCHING_WAITING_ROOM(0x31, RequestListPartyMatchingWaitingRoom::new, ConnectionState.IN_GAME),
REQUEST_EX_ENCHANT_ITEM_ATTRIBUTE(0x32, RequestExEnchantItemAttribute::new, ConnectionState.IN_GAME),
MOVE_TO_LOCATION_AIR_SHIP(0x35, MoveToLocationAirShip::new, ConnectionState.IN_GAME),
REQUEST_BID_ITEM_AUCTION(0x36, RequestBidItemAuction::new, ConnectionState.IN_GAME),
REQUEST_INFO_ITEM_AUCTION(0x37, RequestInfoItemAuction::new, ConnectionState.IN_GAME),
REQUEST_EX_CHANGE_NAME(0x38, RequestExChangeName::new, ConnectionState.IN_GAME),
REQUEST_ALL_CASTLE_INFO(0x39, RequestAllCastleInfo::new, ConnectionState.IN_GAME),
REQUEST_ALL_FORTRESS_INFO(0x3A, RequestAllFortressInfo::new, ConnectionState.IN_GAME),
REQUEST_ALL_AGIT_INGO(0x3B, RequestAllAgitInfo::new, ConnectionState.IN_GAME),
REQUEST_FORTRESS_SIEGE_INFO(0x3C, RequestFortressSiegeInfo::new, ConnectionState.IN_GAME),
REQUEST_GET_BOSS_RECORD(0x3D, RequestGetBossRecord::new, ConnectionState.IN_GAME),
REQUEST_REFINE(0x3E, RequestRefine::new, ConnectionState.IN_GAME),
REQUEST_CONFIRM_CANCEL_ITEM(0x3F, RequestConfirmCancelItem::new, ConnectionState.IN_GAME),
REQUEST_REFINE_CANCEL(0x40, RequestRefineCancel::new, ConnectionState.IN_GAME),
REQUEST_EX_MAGIC_SKILL_USE_GROUND(0x41, RequestExMagicSkillUseGround::new, ConnectionState.IN_GAME),
REQUEST_DUEL_SURRENDER(0x42, RequestDuelSurrender::new, ConnectionState.IN_GAME),
REQUEST_EX_ENCHANT_SKILL_INFO_DETAIL(0x43, RequestExEnchantSkillInfoDetail::new, ConnectionState.IN_GAME),
REQUEST_FORTRESS_MAP_INFO(0x45, RequestFortressMapInfo::new, ConnectionState.IN_GAME),
REQUEST_PVP_MATCH_RECORD(0x46, RequestPVPMatchRecord::new, ConnectionState.IN_GAME),
SET_PRIVATE_STORE_WHOLE_MSG(0x47, SetPrivateStoreWholeMsg::new, ConnectionState.IN_GAME),
REQUEST_DISPEL(0x48, RequestDispel::new, ConnectionState.IN_GAME),
REQUEST_EX_TRY_TO_PUT_ENCHANT_TARGET_ITEM(0x49, RequestExTryToPutEnchantTargetItem::new, ConnectionState.IN_GAME),
REQUEST_EX_TRY_TO_PUT_ENCHANT_SUPPORT_ITEM(0x4A, RequestExTryToPutEnchantSupportItem::new, ConnectionState.IN_GAME),
REQUEST_EX_CANCEL_ENCHANT_ITEM(0x4B, RequestExCancelEnchantItem::new, ConnectionState.IN_GAME),
REQUEST_CHANGE_NICKNAME_COLOR(0x4C, RequestChangeNicknameColor::new, ConnectionState.IN_GAME),
REQUEST_RESET_NICKNAME(0x4D, RequestResetNickname::new, ConnectionState.IN_GAME),
EX_BOOKMARK_PACKET(0x4E, ExBookmarkPacket::new, ConnectionState.IN_GAME),
REQUEST_WITHDRAW_PREMIUM_ITEM(0x4F, RequestWithDrawPremiumItem::new, ConnectionState.IN_GAME),
REQUEST_EX_JUMP(0x50, null, ConnectionState.IN_GAME),
REQUEST_EX_START_SHOW_CRATAE_CUBE_RANK(0x51, RequestStartShowKrateisCubeRank::new, ConnectionState.IN_GAME),
REQUEST_EX_STOP_SHOW_CRATAE_CUBE_RANK(0x52, RequestStopShowKrateisCubeRank::new, ConnectionState.IN_GAME),
NOTIFY_START_MINI_GAME(0x53, null, ConnectionState.IN_GAME),
REQUEST_EX_JOIN_DOMINION_WAR(0x54, null, ConnectionState.IN_GAME),
REQUEST_EX_DOMINION_INFO(0x55, null, ConnectionState.IN_GAME),
REQUEST_EX_CLEFT_ENTER(0x56, null, ConnectionState.IN_GAME),
REQUEST_EX_CUBE_GAME_CHANGE_TEAM(0x57, RequestExCubeGameChangeTeam::new, ConnectionState.IN_GAME),
END_SCENE_PLAYER(0x58, EndScenePlayer::new, ConnectionState.IN_GAME),
REQUEST_EX_CUBE_GAME_READY_ANSWER(0x59, RequestExCubeGameReadyAnswer::new, ConnectionState.IN_GAME),
REQUEST_EX_LIST_MPCC_WAITING(0x5A, RequestExListMpccWaiting::new, ConnectionState.IN_GAME),
REQUEST_EX_MANAGE_MPCC_ROOM(0x5B, RequestExManageMpccRoom::new, ConnectionState.IN_GAME),
REQUEST_EX_JOIN_MPCC_ROOM(0x5C, RequestExJoinMpccRoom::new, ConnectionState.IN_GAME),
REQUEST_EX_OUST_FROM_MPCC_ROOM(0x5D, RequestExOustFromMpccRoom::new, ConnectionState.IN_GAME),
REQUEST_EX_DISMISS_MPCC_ROOM(0x5E, RequestExDismissMpccRoom::new, ConnectionState.IN_GAME),
REQUEST_EX_WITHDRAW_MPCC_ROOM(0x5F, RequestExWithdrawMpccRoom::new, ConnectionState.IN_GAME),
REQUEST_SEED_PHASE(0x60, RequestSeedPhase::new, ConnectionState.IN_GAME),
REQUEST_EX_MPCC_PARTYMASTER_LIST(0x61, RequestExMpccPartymasterList::new, ConnectionState.IN_GAME),
REQUEST_POST_ITEM_LIST(0x62, RequestPostItemList::new, ConnectionState.IN_GAME),
REQUEST_SEND_POST(0x63, RequestSendPost::new, ConnectionState.IN_GAME),
REQUEST_RECEIVED_POST_LIST(0x64, RequestReceivedPostList::new, ConnectionState.IN_GAME),
REQUEST_DELETE_RECEIVED_POST(0x65, RequestDeleteReceivedPost::new, ConnectionState.IN_GAME),
REQUEST_RECEIVED_POST(0x66, RequestReceivedPost::new, ConnectionState.IN_GAME),
REQUEST_POST_ATTACHMENT(0x67, RequestPostAttachment::new, ConnectionState.IN_GAME),
REQUEST_REJECT_POST_ATTACHMENT(0x68, RequestRejectPostAttachment::new, ConnectionState.IN_GAME),
REQUEST_SENT_POST_LIST(0x69, RequestSentPostList::new, ConnectionState.IN_GAME),
REQUEST_DELETE_SENT_POST(0x6A, RequestDeleteSentPost::new, ConnectionState.IN_GAME),
REQUEST_SENT_POST(0x6B, RequestSentPost::new, ConnectionState.IN_GAME),
REQUEST_CANCEL_POST_ATTACHMENT(0x6C, RequestCancelPostAttachment::new, ConnectionState.IN_GAME),
REQUEST_SHOW_NEW_USER_PETITION(0x6D, null, ConnectionState.IN_GAME),
REQUEST_SHOW_STEP_TWO(0x6E, null, ConnectionState.IN_GAME),
REQUEST_SHOW_STEP_THREE(0x6F, null, ConnectionState.IN_GAME),
EX_CONNECT_TO_RAID_SERVER(0x70, null, ConnectionState.IN_GAME),
EX_RETURN_FROM_RAID_SERVER(0x71, null, ConnectionState.IN_GAME),
REQUEST_REFUND_ITEM(0x72, RequestRefundItem::new, ConnectionState.IN_GAME),
REQUEST_BUI_SELL_UI_CLOSE(0x73, RequestBuySellUIClose::new, ConnectionState.IN_GAME),
REQUEST_EX_EVENT_MATCH_OBSERVER_END(0x74, null, ConnectionState.IN_GAME),
REQUEST_PARTY_LOOT_MODIFICATION(0x75, RequestPartyLootModification::new, ConnectionState.IN_GAME),
ANSWER_PARTY_LOOT_MODIFICATION(0x76, AnswerPartyLootModification::new, ConnectionState.IN_GAME),
ANSWER_COUPLE_ACTION(0x77, AnswerCoupleAction::new, ConnectionState.IN_GAME),
BR_EVENT_RANKER_LIST(0x78, BrEventRankerList::new, ConnectionState.IN_GAME),
REQUEST_ASK_MEMBER_SHIP(0x79, null, ConnectionState.IN_GAME),
REQUEST_ADD_EXPAND_QUEST_ALARM(0x7A, RequestAddExpandQuestAlarm::new, ConnectionState.IN_GAME),
REQUEST_VOTE_NEW(0x7B, RequestVoteNew::new, ConnectionState.IN_GAME),
REQUEST_SHUTTLE_GET_ON(0x7C, RequestShuttleGetOn::new, ConnectionState.IN_GAME),
REQUEST_SHUTTLE_GET_OFF(0x7D, RequestShuttleGetOff::new, ConnectionState.IN_GAME),
MOVE_TO_LOCATION_IN_SHUTTLE(0x7E, MoveToLocationInShuttle::new, ConnectionState.IN_GAME),
CANNOT_MOVE_ANYMORE_IN_SHUTTLE(0x7F, CannotMoveAnymoreInShuttle::new, ConnectionState.IN_GAME),
REQUEST_AGIT_ACTION(0x80, null, ConnectionState.IN_GAME), // TODO: Implement / HANDLE SWITCH
REQUEST_EX_ADD_CONTACT_TO_CONTACT_LIST(0x81, RequestExAddContactToContactList::new, ConnectionState.IN_GAME),
REQUEST_EX_DELETE_CONTACT_FROM_CONTACT_LIST(0x82, RequestExDeleteContactFromContactList::new, ConnectionState.IN_GAME),
REQUEST_EX_SHOW_CONTACT_LIST(0x83, RequestExShowContactList::new, ConnectionState.IN_GAME),
REQUEST_EX_FRIEND_LIST_EXTENDED(0x84, RequestExFriendListExtended::new, ConnectionState.IN_GAME),
REQUEST_EX_OLYMPIAD_MATCH_LIST_REFRESH(0x85, RequestExOlympiadMatchListRefresh::new, ConnectionState.IN_GAME),
REQUEST_BR_GAME_POINT(0x86, RequestBRGamePoint::new, ConnectionState.IN_GAME),
REQUEST_BR_PRODUCT_LIST(0x87, RequestBRProductList::new, ConnectionState.IN_GAME),
REQUEST_BR_PRODUCT_INFO(0x88, RequestBRProductInfo::new, ConnectionState.IN_GAME),
REQUEST_BR_BUI_PRODUCT(0x89, RequestBRBuyProduct::new, ConnectionState.IN_GAME),
REQUEST_BR_RECENT_PRODUCT_LIST(0x8A, RequestBRRecentProductList::new, ConnectionState.IN_GAME),
REQUEST_BR_MINI_GAME_LOAD_SCORES(0x8B, null, ConnectionState.IN_GAME),
REQUEST_BR_MINI_GAME_INSERT_SCORE(0x8C, null, ConnectionState.IN_GAME),
REQUEST_EX_BR_LECTURE_MARK(0x8D, null, ConnectionState.IN_GAME),
REQUEST_CRYSTALLIZE_ESTIMATE(0x8E, RequestCrystallizeEstimate::new, ConnectionState.IN_GAME),
REQUEST_CRYSTALLIZE_ITEM_CANCEL(0x8F, RequestCrystallizeItemCancel::new, ConnectionState.IN_GAME),
REQUEST_SCENE_EX_ESCAPE_SCENE(0x90, RequestExEscapeScene::new, ConnectionState.IN_GAME),
REQUEST_FLY_MOVE(0x91, RequestFlyMove::new, ConnectionState.IN_GAME),
REQUEST_SURRENDER_PLEDGE_WAR_EX(0x92, null, ConnectionState.IN_GAME),
REQUEST_DYNAMIC_QUEST_ACTION(0x93, null, ConnectionState.IN_GAME), // TODO: Implement / HANDLE SWITCH
REQUEST_FRIEND_DETAIL_INFO(0x94, RequestFriendDetailInfo::new, ConnectionState.IN_GAME),
REQUEST_UPDATE_FRIEND_MEMO(0x95, null, ConnectionState.IN_GAME),
REQUEST_UPDATE_BLOCK_MEMO(0x96, null, ConnectionState.IN_GAME),
REQUEST_INZONE_PARTY_INFO_HISTORY(0x97, null, ConnectionState.IN_GAME),
REQUEST_COMMISSION_REGISTRABLE_ITEM_LIST(0x98, RequestCommissionRegistrableItemList::new, ConnectionState.IN_GAME),
REQUEST_COMMISSION_INFO(0x99, RequestCommissionInfo::new, ConnectionState.IN_GAME),
REQUEST_COMMISSION_REGISTER(0x9A, RequestCommissionRegister::new, ConnectionState.IN_GAME),
REQUEST_COMMISSION_CANCEL(0x9B, RequestCommissionCancel::new, ConnectionState.IN_GAME),
REQUEST_COMMISSION_DELETE(0x9C, RequestCommissionDelete::new, ConnectionState.IN_GAME),
REQUEST_COMMISSION_LIST(0x9D, RequestCommissionList::new, ConnectionState.IN_GAME),
REQUEST_COMMISSION_BUY_INFO(0x9E, RequestCommissionBuyInfo::new, ConnectionState.IN_GAME),
REQUEST_COMMISSION_BUY_ITEM(0x9F, RequestCommissionBuyItem::new, ConnectionState.IN_GAME),
REQUEST_COMMISSION_REGISTERED_ITEM(0xA0, RequestCommissionRegisteredItem::new, ConnectionState.IN_GAME),
REQUEST_CALL_TO_CHANGE_CLASS(0xA1, null, ConnectionState.IN_GAME),
REQUEST_CHANGE_TO_AWAKENED_CLASS(0xA2, RequestChangeToAwakenedClass::new, ConnectionState.IN_GAME),
REQUEST_WORLD_STATISTICS(0xA3, null, ConnectionState.IN_GAME),
REQUEST_USER_STATISTICS(0xA4, null, ConnectionState.IN_GAME),
REQUEST_24HZ_SESSION_ID(0xA5, null, ConnectionState.IN_GAME),
REQUEST_GOODS_INVENTORY_INFO(0xAA, null, ConnectionState.IN_GAME),
REQUEST_GOODS_INVENTORY_ITEM(0xAB, null, ConnectionState.IN_GAME),
REQUEST_FIRST_PLAY_START(0xAC, null, ConnectionState.IN_GAME),
REQUEST_FLY_MOVE_START(0xAD, RequestFlyMoveStart::new, ConnectionState.IN_GAME),
REQUEST_HARDWARE_INFO(0xAE, RequestHardWareInfo::new, ConnectionState.values()),
SEND_CHANGE_ATTRIBUTE_TARGET_ITEM(0xB0, SendChangeAttributeTargetItem::new, ConnectionState.IN_GAME),
REQUEST_CHANGE_ATTRIBUTE_ITEM(0xB1, RequestChangeAttributeItem::new, ConnectionState.IN_GAME),
REQUEST_CHANGE_ATTRIBUTE_CANCEL(0xB2, RequestChangeAttributeCancel::new, ConnectionState.IN_GAME),
REQUEST_BR_PRESENT_BUY_PRODUCT(0xB3, RequestBRPresentBuyProduct::new, ConnectionState.IN_GAME),
CONFIRM_MENTEE_ADD(0xB4, ConfirmMenteeAdd::new, ConnectionState.IN_GAME),
REQUEST_MENTOR_CANCEL(0xB5, RequestMentorCancel::new, ConnectionState.IN_GAME),
REQUEST_MENTOR_LIST(0xB6, RequestMentorList::new, ConnectionState.IN_GAME),
REQUEST_MENTEE_ADD(0xB7, RequestMenteeAdd::new, ConnectionState.IN_GAME),
REQUEST_MENTEE_WAITING_LIST(0xB8, RequestMenteeWaitingList::new, ConnectionState.IN_GAME),
REQUEST_CLAN_ASK_JOIN_BY_NAME(0xB9, RequestClanAskJoinByName::new, ConnectionState.IN_GAME),
REQUEST_IN_ZONE_WAITING_TIME(0xBA, RequestInzoneWaitingTime::new, ConnectionState.IN_GAME),
REQUEST_JOIN_CURIOUS_HOUSE(0xBB, RequestJoinCuriousHouse::new, ConnectionState.IN_GAME),
REQUEST_CANCEL_CURIOUS_HOUSE(0xBC, RequestCancelCuriousHouse::new, ConnectionState.IN_GAME),
REQUEST_LEAVE_CURIOUS_HOUSE(0xBD, null, ConnectionState.IN_GAME),
REQUEST_OBSERVING_LIST_CURIOUS_HOUSE(0xBE, null, ConnectionState.IN_GAME),
REQUEST_OBSERVING_CURIOUS_HOUSE(0xBF, null, ConnectionState.IN_GAME),
REQUEST_LEAVE_OBSERVING_CURIOUS_HOUSE(0xC0, null, ConnectionState.IN_GAME),
REQUEST_CURIOUS_HOUSE_HTML(0xC1, RequestCuriousHouseHtml::new, ConnectionState.IN_GAME),
REQUEST_CURIOUS_HOUSE_RECORD(0xC2, null, ConnectionState.IN_GAME),
EX_SYSSTRING(0xC3, null, ConnectionState.IN_GAME),
REQUEST_EX_TRY_TO_PUT_SHAPE_SHIFTING_TARGET_ITEM(0xC4, RequestExTryToPutShapeShiftingTargetItem::new, ConnectionState.IN_GAME),
REQUEST_EX_TRY_TO_PUT_SHAPE_SHIFTING_ENCHANT_SUPPORT_ITEM(0xC5, RequestExTryToPutShapeShiftingEnchantSupportItem::new, ConnectionState.IN_GAME),
REQUEST_EX_CANCEL_SHAPE_SHIFTING_ITEM(0xC6, RequestExCancelShape_Shifting_Item::new, ConnectionState.IN_GAME),
REQUEST_SHAPE_SHIFTING_ITEM(0xC7, RequestShapeShiftingItem::new, ConnectionState.IN_GAME),
NC_GUARD_SEND_DATA_TO_SERVER(0xC8, null, ConnectionState.IN_GAME),
REQUEST_EVENT_KALIE_TOKEN(0xC9, null, ConnectionState.IN_GAME),
REQUEST_SHOW_BEAUTY_LIST(0xCA, RequestShowBeautyList::new, ConnectionState.IN_GAME),
REQUEST_REGIST_BEAUTY(0xCB, RequestRegistBeauty::new, ConnectionState.IN_GAME),
REQUEST_SHOW_RESET_SHOP_LIST(0xCD, RequestShowResetShopList::new, ConnectionState.IN_GAME),
NET_PING(0xCE, null, ConnectionState.IN_GAME),
REQUEST_BR_ADD_BASKET_PRODUCT_INFO(0xCF, null, ConnectionState.IN_GAME),
REQUEST_BR_DELETE_BASKET_PRODUCT_INFO(0xD0, null, ConnectionState.IN_GAME),
REQUEST_EX_EVENT_CAMPAIGN_INFO(0xD2, null, ConnectionState.IN_GAME),
REQUEST_PLEDGE_RECRUIT_INFO(0xD3, RequestPledgeRecruitInfo::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_RECRUIT_BOARD_SEARCH(0xD4, RequestPledgeRecruitBoardSearch::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_RECRUIT_BOARD_ACCESS(0xD5, RequestPledgeRecruitBoardAccess::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_RECRUIT_BOARD_DETAIL(0xD6, RequestPledgeRecruitBoardDetail::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_WAITING_APPLY(0xD7, RequestPledgeWaitingApply::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_WAITING_APPLIED(0xD8, RequestPledgeWaitingApplied::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_WAITING_LIST(0xD9, RequestPledgeWaitingList::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_WAITING_USER(0xDA, RequestPledgeWaitingUser::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_WAITING_USER_ACCEPT(0xDB, RequestPledgeWaitingUserAccept::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_DRAFT_LIST_SEARCH(0xDC, RequestPledgeDraftListSearch::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_DRAFT_LIST_APPLY(0xDD, RequestPledgeDraftListApply::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_RECRUIT_APPLY_INFO(0xDE, RequestPledgeRecruitApplyInfo::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_JOIN_SYS(0xDF, null, ConnectionState.IN_GAME),
RESPONSE_PETITION_ALARM(0xE0, null, ConnectionState.IN_GAME),
NOTIFY_EXIT_BEAUTY_SHOP(0xE1, NotifyExitBeautyShop::new, ConnectionState.IN_GAME),
REQUEST_REGISTER_XMAS_WISH_CARD(0xE2, null, ConnectionState.IN_GAME),
REQUEST_EX_ADD_ENCHANT_SCROLL_ITEM(0xE3, RequestExAddEnchantScrollItem::new, ConnectionState.IN_GAME),
REQUEST_EX_REMOVE_ENCHANT_SUPPORT_ITEM(0xE4, RequestExRemoveEnchantSupportItem::new, ConnectionState.IN_GAME),
REQUEST_CARD_REWARD(0xE5, null, ConnectionState.IN_GAME),
REQUEST_DIVIDE_ADENA_START(0xE6, RequestDivideAdenaStart::new, ConnectionState.IN_GAME),
REQUEST_DIVIDE_ADENA_CANCEL(0xE7, RequestDivideAdenaCancel::new, ConnectionState.IN_GAME),
REQUEST_DIVIDE_ADENA(0xE8, RequestDivideAdena::new, ConnectionState.IN_GAME),
REQUEST_ACQUIRE_ABILITY_LIST(0xE9, null, ConnectionState.IN_GAME),
REQUEST_ABILITY_LIST(0xEA, null, ConnectionState.IN_GAME),
REQUEST_RESET_ABILITY_POINT(0xEB, null, ConnectionState.IN_GAME),
REQUEST_CHANGE_ABILITY_POINT(0xEC, null, ConnectionState.IN_GAME),
REQUEST_STOP_MOVE(0xED, RequestStopMove::new, ConnectionState.IN_GAME),
REQUEST_ABILITY_WND_OPEN(0xEE, null, ConnectionState.IN_GAME),
REQUEST_ABILITY_WND_CLOSE(0xEF, null, ConnectionState.IN_GAME),
REQUEST_LUCKY_GAME_START_INFO(0xF0, RequestLuckyGameStartInfo::new, ConnectionState.IN_GAME),
REQUEST_LUCKY_GAME_PLAY(0xF1, RequestLuckyGamePlay::new, ConnectionState.IN_GAME),
NOTIFY_TRAINING_ROOM_END(0xF2, NotifyTrainingRoomEnd::new, ConnectionState.IN_GAME),
REQUEST_NEW_ENCHANT_PUSH_ONE(0xF3, RequestNewEnchantPushOne::new, ConnectionState.IN_GAME),
REQUEST_NEW_ENCHANT_REMOVE_ONE(0xF4, RequestNewEnchantRemoveOne::new, ConnectionState.IN_GAME),
REQUEST_NEW_ENCHANT_PUSH_TWO(0xF5, RequestNewEnchantPushTwo::new, ConnectionState.IN_GAME),
REQUEST_NEW_ENCHANT_REMOVE_TWO(0xF6, RequestNewEnchantRemoveTwo::new, ConnectionState.IN_GAME),
REQUEST_NEW_ENCHANT_CLOSE(0xF7, RequestNewEnchantClose::new, ConnectionState.IN_GAME),
REQUEST_NEW_ENCHANT_TRY(0xF8, RequestNewEnchantTry::new, ConnectionState.IN_GAME),
REQUEST_NEW_ENCHANT_RETRY_TO_PUT_ITEMS(0xF9, RequestNewEnchantRetryToPutItems::new, ConnectionState.IN_GAME),
EX_REQUEST_CARD_REWARD_LIST(0xFA, null, ConnectionState.IN_GAME),
EX_REQUEST_ACCOUNT_ATTENDANCE_INFO(0xFB, null, ConnectionState.IN_GAME),
EX_REQUEST_ACCOUNT_ATTENDANCE_REWARD(0xFC, null, ConnectionState.IN_GAME),
REQUEST_TARGET_ACTION_MENU(0xFD, RequestTargetActionMenu::new, ConnectionState.IN_GAME),
EX_SEND_SELECTED_QUEST_ZONE_ID(0xFE, ExSendSelectedQuestZoneID::new, ConnectionState.IN_GAME),
REQUEST_ALCHEMY_SKILL_LIST(0xFF, RequestAlchemySkillList::new, ConnectionState.IN_GAME),
REQUEST_ALCHEMY_TRY_MIX_CUBE(0x100, null, ConnectionState.IN_GAME),
REQUEST_ALCHEMY_CONVERSION(0x101, null, ConnectionState.IN_GAME),
SEND_EXECUTED_UI_EVENTS_COUNT(0x102, null, ConnectionState.IN_GAME),
EX_SEND_CLIENT_INI(0x103, null, ConnectionState.AUTHENTICATED),
REQUEST_EX_AUTO_FISH(0x104, ExRequestAutoFish::new, ConnectionState.IN_GAME),
REQUEST_VIP_ATTENDANCE_ITEM_LIST(0x105, RequestVipAttendanceItemList::new, ConnectionState.IN_GAME),
REQUEST_VIP_ATTENDANCE_CHECK(0x106, RequestVipAttendanceCheck::new, ConnectionState.IN_GAME),
REQUEST_ITEM_ENSOUL(0x107, RequestItemEnsoul::new, ConnectionState.IN_GAME),
REQUEST_CASTLE_WAR_SEASON_REWARD(0x108, null, ConnectionState.IN_GAME),
REQUEST_VIP_PRODUCT_LIST(0x109, null, ConnectionState.IN_GAME),
REQUEST_VIP_LUCKY_GAME_INFO(0x10A, null, ConnectionState.IN_GAME),
REQUEST_VIP_LUCKY_GAME_ITEM_LIST(0x10B, null, ConnectionState.IN_GAME),
REQUEST_VIP_LUCKY_GAME_BONUS(0x10C, null, ConnectionState.IN_GAME),
EX_REQUEST_VIP_INFO(0x10D, null, ConnectionState.IN_GAME),
REQUEST_CAPTCHA_ANSWER(0x10E, null, ConnectionState.IN_GAME),
REQUEST_REFRESH_CAPTCHA_IMAGE(0x10F, null, ConnectionState.IN_GAME),
REQUEST_PLEDGE_SIGN_IN_FOR_OPEN_JOINING_METHOD(0x110, RequestPledgeSignInForOpenJoiningMethod::new, ConnectionState.IN_GAME),
EX_REQUEST_MATCH_ARENA(0x111, null, ConnectionState.IN_GAME),
EX_CONFIRM_MATCH_ARENA(0x112, null, ConnectionState.IN_GAME),
EX_CANCEL_MATCH_ARENA(0x113, null, ConnectionState.IN_GAME),
EX_CHANGE_CLASS_ARENA(0x114, null, ConnectionState.IN_GAME),
EX_CONFIRM_CLASS_ARENA(0x115, null, ConnectionState.IN_GAME),
REQUEST_OPEN_DECO_NPCUI(0x116, null, ConnectionState.IN_GAME),
REQUEST_CHECK_AGIT_DECO_AVAILABILITY(0x117, null, ConnectionState.IN_GAME),
REQUEST_USER_FACTION_INFO(0x118, null, ConnectionState.IN_GAME),
EX_EXIT_ARENA(0x119, null, ConnectionState.IN_GAME),
REQUEST_EVENT_BALTHUS_TOKEN(0x11A, null, ConnectionState.IN_GAME),
REQUEST_PARTY_MATCHING_HISTORY(0x11B, null, ConnectionState.IN_GAME),
EX_ARENA_CUSTOM_NOTIFICATION(0x11C, null, ConnectionState.IN_GAME),
REQUEST_TODO_LIST(0x11D, RequestTodoList::new, ConnectionState.IN_GAME),
REQUEST_TODO_LIST_HTML(0x11E, null, ConnectionState.IN_GAME),
REQUEST_ONE_DAY_REWARD_RECEIVE(0x11F, RequestOneDayRewardReceive::new, ConnectionState.IN_GAME),
REQUEST_QUEUE_TICKET(0x120, null, ConnectionState.IN_GAME),
REQUEST_PLEDGE_BONUS_OPEN(0x121, RequestPledgeBonusOpen::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_BONUS_REWARD_LIST(0x122, RequestPledgeBonusRewardList::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_BONUS_REWARD(0x123, RequestPledgeBonusReward::new, ConnectionState.IN_GAME),
REQUEST_SSO_AUTHN_TOKEN(0x124, null, ConnectionState.IN_GAME),
REQUEST_QUEUE_TICKET_LOGIN(0x125, null, ConnectionState.IN_GAME),
REQUEST_BLOCK_MEMO_INFO(0x126, null, ConnectionState.IN_GAME),
REQUEST_TRY_EN_SOUL_EXTRACTION(0x127, RequestTryEnSoulExtraction::new, ConnectionState.IN_GAME),
REQUEST_RAIDBOSS_SPAWN_INFO(0x128, RequestRaidBossSpawnInfo::new, ConnectionState.IN_GAME),
REQUEST_RAID_SERVER_INFO(0x129, RequestRaidServerInfo::new, ConnectionState.IN_GAME),
REQUEST_SHOW_AGIT_SIEGE_INFO(0x12A, null, ConnectionState.IN_GAME),
REQUEST_ITEM_AUCTION_STATUS(0x12B, null, ConnectionState.IN_GAME),
REQUEST_MONSTER_BOOK_OPEN(0x12C, null, ConnectionState.IN_GAME),
REQUEST_MONSTER_BOOK_CLOSE(0x12D, null, ConnectionState.IN_GAME),
REQUEST_MONSTER_BOOK_REWARD(0x12E, null, ConnectionState.IN_GAME),
EXREQUEST_MATCH_GROUP(0x12F, null, ConnectionState.IN_GAME),
EXREQUEST_MATCH_GROUP_ASK(0x130, null, ConnectionState.IN_GAME),
EXREQUEST_MATCH_GROUP_ANSWER(0x131, null, ConnectionState.IN_GAME),
EXREQUEST_MATCH_GROUP_WITHDRAW(0x132, null, ConnectionState.IN_GAME),
EXREQUEST_MATCH_GROUP_OUST(0x133, null, ConnectionState.IN_GAME),
EXREQUEST_MATCH_GROUP_CHANGE_MASTER(0x134, null, ConnectionState.IN_GAME),
REQUEST_UPGRADE_SYSTEM_RESULT(0x135, RequestUpgradeSystemResult::new, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_PICK_NUMB(0x136, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_GAME_REWARD_REQUEST(0x137, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_GAME_RETRY(0x138, null, ConnectionState.IN_GAME),
EX_CARD_UPDOWN_GAME_QUIT(0x139, null, ConnectionState.IN_GAME),
EX_ARENA_RANK_ALL(0x13A, null, ConnectionState.IN_GAME),
EX_ARENA_MYRANK(0x13B, null, ConnectionState.IN_GAME),
EX_SWAP_AGATHION_SLOT_ITEMS(0x13C, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_RANK(0x13D, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_INFO(0x13E, null, ConnectionState.IN_GAME),
EX_PLEDGE_CONTRIBUTION_REWARD(0x13F, null, ConnectionState.IN_GAME),
EX_PLEDGE_LEVEL_UP(0x140, null, ConnectionState.IN_GAME),
EX_PLEDGE_MISSION_INFO(0x141, null, ConnectionState.IN_GAME),
EX_PLEDGE_MISSION_REWARD(0x142, null, ConnectionState.IN_GAME),
EX_PLEDGE_MASTERY_INFO(0x143, null, ConnectionState.IN_GAME),
EX_PLEDGE_MASTERY_SET(0x144, null, ConnectionState.IN_GAME),
EX_PLEDGE_MASTERY_RESET(0x145, null, ConnectionState.IN_GAME),
EX_PLEDGE_SKILL_INFO(0x146, null, ConnectionState.IN_GAME),
EX_PLEDGE_SKILL_ACTIVATE(0x147, null, ConnectionState.IN_GAME),
EX_PLEDGE_ITEM_LIST(0x148, null, ConnectionState.IN_GAME),
EX_PLEDGE_ITEM_ACTIVATE(0x149, null, ConnectionState.IN_GAME),
EX_PLEDGE_ANNOUNCE(0x14A, null, ConnectionState.IN_GAME),
EX_PLEDGE_ANNOUNCE_SET(0x14B, null, ConnectionState.IN_GAME),
EX_CREATE_PLEDGE(0x14C, null, ConnectionState.IN_GAME),
EX_PLEDGE_ITEM_INFO(0x14D, null, ConnectionState.IN_GAME),
EX_PLEDGE_ITEM_BUY(0x14E, null, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_INFO(0x14F, ExElementalSpiritInfo::new, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0x150, ExElementalSpiritExtractInfo::new, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_EXTRACT(0x151, ExElementalSpiritExtract::new, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0x152, ExElementalSpiritEvolutionInfo::new, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_EVOLUTION(0x153, ExElementalSpiritEvolution::new, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_SET_TALENT(0x154, ExElementalSpiritSetTalent::new, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_INIT_TALENT(0x155, ExElementalInitTalent::new, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0x156, ExElementalSpiritAbsorbInfo::new, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_ABSORB(0x157, ExElementalSpiritAbsorb::new, ConnectionState.IN_GAME),
EX_REQUEST_LOCKED_ITEM(0x158, null, ConnectionState.IN_GAME),
EX_REQUEST_UNLOCKED_ITEM(0x159, null, ConnectionState.IN_GAME),
EX_LOCKED_ITEM_CANCEL(0x15A, null, ConnectionState.IN_GAME),
EX_UNLOCKED_ITEM_CANCEL(0x15B, null, ConnectionState.IN_GAME),
EX_ELEMENTAL_SPIRIT_CHANGE_TYPE(0x15C, ExElementalSpiritChangeType::new, ConnectionState.IN_GAME), // 152
REQUEST_BLOCK_LIST_FOR_AD(0x15D, null, ConnectionState.IN_GAME),
REQUEST_USER_BAN_INFO(0x15E, null, ConnectionState.IN_GAME),
EX_INTERACT_MODIFY(0x15F, null, ConnectionState.IN_GAME), // 152
EX_TRY_ENCHANT_ARTIFACT(0x160, null, ConnectionState.IN_GAME), // 152
EX_XIGN_CODE(0x161, null, ConnectionState.IN_GAME), // 152
EX_OPEN_HTML(0x164, ExOpenDimensionalHtml::new, ConnectionState.IN_GAME), // 228
EX_REQUEST_CLASS_CHANGE(0x165, ExRequestClassChange::new, ConnectionState.IN_GAME), // 228
EX_REQUEST_CLASS_CHANGE_VERIFYING(0x166, null, ConnectionState.IN_GAME), // 228
EX_REQUEST_TELEPORT(0x167, ExRequestTeleport::new, ConnectionState.IN_GAME), // 228
EX_COSTUME_COLLECTION_SKILL_ACTIVE(0x16B, null, ConnectionState.IN_GAME), // 228
UNK_16C(0x16C, null, ConnectionState.IN_GAME), // 228
UNK_16D(0x16D, null, ConnectionState.IN_GAME), // 228
UNK_16E(0x16E, null, ConnectionState.IN_GAME), // 228
UNK_16F(0x16F, null, ConnectionState.IN_GAME), // 228
UNK_170(0x170, null, ConnectionState.IN_GAME), // 228
EX_ACTIVATE_AUTO_SHORTCUT(0x171, ExRequestActivateAutoShortcut::new, ConnectionState.IN_GAME), // 228
UNK_172(0x172, null, ConnectionState.IN_GAME), // 228
UNK_173(0x173, null, ConnectionState.IN_GAME), // 228
UNK_174(0x174, null, ConnectionState.IN_GAME), // 228
UNK_175(0x175, null, ConnectionState.IN_GAME), // 228
UNK_176(0x176, null, ConnectionState.IN_GAME), // 228
EX_AUTOPLAY_SETTING(0x177, ExAutoPlaySetting::new, ConnectionState.IN_GAME), // 228
UNK_178(0x178, null, ConnectionState.IN_GAME), // 228
UNK_179(0x179, null, ConnectionState.IN_GAME), // 228
UNK_17A(0x17A, null, ConnectionState.IN_GAME), // 228
UNK_17B(0x17B, null, ConnectionState.IN_GAME), // 228
UNK_17C(0x17C, null, ConnectionState.IN_GAME), // 228
UNK_17D(0x17D, null, ConnectionState.IN_GAME), // 228
UNK_17E(0x17E, null, ConnectionState.IN_GAME), // 228
EX_TIME_RESTRICT_FIELD_LIST(0x17F, ExTimedHuntingZoneList::new, ConnectionState.IN_GAME), // 228
EX_TIME_RESTRICT_FIELD_USER_ENTER(0x180, null, ConnectionState.IN_GAME), // 228
EX_RANKING_CHAR_INFO(0x181, ExRankCharInfo::new, ConnectionState.IN_GAME), // 228
EX_RANKING_CHAR_HISTORY(0x182, null, ConnectionState.IN_GAME), // 228
EX_RANKING_CHAR_RANKERS(0x183, ExRankingCharRankers::new, ConnectionState.IN_GAME), // 228
UNK_184(0x184, null, ConnectionState.IN_GAME), // 228
UNK_185(0x185, null, ConnectionState.IN_GAME), // 228
EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x186, null, ConnectionState.IN_GAME), // 228
UNK_187(0x187, null, ConnectionState.IN_GAME), // 228
UNK_188(0x188, null, ConnectionState.IN_GAME), // 228
UNK_189(0x189, null, ConnectionState.IN_GAME), // 228
UNK_18A(0x18A, null, ConnectionState.IN_GAME), // 228
EX_PVP_BOOK_LIST(0x18B, ExPvpBookList::new, ConnectionState.IN_GAME), // 228
UNK_18C(0x18C, null, ConnectionState.IN_GAME), // 228
EX_LETTER_COLLECTOR_TAKE_REWARD(0x18D, null, ConnectionState.IN_GAME); // 228
public static final ExIncomingPackets[] PACKET_ARRAY;
static
{
final short maxPacketId = (short) Arrays.stream(values()).mapToInt(IIncomingPackets::getPacketId).max().orElse(0);
PACKET_ARRAY = new ExIncomingPackets[maxPacketId + 1];
for (ExIncomingPackets incomingPacket : values())
{
PACKET_ARRAY[incomingPacket.getPacketId()] = incomingPacket;
}
}
private int _packetId;
private Supplier<IIncomingPacket<GameClient>> _incomingPacketFactory;
private Set<IConnectionState> _connectionStates;
ExIncomingPackets(int packetId, Supplier<IIncomingPacket<GameClient>> incomingPacketFactory, IConnectionState... connectionStates)
{
// packetId is an unsigned short
if (packetId > 0xFFFF)
{
throw new IllegalArgumentException("packetId must not be bigger than 0xFFFF");
}
_packetId = packetId;
_incomingPacketFactory = incomingPacketFactory != null ? incomingPacketFactory : () -> null;
_connectionStates = new HashSet<>(Arrays.asList(connectionStates));
}
@Override
public int getPacketId()
{
return _packetId;
}
@Override
public IIncomingPacket<GameClient> newIncomingPacket()
{
return _incomingPacketFactory.get();
}
@Override
public Set<IConnectionState> getConnectionStates()
{
return _connectionStates;
}
}
package org.l2jmobius.gameserver.network;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.function.Supplier;
import org.l2jmobius.commons.network.IConnectionState;
import org.l2jmobius.commons.network.IIncomingPacket;
import org.l2jmobius.commons.network.IIncomingPackets;
import org.l2jmobius.gameserver.network.clientpackets.*;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestAnswerFriendInvite;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDel;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendInvite;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendList;
import org.l2jmobius.gameserver.network.clientpackets.friend.RequestSendFriendMsg;
/**
* @author UnAfraid
*/
public enum IncomingPackets implements IIncomingPackets<GameClient>
{
LOGOUT(0x00, Logout::new, ConnectionState.AUTHENTICATED, ConnectionState.IN_GAME),
ATTACK(0x01, Attack::new, ConnectionState.IN_GAME),
REQUEST_START_PLEDGE_WAR(0x03, RequestStartPledgeWar::new, ConnectionState.IN_GAME),
REQUEST_REPLY_START_PLEDGE(0x04, RequestReplyStartPledgeWar::new, ConnectionState.IN_GAME),
REQUEST_STOP_PLEDGE_WAR(0x05, RequestStopPledgeWar::new, ConnectionState.IN_GAME),
REQUEST_REPLY_STOP_PLEDGE_WAR(0x06, RequestReplyStopPledgeWar::new, ConnectionState.IN_GAME),
REQUEST_SURRENDER_PLEDGE_WAR(0x07, RequestSurrenderPledgeWar::new, ConnectionState.IN_GAME),
REQUEST_REPLY_SURRENDER_PLEDGE_WAR(0x08, RequestReplySurrenderPledgeWar::new, ConnectionState.IN_GAME),
REQUEST_SET_PLEDGE_CREST(0x09, RequestSetPledgeCrest::new, ConnectionState.IN_GAME),
REQUEST_GIVE_NICK_NAME(0x0B, RequestGiveNickName::new, ConnectionState.IN_GAME),
CHARACTER_CREATE(0x0C, CharacterCreate::new, ConnectionState.AUTHENTICATED),
CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED),
PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED),
MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME),
ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING),
CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED),
NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED),
REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME),
REQUEST_UN_EQUIP_ITEM(0x16, RequestUnEquipItem::new, ConnectionState.IN_GAME),
REQUEST_DROP_ITEM(0x17, RequestDropItem::new, ConnectionState.IN_GAME),
USE_ITEM(0x19, UseItem::new, ConnectionState.IN_GAME),
TRADE_REQUEST(0x1A, TradeRequest::new, ConnectionState.IN_GAME),
ADD_TRADE_ITEM(0x1B, AddTradeItem::new, ConnectionState.IN_GAME),
TRADE_DONE(0x1C, TradeDone::new, ConnectionState.IN_GAME),
ACTION(0x1F, Action::new, ConnectionState.IN_GAME),
REQUEST_LINK_HTML(0x22, RequestLinkHtml::new, ConnectionState.IN_GAME),
REQUEST_BYPASS_TO_SERVER(0x23, RequestBypassToServer::new, ConnectionState.IN_GAME),
REQUEST_BBS_WRITE(0x24, RequestBBSwrite::new, ConnectionState.IN_GAME),
REQUEST_JOIN_PLEDGE(0x26, RequestJoinPledge::new, ConnectionState.IN_GAME),
REQUEST_ANSWER_JOIN_PLEDGE(0x27, RequestAnswerJoinPledge::new, ConnectionState.IN_GAME),
REQUEST_WITHDRAWAL_PLEDGE(0x28, RequestWithdrawalPledge::new, ConnectionState.IN_GAME),
REQUEST_OUST_PLEDGE_MEMBER(0x29, RequestOustPledgeMember::new, ConnectionState.IN_GAME),
AUTH_LOGIN(0x2B, AuthLogin::new, ConnectionState.CONNECTED),
REQUEST_GET_ITEM_FROM_PET(0x2C, RequestGetItemFromPet::new, ConnectionState.IN_GAME),
REQUEST_ALLY_INFO(0x2E, RequestAllyInfo::new, ConnectionState.IN_GAME),
REQUEST_CRYSTALLIZE_ITEM(0x2F, RequestCrystallizeItem::new, ConnectionState.IN_GAME),
REQUEST_PRIVATE_STORE_MANAGE_SELL(0x30, RequestPrivateStoreManageSell::new, ConnectionState.IN_GAME),
SET_PRIVATE_STORE_LIST_SELL(0x31, SetPrivateStoreListSell::new, ConnectionState.IN_GAME),
ATTACK_REQUEST(0x32, AttackRequest::new, ConnectionState.IN_GAME),
REQUEST_TELEPORT(0x33, null, ConnectionState.IN_GAME),
SOCIAL_ACTION(0x34, null, ConnectionState.IN_GAME),
CHANGE_MOVE_TYPE(0x35, null, ConnectionState.IN_GAME),
CHANGE_WAIT_TYPE(0x36, null, ConnectionState.IN_GAME),
REQUEST_SELL_ITEM(0x37, RequestSellItem::new, ConnectionState.IN_GAME),
REQUEST_MAGIC_SKILL_LIST(0x38, RequestMagicSkillList::new, ConnectionState.IN_GAME),
REQUEST_MAGIC_SKILL_USE(0x39, RequestMagicSkillUse::new, ConnectionState.IN_GAME),
APPEARING(0x3A, Appearing::new, ConnectionState.IN_GAME),
SEND_WARE_HOUSE_DEPOSIT_LIST(0x3B, SendWareHouseDepositList::new, ConnectionState.IN_GAME),
SEND_WARE_HOUSE_WITH_DRAW_LIST(0x3C, SendWareHouseWithDrawList::new, ConnectionState.IN_GAME),
REQUEST_SHORT_CUT_REG(0x3D, RequestShortCutReg::new, ConnectionState.IN_GAME),
REQUEST_SHORT_CUT_DEL(0x3F, RequestShortCutDel::new, ConnectionState.IN_GAME),
REQUEST_BUY_ITEM(0x40, RequestBuyItem::new, ConnectionState.IN_GAME),
REQUEST_JOIN_PARTY(0x42, RequestJoinParty::new, ConnectionState.IN_GAME),
REQUEST_ANSWER_JOIN_PARTY(0x43, RequestAnswerJoinParty::new, ConnectionState.IN_GAME),
REQUEST_WITH_DRAWAL_PARTY(0x44, RequestWithDrawalParty::new, ConnectionState.IN_GAME),
REQUEST_OUST_PARTY_MEMBER(0x45, RequestOustPartyMember::new, ConnectionState.IN_GAME),
CANNOT_MOVE_ANYMORE(0x47, CannotMoveAnymore::new, ConnectionState.IN_GAME),
REQUEST_TARGET_CANCELD(0x48, RequestTargetCanceld::new, ConnectionState.IN_GAME),
SAY2(0x49, Say2::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_MEMBER_LIST(0x4D, RequestPledgeMemberList::new, ConnectionState.IN_GAME),
REQUEST_MAGIC_LIST(0x4F, null, ConnectionState.IN_GAME),
REQUEST_SKILL_LIST(0x50, RequestSkillList::new, ConnectionState.IN_GAME),
MOVE_WITH_DELTA(0x52, MoveWithDelta::new, ConnectionState.IN_GAME),
REQUEST_GET_ON_VEHICLE(0x53, RequestGetOnVehicle::new, ConnectionState.IN_GAME),
REQUEST_GET_OFF_VEHICLE(0x54, RequestGetOffVehicle::new, ConnectionState.IN_GAME),
ANSWER_TRADE_REQUEST(0x55, AnswerTradeRequest::new, ConnectionState.IN_GAME),
REQUEST_ACTION_USE(0x56, RequestActionUse::new, ConnectionState.IN_GAME),
REQUEST_RESTART(0x57, RequestRestart::new, ConnectionState.IN_GAME),
VALIDATE_POSITION(0x59, ValidatePosition::new, ConnectionState.IN_GAME),
START_ROTATING(0x5B, StartRotating::new, ConnectionState.IN_GAME),
FINISH_ROTATING(0x5C, FinishRotating::new, ConnectionState.IN_GAME),
REQUEST_SHOW_BOARD(0x5E, RequestShowBoard::new, ConnectionState.IN_GAME),
REQUEST_ENCHANT_ITEM(0x5F, RequestEnchantItem::new, ConnectionState.IN_GAME),
REQUEST_DESTROY_ITEM(0x60, RequestDestroyItem::new, ConnectionState.IN_GAME),
REQUEST_QUEST_LIST(0x62, RequestQuestList::new, ConnectionState.IN_GAME),
REQUEST_QUEST_ABORT(0x63, RequestQuestAbort::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_INFO(0x65, RequestPledgeInfo::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_EXTENDED_INFO(0x66, RequestPledgeExtendedInfo::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_CREST(0x67, RequestPledgeCrest::new, ConnectionState.IN_GAME),
REQUEST_SEND_FRIEND_MSG(0x6B, RequestSendFriendMsg::new, ConnectionState.IN_GAME),
REQUEST_SHOW_MINI_MAP(0x6C, RequestShowMiniMap::new, ConnectionState.IN_GAME),
REQUEST_RECORD_INFO(0x6E, RequestRecordInfo::new, ConnectionState.IN_GAME),
REQUEST_HENNA_EQUIP(0x6F, RequestHennaEquip::new, ConnectionState.IN_GAME),
REQUEST_HENNA_REMOVE_LIST(0x70, RequestHennaRemoveList::new, ConnectionState.IN_GAME),
REQUEST_HENNA_ITEM_REMOVE_INFO(0x71, RequestHennaItemRemoveInfo::new, ConnectionState.IN_GAME),
REQUEST_HENNA_REMOVE(0x72, RequestHennaRemove::new, ConnectionState.IN_GAME),
REQUEST_ACQUIRE_SKILL_INFO(0x73, RequestAcquireSkillInfo::new, ConnectionState.IN_GAME),
SEND_BYPASS_BUILD_CMD(0x74, SendBypassBuildCmd::new, ConnectionState.IN_GAME),
REQUEST_MOVE_TO_LOCATION_IN_VEHICLE(0x75, RequestMoveToLocationInVehicle::new, ConnectionState.IN_GAME),
CANNOT_MOVE_ANYMORE_IN_VEHICLE(0x76, CannotMoveAnymoreInVehicle::new, ConnectionState.IN_GAME),
REQUEST_FRIEND_INVITE(0x77, RequestFriendInvite::new, ConnectionState.IN_GAME),
REQUEST_ANSWER_FRIEND_INVITE(0x78, RequestAnswerFriendInvite::new, ConnectionState.IN_GAME),
REQUEST_FRIEND_LIST(0x79, RequestFriendList::new, ConnectionState.IN_GAME),
REQUEST_FRIEND_DEL(0x7A, RequestFriendDel::new, ConnectionState.IN_GAME),
CHARACTER_RESTORE(0x7B, CharacterRestore::new, ConnectionState.AUTHENTICATED),
REQUEST_ACQUIRE_SKILL(0x7C, RequestAcquireSkill::new, ConnectionState.IN_GAME),
REQUEST_RESTART_POINT(0x7D, RequestRestartPoint::new, ConnectionState.IN_GAME),
REQUEST_GM_COMMAND(0x7E, RequestGMCommand::new, ConnectionState.IN_GAME),
REQUEST_PARTY_MATCH_CONFIG(0x7F, RequestPartyMatchConfig::new, ConnectionState.IN_GAME),
REQUEST_PARTY_MATCH_LIST(0x80, RequestPartyMatchList::new, ConnectionState.IN_GAME),
REQUEST_PARTY_MATCH_DETAIL(0x81, RequestPartyMatchDetail::new, ConnectionState.IN_GAME),
REQUEST_PRIVATE_STORE_BUY(0x83, RequestPrivateStoreBuy::new, ConnectionState.IN_GAME),
REQUEST_TUTORIAL_LINK_HTML(0x85, RequestTutorialLinkHtml::new, ConnectionState.IN_GAME),
REQUEST_TUTORIAL_PASS_CMD_TO_SERVER(0x86, RequestTutorialPassCmdToServer::new, ConnectionState.IN_GAME),
REQUEST_TUTORIAL_QUESTION_MARK(0x87, RequestTutorialQuestionMark::new, ConnectionState.IN_GAME),
REQUEST_TUTORIAL_CLIENT_EVENT(0x88, RequestTutorialClientEvent::new, ConnectionState.IN_GAME),
REQUEST_PETITION(0x89, RequestPetition::new, ConnectionState.IN_GAME),
REQUEST_PETITION_CANCEL(0x8A, RequestPetitionCancel::new, ConnectionState.IN_GAME),
REQUEST_GM_LIST(0x8B, RequestGmList::new, ConnectionState.IN_GAME),
REQUEST_JOIN_ALLY(0x8C, RequestJoinAlly::new, ConnectionState.IN_GAME),
REQUEST_ANSWER_JOIN_ALLY(0x8D, RequestAnswerJoinAlly::new, ConnectionState.IN_GAME),
ALLY_LEAVE(0x8E, AllyLeave::new, ConnectionState.IN_GAME),
ALLY_DISMISS(0x8F, AllyDismiss::new, ConnectionState.IN_GAME),
REQUEST_DISMISS_ALLY(0x90, RequestDismissAlly::new, ConnectionState.IN_GAME),
REQUEST_SET_ALLY_CREST(0x91, RequestSetAllyCrest::new, ConnectionState.IN_GAME),
REQUEST_ALLY_CREST(0x92, RequestAllyCrest::new, ConnectionState.IN_GAME),
REQUEST_CHANGE_PET_NAME(0x93, RequestChangePetName::new, ConnectionState.IN_GAME),
REQUEST_PET_USE_ITEM(0x94, RequestPetUseItem::new, ConnectionState.IN_GAME),
REQUEST_GIVE_ITEM_TO_PET(0x95, RequestGiveItemToPet::new, ConnectionState.IN_GAME),
REQUEST_PRIVATE_STORE_QUIT_SELL(0x96, RequestPrivateStoreQuitSell::new, ConnectionState.IN_GAME),
SET_PRIVATE_STORE_MSG_SELL(0x97, SetPrivateStoreMsgSell::new, ConnectionState.IN_GAME),
REQUEST_PET_GET_ITEM(0x98, RequestPetGetItem::new, ConnectionState.IN_GAME),
REQUEST_PRIVATE_STORE_MANAGE_BUY(0x99, RequestPrivateStoreManageBuy::new, ConnectionState.IN_GAME),
SET_PRIVATE_STORE_LIST_BUY(0x9A, SetPrivateStoreListBuy::new, ConnectionState.IN_GAME),
REQUEST_PRIVATE_STORE_QUIT_BUY(0x9C, RequestPrivateStoreQuitBuy::new, ConnectionState.IN_GAME),
SET_PRIVATE_STORE_MSG_BUY(0x9D, SetPrivateStoreMsgBuy::new, ConnectionState.IN_GAME),
REQUEST_PRIVATE_STORE_SELL(0x9F, RequestPrivateStoreSell::new, ConnectionState.IN_GAME),
SEND_TIME_CHECK_PACKET(0xA0, null, ConnectionState.IN_GAME),
REQUEST_SKILL_COOL_TIME(0xA6, null, ConnectionState.IN_GAME),
REQUEST_PACKAGE_SENDABLE_ITEM_LIST(0xA7, RequestPackageSendableItemList::new, ConnectionState.IN_GAME),
REQUEST_PACKAGE_SEND(0xA8, RequestPackageSend::new, ConnectionState.IN_GAME),
REQUEST_BLOCK(0xA9, RequestBlock::new, ConnectionState.IN_GAME),
REQUEST_SIEGE_INFO(0xAA, RequestSiegeInfo::new, ConnectionState.IN_GAME),
REQUEST_SIEGE_ATTACKER_LIST(0xAB, RequestSiegeAttackerList::new, ConnectionState.IN_GAME),
REQUEST_SIEGE_DEFENDER_LIST(0xAC, RequestSiegeDefenderList::new, ConnectionState.IN_GAME),
REQUEST_JOIN_SIEGE(0xAD, RequestJoinSiege::new, ConnectionState.IN_GAME),
REQUEST_CONFIRM_SIEGE_WAITING_LIST(0xAE, RequestConfirmSiegeWaitingList::new, ConnectionState.IN_GAME),
REQUEST_SET_CASTLE_SIEGE_TIME(0xAF, RequestSetCastleSiegeTime::new, ConnectionState.IN_GAME),
MULTI_SELL_CHOOSE(0xB0, MultiSellChoose::new, ConnectionState.IN_GAME),
NET_PING(0xB1, null, ConnectionState.IN_GAME),
REQUEST_REMAIN_TIME(0xB2, null, ConnectionState.IN_GAME),
BYPASS_USER_CMD(0xB3, BypassUserCmd::new, ConnectionState.IN_GAME),
SNOOP_QUIT(0xB4, SnoopQuit::new, ConnectionState.IN_GAME),
REQUEST_RECIPE_BOOK_OPEN(0xB5, RequestRecipeBookOpen::new, ConnectionState.IN_GAME),
REQUEST_RECIPE_BOOK_DESTROY(0xB6, RequestRecipeBookDestroy::new, ConnectionState.IN_GAME),
REQUEST_RECIPE_ITEM_MAKE_INFO(0xB7, RequestRecipeItemMakeInfo::new, ConnectionState.IN_GAME),
REQUEST_RECIPE_ITEM_MAKE_SELF(0xB8, RequestRecipeItemMakeSelf::new, ConnectionState.IN_GAME),
REQUEST_RECIPE_SHOP_MANAGE_LIST(0xB9, null, ConnectionState.IN_GAME),
REQUEST_RECIPE_SHOP_MESSAGE_SET(0xBA, RequestRecipeShopMessageSet::new, ConnectionState.IN_GAME),
REQUEST_RECIPE_SHOP_LIST_SET(0xBB, RequestRecipeShopListSet::new, ConnectionState.IN_GAME),
REQUEST_RECIPE_SHOP_MANAGE_QUIT(0xBC, RequestRecipeShopManageQuit::new, ConnectionState.IN_GAME),
REQUEST_RECIPE_SHOP_MANAGE_CANCEL(0xBD, null, ConnectionState.IN_GAME),
REQUEST_RECIPE_SHOP_MAKE_INFO(0xBE, RequestRecipeShopMakeInfo::new, ConnectionState.IN_GAME),
REQUEST_RECIPE_SHOP_MAKE_ITEM(0xBF, RequestRecipeShopMakeItem::new, ConnectionState.IN_GAME),
REQUEST_RECIPE_SHOP_MANAGE_PREV(0xC0, RequestRecipeShopManagePrev::new, ConnectionState.IN_GAME),
OBSERVER_RETURN(0xC1, ObserverReturn::new, ConnectionState.IN_GAME),
REQUEST_EVALUATE(0xC2, null, ConnectionState.IN_GAME),
REQUEST_HENNA_ITEM_LIST(0xC3, RequestHennaItemList::new, ConnectionState.IN_GAME),
REQUEST_HENNA_ITEM_INFO(0xC4, RequestHennaItemInfo::new, ConnectionState.IN_GAME),
REQUEST_BUY_SEED(0xC5, RequestBuySeed::new, ConnectionState.IN_GAME),
DLG_ANSWER(0xC6, DlgAnswer::new, ConnectionState.IN_GAME),
REQUEST_PREVIEW_ITEM(0xC7, RequestPreviewItem::new, ConnectionState.IN_GAME),
REQUEST_SSQ_STATUS(0xC8, null, ConnectionState.IN_GAME),
REQUEST_PETITION_FEEDBACK(0xC9, RequestPetitionFeedback::new, ConnectionState.IN_GAME),
GAME_GUARD_REPLY(0xCB, GameGuardReply::new, ConnectionState.IN_GAME),
REQUEST_PLEDGE_POWER(0xCC, RequestPledgePower::new, ConnectionState.IN_GAME),
REQUEST_MAKE_MACRO(0xCD, RequestMakeMacro::new, ConnectionState.IN_GAME),
REQUEST_DELETE_MACRO(0xCE, RequestDeleteMacro::new, ConnectionState.IN_GAME),
REQUEST_BUY_PROCURE(0xCF, null, ConnectionState.IN_GAME),
EX_PACKET(0xD0, ExPacket::new, ConnectionState.values()); // This packet has its own connection state checking so we allow all of them
public static final IncomingPackets[] PACKET_ARRAY;
static
{
final short maxPacketId = (short) Arrays.stream(values()).mapToInt(IIncomingPackets::getPacketId).max().orElse(0);
PACKET_ARRAY = new IncomingPackets[maxPacketId + 1];
for (IncomingPackets incomingPacket : values())
{
PACKET_ARRAY[incomingPacket.getPacketId()] = incomingPacket;
}
}
private short _packetId;
private Supplier<IIncomingPacket<GameClient>> _incomingPacketFactory;
private Set<IConnectionState> _connectionStates;
IncomingPackets(int packetId, Supplier<IIncomingPacket<GameClient>> incomingPacketFactory, IConnectionState... connectionStates)
{
// packetId is an unsigned byte
if (packetId > 0xFF)
{
throw new IllegalArgumentException("packetId must not be bigger than 0xFF");
}
_packetId = (short) packetId;
_incomingPacketFactory = incomingPacketFactory != null ? incomingPacketFactory : () -> null;
_connectionStates = new HashSet<>(Arrays.asList(connectionStates));
}
@Override
public int getPacketId()
{
return _packetId;
}
@Override
public IIncomingPacket<GameClient> newIncomingPacket()
{
return _incomingPacketFactory.get();
}
@Override
public Set<IConnectionState> getConnectionStates()
{
return _connectionStates;
}
}
package org.l2jmobius.gameserver.network;
import org.l2jmobius.commons.network.PacketWriter;
/**
* @author UnAfraid
*/
public enum OutgoingPackets
{
// Packets
DIE(0x00),
REVIVE(0x01),
ATTACK_OUT_OF_RANGE(0x02),
ATTACKIN_COOL_TIME(0x03),
ATTACK_DEAD_TARGET(0x04),
SPAWN_ITEM(0x05),
SELL_LIST(0x06),
BUY_LIST(0x07),
DELETE_OBJECT(0x08),
CHARACTER_SELECTION_INFO(0x09),
LOGIN_FAIL(0x0A),
CHARACTER_SELECTED(0x0B),
NPC_INFO(0x0C),
NEW_CHARACTER_SUCCESS(0x0D),
NEW_CHARACTER_FAIL(0x0E),
CHARACTER_CREATE_SUCCESS(0x0F),
CHARACTER_CREATE_FAIL(0x10),
ITEM_LIST(0x11),
SUN_RISE(0x12),
SUN_SET(0x13),
TRADE_START(0x14),
TRADE_START_OK(0x15),
DROP_ITEM(0x16),
GET_ITEM(0x17),
STATUS_UPDATE(0x18),
NPC_HTML_MESSAGE(0x19),
TRADE_OWN_ADD(0x1A),
TRADE_OTHER_ADD(0x1B),
TRADE_DONE(0x1C),
CHARACTER_DELETE_SUCCESS(0x1D),
CHARACTER_DELETE_FAIL(0x1E),
ACTION_FAIL(0x1F),
SEVER_CLOSE(0x20),
INVENTORY_UPDATE(0x21),
TELEPORT_TO_LOCATION(0x22),
TARGET_SELECTED(0x23),
TARGET_UNSELECTED(0x24),
AUTO_ATTACK_START(0x25),
AUTO_ATTACK_STOP(0x26),
SOCIAL_ACTION(0x27),
CHANGE_MOVE_TYPE(0x28),
CHANGE_WAIT_TYPE(0x29),
MANAGE_PLEDGE_POWER(0x2A),
CREATE_PLEDGE(0x2B),
ASK_JOIN_PLEDGE(0x2C),
JOIN_PLEDGE(0x2D),
VERSION_CHECK(0x2E),
MOVE_TO_LOCATION(0x2F),
NPC_SAY(0x30),
CHAR_INFO(0x31),
USER_INFO(0x32),
ATTACK(0x33),
WITHDRAWAL_PLEDGE(0x34),
OUST_PLEDGE_MEMBER(0x35),
SET_OUST_PLEDGE_MEMBER(0x36),
DISMISS_PLEDGE(0x37),
SET_DISMISS_PLEDGE(0x38),
ASK_JOIN_PARTY(0x39),
JOIN_PARTY(0x3A),
WITHDRAWAL_PARTY(0x3B),
OUST_PARTY_MEMBER(0x3C),
SET_OUST_PARTY_MEMBER(0x3D),
DISMISS_PARTY(0x3E),
SET_DISMISS_PARTY(0x3F),
MAGIC_AND_SKILL_LIST(0x40),
WAREHOUSE_DEPOSIT_LIST(0x41),
WAREHOUSE_WITHDRAW_LIST(0x42),
WAREHOUSE_DONE(0x43),
SHORT_CUT_REGISTER(0x44),
SHORT_CUT_INIT(0x45),
SHORT_CUT_DELETE(0x46),
STOP_MOVE(0x47),
MAGIC_SKILL_USE(0x48),
MAGIC_SKILL_CANCELED(0x49),
SAY2(0x4A),
NPC_INFO_ABNORMAL_VISUAL_EFFECT(0x4B),
DOOR_INFO(0x4C),
DOOR_STATUS_UPDATE(0x4D),
PARTY_SMALL_WINDOW_ALL(0x4E),
PARTY_SMALL_WINDOW_ADD(0x4F),
PARTY_SMALL_WINDOW_DELETE_ALL(0x50),
PARTY_SMALL_WINDOW_DELETE(0x51),
PARTY_SMALL_WINDOW_UPDATE(0x52),
TRADE_PRESS_OWN_OK(0x53),
MAGIC_SKILL_LAUNCHED(0x54),
FRIEND_ADD_REQUEST_RESULT(0x55),
FRIEND_ADD(0x56),
FRIEND_REMOVE(0x57),
FRIEND_LIST(0x58),
FRIEND_STATUS(0x59),
PLEDGE_SHOW_MEMBER_LIST_ALL(0x5A),
PLEDGE_SHOW_MEMBER_LIST_UPDATE(0x5B),
PLEDGE_SHOW_MEMBER_LIST_ADD(0x5C),
PLEDGE_SHOW_MEMBER_LIST_DELETE(0x5D),
MAGIC_LIST(0x5E),
SKILL_LIST(0x5F),
VEHICLE_INFO(0x60),
FINISH_ROTATING(0x61),
SYSTEM_MESSAGE(0x62),
START_PLEDGE_WAR(0x63),
REPLY_START_PLEDGE_WAR(0x64),
STOP_PLEDGE_WAR(0x65),
REPLY_STOP_PLEDGE_WAR(0x66),
SURRENDER_PLEDGE_WAR(0x67),
REPLY_SURRENDER_PLEDGE_WAR(0x68),
SET_PLEDGE_CREST(0x69),
PLEDGE_CREST(0x6A),
SETUP_GAUGE(0x6B),
VEHICLE_DEPARTURE(0x6C),
VEHICLE_CHECK_LOCATION(0x6D),
GET_ON_VEHICLE(0x6E),
GET_OFF_VEHICLE(0x6F),
TRADE_REQUEST(0x70),
RESTART_RESPONSE(0x71),
MOVE_TO_PAWN(0x72),
SSQ_INFO(0x73),
GAME_GUARD_QUERY(0x74),
L2_FRIEND_LIST(0x75),
L2_FRIEND(0x76),
L2_FRIEND_STATUS(0x77),
L2_FRIEND_SAY(0x78),
VALIDATE_LOCATION(0x79),
START_ROTATING(0x7A),
SHOW_BOARD(0x7B),
CHOOSE_INVENTORY_ITEM(0x7C),
DUMMY(0x7D),
MOVE_TO_LOCATION_IN_VEHICLE(0x7E),
STOP_MOVE_IN_VEHICLE(0x7F),
VALIDATE_LOCATION_IN_VEHICLE(0x80),
TRADE_UPDATE(0x81),
TRADE_PRESS_OTHER_OK(0x82),
FRIEND_ADD_REQUEST(0x83),
LOG_OUT_OK(0x84),
ABNORMAL_STATUS_UPDATE(0x85),
QUEST_LIST(0x86),
ENCHANT_RESULT(0x87),
PLEDGE_SHOW_MEMBER_LIST_DELETE_ALL(0x88),
PLEDGE_INFO(0x89),
PLEDGE_EXTENDED_INFO(0x8A),
SUMMON_INFO(0x8B),
RIDE(0x8C),
DUMMY2(0x8D),
PLEDGE_SHOW_INFO_UPDATE(0x8E),
CLIENT_ACTION(0x8F),
ACQUIRE_SKILL_LIST(0x90),
ACQUIRE_SKILL_INFO(0x91),
SERVER_OBJECT_INFO(0x92),
GM_HIDE(0x93),
ACQUIRE_SKILL_DONE(0x94),
GM_VIEW_CHARACTER_INFO(0x95),
GM_VIEW_PLEDGE_INFO(0x96),
GM_VIEW_SKILL_INFO(0x97),
GM_VIEW_MAGIC_INFO(0x98),
GM_VIEW_QUEST_INFO(0x99),
GM_VIEW_ITEM_LIST(0x9A),
GM_VIEW_WAREHOUSE_WITHDRAW_LIST(0x9B),
LIST_PARTY_WATING(0x9C),
PARTY_ROOM_INFO(0x9D),
PLAY_SOUND(0x9E),
STATIC_OBJECT(0x9F),
PRIVATE_STORE_MANAGE_LIST(0xA0),
PRIVATE_STORE_LIST(0xA1),
PRIVATE_STORE_MSG(0xA2),
SHOW_MINIMAP(0xA3),
REVIVE_REQUEST(0xA4),
ABNORMAL_VISUAL_EFFECT(0xA5),
TUTORIAL_SHOW_HTML(0xA6),
TUTORIAL_SHOW_QUESTION_MARK(0xA7),
TUTORIAL_ENABLE_CLIENT_EVENT(0xA8),
TUTORIAL_CLOSE_HTML(0xA9),
SHOW_RADAR(0xAA),
WITHDRAW_ALLIANCE(0xAB),
OUST_ALLIANCE_MEMBER_PLEDGE(0xAC),
DISMISS_ALLIANCE(0xAD),
SET_ALLIANCE_CREST(0xAE),
ALLIANCE_CREST(0xAF),
SERVER_CLOSE_SOCKET(0xB0),
PET_STATUS_SHOW(0xB1),
PET_INFO(0xB2),
PET_ITEM_LIST(0xB3),
PET_INVENTORY_UPDATE(0xB4),
ALLIANCE_INFO(0xB5),
PET_STATUS_UPDATE(0xB6),
PET_DELETE(0xB7),
DELETE_RADAR(0xB8),
MY_TARGET_SELECTED(0xB9),
PARTY_MEMBER_POSITION(0xBA),
ASK_JOIN_ALLIANCE(0xBB),
JOIN_ALLIANCE(0xBC),
PRIVATE_STORE_BUY_MANAGE_LIST(0xBD),
PRIVATE_STORE_BUY_LIST(0xBE),
PRIVATE_STORE_BUY_MSG(0xBF),
VEHICLE_START(0xC0),
NPC_INFO_STATE(0xC1),
START_ALLIANCE_WAR(0xC2),
REPLY_START_ALLIANCE_WAR(0xC3),
STOP_ALLIANCE_WAR(0xC4),
REPLY_STOP_ALLIANCE_WAR(0xC5),
SURRENDER_ALLIANCE_WAR(0xC6),
SKILL_COOL_TIME(0xC7),
PACKAGE_TO_LIST(0xC8),
CASTLE_SIEGE_INFO(0xC9),
CASTLE_SIEGE_ATTACKER_LIST(0xCA),
CASTLE_SIEGE_DEFENDER_LIST(0xCB),
NICK_NAME_CHANGED(0xCC),
PLEDGE_STATUS_CHANGED(0xCD),
RELATION_CHANGED(0xCE),
EVENT_TRIGGER(0xCF),
MULTI_SELL_LIST(0xD0),
SET_SUMMON_REMAIN_TIME(0xD1),
PACKAGE_SENDABLE_LIST(0xD2),
EARTHQUAKE(0xD3),
FLY_TO_LOCATION(0xD4),
BLOCK_LIST(0xD5),
SPECIAL_CAMERA(0xD6),
NORMAL_CAMERA(0xD7),
SKILL_REMAIN_SEC(0xD8),
NET_PING(0xD9),
DICE(0xDA),
SNOOP(0xDB),
RECIPE_BOOK_ITEM_LIST(0xDC),
RECIPE_ITEM_MAKE_INFO(0xDD),
RECIPE_SHOP_MANAGE_LIST(0xDE),
RECIPE_SHOP_SELL_LIST(0xDF),
RECIPE_SHOP_ITEM_INFO(0xE0),
RECIPE_SHOP_MSG(0xE1),
SHOW_CALC(0xE2),
MON_RACE_INFO(0xE3),
HENNA_ITEM_INFO(0xE4),
HENNA_INFO(0xE5),
HENNA_UNEQUIP_LIST(0xE6),
HENNA_UNEQUIP_INFO(0xE7),
MACRO_LIST(0xE8),
BUY_LIST_SEED(0xE9),
SHOW_TOWN_MAP(0xEA),
OBSERVER_START(0xEB),
OBSERVER_END(0xEC),
CHAIR_SIT(0xED),
HENNA_EQUIP_LIST(0xEE),
SELL_LIST_PROCURE(0xEF),
GMHENNA_INFO(0xF0),
RADAR_CONTROL(0xF1),
CLIENT_SET_TIME(0xF2),
CONFIRM_DLG(0xF3),
PARTY_SPELLED(0xF4),
SHOP_PREVIEW_LIST(0xF5),
SHOP_PREVIEW_INFO(0xF6),
CAMERA_MODE(0xF7),
SHOW_XMAS_SEAL(0xF8),
ETC_STATUS_UPDATE(0xF9),
SHORT_BUFF_STATUS_UPDATE(0xFA),
SSQ_STATUS(0xFB),
PETITION_VOTE(0xFC),
AGIT_DECO_INFO(0xFD),
DUMMY3(0xFE),
// ExPackets
EX_DUMMY(0xFE, 0x00),
EX_REGEN_MAX(0xFE, 0x01),
EX_EVENT_MATCH_USER_INFO(0xFE, 0x02),
EX_COLOSSEUM_FENCE_INFO(0xFE, 0x03),
EX_EVENT_MATCH_SPELLED_INFO(0xFE, 0x04),
EX_EVENT_MATCH_FIRECRACKER(0xFE, 0x05),
EX_EVENT_MATCH_TEAM_UNLOCKED(0xFE, 0x06),
EX_EVENT_MATCH_GMTEST(0xFE, 0x07),
EX_PARTY_ROOM_MEMBER(0xFE, 0x08),
EX_CLOSE_PARTY_ROOM(0xFE, 0x09),
EX_MANAGE_PARTY_ROOM_MEMBER(0xFE, 0x0A),
EX_EVENT_MATCH_LOCK_RESULT(0xFE, 0x0B),
EX_AUTO_SOUL_SHOT(0xFE, 0x0C),
EX_EVENT_MATCH_LIST(0xFE, 0x0D),
EX_EVENT_MATCH_OBSERVER(0xFE, 0x0E),
EX_EVENT_MATCH_MESSAGE(0xFE, 0x0F),
EX_EVENT_MATCH_SCORE(0xFE, 0x10),
EX_SERVER_PRIMITIVE(0xFE, 0x11),
EX_OPEN_MPCC(0xFE, 0x12),
EX_CLOSE_MPCC(0xFE, 0x13),
EX_SHOW_CASTLE_INFO(0xFE, 0x14),
EX_SHOW_FORTRESS_INFO(0xFE, 0x15),
EX_SHOW_AGIT_INFO(0xFE, 0x16),
EX_SHOW_FORTRESS_SIEGE_INFO(0xFE, 0x17),
EX_PARTY_PET_WINDOW_ADD(0xFE, 0x18),
EX_PARTY_PET_WINDOW_UPDATE(0xFE, 0x19),
EX_ASK_JOIN_MPCC(0xFE, 0x1A),
EX_PLEDGE_EMBLEM(0xFE, 0x1B),
EX_EVENT_MATCH_TEAM_INFO(0xFE, 0x1C),
EX_EVENT_MATCH_CREATE(0xFE, 0x1D),
EX_FISHING_START(0xFE, 0x1E),
EX_FISHING_END(0xFE, 0x1F),
EX_SHOW_QUEST_INFO(0xFE, 0x20),
EX_SHOW_QUEST_MARK(0xFE, 0x21),
EX_SEND_MANOR_LIST(0xFE, 0x22),
EX_SHOW_SEED_INFO(0xFE, 0x23),
EX_SHOW_CROP_INFO(0xFE, 0x24),
EX_SHOW_MANOR_DEFAULT_INFO(0xFE, 0x25),
EX_SHOW_SEED_SETTING(0xFE, 0x26),
EX_FISHING_START_COMBAT(0xFE, 0x27),
EX_FISHING_HP_REGEN(0xFE, 0x28),
EX_ENCHANT_SKILL_LIST(0xFE, 0x29),
EX_ENCHANT_SKILL_INFO(0xFE, 0x2A),
EX_SHOW_CROP_SETTING(0xFE, 0x2B),
EX_SHOW_SELL_CROP_LIST(0xFE, 0x2C),
EX_OLYMPIAD_MATCH_END(0xFE, 0x2D),
EX_MAIL_ARRIVED(0xFE, 0x2E),
EX_STORAGE_MAX_COUNT(0xFE, 0x2F),
EX_EVENT_MATCH_MANAGE(0xFE, 0x30),
EX_MULTI_PARTY_COMMAND_CHANNEL_INFO(0xFE, 0x31),
EX_PCCAFE_POINT_INFO(0xFE, 0x32),
EX_SET_COMPASS_ZONE_CODE(0xFE, 0x33),
EX_GET_BOSS_RECORD(0xFE, 0x34),
EX_ASK_JOIN_PARTY_ROOM(0xFE, 0x35),
EX_LIST_PARTY_MATCHING_WAITING_ROOM(0xFE, 0x36),
EX_SET_MPCC_ROUTING(0xFE, 0x37),
EX_SHOW_ADVENTURER_GUIDE_BOOK(0xFE, 0x38),
EX_SHOW_SCREEN_MESSAGE(0xFE, 0x39),
PLEDGE_SKILL_LIST(0xFE, 0x3A),
PLEDGE_SKILL_LIST_ADD(0xFE, 0x3B),
PLEDGE_SKILL_LIST_REMOVE(0xFE, 0x3C),
PLEDGE_POWER_GRADE_LIST(0xFE, 0x3D),
PLEDGE_RECEIVE_POWER_INFO(0xFE, 0x3E),
PLEDGE_RECEIVE_MEMBER_INFO(0xFE, 0x3F),
PLEDGE_RECEIVE_WAR_LIST(0xFE, 0x40),
PLEDGE_RECEIVE_SUB_PLEDGE_CREATED(0xFE, 0x41),
EX_RED_SKY(0xFE, 0x42),
PLEDGE_RECEIVE_UPDATE_POWER(0xFE, 0x43),
FLY_SELF_DESTINATION(0xFE, 0x44),
SHOW_PCCAFE_COUPON_SHOW_UI(0xFE, 0x45),
EX_SEARCH_ORC(0xFE, 0x46),
EX_CURSED_WEAPON_LIST(0xFE, 0x47),
EX_CURSED_WEAPON_LOCATION(0xFE, 0x48),
EX_RESTART_CLIENT(0xFE, 0x49),
EX_REQUEST_HACK_SHIELD(0xFE, 0x4A),
EX_USE_SHARED_GROUP_ITEM(0xFE, 0x4B),
EX_MPCCSHOW_PARTY_MEMBER_INFO(0xFE, 0x4C),
EX_DUEL_ASK_START(0xFE, 0x4D),
EX_DUEL_READY(0xFE, 0x4E),
EX_DUEL_START(0xFE, 0x4F),
EX_DUEL_END(0xFE, 0x50),
EX_DUEL_UPDATE_USER_INFO(0xFE, 0x51),
EX_SHOW_VARIATION_MAKE_WINDOW(0xFE, 0x52),
EX_SHOW_VARIATION_CANCEL_WINDOW(0xFE, 0x53),
EX_PUT_ITEM_RESULT_FOR_VARIATION_MAKE(0xFE, 0x54),
EX_PUT_INTENSIVE_RESULT_FOR_VARIATION_MAKE(0xFE, 0x55),
EX_PUT_COMMISSION_RESULT_FOR_VARIATION_MAKE(0xFE, 0x56),
EX_VARIATION_RESULT(0xFE, 0x57),
EX_PUT_ITEM_RESULT_FOR_VARIATION_CANCEL(0xFE, 0x58),
EX_VARIATION_CANCEL_RESULT(0xFE, 0x59),
EX_DUEL_ENEMY_RELATION(0xFE, 0x5A),
EX_PLAY_ANIMATION(0xFE, 0x5B),
EX_MPCCPARTY_INFO_UPDATE(0xFE, 0x5C),
EX_PLAY_SCENE(0xFE, 0x5D),
EX_SPAWN_EMITTER(0xFE, 0x5E),
EX_ENCHANT_SKILL_INFO_DETAIL(0xFE, 0x5F),
EX_BASIC_ACTION_LIST(0xFE, 0x60),
EX_AIR_SHIP_INFO(0xFE, 0x61),
EX_ATTRIBUTE_ENCHANT_RESULT(0xFE, 0x62),
EX_CHOOSE_INVENTORY_ATTRIBUTE_ITEM(0xFE, 0x63),
EX_GET_ON_AIR_SHIP(0xFE, 0x64),
EX_GET_OFF_AIR_SHIP(0xFE, 0x65),
EX_MOVE_TO_LOCATION_AIR_SHIP(0xFE, 0x66),
EX_STOP_MOVE_AIR_SHIP(0xFE, 0x67),
EX_SHOW_TRACE(0xFE, 0x68),
EX_ITEM_AUCTION_INFO(0xFE, 0x69),
EX_NEED_TO_CHANGE_NAME(0xFE, 0x6A),
EX_PARTY_PET_WINDOW_DELETE(0xFE, 0x6B),
EX_TUTORIAL_LIST(0xFE, 0x6C),
EX_RP_ITEM_LINK(0xFE, 0x6D),
EX_MOVE_TO_LOCATION_IN_AIR_SHIP(0xFE, 0x6E),
EX_STOP_MOVE_IN_AIR_SHIP(0xFE, 0x6F),
EX_VALIDATE_LOCATION_IN_AIR_SHIP(0xFE, 0x70),
EX_UI_SETTING(0xFE, 0x71),
EX_MOVE_TO_TARGET_IN_AIR_SHIP(0xFE, 0x72),
EX_ATTACK_IN_AIR_SHIP(0xFE, 0x73),
EX_MAGIC_SKILL_USE_IN_AIR_SHIP(0xFE, 0x74),
EX_SHOW_BASE_ATTRIBUTE_CANCEL_WINDOW(0xFE, 0x75),
EX_BASE_ATTRIBUTE_CANCEL_RESULT(0xFE, 0x76),
EX_SUB_PLEDGET_SKILL_ADD(0xFE, 0x77),
EX_RESPONSE_FREE_SERVER(0xFE, 0x78),
EX_SHOW_PROCURE_CROP_DETAIL(0xFE, 0x79),
EX_HERO_LIST(0xFE, 0x7A),
EX_OLYMPIAD_USER_INFO(0xFE, 0x7B),
EX_OLYMPIAD_SPELLED_INFO(0xFE, 0x7C),
EX_OLYMPIAD_MODE(0xFE, 0x7D),
EX_SHOW_FORTRESS_MAP_INFO(0xFE, 0x7E),
EX_PVP_MATCH_RECORD(0xFE, 0x7F),
EX_PVP_MATCH_USER_DIE(0xFE, 0x80),
EX_PRIVATE_STORE_WHOLE_MSG(0xFE, 0x81),
EX_PUT_ENCHANT_TARGET_ITEM_RESULT(0xFE, 0x82),
EX_PUT_ENCHANT_SUPPORT_ITEM_RESULT(0xFE, 0x83),
EX_CHANGE_NICKNAME_NCOLOR(0xFE, 0x84),
EX_GET_BOOK_MARK_INFO(0xFE, 0x85),
EX_NOTIFY_PREMIUM_ITEM(0xFE, 0x86),
EX_GET_PREMIUM_ITEM_LIST(0xFE, 0x87),
EX_PERIODIC_ITEM_LIST(0xFE, 0x88),
EX_JUMP_TO_LOCATION(0xFE, 0x89),
EX_PVP_MATCH_CCRECORD(0xFE, 0x8A),
EX_PVP_MATCH_CCMY_RECORD(0xFE, 0x8B),
EX_PVP_MATCH_CCRETIRE(0xFE, 0x8C),
EX_SHOW_TERRITORY(0xFE, 0x8D),
EX_NPC_QUEST_HTML_MESSAGE(0xFE, 0x8E),
EX_SEND_UIEVENT(0xFE, 0x8F),
EX_NOTIFY_BIRTH_DAY(0xFE, 0x90),
EX_SHOW_DOMINION_REGISTRY(0xFE, 0x91),
EX_REPLY_REGISTER_DOMINION(0xFE, 0x92),
EX_REPLY_DOMINION_INFO(0xFE, 0x93),
EX_SHOW_OWNTHING_POS(0xFE, 0x94),
EX_CLEFT_LIST(0xFE, 0x95),
EX_CLEFT_STATE(0xFE, 0x96),
EX_DOMINION_CHANNEL_SET(0xFE, 0x97),
EX_BLOCK_UP_SET_LIST(0xFE, 0x98),
EX_BLOCK_UP_SET_STATE(0xFE, 0x99),
EX_START_SCENE_PLAYER(0xFE, 0x9A),
EX_AIR_SHIP_TELEPORT_LIST(0xFE, 0x9B),
EX_MPCC_ROOM_INFO(0xFE, 0x9C),
EX_LIST_MPCC_WAITING(0xFE, 0x9D),
EX_DISSMISS_MPCC_ROOM(0xFE, 0x9E),
EX_MANAGE_MPCC_ROOM_MEMBER(0xFE, 0x9F),
EX_MPCC_ROOM_MEMBER(0xFE, 0xA0),
EX_VITALITY_POINT_INFO(0xFE, 0xA1),
EX_SHOW_SEED_MAP_INFO(0xFE, 0xA2),
EX_MPCC_PARTYMASTER_LIST(0xFE, 0xA3),
EX_DOMINION_WAR_START(0xFE, 0xA4),
EX_DOMINION_WAR_END(0xFE, 0xA5),
EX_SHOW_LINES(0xFE, 0xA6),
EX_PARTY_MEMBER_RENAMED(0xFE, 0xA7),
EX_ENCHANT_SKILL_RESULT(0xFE, 0xA8),
EX_REFUND_LIST(0xFE, 0xA9),
EX_NOTICE_POST_ARRIVED(0xFE, 0xAA),
EX_SHOW_RECEIVED_POST_LIST(0xFE, 0xAB),
EX_REPLY_RECEIVED_POST(0xFE, 0xAC),
EX_SHOW_SENT_POST_LIST(0xFE, 0xAD),
EX_REPLY_SENT_POST(0xFE, 0xAE),
EX_RESPONSE_SHOW_STEP_ONE(0xFE, 0xAF),
EX_RESPONSE_SHOW_STEP_TWO(0xFE, 0xB0),
EX_RESPONSE_SHOW_CONTENTS(0xFE, 0xB1),
EX_SHOW_PETITION_HTML(0xFE, 0xB2),
EX_REPLY_POST_ITEM_LIST(0xFE, 0xB3),
EX_CHANGE_POST_STATE(0xFE, 0xB4),
EX_REPLY_WRITE_POST(0xFE, 0xB5),
EX_INITIALIZE_SEED(0xFE, 0xB6),
EX_RAID_RESERVE_RESULT(0xFE, 0xB7),
EX_BUY_SELL_LIST(0xFE, 0xB8),
EX_CLOSE_RAID_SOCKET(0xFE, 0xB9),
EX_PRIVATE_MARKET_LIST(0xFE, 0xBA),
EX_RAID_CHARACTER_SELECTED(0xFE, 0xBB),
EX_ASK_COUPLE_ACTION(0xFE, 0xBC),
EX_BR_BROADCAST_EVENT_STATE(0xFE, 0xBD),
EX_BR_LOAD_EVENT_TOP_RANKERS(0xFE, 0xBE),
EX_CHANGE_NPC_STATE(0xFE, 0xBF),
EX_ASK_MODIFY_PARTY_LOOTING(0xFE, 0xC0),
EX_SET_PARTY_LOOTING(0xFE, 0xC1),
EX_ROTATION(0xFE, 0xC2),
EX_CHANGE_CLIENT_EFFECT_INFO(0xFE, 0xC3),
EX_MEMBERSHIP_INFO(0xFE, 0xC4),
EX_REPLY_HAND_OVER_PARTY_MASTER(0xFE, 0xC5),
EX_QUEST_NPC_LOG_LIST(0xFE, 0xC6),
EX_QUEST_ITEM_LIST(0xFE, 0xC7),
EX_GM_VIEW_QUEST_ITEM_LIST(0xFE, 0xC8),
EX_RESTART_RESPONSE(0xFE, 0xC9),
EX_VOTE_SYSTEM_INFO(0xFE, 0xCA),
EX_SHUTTLE_INFO(0xFE, 0xCB),
EX_SUTTLE_GET_ON(0xFE, 0xCC),
EX_SUTTLE_GET_OFF(0xFE, 0xCD),
EX_SUTTLE_MOVE(0xFE, 0xCE),
EX_MOVE_TO_LOCATION_IN_SUTTLE(0xFE, 0xCF),
EX_STOP_MOVE_IN_SHUTTLE(0xFE, 0xD0),
EX_VALIDATE_LOCATION_IN_SHUTTLE(0xFE, 0xD1),
EX_AGIT_AUCTION_CMD(0xFE, 0xD2),
EX_CONFIRM_ADDING_POST_FRIEND(0xFE, 0xD3),
EX_RECEIVE_SHOW_POST_FRIEND(0xFE, 0xD4),
EX_RECEIVE_OLYMPIAD(0xFE, 0xD5),
EX_BR_GAME_POINT(0xFE, 0xD6),
EX_BR_PRODUCT_LIST(0xFE, 0xD7),
EX_BR_PRODUCT_INFO(0xFE, 0xD8),
EX_BR_BUY_PRODUCT(0xFE, 0xD9),
EX_BR_PREMIUM_STATE(0xFE, 0xDA),
EX_BR_EXTRA_USER_INFO(0xFE, 0xDB),
EX_BR_BUFF_EVENT_STATE(0xFE, 0xDC),
EX_BR_RECENT_PRODUCT_LIST(0xFE, 0xDD),
EX_BR_MINIGAME_LOAD_SCORES(0xFE, 0xDE),
EX_BR_AGATHION_ENERGY_INFO(0xFE, 0xDF),
EX_SHOW_CHANNELING_EFFECT(0xFE, 0xE0),
EX_GET_CRYSTALIZING_ESTIMATION(0xFE, 0xE1),
EX_GET_CRYSTALIZING_FAIL(0xFE, 0xE2),
EX_NAVIT_ADVENT_POINT_INFO(0xFE, 0xE3),
EX_NAVIT_ADVENT_EFFECT(0xFE, 0xE4),
EX_NAVIT_ADVENT_TIME_CHANGE(0xFE, 0xE5),
EX_ABNORMAL_STATUS_UPDATE_FROM_TARGET(0xFE, 0xE6),
EX_STOP_SCENE_PLAYER(0xFE, 0xE7),
EX_FLY_MOVE(0xFE, 0xE8),
EX_DYNAMIC_QUEST(0xFE, 0xE9),
EX_SUBJOB_INFO(0xFE, 0xEA),
EX_CHANGE_MPCOST(0xFE, 0xEB),
EX_FRIEND_DETAIL_INFO(0xFE, 0xEC),
EX_BLOCK_ADD_RESULT(0xFE, 0xED),
EX_BLOCK_REMOVE_RESULT(0xFE, 0xEE),
EX_BLOCK_DEFAIL_INFO(0xFE, 0xEF),
EX_LOAD_INZONE_PARTY_HISTORY(0xFE, 0xF0),
EX_FRIEND_NOTIFY_NAME_CHANGE(0xFE, 0xF1),
EX_SHOW_COMMISSION(0xFE, 0xF2),
EX_RESPONSE_COMMISSION_ITEM_LIST(0xFE, 0xF3),
EX_RESPONSE_COMMISSION_INFO(0xFE, 0xF4),
EX_RESPONSE_COMMISSION_REGISTER(0xFE, 0xF5),
EX_RESPONSE_COMMISSION_DELETE(0xFE, 0xF6),
EX_RESPONSE_COMMISSION_LIST(0xFE, 0xF7),
EX_RESPONSE_COMMISSION_BUY_INFO(0xFE, 0xF8),
EX_RESPONSE_COMMISSION_BUY_ITEM(0xFE, 0xF9),
EX_ACQUIRABLE_SKILL_LIST_BY_CLASS(0xFE, 0xFA),
EX_MAGIC_ATTACK_INFO(0xFE, 0xFB),
EX_ACQUIRE_SKILL_INFO(0xFE, 0xFC),
EX_NEW_SKILL_TO_LEARN_BY_LEVEL_UP(0xFE, 0xFD),
EX_CALL_TO_CHANGE_CLASS(0xFE, 0xFE),
EX_CHANGE_TO_AWAKENED_CLASS(0xFE, 0xFF),
EX_TACTICAL_SIGN(0xFE, 0x100),
EX_LOAD_STAT_WORLD_RANK(0xFE, 0x101),
EX_LOAD_STAT_USER(0xFE, 0x102),
EX_LOAD_STAT_HOT_LINK(0xFE, 0x103),
EX_GET_WEB_SESSION_ID(0xFE, 0x104),
EX_2ND_PASSWORD_CHECK(0xFE, 0x105),
EX_2ND_PASSWORD_VERIFY(0xFE, 0x106),
EX_2ND_PASSWORD_ACK(0xFE, 0x107),
EX_FLY_MOVE_BROADCAST(0xFE, 0x108),
EX_SHOW_USM(0xFE, 0x109),
EX_SHOW_STAT_PAGE(0xFE, 0x10A),
EX_IS_CHAR_NAME_CREATABLE(0xFE, 0x10B),
EX_GOODS_INVENTORY_CHANGED_NOTI(0xFE, 0x10C),
EX_GOODS_INVENTORY_INFO(0xFE, 0x10D),
EX_GOODS_INVENTORY_RESULT(0xFE, 0x10E),
EX_ALTER_SKILL_REQUEST(0xFE, 0x10F),
EX_NOTIFY_FLY_MOVE_START(0xFE, 0x110),
EX_DUMMY2(0xFE, 0x111),
EX_CLOSE_COMMISSION(0xFE, 0x112),
EX_CHANGE_ATTRIBUTE_ITEM_LIST(0xFE, 0x113),
EX_CHANGE_ATTRIBUTE_INFO(0xFE, 0x114),
EX_CHANGE_ATTRIBUTE_OK(0xFE, 0x115),
EX_CHANGE_ATTRIBUTE_FAIL(0xFE, 0x116),
EX_LIGHTING_CANDLE_EVENT(0xFE, 0x117),
EX_VITALITY_EFFECT_INFO(0xFE, 0x118),
EX_LOGIN_VITALITY_EFFECT_INFO(0xFE, 0x119),
EX_BR_PRESENT_BUY_PRODUCT(0xFE, 0x11A),
EX_MENTOR_LIST(0xFE, 0x11B),
EX_MENTOR_ADD(0xFE, 0x11C),
LIST_MENTEE_WAITING(0xFE, 0x11D),
EX_INZONE_WAITING_INFO(0xFE, 0x11E),
EX_CURIOUS_HOUSE_STATE(0xFE, 0x11F),
EX_CURIOUS_HOUSE_ENTER(0xFE, 0x120),
EX_CURIOUS_HOUSE_LEAVE(0xFE, 0x121),
EX_CURIOUS_HOUSE_MEMBER_LIST(0xFE, 0x122),
EX_CURIOUS_HOUSE_MEMBER_UPDATE(0xFE, 0x123),
EX_CURIOUS_HOUSE_REMAIN_TIME(0xFE, 0x124),
EX_CURIOUS_HOUSE_RESULT(0xFE, 0x125),
EX_CURIOUS_HOUSE_OBSERVE_LIST(0xFE, 0x126),
EX_CURIOUS_HOUSE_OBSERVE_MODE(0xFE, 0x127),
EX_SYSSTRING(0xFE, 0x128),
EX_CHOOSE_SHAPE_SHIFTING_ITEM(0xFE, 0x129),
EX_PUT_SHAPE_SHIFTING_TARGET_ITEM_RESULT(0xFE, 0x12A),
EX_PUT_SHAPE_SHIFTING_EXTRACTION_ITEM_RESULT(0xFE, 0x12B),
EX_SHAPE_SHIFTING_RESULT(0xFE, 0x12C),
EX_CASTLE_STATE(0xFE, 0x12D),
EX_NCGUARD_RECEIVE_DATA_FROM_SERVER(0xFE, 0x12E),
EX_KALIE_EVENT(0xFE, 0x12F),
EX_KALIE_EVENT_JACKPOT_USER(0xFE, 0x130),
EX_ABNORMAL_VISUAL_EFFECT_INFO(0xFE, 0x131),
EX_NPC_INFO_SPEED(0xFE, 0x132),
EX_SET_PLEDGE_EMBLEM_ACK(0xFE, 0x133),
EX_SHOW_BEAUTY_MENU(0xFE, 0x134),
EX_RESPONSE_BEAUTY_LIST(0xFE, 0x135),
EX_RESPONSE_BEAUTY_REGIST_RESET(0xFE, 0x136),
EX_RESPONSE_RESET_LIST(0xFE, 0x137),
EX_SHUFFLE_SEED_AND_PUBLIC_KEY(0xFE, 0x138),
EX_CHECK_SPEED_HACK(0xFE, 0x139),
EX_BR_NEW_ICON_CASH_BTN_WND(0xFE, 0x13A),
EX_EVENT_CAMPAIGN_INFO(0xFE, 0x13B),
EX_UN_READ_MAIL_COUNT(0xFE, 0x13C),
EX_PLEDGE_COUNT(0xFE, 0x13D),
EX_ADENA_INVEN_COUNT(0xFE, 0x13E),
EX_PLEDGE_RECRUIT_INFO(0xFE, 0x13F),
EX_PLEDGE_RECRUIT_APPLY_INFO(0xFE, 0x140),
EX_PLEDGE_RECRUIT_BOARD_SEARCH(0xFE, 0x141),
EX_PLEDGE_RECRUIT_BOARD_DETAIL(0xFE, 0x142),
EX_PLEDGE_WAITING_LIST_APPLIED(0xFE, 0x143),
EX_PLEDGE_WAITING_LIST(0xFE, 0x144),
EX_PLEDGE_WAITING_USER(0xFE, 0x145),
EX_PLEDGE_DRAFT_LIST_SEARCH(0xFE, 0x146),
EX_PLEDGE_WAITING_LIST_ALARM(0xFE, 0x147),
EX_VALIDATE_ACTIVE_CHARACTER(0xFE, 0x148),
EX_CLOSE_COMMISSION_REGISTER(0xFE, 0x149),
EX_TELEPORT_TO_LOCATION_ACTIVATE(0xFE, 0x14A),
EX_NOTIFY_WEB_PETITION_REPLY_ALARM(0xFE, 0x14B),
EX_EVENT_SHOW_XMAS_WISH_CARD(0xFE, 0x14C),
EX_INVITATION_EVENT_UI_SETTING(0xFE, 0x14D),
EX_INVITATION_EVENT_INK_ENERGY(0xFE, 0x14E),
EX_CHECK_ABUSING(0xFE, 0x14F),
EX_GMVITALITY_EFFECT_INFO(0xFE, 0x150),
EX_PATH_TO_AWAKENING_ALARM(0xFE, 0x151),
EX_PUT_ENCHANT_SCROLL_ITEM_RESULT(0xFE, 0x152),
EX_REMOVE_ENCHANT_SUPPORT_ITEM_RESULT(0xFE, 0x153),
EX_SHOW_CARD_REWARD_LIST(0xFE, 0x154),
EX_GM_VIEW_CHARACTER_INFO(0xFE, 0x155),
EX_USER_INFO_EQUIP_SLOT(0xFE, 0x156),
EX_USER_INFO_CUBIC(0xFE, 0x157),
EX_USER_INFO_ABNORMAL_VISUAL_EFFECT(0xFE, 0x158),
EX_USER_INFO_FISHING(0xFE, 0x159),
EX_PARTY_SPELLED_INFO_UPDATE(0xFE, 0x15A),
EX_DIVIDE_ADENA_START(0xFE, 0x15B),
EX_DIVIDE_ADENA_CANCEL(0xFE, 0x15C),
EX_DIVIDE_ADENA_DONE(0xFE, 0x15D),
EX_PET_INFO(0xFE, 0x15E),
EX_ACQUIRE_AP_SKILL_LIST(0xFE, 0x15F),
EX_START_LUCKY_GAME(0xFE, 0x160),
EX_BETTING_LUCKY_GAME_RESULT(0xFE, 0x161),
EX_TRAINING_ZONE_ADMISSION(0xFE, 0x162),
EX_TRAINING_ZONE_LEAVING(0xFE, 0x163),
EX_PERIODIC_HENNA(0xFE, 0x164),
EX_SHOW_AP_LIST_WND(0xFE, 0x165),
EX_USER_INFO_INVEN_WEIGHT(0xFE, 0x166),
EX_CLOSE_AP_LIST_WND(0xFE, 0x167),
EX_ENCHANT_ONE_OK(0xFE, 0x168),
EX_ENCHANT_ONE_FAIL(0xFE, 0x169),
EX_ENCHANT_ONE_REMOVE_OK(0xFE, 0x16A),
EX_ENCHANT_ONE_REMOVE_FAIL(0xFE, 0x16B),
EX_ENCHANT_TWO_OK(0xFE, 0x16C),
EX_ENCHANT_TWO_FAIL(0xFE, 0x16D),
EX_ENCHANT_TWO_REMOVE_OK(0xFE, 0x16E),
EX_ENCHANT_TWO_REMOVE_FAIL(0xFE, 0x16F),
EX_ENCHANT_SUCESS(0xFE, 0x170),
EX_ENCHANT_FAIL(0xFE, 0x171),
EX_ENCHANT_RETRY_TO_PUT_ITEM_OK(0xFE, 0x172),
EX_ENCHANT_RETRY_TO_PUT_ITEM_FAIL(0xFE, 0x173),
EX_ACCOUNT_ATTENDANCE_INFO(0xFE, 0x174),
EX_WORLD_CHAT_CNT(0xFE, 0x175),
EX_ALCHEMY_SKILL_LIST(0xFE, 0x176),
EX_TRY_MIX_CUBE(0xFE, 0x177),
EX_ALCHEMY_CONVERSION(0xFE, 0x178),
EX_BEAUTY_ITEM_LIST(0xFE, 0x179),
EX_RECEIVE_CLIENT_INI(0xFE, 0x17A),
EX_AUTO_FISH_AVAILABLE(0xFE, 0x17B),
EX_CHANNEL_CHAT_ENTER_WORLD(0xFE, 0x17C),
EX_CHANNEL_CHAT_PLEGE_INFO(0xFE, 0x17D),
EX_VIP_ATTENDANCE_ITEM_LIST(0xFE, 0x17E),
EX_CONFIRM_VIP_ATTENDANCE_CHECK(0xFE, 0x17F),
EX_SHOW_ENSOUL_WINDOW(0xFE, 0x180),
EX_ENSOUL_RESULT(0xFE, 0x181),
EX_MULTISELL_RESULT(0xFE, 0x182),
EX_CASTLE_WAR_SEASON_RESULT(0xFE, 0x183),
EX_CASTLE_WAR_SEASON_REWARD(0xFE, 0x184),
RECIVE_VIP_PRODUCT_LIST(0xFE, 0x185),
RECIVE_VIP_LUCKY_GAME_INFO(0xFE, 0x186),
RECIVE_VIP_LUCKY_GAME_ITEM_LIST(0xFE, 0x187),
RECIVE_VIP_LUCKY_GAME_RESULT(0xFE, 0x188),
RECIVE_VIP_INFO(0xFE, 0x189),
RECIVE_VIP_INFO_REMAIN_TIME(0xFE, 0x18A),
RECEIVE_VIP_BOT_CAPTCHA_IMAGE(0xFE, 0x18B),
RECEIVE_VIP_BOT_CAPTCHA_ANSWER_RESULT(0xFE, 0x18C),
EX_PLEDGE_SINGIN_FOR_OPEN_JOINING_METHOD(0xFE, 0x18D),
EX_REQUEST_MATCH_ARENA(0xFE, 0x18E),
EX_COMPLETE_MATCH_ARENA(0xFE, 0x18F),
EX_CONFIRM_MATCH_ARENA(0xFE, 0x190),
EX_CANCEL_MATCH_ARENA(0xFE, 0x191),
EX_START_CHOOSE_CLASS_ARENA(0xFE, 0x192),
EX_CHANGE_CLASS_ARENA(0xFE, 0x193),
EX_CONFIRM_CLASS_ARENA(0xFE, 0x194),
EX_START_BATTLE_READY_ARENA(0xFE, 0x195),
EX_BATTLE_READY_ARENA(0xFE, 0x196),
EX_DECO_NPC_INFO(0xFE, 0x197),
EX_DECO_NPC_SET(0xFE, 0x198),
EX_FACTION_INFO(0xFE, 0x199),
EX_BATTLE_RESULT_ARENA(0xFE, 0x19A),
EX_CLOSING_ARENA(0xFE, 0x19B),
EX_CLOSED_ARENA(0xFE, 0x19C),
EX_DIE_IN_ARENA(0xFE, 0x19D),
DUMMY_PACKET(0xFE, 0x19E),
EX_ARENA_DASHBOARD(0xFE, 0x19F),
EX_ARENA_UPDATE_EQUIP_SLOT(0xFE, 0x1A0),
EX_ARENA_KILL_INFO(0xFE, 0x1A1),
EX_EXIT_ARENA(0xFE, 0x1A2),
EX_BALTHUS_EVENT(0xFE, 0x1A3),
EX_BALTHUS_EVENT_JACKPOT_USER(0xFE, 0x1A4),
EX_PARTY_MATCHING_ROOM_HISTORY(0xFE, 0x1A5),
EX_AI_CONTENT_UI_EVENT(0xFE, 0x1A6),
EX_ARENA_CUSTOM_NOTIFICATION(0xFE, 0x1A7),
EX_ONE_DAY_RECEIVE_REWARD_LIST(0xFE, 0x1A8),
EX_CONNECTED_TIME_AND_GETTABLE_REWARD(0xFE, 0x1A9),
EX_TODO_LIST_RECOMMAND(0xFE, 0x1AA),
EX_TODO_LIST_INZONE(0xFE, 0x1AB),
EX_TODO_LIST_HTML(0xFE, 0x1AC),
EX_QUEUE_TICKET(0xFE, 0x1AD),
EX_PLEDGE_BONUS_OPEN(0xFE, 0x1AE),
EX_PLEDGE_BONUS_LIST(0xFE, 0x1AF),
EX_PLEDGE_BONUS_MARK_RESET(0xFE, 0x1B0),
EX_PLEDGE_BONUS_UPDATE(0xFE, 0x1B1),
EX_SSO_AUTH_TOKEN(0xFE, 0x1B2),
EX_QUEUE_TICKET_LOGIN(0xFE, 0x1B3),
EX_ENSOUL_EXTRACTION_SHOW(0xFE, 0x1B4),
EX_ENSOUL_EXTRACTION_RESULT(0xFE, 0x1B5),
EX_FIELD_EVENT_STEP(0xFE, 0x1B6),
EX_FIELD_EVENT_POINT(0xFE, 0x1B7),
EX_FIELD_EVENT_EFFECT(0xFE, 0x1B8),
EX_RAID_BOSS_SPAWN_INFO(0xFE, 0x1B9),
EX_RAID_SERVER_INFO(0xFE, 0x1BA),
EX_SHOW_AGIT_SIEGE_INFO(0xFE, 0x1BB),
EX_ITEM_ACTION_STATUS(0xFE, 0x1BC),
EX_MONSTER_BOOK(0xFE, 0x1BD),
EX_MONSTER_BOOK_REWARD_ICON(0xFE, 0x1BE),
EX_MONSTER_BOOK_REWARD_FACTION_UI(0xFE, 0x1BF),
EX_MONSTER_BOOK_OPEN_RESULT(0xFE, 0x1C0),
EX_MONSTER_BOOK_CLOSE_FORCE(0xFE, 0x1C1),
EX_FACTION_LEVEL_UP_NOTIFY(0xFE, 0x1C2),
EX_ITEM_AUCTION_NEXT_INFO(0xFE, 0x1C3),
EX_ITEM_AUCTION_UPDATE_BIDDING_INFO(0xFE, 0x1C4),
EX_PRIVATE_STORE_BUYING_RESULT(0xFE, 0x1C5),
EX_PRIVATE_STORE_SELLING_RESULT(0xFE, 0x1C6),
EX_ENTER_WORLD(0xFE, 0x1C7),
EX_MATCH_GROUP(0xFE, 0x1C8),
EX_MATCH_GROUP_ASK(0xFE, 0x1C9),
EX_MATCH_GROUP_WITHDRAW(0xFE, 0x1CA),
EX_MATCH_GROUP_OUST(0xFE, 0x1CB),
EX_ARENA_SHOW_ENEMY_PARTY_LOCATION(0xFE, 0x1CC),
EX_SHOW_UPGRADE_SYSTEM(0xFE, 0x1CD),
EX_UPGRADE_SYSTEM_RESULT(0xFE, 0x1CE),
EX_CARD_UPDOWN_GAME_START(0xFE, 0x1CF),
EX_CARD_UPDOWN_PICK_RESULT(0xFE, 0x1D0),
EX_CARD_UPDOWN_GAME_PREPARE_REWARD(0xFE, 0x1D1),
EX_CARD_UPDOWN_GAME_REWARD_REPLY(0xFE, 0x1D2),
EX_CARD_UPDOWN_GAME_QUIT(0xFE, 0x1D3),
EX_ARENA_RANK_ALL(0xFE, 0x1D4),
EX_ARENA_MYRANK(0xFE, 0x1D5),
EX_PLEDGE_CLASSIC_RAID_INFO(0xFE, 0x1D6),
EX_ARENA_OBSERVE(0xFE, 0x1D7),
EX_HTML_WITH_NPC_VIEWPORT(0xFE, 0x1D8),
EX_PLEDGE_CONTRIBUTION_RANK(0xFE, 0x1D9),
EX_PLEDGE_CONTRIBUTION_INFO(0xFE, 0x1DA),
EX_PLEDGE_CONTRIBUTION_REWARD(0xFE, 0x1DB),
EX_PLEDGE_RAID_INFO(0xFE, 0x1DC),
EX_PLEDGE_RAID_RANK(0xFE, 0x1DD),
EX_PLEDGE_LEVEL_UP(0xFE, 0x1DE),
EX_PLEDGE_SHOW_INFO_UPDATE(0xFE, 0x1DF),
EX_PLEDGE_MISSION_INFO(0xFE, 0x1E0),
EX_PLEDGE_MISSION_REWARD_COUNT(0xFE, 0x1E1),
EX_PLEDGE_MASTERY_INFO(0xFE, 0x1E2),
EX_PLEDGE_MASTERY_SET(0xFE, 0x1E3),
EX_PLEDGE_MASTERY_RESET(0xFE, 0x1E4),
EX_TUTORIAL_SHOW_ID(0xFE, 0x1E5),
EX_PLEDGE_SKILL_INFO(0xFE, 0x1E6),
EX_PLEDGE_SKILL_ACTIVATE(0xFE, 0x1E7),
EX_PLEDGE_ITEM_LIST(0xFE, 0x1E8),
EX_PLEDGE_ITEM_ACTIVATE(0xFE, 0x1E9),
EX_PLEDGE_ANNOUNCE(0xFE, 0x1EA),
EX_PLEDGE_ANNOUNCE_SET(0xFE, 0x1EB),
EX_SET_PLEDGE_EMBLEM(0xFE, 0x1EC),
EX_SHOW_CREATE_PLEDGE(0xFE, 0x1ED),
EX_PLEDGE_ITEM_INFO(0xFE, 0x1EE),
EX_PLEDGE_ITEM_BUY(0xFE, 0x1EF),
EX_ELEMENTAL_SPIRIT_INFO(0xFE, 0x1F0),
EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0xFE, 0x1F1),
EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0xFE, 0x1F2),
EX_ELEMENTAL_SPIRIT_EVOLUTION(0xFE, 0x1F3),
EX_ELEMENTAL_SPIRIT_SET_TALENT(0xFE, 0x1F4),
EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0xFE, 0x1F5),
EX_ELEMENTAL_SPIRIT_ABSORB(0xFE, 0x1F6),
EX_CHOOSE_LOCKED_ITEM(0xFE, 0x1F7),
EX_LOCKED_RESULT(0xFE, 0x1F8),
EX_ELEMENTAL_SPIRIT_EXTRACT(0xFE, 0x1F9), // 152
EX_OLYMPIAD_INFO(0xFE, 0x1FA), // 152
EX_OLYMPIAD_RECORD(0xFE, 0x1FB), // 152
EX_OLYMPIAD_MATCH_INFO(0xFE, 0x1FC), // 152
EX_ELEMENTAL_SPIRIT_GET_EXP(0xFE, 0x1FD), // 152
EX_ITEM_ANNOUNCE(0xFE, 0x1FE), // 152
EX_DRESS_ROOM_UI_OPEN(0xFE, 0x1FF),
EX_DRESS_HANGER_LIST(0xFE, 0x200),
EX_USER_BAN_INFO(0xFE, 0x201),
EX_TRY_ENCHANT_ARTIFACT_RESULT(0xFE, 0x202), // 152
EX_XIGN_CODE(0xFE, 0x203), // 152
EX_SHOW_UPGRADE_SYSTEM_NORMAL(0xFE, 0x204), // 196
EX_UPGRADE_SYSTEM_NORMAL_RESULT(0xFE, 0x205), // 196
EX_PURCHASE_LIMIT_SHOP_ITEM_L(0xFE, 0x206), // 196
EX_PURCHASE_LIMIT_SHOP_ITEM_B(0xFE, 0x207), // 196
EX_BLOODY_COIN_COUNT(0xFE, 0x208), // 196
EX_CLASS_CHANGE_SET_ALARM(0xFE, 0x209), // 196
EX_REQUEST_CLASS_CHANGE(0xFE, 0x20A), // 196
EX_REQUEST_CLASS_CHANGE_VERIFY(0xFE, 0x20B), // 196
EX_COSTUME_USE_ITEM(0xFE, 0x20C), // 196
EX_CHOOSE_COSTUME_ITEM(0xFE, 0x20D), // 196
EX_SEND_COSTUME_LIST(0xFE, 0x20E), // 196
EX_SEND_COSTUME_LIST_FULL(0xFE, 0x20F), // 196
EX_COSTUME_COLLECTION_SKILL_A(0xFE, 0x211), // 196
EX_COSTUME_EVOLUTION(0xFE, 0x212), // 196
EX_COSTUME_EXTRACT(0xFE, 0x213), // 196
EX_COSTUME_LOCK(0xFE, 0x214), // 196
EX_COSTUME_SHORTCUT_LIST(0xFE, 0x215), // 196
EX_MAGICLAMP_EXP_INFO(0xFE, 0x216), // 196
EX_MAGICLAMP_GAME_INFO(0xFE, 0x217), // 196
EX_MAGICLAMP_GAME_RESULT(0xFE, 0x218), // 196
EX_SHOW_TELEPORT_UI(0xFE, 0x219), // 228
EX_ACTIVATE_AUTO_SHORTCUT(0xFE, 0x21A), // 228
EX_PREMIUM_MANAGER_SHOW_HTML(0xFE, 0x21B), // 228
EX_ACTIVATED_CURSED_TREASURE(0xFE, 0x21C), // 228
EX_PAYBACK_LIST(0xFE, 0x21D), // 228
EX_PAYBACK_GIVE_REWARD(0xFE, 0x21E), // 228
EX_PAYBACK_UI_LAUNCHER(0xFE, 0x21F), // 228
EX_DIE_INFO(0xFE, 0x220), // 228
EX_AUTOPLAY_SETTING(0xFE, 0x221), // 228
EX_AUTOPLAY_DO_MACRO(0xFE, 0x222), // 228
EX_OLYMPIAD_MATCH_MAKING_RESULT(0xFE, 0x223), // 228
EX_FESTIVAL_BM_INFO(0xFE, 0x224), // 228
EX_FESTIVAL_BM_ALL_ITEM_INFO(0xFE, 0x225), // 228
EX_FESTIVAL_BM_TOP_ITEM_INFO(0xFE, 0x226), // 228
EX_FESTIVAL_BM_GAME(0xFE, 0x227), // 228
EX_GACHA_SHOP_INFO(0xFE, 0x228), // 228
EX_GACHA_SHOP_GACHA_GROUP(0xFE, 0x229), // 228
EX_GACHA_SHOP_GACHA_ITEM(0xFE, 0x22A), // 228
EX_TIME_RESTRICT_FIELD_LIST(0xFE, 0x22B), // 228
EX_TIME_RESTRICT_FIELD_USER_E(0xFE, 0x22C), // 228
EX_TIME_RESTRICT_FIELD_USER_C(0xFE, 0x22D), // 228
EX_TIME_RESTRICT_FIELD_USER_A(0xFE, 0x22E), // 228
EX_TIME_RESTRICT_FIELD_USER_E2(0xFE, 0x22F), // 228
EX_RANKING_CHAR_INFO(0xFE, 0x230), // 228
EX_RANKING_CHAR_HISTORY(0xFE, 0x231), // 228
EX_RANKING_CHAR_RANKERS(0xFE, 0x232), // 228
EX_BOW_ACTION_TO(0xFE, 0x233), // 228
EX_LETTER_COLLECTOR_UI_LAUNCH(0xFE, 0x234), // 228
EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_HUD_INFO(0xFE, 0x235), // 228
EX_UNK_236(0xFE, 0x236), // 228
EX_UNK_237(0xFE, 0x237), // 228
EX_UNK_238(0xFE, 0x238), // 228
EX_UNK_239(0xFE, 0x239), // 228
EX_PVPBOOK_LIST(0xFE, 0x23A); // 228
private final int _id1;
private final int _id2;
OutgoingPackets(int id1)
{
this(id1, -1);
}
OutgoingPackets(int id1, int id2)
{
_id1 = id1;
_id2 = id2;
}
public int getId1()
{
return _id1;
}
public int getId2()
{
return _id2;
}
public void writeId(PacketWriter packet)
{
packet.writeC(_id1);
if (_id2 > 0)
{
packet.writeH(_id2);
}
}
public static OutgoingPackets getPacket(int id1, int id2)
{
for (OutgoingPackets packet : values())
{
if ((packet.getId1() == id1) && (packet.getId2() == id2))
{
return packet;
}
}
return null;
}
}
Я клепаю.кроме мобиуса и скриптов кто ище камаельку клипает никто не в курсе?
если можн в лс цена и т.дЯ клепаю.
Не продаю для своего проекта делаю, могу поделиться пиши в лсесли можн в лс цена и т.д
l2jorgкроме мобиуса и скриптов кто ище камаельку клипает никто не в курсе?
Как успехи или в лс все?Не продаю для своего проекта делаю, могу поделиться пиши в лс
Там запил на коленке, очень много несоответствий с оффомдля тех кто в танке.
Java:package org.l2jmobius.gameserver.network.clientpackets.autoplay; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExAutoPlaySettingSend; public class ExAutoPlaySetting implements IClientIncomingPacket { private int _options; private boolean _active; private boolean _pickUp; private int _nextTargetMode; private boolean _longRange; private int _potionPercent; private boolean _respectfulHunting; @Override public boolean read(GameClient client, PacketReader packet) { _options = packet.readH(); _active = packet.readC() == 1; _pickUp = packet.readC() == 1; _nextTargetMode = packet.readH(); _longRange = packet.readC() == 0; _potionPercent = packet.readD(); _respectfulHunting = packet.readC() == 1; return true; } @Override public void run(GameClient client) { final PlayerInstance player = client.getPlayer(); if (player == null) { return; } player.sendPacket(new ExAutoPlaySettingSend(_options, _active, _pickUp, _nextTargetMode, _longRange, _potionPercent, _respectfulHunting)); player.setAutoPotionPercent(_potionPercent); if (_active) { player.startAutoPlayTask(_pickUp, _longRange, _respectfulHunting); } else { player.stopAutoPlayTask(); } } }
Java:package org.l2jmobius.gameserver.network.clientpackets.autoplay; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.items.instance.ItemInstance; import org.l2jmobius.gameserver.model.skills.Skill; import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket; import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut; public class ExRequestActivateAutoShortcut implements IClientIncomingPacket { private boolean _activate; private int _room; @Override public boolean read(GameClient client, PacketReader packet) { _room = packet.readH(); _activate = packet.readC() == 1; return true; } @Override public void run(GameClient client) { final PlayerInstance player = client.getPlayer(); if (player == null) { return; } final int slot = _room % 12; final int page = _room / 12; final Shortcut shortcut = player.getShortCut(slot, page); if (shortcut == null) { return; } client.sendPacket(new ExActivateAutoShortcut(_room, _activate)); final ItemInstance item = player.getInventory().getItemByObjectId(shortcut.getId()); Skill skill = null; if (item == null) { skill = player.getKnownSkill(shortcut.getId()); } // stop if (!_activate) { if (item != null) { // auto supply if (_room == -1) { player.removeAutoSupplyItem(item.getId()); } else // auto potion { player.removeAutoPotionItem(item.getId()); } } // TODO: auto skill if (skill != null) { player.removeAutoSkill(skill.getId()); } return; } // start if (_room == -1) { // auto supply if (item != null) { player.addAutoSupplyItem(item.getId()); return; } } else { // auto potion if ((page == 23) && (slot == 1)) { if ((item != null) && item.isPotion()) { player.addAutoPotionItem(item.getId()); return; } } // TODO: auto skill if (skill != null) { player.addAutoSkill(skill.getId()); } } } }
Java:package org.l2jmobius.gameserver.network.serverpackets.autoplay; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; public class ExActivateAutoShortcut implements IClientOutgoingPacket { private final int _room; private final boolean _activate; public ExActivateAutoShortcut(int room, boolean activate) { _room = room; _activate = activate; } @Override public boolean write(PacketWriter packet) { OutgoingPackets.EX_ACTIVATE_AUTO_SHORTCUT.writeId(packet); packet.writeH(_room); packet.writeC(_activate ? 0x01 : 0x00); return true; } }
Java:package org.l2jmobius.gameserver.network.serverpackets.autoplay; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; public class ExAutoPlayDoMacro implements IClientOutgoingPacket { public static final ExAutoPlayDoMacro STATIC_PACKET = new ExAutoPlayDoMacro(); public ExAutoPlayDoMacro() { } @Override public boolean write(PacketWriter packet) { OutgoingPackets.EX_AUTOPLAY_DO_MACRO.writeId(packet); packet.writeD(0x114); return true; } }
Java:package org.l2jmobius.gameserver.network.serverpackets.autoplay; import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; public class ExAutoPlaySettingSend implements IClientOutgoingPacket { private final int _options; private final boolean _active; private final boolean _pickUp; private final int _nextTargetMode; private final boolean _longRange; private final int _potionPercent; private final boolean _respectfulHunting; public ExAutoPlaySettingSend(int options, boolean active, boolean pickUp, int nextTargetMode, boolean longRange, int potionPercent, boolean respectfulHunting) { _options = options; _active = active; _pickUp = pickUp; _nextTargetMode = nextTargetMode; _longRange = longRange; _potionPercent = potionPercent; _respectfulHunting = respectfulHunting; } @Override public boolean write(PacketWriter packet) { OutgoingPackets.EX_AUTOPLAY_SETTING.writeId(packet); packet.writeH(_options); packet.writeC(_active ? 1 : 0); packet.writeC(_pickUp ? 1 : 0); packet.writeH(_nextTargetMode); packet.writeC(_longRange ? 1 : 0); packet.writeD(_potionPercent); packet.writeC(_respectfulHunting ? 1 : 0); return true; } }
Java:package org.l2jmobius.gameserver.network; import java.util.Arrays; import java.util.HashSet; import java.util.Set; import java.util.function.Supplier; import org.l2jmobius.commons.network.IConnectionState; import org.l2jmobius.commons.network.IIncomingPacket; import org.l2jmobius.commons.network.IIncomingPackets; import org.l2jmobius.gameserver.network.clientpackets.*; import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdena; import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdenaCancel; import org.l2jmobius.gameserver.network.clientpackets.adenadistribution.RequestDivideAdenaStart; import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExCancelShape_Shifting_Item; import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExTryToPutShapeShiftingEnchantSupportItem; import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestExTryToPutShapeShiftingTargetItem; import org.l2jmobius.gameserver.network.clientpackets.appearance.RequestShapeShiftingItem; import org.l2jmobius.gameserver.network.clientpackets.attendance.RequestVipAttendanceCheck; import org.l2jmobius.gameserver.network.clientpackets.attendance.RequestVipAttendanceItemList; import org.l2jmobius.gameserver.network.clientpackets.attributechange.RequestChangeAttributeCancel; import org.l2jmobius.gameserver.network.clientpackets.attributechange.RequestChangeAttributeItem; import org.l2jmobius.gameserver.network.clientpackets.attributechange.SendChangeAttributeTargetItem; import org.l2jmobius.gameserver.network.clientpackets.autoplay.ExAutoPlaySetting; import org.l2jmobius.gameserver.network.clientpackets.autoplay.ExRequestActivateAutoShortcut; import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestCancelCuriousHouse; import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestCuriousHouseHtml; import org.l2jmobius.gameserver.network.clientpackets.ceremonyofchaos.RequestJoinCuriousHouse; import org.l2jmobius.gameserver.network.clientpackets.classchange.ExRequestClassChange; import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionBuyInfo; import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionBuyItem; import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionCancel; import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionDelete; import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionInfo; import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionList; import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegister; import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegisteredItem; import org.l2jmobius.gameserver.network.clientpackets.commission.RequestCommissionRegistrableItemList; import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantClose; import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantPushOne; import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantPushTwo; import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveOne; import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRemoveTwo; import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantRetryToPutItems; import org.l2jmobius.gameserver.network.clientpackets.compound.RequestNewEnchantTry; import org.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeEstimate; import org.l2jmobius.gameserver.network.clientpackets.crystalization.RequestCrystallizeItemCancel; import org.l2jmobius.gameserver.network.clientpackets.dailymission.RequestOneDayRewardReceive; import org.l2jmobius.gameserver.network.clientpackets.dailymission.RequestTodoList; import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalInitTalent; import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritAbsorb; import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritAbsorbInfo; import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritChangeType; import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritEvolution; import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritEvolutionInfo; import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritExtract; import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritExtractInfo; import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritInfo; import org.l2jmobius.gameserver.network.clientpackets.elementalspirits.ExElementalSpiritSetTalent; import org.l2jmobius.gameserver.network.clientpackets.ensoul.RequestItemEnsoul; import org.l2jmobius.gameserver.network.clientpackets.ensoul.RequestTryEnSoulExtraction; import org.l2jmobius.gameserver.network.clientpackets.equipmentupgrade.RequestUpgradeSystemResult; import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDetailInfo; import org.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGamePlay; import org.l2jmobius.gameserver.network.clientpackets.luckygame.RequestLuckyGameStartInfo; import org.l2jmobius.gameserver.network.clientpackets.mentoring.ConfirmMenteeAdd; import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMenteeAdd; import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMenteeWaitingList; import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMentorCancel; import org.l2jmobius.gameserver.network.clientpackets.mentoring.RequestMentorList; import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusOpen; import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusReward; import org.l2jmobius.gameserver.network.clientpackets.pledgebonus.RequestPledgeBonusRewardList; import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRBuyProduct; import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRGamePoint; import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRPresentBuyProduct; import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProductInfo; import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRProductList; import org.l2jmobius.gameserver.network.clientpackets.primeshop.RequestBRRecentProductList; import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidBossSpawnInfo; import org.l2jmobius.gameserver.network.clientpackets.raidbossinfo.RequestRaidServerInfo; import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankCharInfo; import org.l2jmobius.gameserver.network.clientpackets.ranking.ExRankingCharRankers; import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMove; import org.l2jmobius.gameserver.network.clientpackets.sayune.RequestFlyMoveStart; import org.l2jmobius.gameserver.network.clientpackets.sessionzones.ExTimedHuntingZoneList; import org.l2jmobius.gameserver.network.clientpackets.shuttle.CannotMoveAnymoreInShuttle; import org.l2jmobius.gameserver.network.clientpackets.shuttle.MoveToLocationInShuttle; import org.l2jmobius.gameserver.network.clientpackets.shuttle.RequestShuttleGetOff; import org.l2jmobius.gameserver.network.clientpackets.shuttle.RequestShuttleGetOn; import org.l2jmobius.gameserver.network.clientpackets.training.NotifyTrainingRoomEnd; /** * @author Sdw */ public enum ExIncomingPackets implements IIncomingPackets<GameClient> { REQUEST_GOTO_LOBBY(0x33, RequestGotoLobby::new, ConnectionState.AUTHENTICATED), REQUEST_EX_2ND_PASSWORD_CHECK(0xA6, RequestEx2ndPasswordCheck::new, ConnectionState.AUTHENTICATED), REQUEST_EX_2ND_PASSWORD_VERIFY(0xA7, RequestEx2ndPasswordVerify::new, ConnectionState.AUTHENTICATED), REQUEST_EX_2ND_PASSWORD_REQ(0xA8, RequestEx2ndPasswordReq::new, ConnectionState.AUTHENTICATED), REQUEST_CHARACTER_NAME_CREATABLE(0xA9, RequestCharacterNameCreatable::new, ConnectionState.AUTHENTICATED), REQUEST_MANOR_LIST(0x01, RequestManorList::new, ConnectionState.IN_GAME), REQUEST_PROCEDURE_CROP_LIST(0x02, RequestProcureCropList::new, ConnectionState.IN_GAME), REQUEST_SET_SEED(0x03, RequestSetSeed::new, ConnectionState.IN_GAME), REQUEST_SET_CROP(0x04, RequestSetCrop::new, ConnectionState.IN_GAME), REQUEST_WRITE_HERO_WORDS(0x05, RequestWriteHeroWords::new, ConnectionState.IN_GAME), REQUEST_EX_ASK_JOIN_MPCC(0x06, RequestExAskJoinMPCC::new, ConnectionState.IN_GAME), REQUEST_EX_ACCEPT_JOIN_MPCC(0x07, RequestExAcceptJoinMPCC::new, ConnectionState.IN_GAME), REQUEST_EX_OUST_FROM_MPCC(0x08, RequestExOustFromMPCC::new, ConnectionState.IN_GAME), REQUEST_OUST_FROM_PARTY_ROOM(0x09, RequestOustFromPartyRoom::new, ConnectionState.IN_GAME), REQUEST_DISMISS_PARTY_ROOM(0x0A, RequestDismissPartyRoom::new, ConnectionState.IN_GAME), REQUEST_WITHDRAW_PARTY_ROOM(0x0B, RequestWithdrawPartyRoom::new, ConnectionState.IN_GAME), REQUEST_CHANGE_PARTY_LEADER(0x0C, RequestChangePartyLeader::new, ConnectionState.IN_GAME), REQUEST_AUTO_SOULSHOT(0x0D, RequestAutoSoulShot::new, ConnectionState.IN_GAME), REQUEST_EX_ENCHANT_SKILL_INFO(0x0E, RequestExEnchantSkillInfo::new, ConnectionState.IN_GAME), REQUEST_EX_ENCHANT_SKILL(0x0F, RequestExEnchantSkill::new, ConnectionState.IN_GAME), REQUEST_EX_PLEDGE_CREST_LARGE(0x10, RequestExPledgeCrestLarge::new, ConnectionState.IN_GAME), REQUEST_EX_SET_PLEDGE_CREST_LARGE(0x11, RequestExSetPledgeCrestLarge::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_SET_ACADEMY_MASTER(0x12, RequestPledgeSetAcademyMaster::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_POWER_GRADE_LIST(0x13, RequestPledgePowerGradeList::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_MEMBER_POWER_INFO(0x14, RequestPledgeMemberPowerInfo::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_SET_MEMBER_POWER_GRADE(0x15, RequestPledgeSetMemberPowerGrade::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_MEMBER_INFO(0x16, RequestPledgeMemberInfo::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_WAR_LIST(0x17, RequestPledgeWarList::new, ConnectionState.IN_GAME), REQUEST_EX_FISH_RANKING(0x18, RequestExFishRanking::new, ConnectionState.IN_GAME), REQUEST_PCCAFE_COUPON_USE(0x19, RequestPCCafeCouponUse::new, ConnectionState.IN_GAME), REQUEST_SERVER_LOGIN(0x1A, null, ConnectionState.IN_GAME), REQUEST_DUEL_START(0x1B, RequestDuelStart::new, ConnectionState.IN_GAME), REQUEST_DUAL_ANSWER_START(0x1C, RequestDuelAnswerStart::new, ConnectionState.IN_GAME), REQUEST_EX_SET_TUTORIAL(0x1D, null, ConnectionState.IN_GAME), REQUEST_EX_RQ_ITEM_LINK(0x1E, RequestExRqItemLink::new, ConnectionState.IN_GAME), CANNOT_MOVE_ANYMORE_AIR_SHIP(0x1F, null, ConnectionState.IN_GAME), MOVE_TO_LOCATION_IN_AIR_SHIP(0x20, MoveToLocationInAirShip::new, ConnectionState.IN_GAME), REQUEST_KEY_MAPPING(0x21, RequestKeyMapping::new, ConnectionState.ENTERING_AND_IN_GAME), REQUEST_SAVE_KEY_MAPPING(0x22, RequestSaveKeyMapping::new, ConnectionState.IN_GAME), REQUEST_EX_REMOVE_ITEM_ATTRIBUTE(0x23, RequestExRemoveItemAttribute::new, ConnectionState.IN_GAME), REQUEST_SAVE_INVENTORY_ORDER(0x24, RequestSaveInventoryOrder::new, ConnectionState.IN_GAME), REQUEST_EXIT_PARTY_MATCHING_WAITING_ROOM(0x25, RequestExitPartyMatchingWaitingRoom::new, ConnectionState.IN_GAME), REQUEST_CONFIRM_TARGET_ITEM(0x26, RequestConfirmTargetItem::new, ConnectionState.IN_GAME), REQUEST_CONFIRM_REFINER_ITEM(0x27, RequestConfirmRefinerItem::new, ConnectionState.IN_GAME), REQUEST_CONFIRM_GEMSTONE(0x28, RequestConfirmGemStone::new, ConnectionState.IN_GAME), REQUEST_OLYMPIAD_OBSERVER_END(0x29, RequestOlympiadObserverEnd::new, ConnectionState.IN_GAME), REQUEST_CURSED_WEAPON_LIST(0x2A, RequestCursedWeaponList::new, ConnectionState.IN_GAME), REQUEST_CURSED_WEAPON_LOCATION(0x2B, RequestCursedWeaponLocation::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_REORGANIZE_MEMBER(0x2C, RequestPledgeReorganizeMember::new, ConnectionState.IN_GAME), REQUEST_EX_MPCC_SHOW_PARTY_MEMBERS_INFO(0x2D, RequestExMPCCShowPartyMembersInfo::new, ConnectionState.IN_GAME), REQUEST_OLYMPIAD_MATCH_LIST(0x2E, RequestOlympiadMatchList::new, ConnectionState.IN_GAME), REQUEST_ASK_JOIN_PARTY_ROOM(0x2F, RequestAskJoinPartyRoom::new, ConnectionState.IN_GAME), ANSWER_JOIN_PARTY_ROOM(0x30, AnswerJoinPartyRoom::new, ConnectionState.IN_GAME), REQUEST_LIST_PARTY_MATCHING_WAITING_ROOM(0x31, RequestListPartyMatchingWaitingRoom::new, ConnectionState.IN_GAME), REQUEST_EX_ENCHANT_ITEM_ATTRIBUTE(0x32, RequestExEnchantItemAttribute::new, ConnectionState.IN_GAME), MOVE_TO_LOCATION_AIR_SHIP(0x35, MoveToLocationAirShip::new, ConnectionState.IN_GAME), REQUEST_BID_ITEM_AUCTION(0x36, RequestBidItemAuction::new, ConnectionState.IN_GAME), REQUEST_INFO_ITEM_AUCTION(0x37, RequestInfoItemAuction::new, ConnectionState.IN_GAME), REQUEST_EX_CHANGE_NAME(0x38, RequestExChangeName::new, ConnectionState.IN_GAME), REQUEST_ALL_CASTLE_INFO(0x39, RequestAllCastleInfo::new, ConnectionState.IN_GAME), REQUEST_ALL_FORTRESS_INFO(0x3A, RequestAllFortressInfo::new, ConnectionState.IN_GAME), REQUEST_ALL_AGIT_INGO(0x3B, RequestAllAgitInfo::new, ConnectionState.IN_GAME), REQUEST_FORTRESS_SIEGE_INFO(0x3C, RequestFortressSiegeInfo::new, ConnectionState.IN_GAME), REQUEST_GET_BOSS_RECORD(0x3D, RequestGetBossRecord::new, ConnectionState.IN_GAME), REQUEST_REFINE(0x3E, RequestRefine::new, ConnectionState.IN_GAME), REQUEST_CONFIRM_CANCEL_ITEM(0x3F, RequestConfirmCancelItem::new, ConnectionState.IN_GAME), REQUEST_REFINE_CANCEL(0x40, RequestRefineCancel::new, ConnectionState.IN_GAME), REQUEST_EX_MAGIC_SKILL_USE_GROUND(0x41, RequestExMagicSkillUseGround::new, ConnectionState.IN_GAME), REQUEST_DUEL_SURRENDER(0x42, RequestDuelSurrender::new, ConnectionState.IN_GAME), REQUEST_EX_ENCHANT_SKILL_INFO_DETAIL(0x43, RequestExEnchantSkillInfoDetail::new, ConnectionState.IN_GAME), REQUEST_FORTRESS_MAP_INFO(0x45, RequestFortressMapInfo::new, ConnectionState.IN_GAME), REQUEST_PVP_MATCH_RECORD(0x46, RequestPVPMatchRecord::new, ConnectionState.IN_GAME), SET_PRIVATE_STORE_WHOLE_MSG(0x47, SetPrivateStoreWholeMsg::new, ConnectionState.IN_GAME), REQUEST_DISPEL(0x48, RequestDispel::new, ConnectionState.IN_GAME), REQUEST_EX_TRY_TO_PUT_ENCHANT_TARGET_ITEM(0x49, RequestExTryToPutEnchantTargetItem::new, ConnectionState.IN_GAME), REQUEST_EX_TRY_TO_PUT_ENCHANT_SUPPORT_ITEM(0x4A, RequestExTryToPutEnchantSupportItem::new, ConnectionState.IN_GAME), REQUEST_EX_CANCEL_ENCHANT_ITEM(0x4B, RequestExCancelEnchantItem::new, ConnectionState.IN_GAME), REQUEST_CHANGE_NICKNAME_COLOR(0x4C, RequestChangeNicknameColor::new, ConnectionState.IN_GAME), REQUEST_RESET_NICKNAME(0x4D, RequestResetNickname::new, ConnectionState.IN_GAME), EX_BOOKMARK_PACKET(0x4E, ExBookmarkPacket::new, ConnectionState.IN_GAME), REQUEST_WITHDRAW_PREMIUM_ITEM(0x4F, RequestWithDrawPremiumItem::new, ConnectionState.IN_GAME), REQUEST_EX_JUMP(0x50, null, ConnectionState.IN_GAME), REQUEST_EX_START_SHOW_CRATAE_CUBE_RANK(0x51, RequestStartShowKrateisCubeRank::new, ConnectionState.IN_GAME), REQUEST_EX_STOP_SHOW_CRATAE_CUBE_RANK(0x52, RequestStopShowKrateisCubeRank::new, ConnectionState.IN_GAME), NOTIFY_START_MINI_GAME(0x53, null, ConnectionState.IN_GAME), REQUEST_EX_JOIN_DOMINION_WAR(0x54, null, ConnectionState.IN_GAME), REQUEST_EX_DOMINION_INFO(0x55, null, ConnectionState.IN_GAME), REQUEST_EX_CLEFT_ENTER(0x56, null, ConnectionState.IN_GAME), REQUEST_EX_CUBE_GAME_CHANGE_TEAM(0x57, RequestExCubeGameChangeTeam::new, ConnectionState.IN_GAME), END_SCENE_PLAYER(0x58, EndScenePlayer::new, ConnectionState.IN_GAME), REQUEST_EX_CUBE_GAME_READY_ANSWER(0x59, RequestExCubeGameReadyAnswer::new, ConnectionState.IN_GAME), REQUEST_EX_LIST_MPCC_WAITING(0x5A, RequestExListMpccWaiting::new, ConnectionState.IN_GAME), REQUEST_EX_MANAGE_MPCC_ROOM(0x5B, RequestExManageMpccRoom::new, ConnectionState.IN_GAME), REQUEST_EX_JOIN_MPCC_ROOM(0x5C, RequestExJoinMpccRoom::new, ConnectionState.IN_GAME), REQUEST_EX_OUST_FROM_MPCC_ROOM(0x5D, RequestExOustFromMpccRoom::new, ConnectionState.IN_GAME), REQUEST_EX_DISMISS_MPCC_ROOM(0x5E, RequestExDismissMpccRoom::new, ConnectionState.IN_GAME), REQUEST_EX_WITHDRAW_MPCC_ROOM(0x5F, RequestExWithdrawMpccRoom::new, ConnectionState.IN_GAME), REQUEST_SEED_PHASE(0x60, RequestSeedPhase::new, ConnectionState.IN_GAME), REQUEST_EX_MPCC_PARTYMASTER_LIST(0x61, RequestExMpccPartymasterList::new, ConnectionState.IN_GAME), REQUEST_POST_ITEM_LIST(0x62, RequestPostItemList::new, ConnectionState.IN_GAME), REQUEST_SEND_POST(0x63, RequestSendPost::new, ConnectionState.IN_GAME), REQUEST_RECEIVED_POST_LIST(0x64, RequestReceivedPostList::new, ConnectionState.IN_GAME), REQUEST_DELETE_RECEIVED_POST(0x65, RequestDeleteReceivedPost::new, ConnectionState.IN_GAME), REQUEST_RECEIVED_POST(0x66, RequestReceivedPost::new, ConnectionState.IN_GAME), REQUEST_POST_ATTACHMENT(0x67, RequestPostAttachment::new, ConnectionState.IN_GAME), REQUEST_REJECT_POST_ATTACHMENT(0x68, RequestRejectPostAttachment::new, ConnectionState.IN_GAME), REQUEST_SENT_POST_LIST(0x69, RequestSentPostList::new, ConnectionState.IN_GAME), REQUEST_DELETE_SENT_POST(0x6A, RequestDeleteSentPost::new, ConnectionState.IN_GAME), REQUEST_SENT_POST(0x6B, RequestSentPost::new, ConnectionState.IN_GAME), REQUEST_CANCEL_POST_ATTACHMENT(0x6C, RequestCancelPostAttachment::new, ConnectionState.IN_GAME), REQUEST_SHOW_NEW_USER_PETITION(0x6D, null, ConnectionState.IN_GAME), REQUEST_SHOW_STEP_TWO(0x6E, null, ConnectionState.IN_GAME), REQUEST_SHOW_STEP_THREE(0x6F, null, ConnectionState.IN_GAME), EX_CONNECT_TO_RAID_SERVER(0x70, null, ConnectionState.IN_GAME), EX_RETURN_FROM_RAID_SERVER(0x71, null, ConnectionState.IN_GAME), REQUEST_REFUND_ITEM(0x72, RequestRefundItem::new, ConnectionState.IN_GAME), REQUEST_BUI_SELL_UI_CLOSE(0x73, RequestBuySellUIClose::new, ConnectionState.IN_GAME), REQUEST_EX_EVENT_MATCH_OBSERVER_END(0x74, null, ConnectionState.IN_GAME), REQUEST_PARTY_LOOT_MODIFICATION(0x75, RequestPartyLootModification::new, ConnectionState.IN_GAME), ANSWER_PARTY_LOOT_MODIFICATION(0x76, AnswerPartyLootModification::new, ConnectionState.IN_GAME), ANSWER_COUPLE_ACTION(0x77, AnswerCoupleAction::new, ConnectionState.IN_GAME), BR_EVENT_RANKER_LIST(0x78, BrEventRankerList::new, ConnectionState.IN_GAME), REQUEST_ASK_MEMBER_SHIP(0x79, null, ConnectionState.IN_GAME), REQUEST_ADD_EXPAND_QUEST_ALARM(0x7A, RequestAddExpandQuestAlarm::new, ConnectionState.IN_GAME), REQUEST_VOTE_NEW(0x7B, RequestVoteNew::new, ConnectionState.IN_GAME), REQUEST_SHUTTLE_GET_ON(0x7C, RequestShuttleGetOn::new, ConnectionState.IN_GAME), REQUEST_SHUTTLE_GET_OFF(0x7D, RequestShuttleGetOff::new, ConnectionState.IN_GAME), MOVE_TO_LOCATION_IN_SHUTTLE(0x7E, MoveToLocationInShuttle::new, ConnectionState.IN_GAME), CANNOT_MOVE_ANYMORE_IN_SHUTTLE(0x7F, CannotMoveAnymoreInShuttle::new, ConnectionState.IN_GAME), REQUEST_AGIT_ACTION(0x80, null, ConnectionState.IN_GAME), // TODO: Implement / HANDLE SWITCH REQUEST_EX_ADD_CONTACT_TO_CONTACT_LIST(0x81, RequestExAddContactToContactList::new, ConnectionState.IN_GAME), REQUEST_EX_DELETE_CONTACT_FROM_CONTACT_LIST(0x82, RequestExDeleteContactFromContactList::new, ConnectionState.IN_GAME), REQUEST_EX_SHOW_CONTACT_LIST(0x83, RequestExShowContactList::new, ConnectionState.IN_GAME), REQUEST_EX_FRIEND_LIST_EXTENDED(0x84, RequestExFriendListExtended::new, ConnectionState.IN_GAME), REQUEST_EX_OLYMPIAD_MATCH_LIST_REFRESH(0x85, RequestExOlympiadMatchListRefresh::new, ConnectionState.IN_GAME), REQUEST_BR_GAME_POINT(0x86, RequestBRGamePoint::new, ConnectionState.IN_GAME), REQUEST_BR_PRODUCT_LIST(0x87, RequestBRProductList::new, ConnectionState.IN_GAME), REQUEST_BR_PRODUCT_INFO(0x88, RequestBRProductInfo::new, ConnectionState.IN_GAME), REQUEST_BR_BUI_PRODUCT(0x89, RequestBRBuyProduct::new, ConnectionState.IN_GAME), REQUEST_BR_RECENT_PRODUCT_LIST(0x8A, RequestBRRecentProductList::new, ConnectionState.IN_GAME), REQUEST_BR_MINI_GAME_LOAD_SCORES(0x8B, null, ConnectionState.IN_GAME), REQUEST_BR_MINI_GAME_INSERT_SCORE(0x8C, null, ConnectionState.IN_GAME), REQUEST_EX_BR_LECTURE_MARK(0x8D, null, ConnectionState.IN_GAME), REQUEST_CRYSTALLIZE_ESTIMATE(0x8E, RequestCrystallizeEstimate::new, ConnectionState.IN_GAME), REQUEST_CRYSTALLIZE_ITEM_CANCEL(0x8F, RequestCrystallizeItemCancel::new, ConnectionState.IN_GAME), REQUEST_SCENE_EX_ESCAPE_SCENE(0x90, RequestExEscapeScene::new, ConnectionState.IN_GAME), REQUEST_FLY_MOVE(0x91, RequestFlyMove::new, ConnectionState.IN_GAME), REQUEST_SURRENDER_PLEDGE_WAR_EX(0x92, null, ConnectionState.IN_GAME), REQUEST_DYNAMIC_QUEST_ACTION(0x93, null, ConnectionState.IN_GAME), // TODO: Implement / HANDLE SWITCH REQUEST_FRIEND_DETAIL_INFO(0x94, RequestFriendDetailInfo::new, ConnectionState.IN_GAME), REQUEST_UPDATE_FRIEND_MEMO(0x95, null, ConnectionState.IN_GAME), REQUEST_UPDATE_BLOCK_MEMO(0x96, null, ConnectionState.IN_GAME), REQUEST_INZONE_PARTY_INFO_HISTORY(0x97, null, ConnectionState.IN_GAME), REQUEST_COMMISSION_REGISTRABLE_ITEM_LIST(0x98, RequestCommissionRegistrableItemList::new, ConnectionState.IN_GAME), REQUEST_COMMISSION_INFO(0x99, RequestCommissionInfo::new, ConnectionState.IN_GAME), REQUEST_COMMISSION_REGISTER(0x9A, RequestCommissionRegister::new, ConnectionState.IN_GAME), REQUEST_COMMISSION_CANCEL(0x9B, RequestCommissionCancel::new, ConnectionState.IN_GAME), REQUEST_COMMISSION_DELETE(0x9C, RequestCommissionDelete::new, ConnectionState.IN_GAME), REQUEST_COMMISSION_LIST(0x9D, RequestCommissionList::new, ConnectionState.IN_GAME), REQUEST_COMMISSION_BUY_INFO(0x9E, RequestCommissionBuyInfo::new, ConnectionState.IN_GAME), REQUEST_COMMISSION_BUY_ITEM(0x9F, RequestCommissionBuyItem::new, ConnectionState.IN_GAME), REQUEST_COMMISSION_REGISTERED_ITEM(0xA0, RequestCommissionRegisteredItem::new, ConnectionState.IN_GAME), REQUEST_CALL_TO_CHANGE_CLASS(0xA1, null, ConnectionState.IN_GAME), REQUEST_CHANGE_TO_AWAKENED_CLASS(0xA2, RequestChangeToAwakenedClass::new, ConnectionState.IN_GAME), REQUEST_WORLD_STATISTICS(0xA3, null, ConnectionState.IN_GAME), REQUEST_USER_STATISTICS(0xA4, null, ConnectionState.IN_GAME), REQUEST_24HZ_SESSION_ID(0xA5, null, ConnectionState.IN_GAME), REQUEST_GOODS_INVENTORY_INFO(0xAA, null, ConnectionState.IN_GAME), REQUEST_GOODS_INVENTORY_ITEM(0xAB, null, ConnectionState.IN_GAME), REQUEST_FIRST_PLAY_START(0xAC, null, ConnectionState.IN_GAME), REQUEST_FLY_MOVE_START(0xAD, RequestFlyMoveStart::new, ConnectionState.IN_GAME), REQUEST_HARDWARE_INFO(0xAE, RequestHardWareInfo::new, ConnectionState.values()), SEND_CHANGE_ATTRIBUTE_TARGET_ITEM(0xB0, SendChangeAttributeTargetItem::new, ConnectionState.IN_GAME), REQUEST_CHANGE_ATTRIBUTE_ITEM(0xB1, RequestChangeAttributeItem::new, ConnectionState.IN_GAME), REQUEST_CHANGE_ATTRIBUTE_CANCEL(0xB2, RequestChangeAttributeCancel::new, ConnectionState.IN_GAME), REQUEST_BR_PRESENT_BUY_PRODUCT(0xB3, RequestBRPresentBuyProduct::new, ConnectionState.IN_GAME), CONFIRM_MENTEE_ADD(0xB4, ConfirmMenteeAdd::new, ConnectionState.IN_GAME), REQUEST_MENTOR_CANCEL(0xB5, RequestMentorCancel::new, ConnectionState.IN_GAME), REQUEST_MENTOR_LIST(0xB6, RequestMentorList::new, ConnectionState.IN_GAME), REQUEST_MENTEE_ADD(0xB7, RequestMenteeAdd::new, ConnectionState.IN_GAME), REQUEST_MENTEE_WAITING_LIST(0xB8, RequestMenteeWaitingList::new, ConnectionState.IN_GAME), REQUEST_CLAN_ASK_JOIN_BY_NAME(0xB9, RequestClanAskJoinByName::new, ConnectionState.IN_GAME), REQUEST_IN_ZONE_WAITING_TIME(0xBA, RequestInzoneWaitingTime::new, ConnectionState.IN_GAME), REQUEST_JOIN_CURIOUS_HOUSE(0xBB, RequestJoinCuriousHouse::new, ConnectionState.IN_GAME), REQUEST_CANCEL_CURIOUS_HOUSE(0xBC, RequestCancelCuriousHouse::new, ConnectionState.IN_GAME), REQUEST_LEAVE_CURIOUS_HOUSE(0xBD, null, ConnectionState.IN_GAME), REQUEST_OBSERVING_LIST_CURIOUS_HOUSE(0xBE, null, ConnectionState.IN_GAME), REQUEST_OBSERVING_CURIOUS_HOUSE(0xBF, null, ConnectionState.IN_GAME), REQUEST_LEAVE_OBSERVING_CURIOUS_HOUSE(0xC0, null, ConnectionState.IN_GAME), REQUEST_CURIOUS_HOUSE_HTML(0xC1, RequestCuriousHouseHtml::new, ConnectionState.IN_GAME), REQUEST_CURIOUS_HOUSE_RECORD(0xC2, null, ConnectionState.IN_GAME), EX_SYSSTRING(0xC3, null, ConnectionState.IN_GAME), REQUEST_EX_TRY_TO_PUT_SHAPE_SHIFTING_TARGET_ITEM(0xC4, RequestExTryToPutShapeShiftingTargetItem::new, ConnectionState.IN_GAME), REQUEST_EX_TRY_TO_PUT_SHAPE_SHIFTING_ENCHANT_SUPPORT_ITEM(0xC5, RequestExTryToPutShapeShiftingEnchantSupportItem::new, ConnectionState.IN_GAME), REQUEST_EX_CANCEL_SHAPE_SHIFTING_ITEM(0xC6, RequestExCancelShape_Shifting_Item::new, ConnectionState.IN_GAME), REQUEST_SHAPE_SHIFTING_ITEM(0xC7, RequestShapeShiftingItem::new, ConnectionState.IN_GAME), NC_GUARD_SEND_DATA_TO_SERVER(0xC8, null, ConnectionState.IN_GAME), REQUEST_EVENT_KALIE_TOKEN(0xC9, null, ConnectionState.IN_GAME), REQUEST_SHOW_BEAUTY_LIST(0xCA, RequestShowBeautyList::new, ConnectionState.IN_GAME), REQUEST_REGIST_BEAUTY(0xCB, RequestRegistBeauty::new, ConnectionState.IN_GAME), REQUEST_SHOW_RESET_SHOP_LIST(0xCD, RequestShowResetShopList::new, ConnectionState.IN_GAME), NET_PING(0xCE, null, ConnectionState.IN_GAME), REQUEST_BR_ADD_BASKET_PRODUCT_INFO(0xCF, null, ConnectionState.IN_GAME), REQUEST_BR_DELETE_BASKET_PRODUCT_INFO(0xD0, null, ConnectionState.IN_GAME), REQUEST_EX_EVENT_CAMPAIGN_INFO(0xD2, null, ConnectionState.IN_GAME), REQUEST_PLEDGE_RECRUIT_INFO(0xD3, RequestPledgeRecruitInfo::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_RECRUIT_BOARD_SEARCH(0xD4, RequestPledgeRecruitBoardSearch::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_RECRUIT_BOARD_ACCESS(0xD5, RequestPledgeRecruitBoardAccess::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_RECRUIT_BOARD_DETAIL(0xD6, RequestPledgeRecruitBoardDetail::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_WAITING_APPLY(0xD7, RequestPledgeWaitingApply::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_WAITING_APPLIED(0xD8, RequestPledgeWaitingApplied::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_WAITING_LIST(0xD9, RequestPledgeWaitingList::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_WAITING_USER(0xDA, RequestPledgeWaitingUser::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_WAITING_USER_ACCEPT(0xDB, RequestPledgeWaitingUserAccept::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_DRAFT_LIST_SEARCH(0xDC, RequestPledgeDraftListSearch::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_DRAFT_LIST_APPLY(0xDD, RequestPledgeDraftListApply::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_RECRUIT_APPLY_INFO(0xDE, RequestPledgeRecruitApplyInfo::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_JOIN_SYS(0xDF, null, ConnectionState.IN_GAME), RESPONSE_PETITION_ALARM(0xE0, null, ConnectionState.IN_GAME), NOTIFY_EXIT_BEAUTY_SHOP(0xE1, NotifyExitBeautyShop::new, ConnectionState.IN_GAME), REQUEST_REGISTER_XMAS_WISH_CARD(0xE2, null, ConnectionState.IN_GAME), REQUEST_EX_ADD_ENCHANT_SCROLL_ITEM(0xE3, RequestExAddEnchantScrollItem::new, ConnectionState.IN_GAME), REQUEST_EX_REMOVE_ENCHANT_SUPPORT_ITEM(0xE4, RequestExRemoveEnchantSupportItem::new, ConnectionState.IN_GAME), REQUEST_CARD_REWARD(0xE5, null, ConnectionState.IN_GAME), REQUEST_DIVIDE_ADENA_START(0xE6, RequestDivideAdenaStart::new, ConnectionState.IN_GAME), REQUEST_DIVIDE_ADENA_CANCEL(0xE7, RequestDivideAdenaCancel::new, ConnectionState.IN_GAME), REQUEST_DIVIDE_ADENA(0xE8, RequestDivideAdena::new, ConnectionState.IN_GAME), REQUEST_ACQUIRE_ABILITY_LIST(0xE9, null, ConnectionState.IN_GAME), REQUEST_ABILITY_LIST(0xEA, null, ConnectionState.IN_GAME), REQUEST_RESET_ABILITY_POINT(0xEB, null, ConnectionState.IN_GAME), REQUEST_CHANGE_ABILITY_POINT(0xEC, null, ConnectionState.IN_GAME), REQUEST_STOP_MOVE(0xED, RequestStopMove::new, ConnectionState.IN_GAME), REQUEST_ABILITY_WND_OPEN(0xEE, null, ConnectionState.IN_GAME), REQUEST_ABILITY_WND_CLOSE(0xEF, null, ConnectionState.IN_GAME), REQUEST_LUCKY_GAME_START_INFO(0xF0, RequestLuckyGameStartInfo::new, ConnectionState.IN_GAME), REQUEST_LUCKY_GAME_PLAY(0xF1, RequestLuckyGamePlay::new, ConnectionState.IN_GAME), NOTIFY_TRAINING_ROOM_END(0xF2, NotifyTrainingRoomEnd::new, ConnectionState.IN_GAME), REQUEST_NEW_ENCHANT_PUSH_ONE(0xF3, RequestNewEnchantPushOne::new, ConnectionState.IN_GAME), REQUEST_NEW_ENCHANT_REMOVE_ONE(0xF4, RequestNewEnchantRemoveOne::new, ConnectionState.IN_GAME), REQUEST_NEW_ENCHANT_PUSH_TWO(0xF5, RequestNewEnchantPushTwo::new, ConnectionState.IN_GAME), REQUEST_NEW_ENCHANT_REMOVE_TWO(0xF6, RequestNewEnchantRemoveTwo::new, ConnectionState.IN_GAME), REQUEST_NEW_ENCHANT_CLOSE(0xF7, RequestNewEnchantClose::new, ConnectionState.IN_GAME), REQUEST_NEW_ENCHANT_TRY(0xF8, RequestNewEnchantTry::new, ConnectionState.IN_GAME), REQUEST_NEW_ENCHANT_RETRY_TO_PUT_ITEMS(0xF9, RequestNewEnchantRetryToPutItems::new, ConnectionState.IN_GAME), EX_REQUEST_CARD_REWARD_LIST(0xFA, null, ConnectionState.IN_GAME), EX_REQUEST_ACCOUNT_ATTENDANCE_INFO(0xFB, null, ConnectionState.IN_GAME), EX_REQUEST_ACCOUNT_ATTENDANCE_REWARD(0xFC, null, ConnectionState.IN_GAME), REQUEST_TARGET_ACTION_MENU(0xFD, RequestTargetActionMenu::new, ConnectionState.IN_GAME), EX_SEND_SELECTED_QUEST_ZONE_ID(0xFE, ExSendSelectedQuestZoneID::new, ConnectionState.IN_GAME), REQUEST_ALCHEMY_SKILL_LIST(0xFF, RequestAlchemySkillList::new, ConnectionState.IN_GAME), REQUEST_ALCHEMY_TRY_MIX_CUBE(0x100, null, ConnectionState.IN_GAME), REQUEST_ALCHEMY_CONVERSION(0x101, null, ConnectionState.IN_GAME), SEND_EXECUTED_UI_EVENTS_COUNT(0x102, null, ConnectionState.IN_GAME), EX_SEND_CLIENT_INI(0x103, null, ConnectionState.AUTHENTICATED), REQUEST_EX_AUTO_FISH(0x104, ExRequestAutoFish::new, ConnectionState.IN_GAME), REQUEST_VIP_ATTENDANCE_ITEM_LIST(0x105, RequestVipAttendanceItemList::new, ConnectionState.IN_GAME), REQUEST_VIP_ATTENDANCE_CHECK(0x106, RequestVipAttendanceCheck::new, ConnectionState.IN_GAME), REQUEST_ITEM_ENSOUL(0x107, RequestItemEnsoul::new, ConnectionState.IN_GAME), REQUEST_CASTLE_WAR_SEASON_REWARD(0x108, null, ConnectionState.IN_GAME), REQUEST_VIP_PRODUCT_LIST(0x109, null, ConnectionState.IN_GAME), REQUEST_VIP_LUCKY_GAME_INFO(0x10A, null, ConnectionState.IN_GAME), REQUEST_VIP_LUCKY_GAME_ITEM_LIST(0x10B, null, ConnectionState.IN_GAME), REQUEST_VIP_LUCKY_GAME_BONUS(0x10C, null, ConnectionState.IN_GAME), EX_REQUEST_VIP_INFO(0x10D, null, ConnectionState.IN_GAME), REQUEST_CAPTCHA_ANSWER(0x10E, null, ConnectionState.IN_GAME), REQUEST_REFRESH_CAPTCHA_IMAGE(0x10F, null, ConnectionState.IN_GAME), REQUEST_PLEDGE_SIGN_IN_FOR_OPEN_JOINING_METHOD(0x110, RequestPledgeSignInForOpenJoiningMethod::new, ConnectionState.IN_GAME), EX_REQUEST_MATCH_ARENA(0x111, null, ConnectionState.IN_GAME), EX_CONFIRM_MATCH_ARENA(0x112, null, ConnectionState.IN_GAME), EX_CANCEL_MATCH_ARENA(0x113, null, ConnectionState.IN_GAME), EX_CHANGE_CLASS_ARENA(0x114, null, ConnectionState.IN_GAME), EX_CONFIRM_CLASS_ARENA(0x115, null, ConnectionState.IN_GAME), REQUEST_OPEN_DECO_NPCUI(0x116, null, ConnectionState.IN_GAME), REQUEST_CHECK_AGIT_DECO_AVAILABILITY(0x117, null, ConnectionState.IN_GAME), REQUEST_USER_FACTION_INFO(0x118, null, ConnectionState.IN_GAME), EX_EXIT_ARENA(0x119, null, ConnectionState.IN_GAME), REQUEST_EVENT_BALTHUS_TOKEN(0x11A, null, ConnectionState.IN_GAME), REQUEST_PARTY_MATCHING_HISTORY(0x11B, null, ConnectionState.IN_GAME), EX_ARENA_CUSTOM_NOTIFICATION(0x11C, null, ConnectionState.IN_GAME), REQUEST_TODO_LIST(0x11D, RequestTodoList::new, ConnectionState.IN_GAME), REQUEST_TODO_LIST_HTML(0x11E, null, ConnectionState.IN_GAME), REQUEST_ONE_DAY_REWARD_RECEIVE(0x11F, RequestOneDayRewardReceive::new, ConnectionState.IN_GAME), REQUEST_QUEUE_TICKET(0x120, null, ConnectionState.IN_GAME), REQUEST_PLEDGE_BONUS_OPEN(0x121, RequestPledgeBonusOpen::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_BONUS_REWARD_LIST(0x122, RequestPledgeBonusRewardList::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_BONUS_REWARD(0x123, RequestPledgeBonusReward::new, ConnectionState.IN_GAME), REQUEST_SSO_AUTHN_TOKEN(0x124, null, ConnectionState.IN_GAME), REQUEST_QUEUE_TICKET_LOGIN(0x125, null, ConnectionState.IN_GAME), REQUEST_BLOCK_MEMO_INFO(0x126, null, ConnectionState.IN_GAME), REQUEST_TRY_EN_SOUL_EXTRACTION(0x127, RequestTryEnSoulExtraction::new, ConnectionState.IN_GAME), REQUEST_RAIDBOSS_SPAWN_INFO(0x128, RequestRaidBossSpawnInfo::new, ConnectionState.IN_GAME), REQUEST_RAID_SERVER_INFO(0x129, RequestRaidServerInfo::new, ConnectionState.IN_GAME), REQUEST_SHOW_AGIT_SIEGE_INFO(0x12A, null, ConnectionState.IN_GAME), REQUEST_ITEM_AUCTION_STATUS(0x12B, null, ConnectionState.IN_GAME), REQUEST_MONSTER_BOOK_OPEN(0x12C, null, ConnectionState.IN_GAME), REQUEST_MONSTER_BOOK_CLOSE(0x12D, null, ConnectionState.IN_GAME), REQUEST_MONSTER_BOOK_REWARD(0x12E, null, ConnectionState.IN_GAME), EXREQUEST_MATCH_GROUP(0x12F, null, ConnectionState.IN_GAME), EXREQUEST_MATCH_GROUP_ASK(0x130, null, ConnectionState.IN_GAME), EXREQUEST_MATCH_GROUP_ANSWER(0x131, null, ConnectionState.IN_GAME), EXREQUEST_MATCH_GROUP_WITHDRAW(0x132, null, ConnectionState.IN_GAME), EXREQUEST_MATCH_GROUP_OUST(0x133, null, ConnectionState.IN_GAME), EXREQUEST_MATCH_GROUP_CHANGE_MASTER(0x134, null, ConnectionState.IN_GAME), REQUEST_UPGRADE_SYSTEM_RESULT(0x135, RequestUpgradeSystemResult::new, ConnectionState.IN_GAME), EX_CARD_UPDOWN_PICK_NUMB(0x136, null, ConnectionState.IN_GAME), EX_CARD_UPDOWN_GAME_REWARD_REQUEST(0x137, null, ConnectionState.IN_GAME), EX_CARD_UPDOWN_GAME_RETRY(0x138, null, ConnectionState.IN_GAME), EX_CARD_UPDOWN_GAME_QUIT(0x139, null, ConnectionState.IN_GAME), EX_ARENA_RANK_ALL(0x13A, null, ConnectionState.IN_GAME), EX_ARENA_MYRANK(0x13B, null, ConnectionState.IN_GAME), EX_SWAP_AGATHION_SLOT_ITEMS(0x13C, null, ConnectionState.IN_GAME), EX_PLEDGE_CONTRIBUTION_RANK(0x13D, null, ConnectionState.IN_GAME), EX_PLEDGE_CONTRIBUTION_INFO(0x13E, null, ConnectionState.IN_GAME), EX_PLEDGE_CONTRIBUTION_REWARD(0x13F, null, ConnectionState.IN_GAME), EX_PLEDGE_LEVEL_UP(0x140, null, ConnectionState.IN_GAME), EX_PLEDGE_MISSION_INFO(0x141, null, ConnectionState.IN_GAME), EX_PLEDGE_MISSION_REWARD(0x142, null, ConnectionState.IN_GAME), EX_PLEDGE_MASTERY_INFO(0x143, null, ConnectionState.IN_GAME), EX_PLEDGE_MASTERY_SET(0x144, null, ConnectionState.IN_GAME), EX_PLEDGE_MASTERY_RESET(0x145, null, ConnectionState.IN_GAME), EX_PLEDGE_SKILL_INFO(0x146, null, ConnectionState.IN_GAME), EX_PLEDGE_SKILL_ACTIVATE(0x147, null, ConnectionState.IN_GAME), EX_PLEDGE_ITEM_LIST(0x148, null, ConnectionState.IN_GAME), EX_PLEDGE_ITEM_ACTIVATE(0x149, null, ConnectionState.IN_GAME), EX_PLEDGE_ANNOUNCE(0x14A, null, ConnectionState.IN_GAME), EX_PLEDGE_ANNOUNCE_SET(0x14B, null, ConnectionState.IN_GAME), EX_CREATE_PLEDGE(0x14C, null, ConnectionState.IN_GAME), EX_PLEDGE_ITEM_INFO(0x14D, null, ConnectionState.IN_GAME), EX_PLEDGE_ITEM_BUY(0x14E, null, ConnectionState.IN_GAME), EX_ELEMENTAL_SPIRIT_INFO(0x14F, ExElementalSpiritInfo::new, ConnectionState.IN_GAME), EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0x150, ExElementalSpiritExtractInfo::new, ConnectionState.IN_GAME), EX_ELEMENTAL_SPIRIT_EXTRACT(0x151, ExElementalSpiritExtract::new, ConnectionState.IN_GAME), EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0x152, ExElementalSpiritEvolutionInfo::new, ConnectionState.IN_GAME), EX_ELEMENTAL_SPIRIT_EVOLUTION(0x153, ExElementalSpiritEvolution::new, ConnectionState.IN_GAME), EX_ELEMENTAL_SPIRIT_SET_TALENT(0x154, ExElementalSpiritSetTalent::new, ConnectionState.IN_GAME), EX_ELEMENTAL_SPIRIT_INIT_TALENT(0x155, ExElementalInitTalent::new, ConnectionState.IN_GAME), EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0x156, ExElementalSpiritAbsorbInfo::new, ConnectionState.IN_GAME), EX_ELEMENTAL_SPIRIT_ABSORB(0x157, ExElementalSpiritAbsorb::new, ConnectionState.IN_GAME), EX_REQUEST_LOCKED_ITEM(0x158, null, ConnectionState.IN_GAME), EX_REQUEST_UNLOCKED_ITEM(0x159, null, ConnectionState.IN_GAME), EX_LOCKED_ITEM_CANCEL(0x15A, null, ConnectionState.IN_GAME), EX_UNLOCKED_ITEM_CANCEL(0x15B, null, ConnectionState.IN_GAME), EX_ELEMENTAL_SPIRIT_CHANGE_TYPE(0x15C, ExElementalSpiritChangeType::new, ConnectionState.IN_GAME), // 152 REQUEST_BLOCK_LIST_FOR_AD(0x15D, null, ConnectionState.IN_GAME), REQUEST_USER_BAN_INFO(0x15E, null, ConnectionState.IN_GAME), EX_INTERACT_MODIFY(0x15F, null, ConnectionState.IN_GAME), // 152 EX_TRY_ENCHANT_ARTIFACT(0x160, null, ConnectionState.IN_GAME), // 152 EX_XIGN_CODE(0x161, null, ConnectionState.IN_GAME), // 152 EX_OPEN_HTML(0x164, ExOpenDimensionalHtml::new, ConnectionState.IN_GAME), // 228 EX_REQUEST_CLASS_CHANGE(0x165, ExRequestClassChange::new, ConnectionState.IN_GAME), // 228 EX_REQUEST_CLASS_CHANGE_VERIFYING(0x166, null, ConnectionState.IN_GAME), // 228 EX_REQUEST_TELEPORT(0x167, ExRequestTeleport::new, ConnectionState.IN_GAME), // 228 EX_COSTUME_COLLECTION_SKILL_ACTIVE(0x16B, null, ConnectionState.IN_GAME), // 228 UNK_16C(0x16C, null, ConnectionState.IN_GAME), // 228 UNK_16D(0x16D, null, ConnectionState.IN_GAME), // 228 UNK_16E(0x16E, null, ConnectionState.IN_GAME), // 228 UNK_16F(0x16F, null, ConnectionState.IN_GAME), // 228 UNK_170(0x170, null, ConnectionState.IN_GAME), // 228 EX_ACTIVATE_AUTO_SHORTCUT(0x171, ExRequestActivateAutoShortcut::new, ConnectionState.IN_GAME), // 228 UNK_172(0x172, null, ConnectionState.IN_GAME), // 228 UNK_173(0x173, null, ConnectionState.IN_GAME), // 228 UNK_174(0x174, null, ConnectionState.IN_GAME), // 228 UNK_175(0x175, null, ConnectionState.IN_GAME), // 228 UNK_176(0x176, null, ConnectionState.IN_GAME), // 228 EX_AUTOPLAY_SETTING(0x177, ExAutoPlaySetting::new, ConnectionState.IN_GAME), // 228 UNK_178(0x178, null, ConnectionState.IN_GAME), // 228 UNK_179(0x179, null, ConnectionState.IN_GAME), // 228 UNK_17A(0x17A, null, ConnectionState.IN_GAME), // 228 UNK_17B(0x17B, null, ConnectionState.IN_GAME), // 228 UNK_17C(0x17C, null, ConnectionState.IN_GAME), // 228 UNK_17D(0x17D, null, ConnectionState.IN_GAME), // 228 UNK_17E(0x17E, null, ConnectionState.IN_GAME), // 228 EX_TIME_RESTRICT_FIELD_LIST(0x17F, ExTimedHuntingZoneList::new, ConnectionState.IN_GAME), // 228 EX_TIME_RESTRICT_FIELD_USER_ENTER(0x180, null, ConnectionState.IN_GAME), // 228 EX_RANKING_CHAR_INFO(0x181, ExRankCharInfo::new, ConnectionState.IN_GAME), // 228 EX_RANKING_CHAR_HISTORY(0x182, null, ConnectionState.IN_GAME), // 228 EX_RANKING_CHAR_RANKERS(0x183, ExRankingCharRankers::new, ConnectionState.IN_GAME), // 228 UNK_184(0x184, null, ConnectionState.IN_GAME), // 228 UNK_185(0x185, null, ConnectionState.IN_GAME), // 228 EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_ATTACKER_LIST(0x186, null, ConnectionState.IN_GAME), // 228 UNK_187(0x187, null, ConnectionState.IN_GAME), // 228 UNK_188(0x188, null, ConnectionState.IN_GAME), // 228 UNK_189(0x189, null, ConnectionState.IN_GAME), // 228 UNK_18A(0x18A, null, ConnectionState.IN_GAME), // 228 EX_PVP_BOOK_LIST(0x18B, ExPvpBookList::new, ConnectionState.IN_GAME), // 228 UNK_18C(0x18C, null, ConnectionState.IN_GAME), // 228 EX_LETTER_COLLECTOR_TAKE_REWARD(0x18D, null, ConnectionState.IN_GAME); // 228 public static final ExIncomingPackets[] PACKET_ARRAY; static { final short maxPacketId = (short) Arrays.stream(values()).mapToInt(IIncomingPackets::getPacketId).max().orElse(0); PACKET_ARRAY = new ExIncomingPackets[maxPacketId + 1]; for (ExIncomingPackets incomingPacket : values()) { PACKET_ARRAY[incomingPacket.getPacketId()] = incomingPacket; } } private int _packetId; private Supplier<IIncomingPacket<GameClient>> _incomingPacketFactory; private Set<IConnectionState> _connectionStates; ExIncomingPackets(int packetId, Supplier<IIncomingPacket<GameClient>> incomingPacketFactory, IConnectionState... connectionStates) { // packetId is an unsigned short if (packetId > 0xFFFF) { throw new IllegalArgumentException("packetId must not be bigger than 0xFFFF"); } _packetId = packetId; _incomingPacketFactory = incomingPacketFactory != null ? incomingPacketFactory : () -> null; _connectionStates = new HashSet<>(Arrays.asList(connectionStates)); } @Override public int getPacketId() { return _packetId; } @Override public IIncomingPacket<GameClient> newIncomingPacket() { return _incomingPacketFactory.get(); } @Override public Set<IConnectionState> getConnectionStates() { return _connectionStates; } }
Java:package org.l2jmobius.gameserver.network; import java.util.Arrays; import java.util.HashSet; import java.util.Set; import java.util.function.Supplier; import org.l2jmobius.commons.network.IConnectionState; import org.l2jmobius.commons.network.IIncomingPacket; import org.l2jmobius.commons.network.IIncomingPackets; import org.l2jmobius.gameserver.network.clientpackets.*; import org.l2jmobius.gameserver.network.clientpackets.friend.RequestAnswerFriendInvite; import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDel; import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendInvite; import org.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendList; import org.l2jmobius.gameserver.network.clientpackets.friend.RequestSendFriendMsg; /** * @author UnAfraid */ public enum IncomingPackets implements IIncomingPackets<GameClient> { LOGOUT(0x00, Logout::new, ConnectionState.AUTHENTICATED, ConnectionState.IN_GAME), ATTACK(0x01, Attack::new, ConnectionState.IN_GAME), REQUEST_START_PLEDGE_WAR(0x03, RequestStartPledgeWar::new, ConnectionState.IN_GAME), REQUEST_REPLY_START_PLEDGE(0x04, RequestReplyStartPledgeWar::new, ConnectionState.IN_GAME), REQUEST_STOP_PLEDGE_WAR(0x05, RequestStopPledgeWar::new, ConnectionState.IN_GAME), REQUEST_REPLY_STOP_PLEDGE_WAR(0x06, RequestReplyStopPledgeWar::new, ConnectionState.IN_GAME), REQUEST_SURRENDER_PLEDGE_WAR(0x07, RequestSurrenderPledgeWar::new, ConnectionState.IN_GAME), REQUEST_REPLY_SURRENDER_PLEDGE_WAR(0x08, RequestReplySurrenderPledgeWar::new, ConnectionState.IN_GAME), REQUEST_SET_PLEDGE_CREST(0x09, RequestSetPledgeCrest::new, ConnectionState.IN_GAME), REQUEST_GIVE_NICK_NAME(0x0B, RequestGiveNickName::new, ConnectionState.IN_GAME), CHARACTER_CREATE(0x0C, CharacterCreate::new, ConnectionState.AUTHENTICATED), CHARACTER_DELETE(0x0D, CharacterDelete::new, ConnectionState.AUTHENTICATED), PROTOCOL_VERSION(0x0E, ProtocolVersion::new, ConnectionState.CONNECTED), MOVE_BACKWARD_TO_LOCATION(0x0F, MoveBackwardToLocation::new, ConnectionState.IN_GAME), ENTER_WORLD(0x11, EnterWorld::new, ConnectionState.ENTERING), CHARACTER_SELECT(0x12, CharacterSelect::new, ConnectionState.AUTHENTICATED), NEW_CHARACTER(0x13, NewCharacter::new, ConnectionState.AUTHENTICATED), REQUEST_ITEM_LIST(0x14, RequestItemList::new, ConnectionState.IN_GAME), REQUEST_UN_EQUIP_ITEM(0x16, RequestUnEquipItem::new, ConnectionState.IN_GAME), REQUEST_DROP_ITEM(0x17, RequestDropItem::new, ConnectionState.IN_GAME), USE_ITEM(0x19, UseItem::new, ConnectionState.IN_GAME), TRADE_REQUEST(0x1A, TradeRequest::new, ConnectionState.IN_GAME), ADD_TRADE_ITEM(0x1B, AddTradeItem::new, ConnectionState.IN_GAME), TRADE_DONE(0x1C, TradeDone::new, ConnectionState.IN_GAME), ACTION(0x1F, Action::new, ConnectionState.IN_GAME), REQUEST_LINK_HTML(0x22, RequestLinkHtml::new, ConnectionState.IN_GAME), REQUEST_BYPASS_TO_SERVER(0x23, RequestBypassToServer::new, ConnectionState.IN_GAME), REQUEST_BBS_WRITE(0x24, RequestBBSwrite::new, ConnectionState.IN_GAME), REQUEST_JOIN_PLEDGE(0x26, RequestJoinPledge::new, ConnectionState.IN_GAME), REQUEST_ANSWER_JOIN_PLEDGE(0x27, RequestAnswerJoinPledge::new, ConnectionState.IN_GAME), REQUEST_WITHDRAWAL_PLEDGE(0x28, RequestWithdrawalPledge::new, ConnectionState.IN_GAME), REQUEST_OUST_PLEDGE_MEMBER(0x29, RequestOustPledgeMember::new, ConnectionState.IN_GAME), AUTH_LOGIN(0x2B, AuthLogin::new, ConnectionState.CONNECTED), REQUEST_GET_ITEM_FROM_PET(0x2C, RequestGetItemFromPet::new, ConnectionState.IN_GAME), REQUEST_ALLY_INFO(0x2E, RequestAllyInfo::new, ConnectionState.IN_GAME), REQUEST_CRYSTALLIZE_ITEM(0x2F, RequestCrystallizeItem::new, ConnectionState.IN_GAME), REQUEST_PRIVATE_STORE_MANAGE_SELL(0x30, RequestPrivateStoreManageSell::new, ConnectionState.IN_GAME), SET_PRIVATE_STORE_LIST_SELL(0x31, SetPrivateStoreListSell::new, ConnectionState.IN_GAME), ATTACK_REQUEST(0x32, AttackRequest::new, ConnectionState.IN_GAME), REQUEST_TELEPORT(0x33, null, ConnectionState.IN_GAME), SOCIAL_ACTION(0x34, null, ConnectionState.IN_GAME), CHANGE_MOVE_TYPE(0x35, null, ConnectionState.IN_GAME), CHANGE_WAIT_TYPE(0x36, null, ConnectionState.IN_GAME), REQUEST_SELL_ITEM(0x37, RequestSellItem::new, ConnectionState.IN_GAME), REQUEST_MAGIC_SKILL_LIST(0x38, RequestMagicSkillList::new, ConnectionState.IN_GAME), REQUEST_MAGIC_SKILL_USE(0x39, RequestMagicSkillUse::new, ConnectionState.IN_GAME), APPEARING(0x3A, Appearing::new, ConnectionState.IN_GAME), SEND_WARE_HOUSE_DEPOSIT_LIST(0x3B, SendWareHouseDepositList::new, ConnectionState.IN_GAME), SEND_WARE_HOUSE_WITH_DRAW_LIST(0x3C, SendWareHouseWithDrawList::new, ConnectionState.IN_GAME), REQUEST_SHORT_CUT_REG(0x3D, RequestShortCutReg::new, ConnectionState.IN_GAME), REQUEST_SHORT_CUT_DEL(0x3F, RequestShortCutDel::new, ConnectionState.IN_GAME), REQUEST_BUY_ITEM(0x40, RequestBuyItem::new, ConnectionState.IN_GAME), REQUEST_JOIN_PARTY(0x42, RequestJoinParty::new, ConnectionState.IN_GAME), REQUEST_ANSWER_JOIN_PARTY(0x43, RequestAnswerJoinParty::new, ConnectionState.IN_GAME), REQUEST_WITH_DRAWAL_PARTY(0x44, RequestWithDrawalParty::new, ConnectionState.IN_GAME), REQUEST_OUST_PARTY_MEMBER(0x45, RequestOustPartyMember::new, ConnectionState.IN_GAME), CANNOT_MOVE_ANYMORE(0x47, CannotMoveAnymore::new, ConnectionState.IN_GAME), REQUEST_TARGET_CANCELD(0x48, RequestTargetCanceld::new, ConnectionState.IN_GAME), SAY2(0x49, Say2::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_MEMBER_LIST(0x4D, RequestPledgeMemberList::new, ConnectionState.IN_GAME), REQUEST_MAGIC_LIST(0x4F, null, ConnectionState.IN_GAME), REQUEST_SKILL_LIST(0x50, RequestSkillList::new, ConnectionState.IN_GAME), MOVE_WITH_DELTA(0x52, MoveWithDelta::new, ConnectionState.IN_GAME), REQUEST_GET_ON_VEHICLE(0x53, RequestGetOnVehicle::new, ConnectionState.IN_GAME), REQUEST_GET_OFF_VEHICLE(0x54, RequestGetOffVehicle::new, ConnectionState.IN_GAME), ANSWER_TRADE_REQUEST(0x55, AnswerTradeRequest::new, ConnectionState.IN_GAME), REQUEST_ACTION_USE(0x56, RequestActionUse::new, ConnectionState.IN_GAME), REQUEST_RESTART(0x57, RequestRestart::new, ConnectionState.IN_GAME), VALIDATE_POSITION(0x59, ValidatePosition::new, ConnectionState.IN_GAME), START_ROTATING(0x5B, StartRotating::new, ConnectionState.IN_GAME), FINISH_ROTATING(0x5C, FinishRotating::new, ConnectionState.IN_GAME), REQUEST_SHOW_BOARD(0x5E, RequestShowBoard::new, ConnectionState.IN_GAME), REQUEST_ENCHANT_ITEM(0x5F, RequestEnchantItem::new, ConnectionState.IN_GAME), REQUEST_DESTROY_ITEM(0x60, RequestDestroyItem::new, ConnectionState.IN_GAME), REQUEST_QUEST_LIST(0x62, RequestQuestList::new, ConnectionState.IN_GAME), REQUEST_QUEST_ABORT(0x63, RequestQuestAbort::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_INFO(0x65, RequestPledgeInfo::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_EXTENDED_INFO(0x66, RequestPledgeExtendedInfo::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_CREST(0x67, RequestPledgeCrest::new, ConnectionState.IN_GAME), REQUEST_SEND_FRIEND_MSG(0x6B, RequestSendFriendMsg::new, ConnectionState.IN_GAME), REQUEST_SHOW_MINI_MAP(0x6C, RequestShowMiniMap::new, ConnectionState.IN_GAME), REQUEST_RECORD_INFO(0x6E, RequestRecordInfo::new, ConnectionState.IN_GAME), REQUEST_HENNA_EQUIP(0x6F, RequestHennaEquip::new, ConnectionState.IN_GAME), REQUEST_HENNA_REMOVE_LIST(0x70, RequestHennaRemoveList::new, ConnectionState.IN_GAME), REQUEST_HENNA_ITEM_REMOVE_INFO(0x71, RequestHennaItemRemoveInfo::new, ConnectionState.IN_GAME), REQUEST_HENNA_REMOVE(0x72, RequestHennaRemove::new, ConnectionState.IN_GAME), REQUEST_ACQUIRE_SKILL_INFO(0x73, RequestAcquireSkillInfo::new, ConnectionState.IN_GAME), SEND_BYPASS_BUILD_CMD(0x74, SendBypassBuildCmd::new, ConnectionState.IN_GAME), REQUEST_MOVE_TO_LOCATION_IN_VEHICLE(0x75, RequestMoveToLocationInVehicle::new, ConnectionState.IN_GAME), CANNOT_MOVE_ANYMORE_IN_VEHICLE(0x76, CannotMoveAnymoreInVehicle::new, ConnectionState.IN_GAME), REQUEST_FRIEND_INVITE(0x77, RequestFriendInvite::new, ConnectionState.IN_GAME), REQUEST_ANSWER_FRIEND_INVITE(0x78, RequestAnswerFriendInvite::new, ConnectionState.IN_GAME), REQUEST_FRIEND_LIST(0x79, RequestFriendList::new, ConnectionState.IN_GAME), REQUEST_FRIEND_DEL(0x7A, RequestFriendDel::new, ConnectionState.IN_GAME), CHARACTER_RESTORE(0x7B, CharacterRestore::new, ConnectionState.AUTHENTICATED), REQUEST_ACQUIRE_SKILL(0x7C, RequestAcquireSkill::new, ConnectionState.IN_GAME), REQUEST_RESTART_POINT(0x7D, RequestRestartPoint::new, ConnectionState.IN_GAME), REQUEST_GM_COMMAND(0x7E, RequestGMCommand::new, ConnectionState.IN_GAME), REQUEST_PARTY_MATCH_CONFIG(0x7F, RequestPartyMatchConfig::new, ConnectionState.IN_GAME), REQUEST_PARTY_MATCH_LIST(0x80, RequestPartyMatchList::new, ConnectionState.IN_GAME), REQUEST_PARTY_MATCH_DETAIL(0x81, RequestPartyMatchDetail::new, ConnectionState.IN_GAME), REQUEST_PRIVATE_STORE_BUY(0x83, RequestPrivateStoreBuy::new, ConnectionState.IN_GAME), REQUEST_TUTORIAL_LINK_HTML(0x85, RequestTutorialLinkHtml::new, ConnectionState.IN_GAME), REQUEST_TUTORIAL_PASS_CMD_TO_SERVER(0x86, RequestTutorialPassCmdToServer::new, ConnectionState.IN_GAME), REQUEST_TUTORIAL_QUESTION_MARK(0x87, RequestTutorialQuestionMark::new, ConnectionState.IN_GAME), REQUEST_TUTORIAL_CLIENT_EVENT(0x88, RequestTutorialClientEvent::new, ConnectionState.IN_GAME), REQUEST_PETITION(0x89, RequestPetition::new, ConnectionState.IN_GAME), REQUEST_PETITION_CANCEL(0x8A, RequestPetitionCancel::new, ConnectionState.IN_GAME), REQUEST_GM_LIST(0x8B, RequestGmList::new, ConnectionState.IN_GAME), REQUEST_JOIN_ALLY(0x8C, RequestJoinAlly::new, ConnectionState.IN_GAME), REQUEST_ANSWER_JOIN_ALLY(0x8D, RequestAnswerJoinAlly::new, ConnectionState.IN_GAME), ALLY_LEAVE(0x8E, AllyLeave::new, ConnectionState.IN_GAME), ALLY_DISMISS(0x8F, AllyDismiss::new, ConnectionState.IN_GAME), REQUEST_DISMISS_ALLY(0x90, RequestDismissAlly::new, ConnectionState.IN_GAME), REQUEST_SET_ALLY_CREST(0x91, RequestSetAllyCrest::new, ConnectionState.IN_GAME), REQUEST_ALLY_CREST(0x92, RequestAllyCrest::new, ConnectionState.IN_GAME), REQUEST_CHANGE_PET_NAME(0x93, RequestChangePetName::new, ConnectionState.IN_GAME), REQUEST_PET_USE_ITEM(0x94, RequestPetUseItem::new, ConnectionState.IN_GAME), REQUEST_GIVE_ITEM_TO_PET(0x95, RequestGiveItemToPet::new, ConnectionState.IN_GAME), REQUEST_PRIVATE_STORE_QUIT_SELL(0x96, RequestPrivateStoreQuitSell::new, ConnectionState.IN_GAME), SET_PRIVATE_STORE_MSG_SELL(0x97, SetPrivateStoreMsgSell::new, ConnectionState.IN_GAME), REQUEST_PET_GET_ITEM(0x98, RequestPetGetItem::new, ConnectionState.IN_GAME), REQUEST_PRIVATE_STORE_MANAGE_BUY(0x99, RequestPrivateStoreManageBuy::new, ConnectionState.IN_GAME), SET_PRIVATE_STORE_LIST_BUY(0x9A, SetPrivateStoreListBuy::new, ConnectionState.IN_GAME), REQUEST_PRIVATE_STORE_QUIT_BUY(0x9C, RequestPrivateStoreQuitBuy::new, ConnectionState.IN_GAME), SET_PRIVATE_STORE_MSG_BUY(0x9D, SetPrivateStoreMsgBuy::new, ConnectionState.IN_GAME), REQUEST_PRIVATE_STORE_SELL(0x9F, RequestPrivateStoreSell::new, ConnectionState.IN_GAME), SEND_TIME_CHECK_PACKET(0xA0, null, ConnectionState.IN_GAME), REQUEST_SKILL_COOL_TIME(0xA6, null, ConnectionState.IN_GAME), REQUEST_PACKAGE_SENDABLE_ITEM_LIST(0xA7, RequestPackageSendableItemList::new, ConnectionState.IN_GAME), REQUEST_PACKAGE_SEND(0xA8, RequestPackageSend::new, ConnectionState.IN_GAME), REQUEST_BLOCK(0xA9, RequestBlock::new, ConnectionState.IN_GAME), REQUEST_SIEGE_INFO(0xAA, RequestSiegeInfo::new, ConnectionState.IN_GAME), REQUEST_SIEGE_ATTACKER_LIST(0xAB, RequestSiegeAttackerList::new, ConnectionState.IN_GAME), REQUEST_SIEGE_DEFENDER_LIST(0xAC, RequestSiegeDefenderList::new, ConnectionState.IN_GAME), REQUEST_JOIN_SIEGE(0xAD, RequestJoinSiege::new, ConnectionState.IN_GAME), REQUEST_CONFIRM_SIEGE_WAITING_LIST(0xAE, RequestConfirmSiegeWaitingList::new, ConnectionState.IN_GAME), REQUEST_SET_CASTLE_SIEGE_TIME(0xAF, RequestSetCastleSiegeTime::new, ConnectionState.IN_GAME), MULTI_SELL_CHOOSE(0xB0, MultiSellChoose::new, ConnectionState.IN_GAME), NET_PING(0xB1, null, ConnectionState.IN_GAME), REQUEST_REMAIN_TIME(0xB2, null, ConnectionState.IN_GAME), BYPASS_USER_CMD(0xB3, BypassUserCmd::new, ConnectionState.IN_GAME), SNOOP_QUIT(0xB4, SnoopQuit::new, ConnectionState.IN_GAME), REQUEST_RECIPE_BOOK_OPEN(0xB5, RequestRecipeBookOpen::new, ConnectionState.IN_GAME), REQUEST_RECIPE_BOOK_DESTROY(0xB6, RequestRecipeBookDestroy::new, ConnectionState.IN_GAME), REQUEST_RECIPE_ITEM_MAKE_INFO(0xB7, RequestRecipeItemMakeInfo::new, ConnectionState.IN_GAME), REQUEST_RECIPE_ITEM_MAKE_SELF(0xB8, RequestRecipeItemMakeSelf::new, ConnectionState.IN_GAME), REQUEST_RECIPE_SHOP_MANAGE_LIST(0xB9, null, ConnectionState.IN_GAME), REQUEST_RECIPE_SHOP_MESSAGE_SET(0xBA, RequestRecipeShopMessageSet::new, ConnectionState.IN_GAME), REQUEST_RECIPE_SHOP_LIST_SET(0xBB, RequestRecipeShopListSet::new, ConnectionState.IN_GAME), REQUEST_RECIPE_SHOP_MANAGE_QUIT(0xBC, RequestRecipeShopManageQuit::new, ConnectionState.IN_GAME), REQUEST_RECIPE_SHOP_MANAGE_CANCEL(0xBD, null, ConnectionState.IN_GAME), REQUEST_RECIPE_SHOP_MAKE_INFO(0xBE, RequestRecipeShopMakeInfo::new, ConnectionState.IN_GAME), REQUEST_RECIPE_SHOP_MAKE_ITEM(0xBF, RequestRecipeShopMakeItem::new, ConnectionState.IN_GAME), REQUEST_RECIPE_SHOP_MANAGE_PREV(0xC0, RequestRecipeShopManagePrev::new, ConnectionState.IN_GAME), OBSERVER_RETURN(0xC1, ObserverReturn::new, ConnectionState.IN_GAME), REQUEST_EVALUATE(0xC2, null, ConnectionState.IN_GAME), REQUEST_HENNA_ITEM_LIST(0xC3, RequestHennaItemList::new, ConnectionState.IN_GAME), REQUEST_HENNA_ITEM_INFO(0xC4, RequestHennaItemInfo::new, ConnectionState.IN_GAME), REQUEST_BUY_SEED(0xC5, RequestBuySeed::new, ConnectionState.IN_GAME), DLG_ANSWER(0xC6, DlgAnswer::new, ConnectionState.IN_GAME), REQUEST_PREVIEW_ITEM(0xC7, RequestPreviewItem::new, ConnectionState.IN_GAME), REQUEST_SSQ_STATUS(0xC8, null, ConnectionState.IN_GAME), REQUEST_PETITION_FEEDBACK(0xC9, RequestPetitionFeedback::new, ConnectionState.IN_GAME), GAME_GUARD_REPLY(0xCB, GameGuardReply::new, ConnectionState.IN_GAME), REQUEST_PLEDGE_POWER(0xCC, RequestPledgePower::new, ConnectionState.IN_GAME), REQUEST_MAKE_MACRO(0xCD, RequestMakeMacro::new, ConnectionState.IN_GAME), REQUEST_DELETE_MACRO(0xCE, RequestDeleteMacro::new, ConnectionState.IN_GAME), REQUEST_BUY_PROCURE(0xCF, null, ConnectionState.IN_GAME), EX_PACKET(0xD0, ExPacket::new, ConnectionState.values()); // This packet has its own connection state checking so we allow all of them public static final IncomingPackets[] PACKET_ARRAY; static { final short maxPacketId = (short) Arrays.stream(values()).mapToInt(IIncomingPackets::getPacketId).max().orElse(0); PACKET_ARRAY = new IncomingPackets[maxPacketId + 1]; for (IncomingPackets incomingPacket : values()) { PACKET_ARRAY[incomingPacket.getPacketId()] = incomingPacket; } } private short _packetId; private Supplier<IIncomingPacket<GameClient>> _incomingPacketFactory; private Set<IConnectionState> _connectionStates; IncomingPackets(int packetId, Supplier<IIncomingPacket<GameClient>> incomingPacketFactory, IConnectionState... connectionStates) { // packetId is an unsigned byte if (packetId > 0xFF) { throw new IllegalArgumentException("packetId must not be bigger than 0xFF"); } _packetId = (short) packetId; _incomingPacketFactory = incomingPacketFactory != null ? incomingPacketFactory : () -> null; _connectionStates = new HashSet<>(Arrays.asList(connectionStates)); } @Override public int getPacketId() { return _packetId; } @Override public IIncomingPacket<GameClient> newIncomingPacket() { return _incomingPacketFactory.get(); } @Override public Set<IConnectionState> getConnectionStates() { return _connectionStates; } }
Java:package org.l2jmobius.gameserver.network; import org.l2jmobius.commons.network.PacketWriter; /** * @author UnAfraid */ public enum OutgoingPackets { // Packets DIE(0x00), REVIVE(0x01), ATTACK_OUT_OF_RANGE(0x02), ATTACKIN_COOL_TIME(0x03), ATTACK_DEAD_TARGET(0x04), SPAWN_ITEM(0x05), SELL_LIST(0x06), BUY_LIST(0x07), DELETE_OBJECT(0x08), CHARACTER_SELECTION_INFO(0x09), LOGIN_FAIL(0x0A), CHARACTER_SELECTED(0x0B), NPC_INFO(0x0C), NEW_CHARACTER_SUCCESS(0x0D), NEW_CHARACTER_FAIL(0x0E), CHARACTER_CREATE_SUCCESS(0x0F), CHARACTER_CREATE_FAIL(0x10), ITEM_LIST(0x11), SUN_RISE(0x12), SUN_SET(0x13), TRADE_START(0x14), TRADE_START_OK(0x15), DROP_ITEM(0x16), GET_ITEM(0x17), STATUS_UPDATE(0x18), NPC_HTML_MESSAGE(0x19), TRADE_OWN_ADD(0x1A), TRADE_OTHER_ADD(0x1B), TRADE_DONE(0x1C), CHARACTER_DELETE_SUCCESS(0x1D), CHARACTER_DELETE_FAIL(0x1E), ACTION_FAIL(0x1F), SEVER_CLOSE(0x20), INVENTORY_UPDATE(0x21), TELEPORT_TO_LOCATION(0x22), TARGET_SELECTED(0x23), TARGET_UNSELECTED(0x24), AUTO_ATTACK_START(0x25), AUTO_ATTACK_STOP(0x26), SOCIAL_ACTION(0x27), CHANGE_MOVE_TYPE(0x28), CHANGE_WAIT_TYPE(0x29), MANAGE_PLEDGE_POWER(0x2A), CREATE_PLEDGE(0x2B), ASK_JOIN_PLEDGE(0x2C), JOIN_PLEDGE(0x2D), VERSION_CHECK(0x2E), MOVE_TO_LOCATION(0x2F), NPC_SAY(0x30), CHAR_INFO(0x31), USER_INFO(0x32), ATTACK(0x33), WITHDRAWAL_PLEDGE(0x34), OUST_PLEDGE_MEMBER(0x35), SET_OUST_PLEDGE_MEMBER(0x36), DISMISS_PLEDGE(0x37), SET_DISMISS_PLEDGE(0x38), ASK_JOIN_PARTY(0x39), JOIN_PARTY(0x3A), WITHDRAWAL_PARTY(0x3B), OUST_PARTY_MEMBER(0x3C), SET_OUST_PARTY_MEMBER(0x3D), DISMISS_PARTY(0x3E), SET_DISMISS_PARTY(0x3F), MAGIC_AND_SKILL_LIST(0x40), WAREHOUSE_DEPOSIT_LIST(0x41), WAREHOUSE_WITHDRAW_LIST(0x42), WAREHOUSE_DONE(0x43), SHORT_CUT_REGISTER(0x44), SHORT_CUT_INIT(0x45), SHORT_CUT_DELETE(0x46), STOP_MOVE(0x47), MAGIC_SKILL_USE(0x48), MAGIC_SKILL_CANCELED(0x49), SAY2(0x4A), NPC_INFO_ABNORMAL_VISUAL_EFFECT(0x4B), DOOR_INFO(0x4C), DOOR_STATUS_UPDATE(0x4D), PARTY_SMALL_WINDOW_ALL(0x4E), PARTY_SMALL_WINDOW_ADD(0x4F), PARTY_SMALL_WINDOW_DELETE_ALL(0x50), PARTY_SMALL_WINDOW_DELETE(0x51), PARTY_SMALL_WINDOW_UPDATE(0x52), TRADE_PRESS_OWN_OK(0x53), MAGIC_SKILL_LAUNCHED(0x54), FRIEND_ADD_REQUEST_RESULT(0x55), FRIEND_ADD(0x56), FRIEND_REMOVE(0x57), FRIEND_LIST(0x58), FRIEND_STATUS(0x59), PLEDGE_SHOW_MEMBER_LIST_ALL(0x5A), PLEDGE_SHOW_MEMBER_LIST_UPDATE(0x5B), PLEDGE_SHOW_MEMBER_LIST_ADD(0x5C), PLEDGE_SHOW_MEMBER_LIST_DELETE(0x5D), MAGIC_LIST(0x5E), SKILL_LIST(0x5F), VEHICLE_INFO(0x60), FINISH_ROTATING(0x61), SYSTEM_MESSAGE(0x62), START_PLEDGE_WAR(0x63), REPLY_START_PLEDGE_WAR(0x64), STOP_PLEDGE_WAR(0x65), REPLY_STOP_PLEDGE_WAR(0x66), SURRENDER_PLEDGE_WAR(0x67), REPLY_SURRENDER_PLEDGE_WAR(0x68), SET_PLEDGE_CREST(0x69), PLEDGE_CREST(0x6A), SETUP_GAUGE(0x6B), VEHICLE_DEPARTURE(0x6C), VEHICLE_CHECK_LOCATION(0x6D), GET_ON_VEHICLE(0x6E), GET_OFF_VEHICLE(0x6F), TRADE_REQUEST(0x70), RESTART_RESPONSE(0x71), MOVE_TO_PAWN(0x72), SSQ_INFO(0x73), GAME_GUARD_QUERY(0x74), L2_FRIEND_LIST(0x75), L2_FRIEND(0x76), L2_FRIEND_STATUS(0x77), L2_FRIEND_SAY(0x78), VALIDATE_LOCATION(0x79), START_ROTATING(0x7A), SHOW_BOARD(0x7B), CHOOSE_INVENTORY_ITEM(0x7C), DUMMY(0x7D), MOVE_TO_LOCATION_IN_VEHICLE(0x7E), STOP_MOVE_IN_VEHICLE(0x7F), VALIDATE_LOCATION_IN_VEHICLE(0x80), TRADE_UPDATE(0x81), TRADE_PRESS_OTHER_OK(0x82), FRIEND_ADD_REQUEST(0x83), LOG_OUT_OK(0x84), ABNORMAL_STATUS_UPDATE(0x85), QUEST_LIST(0x86), ENCHANT_RESULT(0x87), PLEDGE_SHOW_MEMBER_LIST_DELETE_ALL(0x88), PLEDGE_INFO(0x89), PLEDGE_EXTENDED_INFO(0x8A), SUMMON_INFO(0x8B), RIDE(0x8C), DUMMY2(0x8D), PLEDGE_SHOW_INFO_UPDATE(0x8E), CLIENT_ACTION(0x8F), ACQUIRE_SKILL_LIST(0x90), ACQUIRE_SKILL_INFO(0x91), SERVER_OBJECT_INFO(0x92), GM_HIDE(0x93), ACQUIRE_SKILL_DONE(0x94), GM_VIEW_CHARACTER_INFO(0x95), GM_VIEW_PLEDGE_INFO(0x96), GM_VIEW_SKILL_INFO(0x97), GM_VIEW_MAGIC_INFO(0x98), GM_VIEW_QUEST_INFO(0x99), GM_VIEW_ITEM_LIST(0x9A), GM_VIEW_WAREHOUSE_WITHDRAW_LIST(0x9B), LIST_PARTY_WATING(0x9C), PARTY_ROOM_INFO(0x9D), PLAY_SOUND(0x9E), STATIC_OBJECT(0x9F), PRIVATE_STORE_MANAGE_LIST(0xA0), PRIVATE_STORE_LIST(0xA1), PRIVATE_STORE_MSG(0xA2), SHOW_MINIMAP(0xA3), REVIVE_REQUEST(0xA4), ABNORMAL_VISUAL_EFFECT(0xA5), TUTORIAL_SHOW_HTML(0xA6), TUTORIAL_SHOW_QUESTION_MARK(0xA7), TUTORIAL_ENABLE_CLIENT_EVENT(0xA8), TUTORIAL_CLOSE_HTML(0xA9), SHOW_RADAR(0xAA), WITHDRAW_ALLIANCE(0xAB), OUST_ALLIANCE_MEMBER_PLEDGE(0xAC), DISMISS_ALLIANCE(0xAD), SET_ALLIANCE_CREST(0xAE), ALLIANCE_CREST(0xAF), SERVER_CLOSE_SOCKET(0xB0), PET_STATUS_SHOW(0xB1), PET_INFO(0xB2), PET_ITEM_LIST(0xB3), PET_INVENTORY_UPDATE(0xB4), ALLIANCE_INFO(0xB5), PET_STATUS_UPDATE(0xB6), PET_DELETE(0xB7), DELETE_RADAR(0xB8), MY_TARGET_SELECTED(0xB9), PARTY_MEMBER_POSITION(0xBA), ASK_JOIN_ALLIANCE(0xBB), JOIN_ALLIANCE(0xBC), PRIVATE_STORE_BUY_MANAGE_LIST(0xBD), PRIVATE_STORE_BUY_LIST(0xBE), PRIVATE_STORE_BUY_MSG(0xBF), VEHICLE_START(0xC0), NPC_INFO_STATE(0xC1), START_ALLIANCE_WAR(0xC2), REPLY_START_ALLIANCE_WAR(0xC3), STOP_ALLIANCE_WAR(0xC4), REPLY_STOP_ALLIANCE_WAR(0xC5), SURRENDER_ALLIANCE_WAR(0xC6), SKILL_COOL_TIME(0xC7), PACKAGE_TO_LIST(0xC8), CASTLE_SIEGE_INFO(0xC9), CASTLE_SIEGE_ATTACKER_LIST(0xCA), CASTLE_SIEGE_DEFENDER_LIST(0xCB), NICK_NAME_CHANGED(0xCC), PLEDGE_STATUS_CHANGED(0xCD), RELATION_CHANGED(0xCE), EVENT_TRIGGER(0xCF), MULTI_SELL_LIST(0xD0), SET_SUMMON_REMAIN_TIME(0xD1), PACKAGE_SENDABLE_LIST(0xD2), EARTHQUAKE(0xD3), FLY_TO_LOCATION(0xD4), BLOCK_LIST(0xD5), SPECIAL_CAMERA(0xD6), NORMAL_CAMERA(0xD7), SKILL_REMAIN_SEC(0xD8), NET_PING(0xD9), DICE(0xDA), SNOOP(0xDB), RECIPE_BOOK_ITEM_LIST(0xDC), RECIPE_ITEM_MAKE_INFO(0xDD), RECIPE_SHOP_MANAGE_LIST(0xDE), RECIPE_SHOP_SELL_LIST(0xDF), RECIPE_SHOP_ITEM_INFO(0xE0), RECIPE_SHOP_MSG(0xE1), SHOW_CALC(0xE2), MON_RACE_INFO(0xE3), HENNA_ITEM_INFO(0xE4), HENNA_INFO(0xE5), HENNA_UNEQUIP_LIST(0xE6), HENNA_UNEQUIP_INFO(0xE7), MACRO_LIST(0xE8), BUY_LIST_SEED(0xE9), SHOW_TOWN_MAP(0xEA), OBSERVER_START(0xEB), OBSERVER_END(0xEC), CHAIR_SIT(0xED), HENNA_EQUIP_LIST(0xEE), SELL_LIST_PROCURE(0xEF), GMHENNA_INFO(0xF0), RADAR_CONTROL(0xF1), CLIENT_SET_TIME(0xF2), CONFIRM_DLG(0xF3), PARTY_SPELLED(0xF4), SHOP_PREVIEW_LIST(0xF5), SHOP_PREVIEW_INFO(0xF6), CAMERA_MODE(0xF7), SHOW_XMAS_SEAL(0xF8), ETC_STATUS_UPDATE(0xF9), SHORT_BUFF_STATUS_UPDATE(0xFA), SSQ_STATUS(0xFB), PETITION_VOTE(0xFC), AGIT_DECO_INFO(0xFD), DUMMY3(0xFE), // ExPackets EX_DUMMY(0xFE, 0x00), EX_REGEN_MAX(0xFE, 0x01), EX_EVENT_MATCH_USER_INFO(0xFE, 0x02), EX_COLOSSEUM_FENCE_INFO(0xFE, 0x03), EX_EVENT_MATCH_SPELLED_INFO(0xFE, 0x04), EX_EVENT_MATCH_FIRECRACKER(0xFE, 0x05), EX_EVENT_MATCH_TEAM_UNLOCKED(0xFE, 0x06), EX_EVENT_MATCH_GMTEST(0xFE, 0x07), EX_PARTY_ROOM_MEMBER(0xFE, 0x08), EX_CLOSE_PARTY_ROOM(0xFE, 0x09), EX_MANAGE_PARTY_ROOM_MEMBER(0xFE, 0x0A), EX_EVENT_MATCH_LOCK_RESULT(0xFE, 0x0B), EX_AUTO_SOUL_SHOT(0xFE, 0x0C), EX_EVENT_MATCH_LIST(0xFE, 0x0D), EX_EVENT_MATCH_OBSERVER(0xFE, 0x0E), EX_EVENT_MATCH_MESSAGE(0xFE, 0x0F), EX_EVENT_MATCH_SCORE(0xFE, 0x10), EX_SERVER_PRIMITIVE(0xFE, 0x11), EX_OPEN_MPCC(0xFE, 0x12), EX_CLOSE_MPCC(0xFE, 0x13), EX_SHOW_CASTLE_INFO(0xFE, 0x14), EX_SHOW_FORTRESS_INFO(0xFE, 0x15), EX_SHOW_AGIT_INFO(0xFE, 0x16), EX_SHOW_FORTRESS_SIEGE_INFO(0xFE, 0x17), EX_PARTY_PET_WINDOW_ADD(0xFE, 0x18), EX_PARTY_PET_WINDOW_UPDATE(0xFE, 0x19), EX_ASK_JOIN_MPCC(0xFE, 0x1A), EX_PLEDGE_EMBLEM(0xFE, 0x1B), EX_EVENT_MATCH_TEAM_INFO(0xFE, 0x1C), EX_EVENT_MATCH_CREATE(0xFE, 0x1D), EX_FISHING_START(0xFE, 0x1E), EX_FISHING_END(0xFE, 0x1F), EX_SHOW_QUEST_INFO(0xFE, 0x20), EX_SHOW_QUEST_MARK(0xFE, 0x21), EX_SEND_MANOR_LIST(0xFE, 0x22), EX_SHOW_SEED_INFO(0xFE, 0x23), EX_SHOW_CROP_INFO(0xFE, 0x24), EX_SHOW_MANOR_DEFAULT_INFO(0xFE, 0x25), EX_SHOW_SEED_SETTING(0xFE, 0x26), EX_FISHING_START_COMBAT(0xFE, 0x27), EX_FISHING_HP_REGEN(0xFE, 0x28), EX_ENCHANT_SKILL_LIST(0xFE, 0x29), EX_ENCHANT_SKILL_INFO(0xFE, 0x2A), EX_SHOW_CROP_SETTING(0xFE, 0x2B), EX_SHOW_SELL_CROP_LIST(0xFE, 0x2C), EX_OLYMPIAD_MATCH_END(0xFE, 0x2D), EX_MAIL_ARRIVED(0xFE, 0x2E), EX_STORAGE_MAX_COUNT(0xFE, 0x2F), EX_EVENT_MATCH_MANAGE(0xFE, 0x30), EX_MULTI_PARTY_COMMAND_CHANNEL_INFO(0xFE, 0x31), EX_PCCAFE_POINT_INFO(0xFE, 0x32), EX_SET_COMPASS_ZONE_CODE(0xFE, 0x33), EX_GET_BOSS_RECORD(0xFE, 0x34), EX_ASK_JOIN_PARTY_ROOM(0xFE, 0x35), EX_LIST_PARTY_MATCHING_WAITING_ROOM(0xFE, 0x36), EX_SET_MPCC_ROUTING(0xFE, 0x37), EX_SHOW_ADVENTURER_GUIDE_BOOK(0xFE, 0x38), EX_SHOW_SCREEN_MESSAGE(0xFE, 0x39), PLEDGE_SKILL_LIST(0xFE, 0x3A), PLEDGE_SKILL_LIST_ADD(0xFE, 0x3B), PLEDGE_SKILL_LIST_REMOVE(0xFE, 0x3C), PLEDGE_POWER_GRADE_LIST(0xFE, 0x3D), PLEDGE_RECEIVE_POWER_INFO(0xFE, 0x3E), PLEDGE_RECEIVE_MEMBER_INFO(0xFE, 0x3F), PLEDGE_RECEIVE_WAR_LIST(0xFE, 0x40), PLEDGE_RECEIVE_SUB_PLEDGE_CREATED(0xFE, 0x41), EX_RED_SKY(0xFE, 0x42), PLEDGE_RECEIVE_UPDATE_POWER(0xFE, 0x43), FLY_SELF_DESTINATION(0xFE, 0x44), SHOW_PCCAFE_COUPON_SHOW_UI(0xFE, 0x45), EX_SEARCH_ORC(0xFE, 0x46), EX_CURSED_WEAPON_LIST(0xFE, 0x47), EX_CURSED_WEAPON_LOCATION(0xFE, 0x48), EX_RESTART_CLIENT(0xFE, 0x49), EX_REQUEST_HACK_SHIELD(0xFE, 0x4A), EX_USE_SHARED_GROUP_ITEM(0xFE, 0x4B), EX_MPCCSHOW_PARTY_MEMBER_INFO(0xFE, 0x4C), EX_DUEL_ASK_START(0xFE, 0x4D), EX_DUEL_READY(0xFE, 0x4E), EX_DUEL_START(0xFE, 0x4F), EX_DUEL_END(0xFE, 0x50), EX_DUEL_UPDATE_USER_INFO(0xFE, 0x51), EX_SHOW_VARIATION_MAKE_WINDOW(0xFE, 0x52), EX_SHOW_VARIATION_CANCEL_WINDOW(0xFE, 0x53), EX_PUT_ITEM_RESULT_FOR_VARIATION_MAKE(0xFE, 0x54), EX_PUT_INTENSIVE_RESULT_FOR_VARIATION_MAKE(0xFE, 0x55), EX_PUT_COMMISSION_RESULT_FOR_VARIATION_MAKE(0xFE, 0x56), EX_VARIATION_RESULT(0xFE, 0x57), EX_PUT_ITEM_RESULT_FOR_VARIATION_CANCEL(0xFE, 0x58), EX_VARIATION_CANCEL_RESULT(0xFE, 0x59), EX_DUEL_ENEMY_RELATION(0xFE, 0x5A), EX_PLAY_ANIMATION(0xFE, 0x5B), EX_MPCCPARTY_INFO_UPDATE(0xFE, 0x5C), EX_PLAY_SCENE(0xFE, 0x5D), EX_SPAWN_EMITTER(0xFE, 0x5E), EX_ENCHANT_SKILL_INFO_DETAIL(0xFE, 0x5F), EX_BASIC_ACTION_LIST(0xFE, 0x60), EX_AIR_SHIP_INFO(0xFE, 0x61), EX_ATTRIBUTE_ENCHANT_RESULT(0xFE, 0x62), EX_CHOOSE_INVENTORY_ATTRIBUTE_ITEM(0xFE, 0x63), EX_GET_ON_AIR_SHIP(0xFE, 0x64), EX_GET_OFF_AIR_SHIP(0xFE, 0x65), EX_MOVE_TO_LOCATION_AIR_SHIP(0xFE, 0x66), EX_STOP_MOVE_AIR_SHIP(0xFE, 0x67), EX_SHOW_TRACE(0xFE, 0x68), EX_ITEM_AUCTION_INFO(0xFE, 0x69), EX_NEED_TO_CHANGE_NAME(0xFE, 0x6A), EX_PARTY_PET_WINDOW_DELETE(0xFE, 0x6B), EX_TUTORIAL_LIST(0xFE, 0x6C), EX_RP_ITEM_LINK(0xFE, 0x6D), EX_MOVE_TO_LOCATION_IN_AIR_SHIP(0xFE, 0x6E), EX_STOP_MOVE_IN_AIR_SHIP(0xFE, 0x6F), EX_VALIDATE_LOCATION_IN_AIR_SHIP(0xFE, 0x70), EX_UI_SETTING(0xFE, 0x71), EX_MOVE_TO_TARGET_IN_AIR_SHIP(0xFE, 0x72), EX_ATTACK_IN_AIR_SHIP(0xFE, 0x73), EX_MAGIC_SKILL_USE_IN_AIR_SHIP(0xFE, 0x74), EX_SHOW_BASE_ATTRIBUTE_CANCEL_WINDOW(0xFE, 0x75), EX_BASE_ATTRIBUTE_CANCEL_RESULT(0xFE, 0x76), EX_SUB_PLEDGET_SKILL_ADD(0xFE, 0x77), EX_RESPONSE_FREE_SERVER(0xFE, 0x78), EX_SHOW_PROCURE_CROP_DETAIL(0xFE, 0x79), EX_HERO_LIST(0xFE, 0x7A), EX_OLYMPIAD_USER_INFO(0xFE, 0x7B), EX_OLYMPIAD_SPELLED_INFO(0xFE, 0x7C), EX_OLYMPIAD_MODE(0xFE, 0x7D), EX_SHOW_FORTRESS_MAP_INFO(0xFE, 0x7E), EX_PVP_MATCH_RECORD(0xFE, 0x7F), EX_PVP_MATCH_USER_DIE(0xFE, 0x80), EX_PRIVATE_STORE_WHOLE_MSG(0xFE, 0x81), EX_PUT_ENCHANT_TARGET_ITEM_RESULT(0xFE, 0x82), EX_PUT_ENCHANT_SUPPORT_ITEM_RESULT(0xFE, 0x83), EX_CHANGE_NICKNAME_NCOLOR(0xFE, 0x84), EX_GET_BOOK_MARK_INFO(0xFE, 0x85), EX_NOTIFY_PREMIUM_ITEM(0xFE, 0x86), EX_GET_PREMIUM_ITEM_LIST(0xFE, 0x87), EX_PERIODIC_ITEM_LIST(0xFE, 0x88), EX_JUMP_TO_LOCATION(0xFE, 0x89), EX_PVP_MATCH_CCRECORD(0xFE, 0x8A), EX_PVP_MATCH_CCMY_RECORD(0xFE, 0x8B), EX_PVP_MATCH_CCRETIRE(0xFE, 0x8C), EX_SHOW_TERRITORY(0xFE, 0x8D), EX_NPC_QUEST_HTML_MESSAGE(0xFE, 0x8E), EX_SEND_UIEVENT(0xFE, 0x8F), EX_NOTIFY_BIRTH_DAY(0xFE, 0x90), EX_SHOW_DOMINION_REGISTRY(0xFE, 0x91), EX_REPLY_REGISTER_DOMINION(0xFE, 0x92), EX_REPLY_DOMINION_INFO(0xFE, 0x93), EX_SHOW_OWNTHING_POS(0xFE, 0x94), EX_CLEFT_LIST(0xFE, 0x95), EX_CLEFT_STATE(0xFE, 0x96), EX_DOMINION_CHANNEL_SET(0xFE, 0x97), EX_BLOCK_UP_SET_LIST(0xFE, 0x98), EX_BLOCK_UP_SET_STATE(0xFE, 0x99), EX_START_SCENE_PLAYER(0xFE, 0x9A), EX_AIR_SHIP_TELEPORT_LIST(0xFE, 0x9B), EX_MPCC_ROOM_INFO(0xFE, 0x9C), EX_LIST_MPCC_WAITING(0xFE, 0x9D), EX_DISSMISS_MPCC_ROOM(0xFE, 0x9E), EX_MANAGE_MPCC_ROOM_MEMBER(0xFE, 0x9F), EX_MPCC_ROOM_MEMBER(0xFE, 0xA0), EX_VITALITY_POINT_INFO(0xFE, 0xA1), EX_SHOW_SEED_MAP_INFO(0xFE, 0xA2), EX_MPCC_PARTYMASTER_LIST(0xFE, 0xA3), EX_DOMINION_WAR_START(0xFE, 0xA4), EX_DOMINION_WAR_END(0xFE, 0xA5), EX_SHOW_LINES(0xFE, 0xA6), EX_PARTY_MEMBER_RENAMED(0xFE, 0xA7), EX_ENCHANT_SKILL_RESULT(0xFE, 0xA8), EX_REFUND_LIST(0xFE, 0xA9), EX_NOTICE_POST_ARRIVED(0xFE, 0xAA), EX_SHOW_RECEIVED_POST_LIST(0xFE, 0xAB), EX_REPLY_RECEIVED_POST(0xFE, 0xAC), EX_SHOW_SENT_POST_LIST(0xFE, 0xAD), EX_REPLY_SENT_POST(0xFE, 0xAE), EX_RESPONSE_SHOW_STEP_ONE(0xFE, 0xAF), EX_RESPONSE_SHOW_STEP_TWO(0xFE, 0xB0), EX_RESPONSE_SHOW_CONTENTS(0xFE, 0xB1), EX_SHOW_PETITION_HTML(0xFE, 0xB2), EX_REPLY_POST_ITEM_LIST(0xFE, 0xB3), EX_CHANGE_POST_STATE(0xFE, 0xB4), EX_REPLY_WRITE_POST(0xFE, 0xB5), EX_INITIALIZE_SEED(0xFE, 0xB6), EX_RAID_RESERVE_RESULT(0xFE, 0xB7), EX_BUY_SELL_LIST(0xFE, 0xB8), EX_CLOSE_RAID_SOCKET(0xFE, 0xB9), EX_PRIVATE_MARKET_LIST(0xFE, 0xBA), EX_RAID_CHARACTER_SELECTED(0xFE, 0xBB), EX_ASK_COUPLE_ACTION(0xFE, 0xBC), EX_BR_BROADCAST_EVENT_STATE(0xFE, 0xBD), EX_BR_LOAD_EVENT_TOP_RANKERS(0xFE, 0xBE), EX_CHANGE_NPC_STATE(0xFE, 0xBF), EX_ASK_MODIFY_PARTY_LOOTING(0xFE, 0xC0), EX_SET_PARTY_LOOTING(0xFE, 0xC1), EX_ROTATION(0xFE, 0xC2), EX_CHANGE_CLIENT_EFFECT_INFO(0xFE, 0xC3), EX_MEMBERSHIP_INFO(0xFE, 0xC4), EX_REPLY_HAND_OVER_PARTY_MASTER(0xFE, 0xC5), EX_QUEST_NPC_LOG_LIST(0xFE, 0xC6), EX_QUEST_ITEM_LIST(0xFE, 0xC7), EX_GM_VIEW_QUEST_ITEM_LIST(0xFE, 0xC8), EX_RESTART_RESPONSE(0xFE, 0xC9), EX_VOTE_SYSTEM_INFO(0xFE, 0xCA), EX_SHUTTLE_INFO(0xFE, 0xCB), EX_SUTTLE_GET_ON(0xFE, 0xCC), EX_SUTTLE_GET_OFF(0xFE, 0xCD), EX_SUTTLE_MOVE(0xFE, 0xCE), EX_MOVE_TO_LOCATION_IN_SUTTLE(0xFE, 0xCF), EX_STOP_MOVE_IN_SHUTTLE(0xFE, 0xD0), EX_VALIDATE_LOCATION_IN_SHUTTLE(0xFE, 0xD1), EX_AGIT_AUCTION_CMD(0xFE, 0xD2), EX_CONFIRM_ADDING_POST_FRIEND(0xFE, 0xD3), EX_RECEIVE_SHOW_POST_FRIEND(0xFE, 0xD4), EX_RECEIVE_OLYMPIAD(0xFE, 0xD5), EX_BR_GAME_POINT(0xFE, 0xD6), EX_BR_PRODUCT_LIST(0xFE, 0xD7), EX_BR_PRODUCT_INFO(0xFE, 0xD8), EX_BR_BUY_PRODUCT(0xFE, 0xD9), EX_BR_PREMIUM_STATE(0xFE, 0xDA), EX_BR_EXTRA_USER_INFO(0xFE, 0xDB), EX_BR_BUFF_EVENT_STATE(0xFE, 0xDC), EX_BR_RECENT_PRODUCT_LIST(0xFE, 0xDD), EX_BR_MINIGAME_LOAD_SCORES(0xFE, 0xDE), EX_BR_AGATHION_ENERGY_INFO(0xFE, 0xDF), EX_SHOW_CHANNELING_EFFECT(0xFE, 0xE0), EX_GET_CRYSTALIZING_ESTIMATION(0xFE, 0xE1), EX_GET_CRYSTALIZING_FAIL(0xFE, 0xE2), EX_NAVIT_ADVENT_POINT_INFO(0xFE, 0xE3), EX_NAVIT_ADVENT_EFFECT(0xFE, 0xE4), EX_NAVIT_ADVENT_TIME_CHANGE(0xFE, 0xE5), EX_ABNORMAL_STATUS_UPDATE_FROM_TARGET(0xFE, 0xE6), EX_STOP_SCENE_PLAYER(0xFE, 0xE7), EX_FLY_MOVE(0xFE, 0xE8), EX_DYNAMIC_QUEST(0xFE, 0xE9), EX_SUBJOB_INFO(0xFE, 0xEA), EX_CHANGE_MPCOST(0xFE, 0xEB), EX_FRIEND_DETAIL_INFO(0xFE, 0xEC), EX_BLOCK_ADD_RESULT(0xFE, 0xED), EX_BLOCK_REMOVE_RESULT(0xFE, 0xEE), EX_BLOCK_DEFAIL_INFO(0xFE, 0xEF), EX_LOAD_INZONE_PARTY_HISTORY(0xFE, 0xF0), EX_FRIEND_NOTIFY_NAME_CHANGE(0xFE, 0xF1), EX_SHOW_COMMISSION(0xFE, 0xF2), EX_RESPONSE_COMMISSION_ITEM_LIST(0xFE, 0xF3), EX_RESPONSE_COMMISSION_INFO(0xFE, 0xF4), EX_RESPONSE_COMMISSION_REGISTER(0xFE, 0xF5), EX_RESPONSE_COMMISSION_DELETE(0xFE, 0xF6), EX_RESPONSE_COMMISSION_LIST(0xFE, 0xF7), EX_RESPONSE_COMMISSION_BUY_INFO(0xFE, 0xF8), EX_RESPONSE_COMMISSION_BUY_ITEM(0xFE, 0xF9), EX_ACQUIRABLE_SKILL_LIST_BY_CLASS(0xFE, 0xFA), EX_MAGIC_ATTACK_INFO(0xFE, 0xFB), EX_ACQUIRE_SKILL_INFO(0xFE, 0xFC), EX_NEW_SKILL_TO_LEARN_BY_LEVEL_UP(0xFE, 0xFD), EX_CALL_TO_CHANGE_CLASS(0xFE, 0xFE), EX_CHANGE_TO_AWAKENED_CLASS(0xFE, 0xFF), EX_TACTICAL_SIGN(0xFE, 0x100), EX_LOAD_STAT_WORLD_RANK(0xFE, 0x101), EX_LOAD_STAT_USER(0xFE, 0x102), EX_LOAD_STAT_HOT_LINK(0xFE, 0x103), EX_GET_WEB_SESSION_ID(0xFE, 0x104), EX_2ND_PASSWORD_CHECK(0xFE, 0x105), EX_2ND_PASSWORD_VERIFY(0xFE, 0x106), EX_2ND_PASSWORD_ACK(0xFE, 0x107), EX_FLY_MOVE_BROADCAST(0xFE, 0x108), EX_SHOW_USM(0xFE, 0x109), EX_SHOW_STAT_PAGE(0xFE, 0x10A), EX_IS_CHAR_NAME_CREATABLE(0xFE, 0x10B), EX_GOODS_INVENTORY_CHANGED_NOTI(0xFE, 0x10C), EX_GOODS_INVENTORY_INFO(0xFE, 0x10D), EX_GOODS_INVENTORY_RESULT(0xFE, 0x10E), EX_ALTER_SKILL_REQUEST(0xFE, 0x10F), EX_NOTIFY_FLY_MOVE_START(0xFE, 0x110), EX_DUMMY2(0xFE, 0x111), EX_CLOSE_COMMISSION(0xFE, 0x112), EX_CHANGE_ATTRIBUTE_ITEM_LIST(0xFE, 0x113), EX_CHANGE_ATTRIBUTE_INFO(0xFE, 0x114), EX_CHANGE_ATTRIBUTE_OK(0xFE, 0x115), EX_CHANGE_ATTRIBUTE_FAIL(0xFE, 0x116), EX_LIGHTING_CANDLE_EVENT(0xFE, 0x117), EX_VITALITY_EFFECT_INFO(0xFE, 0x118), EX_LOGIN_VITALITY_EFFECT_INFO(0xFE, 0x119), EX_BR_PRESENT_BUY_PRODUCT(0xFE, 0x11A), EX_MENTOR_LIST(0xFE, 0x11B), EX_MENTOR_ADD(0xFE, 0x11C), LIST_MENTEE_WAITING(0xFE, 0x11D), EX_INZONE_WAITING_INFO(0xFE, 0x11E), EX_CURIOUS_HOUSE_STATE(0xFE, 0x11F), EX_CURIOUS_HOUSE_ENTER(0xFE, 0x120), EX_CURIOUS_HOUSE_LEAVE(0xFE, 0x121), EX_CURIOUS_HOUSE_MEMBER_LIST(0xFE, 0x122), EX_CURIOUS_HOUSE_MEMBER_UPDATE(0xFE, 0x123), EX_CURIOUS_HOUSE_REMAIN_TIME(0xFE, 0x124), EX_CURIOUS_HOUSE_RESULT(0xFE, 0x125), EX_CURIOUS_HOUSE_OBSERVE_LIST(0xFE, 0x126), EX_CURIOUS_HOUSE_OBSERVE_MODE(0xFE, 0x127), EX_SYSSTRING(0xFE, 0x128), EX_CHOOSE_SHAPE_SHIFTING_ITEM(0xFE, 0x129), EX_PUT_SHAPE_SHIFTING_TARGET_ITEM_RESULT(0xFE, 0x12A), EX_PUT_SHAPE_SHIFTING_EXTRACTION_ITEM_RESULT(0xFE, 0x12B), EX_SHAPE_SHIFTING_RESULT(0xFE, 0x12C), EX_CASTLE_STATE(0xFE, 0x12D), EX_NCGUARD_RECEIVE_DATA_FROM_SERVER(0xFE, 0x12E), EX_KALIE_EVENT(0xFE, 0x12F), EX_KALIE_EVENT_JACKPOT_USER(0xFE, 0x130), EX_ABNORMAL_VISUAL_EFFECT_INFO(0xFE, 0x131), EX_NPC_INFO_SPEED(0xFE, 0x132), EX_SET_PLEDGE_EMBLEM_ACK(0xFE, 0x133), EX_SHOW_BEAUTY_MENU(0xFE, 0x134), EX_RESPONSE_BEAUTY_LIST(0xFE, 0x135), EX_RESPONSE_BEAUTY_REGIST_RESET(0xFE, 0x136), EX_RESPONSE_RESET_LIST(0xFE, 0x137), EX_SHUFFLE_SEED_AND_PUBLIC_KEY(0xFE, 0x138), EX_CHECK_SPEED_HACK(0xFE, 0x139), EX_BR_NEW_ICON_CASH_BTN_WND(0xFE, 0x13A), EX_EVENT_CAMPAIGN_INFO(0xFE, 0x13B), EX_UN_READ_MAIL_COUNT(0xFE, 0x13C), EX_PLEDGE_COUNT(0xFE, 0x13D), EX_ADENA_INVEN_COUNT(0xFE, 0x13E), EX_PLEDGE_RECRUIT_INFO(0xFE, 0x13F), EX_PLEDGE_RECRUIT_APPLY_INFO(0xFE, 0x140), EX_PLEDGE_RECRUIT_BOARD_SEARCH(0xFE, 0x141), EX_PLEDGE_RECRUIT_BOARD_DETAIL(0xFE, 0x142), EX_PLEDGE_WAITING_LIST_APPLIED(0xFE, 0x143), EX_PLEDGE_WAITING_LIST(0xFE, 0x144), EX_PLEDGE_WAITING_USER(0xFE, 0x145), EX_PLEDGE_DRAFT_LIST_SEARCH(0xFE, 0x146), EX_PLEDGE_WAITING_LIST_ALARM(0xFE, 0x147), EX_VALIDATE_ACTIVE_CHARACTER(0xFE, 0x148), EX_CLOSE_COMMISSION_REGISTER(0xFE, 0x149), EX_TELEPORT_TO_LOCATION_ACTIVATE(0xFE, 0x14A), EX_NOTIFY_WEB_PETITION_REPLY_ALARM(0xFE, 0x14B), EX_EVENT_SHOW_XMAS_WISH_CARD(0xFE, 0x14C), EX_INVITATION_EVENT_UI_SETTING(0xFE, 0x14D), EX_INVITATION_EVENT_INK_ENERGY(0xFE, 0x14E), EX_CHECK_ABUSING(0xFE, 0x14F), EX_GMVITALITY_EFFECT_INFO(0xFE, 0x150), EX_PATH_TO_AWAKENING_ALARM(0xFE, 0x151), EX_PUT_ENCHANT_SCROLL_ITEM_RESULT(0xFE, 0x152), EX_REMOVE_ENCHANT_SUPPORT_ITEM_RESULT(0xFE, 0x153), EX_SHOW_CARD_REWARD_LIST(0xFE, 0x154), EX_GM_VIEW_CHARACTER_INFO(0xFE, 0x155), EX_USER_INFO_EQUIP_SLOT(0xFE, 0x156), EX_USER_INFO_CUBIC(0xFE, 0x157), EX_USER_INFO_ABNORMAL_VISUAL_EFFECT(0xFE, 0x158), EX_USER_INFO_FISHING(0xFE, 0x159), EX_PARTY_SPELLED_INFO_UPDATE(0xFE, 0x15A), EX_DIVIDE_ADENA_START(0xFE, 0x15B), EX_DIVIDE_ADENA_CANCEL(0xFE, 0x15C), EX_DIVIDE_ADENA_DONE(0xFE, 0x15D), EX_PET_INFO(0xFE, 0x15E), EX_ACQUIRE_AP_SKILL_LIST(0xFE, 0x15F), EX_START_LUCKY_GAME(0xFE, 0x160), EX_BETTING_LUCKY_GAME_RESULT(0xFE, 0x161), EX_TRAINING_ZONE_ADMISSION(0xFE, 0x162), EX_TRAINING_ZONE_LEAVING(0xFE, 0x163), EX_PERIODIC_HENNA(0xFE, 0x164), EX_SHOW_AP_LIST_WND(0xFE, 0x165), EX_USER_INFO_INVEN_WEIGHT(0xFE, 0x166), EX_CLOSE_AP_LIST_WND(0xFE, 0x167), EX_ENCHANT_ONE_OK(0xFE, 0x168), EX_ENCHANT_ONE_FAIL(0xFE, 0x169), EX_ENCHANT_ONE_REMOVE_OK(0xFE, 0x16A), EX_ENCHANT_ONE_REMOVE_FAIL(0xFE, 0x16B), EX_ENCHANT_TWO_OK(0xFE, 0x16C), EX_ENCHANT_TWO_FAIL(0xFE, 0x16D), EX_ENCHANT_TWO_REMOVE_OK(0xFE, 0x16E), EX_ENCHANT_TWO_REMOVE_FAIL(0xFE, 0x16F), EX_ENCHANT_SUCESS(0xFE, 0x170), EX_ENCHANT_FAIL(0xFE, 0x171), EX_ENCHANT_RETRY_TO_PUT_ITEM_OK(0xFE, 0x172), EX_ENCHANT_RETRY_TO_PUT_ITEM_FAIL(0xFE, 0x173), EX_ACCOUNT_ATTENDANCE_INFO(0xFE, 0x174), EX_WORLD_CHAT_CNT(0xFE, 0x175), EX_ALCHEMY_SKILL_LIST(0xFE, 0x176), EX_TRY_MIX_CUBE(0xFE, 0x177), EX_ALCHEMY_CONVERSION(0xFE, 0x178), EX_BEAUTY_ITEM_LIST(0xFE, 0x179), EX_RECEIVE_CLIENT_INI(0xFE, 0x17A), EX_AUTO_FISH_AVAILABLE(0xFE, 0x17B), EX_CHANNEL_CHAT_ENTER_WORLD(0xFE, 0x17C), EX_CHANNEL_CHAT_PLEGE_INFO(0xFE, 0x17D), EX_VIP_ATTENDANCE_ITEM_LIST(0xFE, 0x17E), EX_CONFIRM_VIP_ATTENDANCE_CHECK(0xFE, 0x17F), EX_SHOW_ENSOUL_WINDOW(0xFE, 0x180), EX_ENSOUL_RESULT(0xFE, 0x181), EX_MULTISELL_RESULT(0xFE, 0x182), EX_CASTLE_WAR_SEASON_RESULT(0xFE, 0x183), EX_CASTLE_WAR_SEASON_REWARD(0xFE, 0x184), RECIVE_VIP_PRODUCT_LIST(0xFE, 0x185), RECIVE_VIP_LUCKY_GAME_INFO(0xFE, 0x186), RECIVE_VIP_LUCKY_GAME_ITEM_LIST(0xFE, 0x187), RECIVE_VIP_LUCKY_GAME_RESULT(0xFE, 0x188), RECIVE_VIP_INFO(0xFE, 0x189), RECIVE_VIP_INFO_REMAIN_TIME(0xFE, 0x18A), RECEIVE_VIP_BOT_CAPTCHA_IMAGE(0xFE, 0x18B), RECEIVE_VIP_BOT_CAPTCHA_ANSWER_RESULT(0xFE, 0x18C), EX_PLEDGE_SINGIN_FOR_OPEN_JOINING_METHOD(0xFE, 0x18D), EX_REQUEST_MATCH_ARENA(0xFE, 0x18E), EX_COMPLETE_MATCH_ARENA(0xFE, 0x18F), EX_CONFIRM_MATCH_ARENA(0xFE, 0x190), EX_CANCEL_MATCH_ARENA(0xFE, 0x191), EX_START_CHOOSE_CLASS_ARENA(0xFE, 0x192), EX_CHANGE_CLASS_ARENA(0xFE, 0x193), EX_CONFIRM_CLASS_ARENA(0xFE, 0x194), EX_START_BATTLE_READY_ARENA(0xFE, 0x195), EX_BATTLE_READY_ARENA(0xFE, 0x196), EX_DECO_NPC_INFO(0xFE, 0x197), EX_DECO_NPC_SET(0xFE, 0x198), EX_FACTION_INFO(0xFE, 0x199), EX_BATTLE_RESULT_ARENA(0xFE, 0x19A), EX_CLOSING_ARENA(0xFE, 0x19B), EX_CLOSED_ARENA(0xFE, 0x19C), EX_DIE_IN_ARENA(0xFE, 0x19D), DUMMY_PACKET(0xFE, 0x19E), EX_ARENA_DASHBOARD(0xFE, 0x19F), EX_ARENA_UPDATE_EQUIP_SLOT(0xFE, 0x1A0), EX_ARENA_KILL_INFO(0xFE, 0x1A1), EX_EXIT_ARENA(0xFE, 0x1A2), EX_BALTHUS_EVENT(0xFE, 0x1A3), EX_BALTHUS_EVENT_JACKPOT_USER(0xFE, 0x1A4), EX_PARTY_MATCHING_ROOM_HISTORY(0xFE, 0x1A5), EX_AI_CONTENT_UI_EVENT(0xFE, 0x1A6), EX_ARENA_CUSTOM_NOTIFICATION(0xFE, 0x1A7), EX_ONE_DAY_RECEIVE_REWARD_LIST(0xFE, 0x1A8), EX_CONNECTED_TIME_AND_GETTABLE_REWARD(0xFE, 0x1A9), EX_TODO_LIST_RECOMMAND(0xFE, 0x1AA), EX_TODO_LIST_INZONE(0xFE, 0x1AB), EX_TODO_LIST_HTML(0xFE, 0x1AC), EX_QUEUE_TICKET(0xFE, 0x1AD), EX_PLEDGE_BONUS_OPEN(0xFE, 0x1AE), EX_PLEDGE_BONUS_LIST(0xFE, 0x1AF), EX_PLEDGE_BONUS_MARK_RESET(0xFE, 0x1B0), EX_PLEDGE_BONUS_UPDATE(0xFE, 0x1B1), EX_SSO_AUTH_TOKEN(0xFE, 0x1B2), EX_QUEUE_TICKET_LOGIN(0xFE, 0x1B3), EX_ENSOUL_EXTRACTION_SHOW(0xFE, 0x1B4), EX_ENSOUL_EXTRACTION_RESULT(0xFE, 0x1B5), EX_FIELD_EVENT_STEP(0xFE, 0x1B6), EX_FIELD_EVENT_POINT(0xFE, 0x1B7), EX_FIELD_EVENT_EFFECT(0xFE, 0x1B8), EX_RAID_BOSS_SPAWN_INFO(0xFE, 0x1B9), EX_RAID_SERVER_INFO(0xFE, 0x1BA), EX_SHOW_AGIT_SIEGE_INFO(0xFE, 0x1BB), EX_ITEM_ACTION_STATUS(0xFE, 0x1BC), EX_MONSTER_BOOK(0xFE, 0x1BD), EX_MONSTER_BOOK_REWARD_ICON(0xFE, 0x1BE), EX_MONSTER_BOOK_REWARD_FACTION_UI(0xFE, 0x1BF), EX_MONSTER_BOOK_OPEN_RESULT(0xFE, 0x1C0), EX_MONSTER_BOOK_CLOSE_FORCE(0xFE, 0x1C1), EX_FACTION_LEVEL_UP_NOTIFY(0xFE, 0x1C2), EX_ITEM_AUCTION_NEXT_INFO(0xFE, 0x1C3), EX_ITEM_AUCTION_UPDATE_BIDDING_INFO(0xFE, 0x1C4), EX_PRIVATE_STORE_BUYING_RESULT(0xFE, 0x1C5), EX_PRIVATE_STORE_SELLING_RESULT(0xFE, 0x1C6), EX_ENTER_WORLD(0xFE, 0x1C7), EX_MATCH_GROUP(0xFE, 0x1C8), EX_MATCH_GROUP_ASK(0xFE, 0x1C9), EX_MATCH_GROUP_WITHDRAW(0xFE, 0x1CA), EX_MATCH_GROUP_OUST(0xFE, 0x1CB), EX_ARENA_SHOW_ENEMY_PARTY_LOCATION(0xFE, 0x1CC), EX_SHOW_UPGRADE_SYSTEM(0xFE, 0x1CD), EX_UPGRADE_SYSTEM_RESULT(0xFE, 0x1CE), EX_CARD_UPDOWN_GAME_START(0xFE, 0x1CF), EX_CARD_UPDOWN_PICK_RESULT(0xFE, 0x1D0), EX_CARD_UPDOWN_GAME_PREPARE_REWARD(0xFE, 0x1D1), EX_CARD_UPDOWN_GAME_REWARD_REPLY(0xFE, 0x1D2), EX_CARD_UPDOWN_GAME_QUIT(0xFE, 0x1D3), EX_ARENA_RANK_ALL(0xFE, 0x1D4), EX_ARENA_MYRANK(0xFE, 0x1D5), EX_PLEDGE_CLASSIC_RAID_INFO(0xFE, 0x1D6), EX_ARENA_OBSERVE(0xFE, 0x1D7), EX_HTML_WITH_NPC_VIEWPORT(0xFE, 0x1D8), EX_PLEDGE_CONTRIBUTION_RANK(0xFE, 0x1D9), EX_PLEDGE_CONTRIBUTION_INFO(0xFE, 0x1DA), EX_PLEDGE_CONTRIBUTION_REWARD(0xFE, 0x1DB), EX_PLEDGE_RAID_INFO(0xFE, 0x1DC), EX_PLEDGE_RAID_RANK(0xFE, 0x1DD), EX_PLEDGE_LEVEL_UP(0xFE, 0x1DE), EX_PLEDGE_SHOW_INFO_UPDATE(0xFE, 0x1DF), EX_PLEDGE_MISSION_INFO(0xFE, 0x1E0), EX_PLEDGE_MISSION_REWARD_COUNT(0xFE, 0x1E1), EX_PLEDGE_MASTERY_INFO(0xFE, 0x1E2), EX_PLEDGE_MASTERY_SET(0xFE, 0x1E3), EX_PLEDGE_MASTERY_RESET(0xFE, 0x1E4), EX_TUTORIAL_SHOW_ID(0xFE, 0x1E5), EX_PLEDGE_SKILL_INFO(0xFE, 0x1E6), EX_PLEDGE_SKILL_ACTIVATE(0xFE, 0x1E7), EX_PLEDGE_ITEM_LIST(0xFE, 0x1E8), EX_PLEDGE_ITEM_ACTIVATE(0xFE, 0x1E9), EX_PLEDGE_ANNOUNCE(0xFE, 0x1EA), EX_PLEDGE_ANNOUNCE_SET(0xFE, 0x1EB), EX_SET_PLEDGE_EMBLEM(0xFE, 0x1EC), EX_SHOW_CREATE_PLEDGE(0xFE, 0x1ED), EX_PLEDGE_ITEM_INFO(0xFE, 0x1EE), EX_PLEDGE_ITEM_BUY(0xFE, 0x1EF), EX_ELEMENTAL_SPIRIT_INFO(0xFE, 0x1F0), EX_ELEMENTAL_SPIRIT_EXTRACT_INFO(0xFE, 0x1F1), EX_ELEMENTAL_SPIRIT_EVOLUTION_INFO(0xFE, 0x1F2), EX_ELEMENTAL_SPIRIT_EVOLUTION(0xFE, 0x1F3), EX_ELEMENTAL_SPIRIT_SET_TALENT(0xFE, 0x1F4), EX_ELEMENTAL_SPIRIT_ABSORB_INFO(0xFE, 0x1F5), EX_ELEMENTAL_SPIRIT_ABSORB(0xFE, 0x1F6), EX_CHOOSE_LOCKED_ITEM(0xFE, 0x1F7), EX_LOCKED_RESULT(0xFE, 0x1F8), EX_ELEMENTAL_SPIRIT_EXTRACT(0xFE, 0x1F9), // 152 EX_OLYMPIAD_INFO(0xFE, 0x1FA), // 152 EX_OLYMPIAD_RECORD(0xFE, 0x1FB), // 152 EX_OLYMPIAD_MATCH_INFO(0xFE, 0x1FC), // 152 EX_ELEMENTAL_SPIRIT_GET_EXP(0xFE, 0x1FD), // 152 EX_ITEM_ANNOUNCE(0xFE, 0x1FE), // 152 EX_DRESS_ROOM_UI_OPEN(0xFE, 0x1FF), EX_DRESS_HANGER_LIST(0xFE, 0x200), EX_USER_BAN_INFO(0xFE, 0x201), EX_TRY_ENCHANT_ARTIFACT_RESULT(0xFE, 0x202), // 152 EX_XIGN_CODE(0xFE, 0x203), // 152 EX_SHOW_UPGRADE_SYSTEM_NORMAL(0xFE, 0x204), // 196 EX_UPGRADE_SYSTEM_NORMAL_RESULT(0xFE, 0x205), // 196 EX_PURCHASE_LIMIT_SHOP_ITEM_L(0xFE, 0x206), // 196 EX_PURCHASE_LIMIT_SHOP_ITEM_B(0xFE, 0x207), // 196 EX_BLOODY_COIN_COUNT(0xFE, 0x208), // 196 EX_CLASS_CHANGE_SET_ALARM(0xFE, 0x209), // 196 EX_REQUEST_CLASS_CHANGE(0xFE, 0x20A), // 196 EX_REQUEST_CLASS_CHANGE_VERIFY(0xFE, 0x20B), // 196 EX_COSTUME_USE_ITEM(0xFE, 0x20C), // 196 EX_CHOOSE_COSTUME_ITEM(0xFE, 0x20D), // 196 EX_SEND_COSTUME_LIST(0xFE, 0x20E), // 196 EX_SEND_COSTUME_LIST_FULL(0xFE, 0x20F), // 196 EX_COSTUME_COLLECTION_SKILL_A(0xFE, 0x211), // 196 EX_COSTUME_EVOLUTION(0xFE, 0x212), // 196 EX_COSTUME_EXTRACT(0xFE, 0x213), // 196 EX_COSTUME_LOCK(0xFE, 0x214), // 196 EX_COSTUME_SHORTCUT_LIST(0xFE, 0x215), // 196 EX_MAGICLAMP_EXP_INFO(0xFE, 0x216), // 196 EX_MAGICLAMP_GAME_INFO(0xFE, 0x217), // 196 EX_MAGICLAMP_GAME_RESULT(0xFE, 0x218), // 196 EX_SHOW_TELEPORT_UI(0xFE, 0x219), // 228 EX_ACTIVATE_AUTO_SHORTCUT(0xFE, 0x21A), // 228 EX_PREMIUM_MANAGER_SHOW_HTML(0xFE, 0x21B), // 228 EX_ACTIVATED_CURSED_TREASURE(0xFE, 0x21C), // 228 EX_PAYBACK_LIST(0xFE, 0x21D), // 228 EX_PAYBACK_GIVE_REWARD(0xFE, 0x21E), // 228 EX_PAYBACK_UI_LAUNCHER(0xFE, 0x21F), // 228 EX_DIE_INFO(0xFE, 0x220), // 228 EX_AUTOPLAY_SETTING(0xFE, 0x221), // 228 EX_AUTOPLAY_DO_MACRO(0xFE, 0x222), // 228 EX_OLYMPIAD_MATCH_MAKING_RESULT(0xFE, 0x223), // 228 EX_FESTIVAL_BM_INFO(0xFE, 0x224), // 228 EX_FESTIVAL_BM_ALL_ITEM_INFO(0xFE, 0x225), // 228 EX_FESTIVAL_BM_TOP_ITEM_INFO(0xFE, 0x226), // 228 EX_FESTIVAL_BM_GAME(0xFE, 0x227), // 228 EX_GACHA_SHOP_INFO(0xFE, 0x228), // 228 EX_GACHA_SHOP_GACHA_GROUP(0xFE, 0x229), // 228 EX_GACHA_SHOP_GACHA_ITEM(0xFE, 0x22A), // 228 EX_TIME_RESTRICT_FIELD_LIST(0xFE, 0x22B), // 228 EX_TIME_RESTRICT_FIELD_USER_E(0xFE, 0x22C), // 228 EX_TIME_RESTRICT_FIELD_USER_C(0xFE, 0x22D), // 228 EX_TIME_RESTRICT_FIELD_USER_A(0xFE, 0x22E), // 228 EX_TIME_RESTRICT_FIELD_USER_E2(0xFE, 0x22F), // 228 EX_RANKING_CHAR_INFO(0xFE, 0x230), // 228 EX_RANKING_CHAR_HISTORY(0xFE, 0x231), // 228 EX_RANKING_CHAR_RANKERS(0xFE, 0x232), // 228 EX_BOW_ACTION_TO(0xFE, 0x233), // 228 EX_LETTER_COLLECTOR_UI_LAUNCH(0xFE, 0x234), // 228 EX_MERCENARY_CASTLEWAR_CASTLE_SIEGE_HUD_INFO(0xFE, 0x235), // 228 EX_UNK_236(0xFE, 0x236), // 228 EX_UNK_237(0xFE, 0x237), // 228 EX_UNK_238(0xFE, 0x238), // 228 EX_UNK_239(0xFE, 0x239), // 228 EX_PVPBOOK_LIST(0xFE, 0x23A); // 228 private final int _id1; private final int _id2; OutgoingPackets(int id1) { this(id1, -1); } OutgoingPackets(int id1, int id2) { _id1 = id1; _id2 = id2; } public int getId1() { return _id1; } public int getId2() { return _id2; } public void writeId(PacketWriter packet) { packet.writeC(_id1); if (_id2 > 0) { packet.writeH(_id2); } } public static OutgoingPackets getPacket(int id1, int id2) { for (OutgoingPackets packet : values()) { if ((packet.getId1() == id1) && (packet.getId2() == id2)) { return packet; } } return null; } }
ну залей офф запил, что мешает?Там запил на коленке, очень много несоответствий с оффом