| 
		
	
	
	
		
	Сообщений: 1,065 
	Тем: 20 
	Зарегистрирован: Mar 2010
	
 Репутация: 
3,855 
	
	
		Наткнулся тут на странную проблему - у головных украшений в инфе не отображается заточка и аугментация.притом данные эти клиенту шлются так же как и для всех других предметов в инвентаре и почему не отображаются - загадка.
 
 но по логике отображаться должны - не зря же ведь существуют свитки заточки для головных аксесуаров, а так же камни жизни для них же.
 
 протокол если что 531.
 
 кто с таким сталкивался и есть ли идеи как это исправлять?
 
	
	
	
		
	Сообщений: 406 
	Тем: 10 
	Зарегистрирован: Jun 2008
	
 Репутация: 
2,862 
	
	
		Gaikotsu Написал:Наткнулся тут на странную проблему - у головных украшений в инфе не отображается заточка и аугментация.притом данные эти клиенту шлются так же как и для всех других предметов в инвентаре и почему не отображаются - загадка.
 
 но по логике отображаться должны - не зря же ведь существуют свитки заточки для головных аксесуаров, а так же камни жизни для них же.
 
 протокол если что 531.
 
 кто с таким сталкивался и есть ли идеи как это исправлять?
 
они работают точно так же как лсы в пушках. ( заточка тоже ).
 PHP код: <?php {
 itemId: [5808,6394,6834 .....],
 options: [
 { enchant: 1, option: [30178] },
 { enchant: 2, option: [30180] },
 { enchant: 3, option: [30182] },
 { enchant: 4, option: [30186] },
 { enchant: 5, option: [30190] },
 { enchant: 6, option: [30194] },
 { enchant: 7, option: [30198] },
 { enchant: 8, option: [30202] },
 { enchant: 9, option: [30206] },
 { enchant: 10, option: [30210] },
 { enchant: 11, option: [30214] },
 { enchant: 12, option: [30218] },
 { enchant: 13, option: [30222] },
 { enchant: 14, option: [30226] }
 ]
 },
 
 
Человек просто обязан ошибаться, раз другие учатся на его ошибках .......
 
	
	
	
		
	Сообщений: 1,065 
	Тем: 20 
	Зарегистрирован: Mar 2010
	
 Репутация: 
3,855 
	
	
		а все, не нужно - поправил, пусть и очередным костылем - просто для украшений надо в пакетах инфы о вещи в поле, где шлется значение от getType2ForPackets слать правильное значение. по умолчанию там слалось для них TYPE2_OTHER, а с этим значением у вещи энчант и аугментация не отображаются в клиенте.
	 
	
	
	
		
	Сообщений: 7 
	Тем: 0 
	Зарегистрирован: Apr 2014
	
 Репутация: 
50 
	
	
		Код: чувствую игнорируются
 
	
	
	
		
	Сообщений: 2,101 
	Тем: 40 
	Зарегистрирован: Apr 2008
	
 Репутация: 
12,296 
	
	
		Всем бобра. Пипл, подскажите разброс протокола на ГоД: Авакенинг и Гармони. 
Предполагаю по авакенингу:
 Код: GOD_AWAKENING(389, 400, 401, 402, 403, 404(руофф клиент), 405, 406); // Goddess of Destruction: Awakening
Верно? И что с гармони?
	 
	
	
	
		
	Сообщений: 441 
	Тем: 15 
	Зарегистрирован: Oct 2012
	
 Репутация: 
3,319 
	
		
		
		05-06-2014, 02:19 PM 
(Сообщение последний раз редактировалось: 05-06-2014, 08:58 PM   elastic.)
		
	 
		Ищу список опкодов для 558 протокола :<Все, нашел :>
 
	
	
	
		
	Сообщений: 102 
	Тем: 6 
	Зарегистрирован: Jun 2012
	
 Репутация: 
116 
	
	
		KilRoy Написал:Всем бобра. Пипл, подскажите разброс протокола на ГоД: Авакенинг и Гармони.Предполагаю по авакенингу:
 
 Верно? И что с гармони?Код: GOD_AWAKENING(389, 400, 401, 402, 403, 404(руофф клиент), 405, 406); // Goddess of Destruction: Awakening
 
У Awakening еще был вроде 382(Не точно)
 
У Хармони 410-411 вроде как.
	 
	
	
	
		
	Сообщений: 122 
	Тем: 6 
	Зарегистрирован: Sep 2013
	
 Репутация: 
112 
	
	
		Привет всем! Может кому нужно все абнормалки эпизодиона: 
			тут всё PHP код: <?php public enum AbnormalEffect {
 NULL,
 BLEEDING,
 POISON,
 REDCIRCLE,
 ICE,
 AFFRAID,
 CONFUSED,
 STUN,
 SLEEP,
 MUTED,
 ROOT,
 PARALYZE,
 FLESH_STONE,
 UNKNOWN_13,
 BIG_HEAD,
 FLAME,
 UNKNOWN_16,
 GROW,
 FLOAT_ROOT,
 DANCE_STUNNED,
 FIREROOT_STUN,
 STEALTH,
 IMPRISIONING_1,
 IMPRISIONING_2,
 MAGIC_CIRCLE,
 ICE2,
 EARTHQUAKE,
 UNKNOWN_27,
 INVULNERABLE,
 VITALITY,
 REAL_TARGET,
 DEATH_MARK,
 SKULL_FEAR,
 S_INVINCIBLE,
 S_AIR_STUN,
 S_AIR_ROOT,
 S_BAGUETTE_SWORD,
 S_YELLOW_AFFRO,
 S_PINK_AFFRO,
 S_BLACK_AFFRO,
 UNKNOWN_40,
 S_STIGMA_SHILIEN,
 S_STAKATOROOT,
 S_FREEZING,
 S_VESPER_S,
 S_VESPER_C,
 S_VESPER_D,
 HUNTING_BONUS,
 ARCANE_SHIELD,
 S_HELLBINDING,
 CHANGEBODY,      // раздевает полностью чара
 
 S_KNOCK_DOWN,   // кнок даун
 UNKNOWN_52,     //клиент вылетел с критом и пока зал это FNAbnormalStat_NavitAdvent  наверное то старый абнормал невита
 UNKNOWN_53,
 UNKNOWN_54,    //одевает вроде д шмот
 UNKNOWN_55,    // аура
 S_SUMMON_CELL,  //персонаж попадает в тюрьму из дыма, скилл веньо
 S_STRENGTH_AURA,  // какая-то не понятная аура
 S_ALL_AURA,      // какая-то не понятная аура
 S_ANGER_AURA,    // красная аура вокруг чара
 S_NONE1_AURA,    // взрыв энергии и как будто кровотечение красный бым вокруг чара
 
 UNKNOWN_61,     // какой-то взрыв энергии
 S_AIR_BIND,     // абнорма песочной пурги
 S_SWIM_DEATH_WAIT,//63 // когда плывёшь и остаёться меньше 10% хп появляется такой абнормал. и длиться до сметри перса
 UNKNOWN_64,
 UNKNOWN_65,   //вид какой-то одежды
 UNKNOWN_66,
 UNKNOWN_67,
 S_WAITING_DIALOG, //68   /появляется облако и в нём 3 точки типо думаю
 S_NONE2_AURA,   //69    //жёлто-красная аура(вернее типо пара, ку рабоче как мультикак от животных ваняет  и идёт зелёный парок, ут тоже самое)
 S_NONE3_AURA,   //70   //синяя аура(вернее типо пара, ку рабоче как мультикак от животных ваняет  и идёт зелёный парок, ут тоже самое)
 
 UNKNOWN_71,
 
 TALISMAN_POWER1,  //72
 TALISMAN_POWER2,  //73
 TALISMAN_POWER3,  //74
 TALISMAN_POWER4,  //75
 TALISMAN_POWER5,  //76
 
 S_NONE_CLOAK1,   //77  // одевается чёрный плащ
 
 S_RHAND_YELLOW,      // не понятная аура  и одевается какой-то шмот
 S_RHAND_RED,       // не понятная аура  и одевается какой-то шмот
 S_RHAND_BLUE,      // не понятная аура  и одевается какой-то шмот
 S_WINGS_RHAND_BLUE,  // не понятная аура  и одевается какой-то шмот
 S_SILEVER_CIRCLE,   // не понятная аура  и одевается какой-то шмот
 
 S_TRANSFORM,
 S_TRANSFORM1,
 S_TRANSFORM2,     // аура
 S_TRANSFORM3,
 S_TRANSFORM4,
 ULTIMATE_DEFENCE,
 
 TEST_88, // появляется леденец над головой как агатион
 TEST_89,// появляется конфета над головой как агатион
 TEST_90,// появляется конфета над головой как агатион
 TEST_91, // появлется 5 звёзд на головой
 TEST_92, //заполняется 1 звезда
 TEST_93,//заполняется 2 звезда
 TEST_94,//заполняется 3 звезда
 TEST_95,//заполняется 4 звезда
 TEST_96,//заполняется 5 звезда
 TEST_97, //2 сияющих меча над головой
 TEST_98, //ноги во льду
 TEST_99, // менет вид сета
 TEST_100, //рядом с головой появляется какая-то хуйня
 TEST_101, //значёк ноты жёлтый
 TEST_102, //значёк ноты синий
 TEST_103, //значёк ноты Зелёный
 TEST_104, //лого л2
 TEST_105, // меняет вид сета
 TEST_106,// меняет вид сета
 TEST_107,// меняет вид сета
 TEST_108,// меняет вид сета
 TEST_109,// меняет вид сета
 TEST_110,// меняет вид сета(бикини)
 TEST_111,
 TEST_112,
 TEST_113,//меняет вид пухи
 
 TEST_114,//меняет вид пухи
 
 }
 
 
	
	
	
		
	Сообщений: 199 
	Тем: 0 
	Зарегистрирован: Jul 2013
	
 Репутация: 
348 
	
	
		VenomRaider Написал:Привет всем! Может кому нужно все абнормалки эпизодиона:
 
			тут всё PHP код: <?php public enum AbnormalEffect {
 NULL,
 BLEEDING,
 POISON,
 REDCIRCLE,
 ICE,
 AFFRAID,
 CONFUSED,
 STUN,
 SLEEP,
 MUTED,
 ROOT,
 PARALYZE,
 FLESH_STONE,
 UNKNOWN_13,
 BIG_HEAD,
 FLAME,
 UNKNOWN_16,
 GROW,
 FLOAT_ROOT,
 DANCE_STUNNED,
 FIREROOT_STUN,
 STEALTH,
 IMPRISIONING_1,
 IMPRISIONING_2,
 MAGIC_CIRCLE,
 ICE2,
 EARTHQUAKE,
 UNKNOWN_27,
 INVULNERABLE,
 VITALITY,
 REAL_TARGET,
 DEATH_MARK,
 SKULL_FEAR,
 S_INVINCIBLE,
 S_AIR_STUN,
 S_AIR_ROOT,
 S_BAGUETTE_SWORD,
 S_YELLOW_AFFRO,
 S_PINK_AFFRO,
 S_BLACK_AFFRO,
 UNKNOWN_40,
 S_STIGMA_SHILIEN,
 S_STAKATOROOT,
 S_FREEZING,
 S_VESPER_S,
 S_VESPER_C,
 S_VESPER_D,
 HUNTING_BONUS,
 ARCANE_SHIELD,
 S_HELLBINDING,
 CHANGEBODY,      // раздевает полностью чара
 
 S_KNOCK_DOWN,   // кнок даун
 UNKNOWN_52,     //клиент вылетел с критом и пока зал это FNAbnormalStat_NavitAdvent  наверное то старый абнормал невита
 UNKNOWN_53,
 UNKNOWN_54,    //одевает вроде д шмот
 UNKNOWN_55,    // аура
 S_SUMMON_CELL,  //персонаж попадает в тюрьму из дыма, скилл веньо
 S_STRENGTH_AURA,  // какая-то не понятная аура
 S_ALL_AURA,      // какая-то не понятная аура
 S_ANGER_AURA,    // красная аура вокруг чара
 S_NONE1_AURA,    // взрыв энергии и как будто кровотечение красный бым вокруг чара
 
 UNKNOWN_61,     // какой-то взрыв энергии
 S_AIR_BIND,     // абнорма песочной пурги
 S_SWIM_DEATH_WAIT,//63 // когда плывёшь и остаёться меньше 10% хп появляется такой абнормал. и длиться до сметри перса
 UNKNOWN_64,
 UNKNOWN_65,   //вид какой-то одежды
 UNKNOWN_66,
 UNKNOWN_67,
 S_WAITING_DIALOG, //68   /появляется облако и в нём 3 точки типо думаю
 S_NONE2_AURA,   //69    //жёлто-красная аура(вернее типо пара, ку рабоче как мультикак от животных ваняет  и идёт зелёный парок, ут тоже самое)
 S_NONE3_AURA,   //70   //синяя аура(вернее типо пара, ку рабоче как мультикак от животных ваняет  и идёт зелёный парок, ут тоже самое)
 
 UNKNOWN_71,
 
 TALISMAN_POWER1,  //72
 TALISMAN_POWER2,  //73
 TALISMAN_POWER3,  //74
 TALISMAN_POWER4,  //75
 TALISMAN_POWER5,  //76
 
 S_NONE_CLOAK1,   //77  // одевается чёрный плащ
 
 S_RHAND_YELLOW,      // не понятная аура  и одевается какой-то шмот
 S_RHAND_RED,       // не понятная аура  и одевается какой-то шмот
 S_RHAND_BLUE,      // не понятная аура  и одевается какой-то шмот
 S_WINGS_RHAND_BLUE,  // не понятная аура  и одевается какой-то шмот
 S_SILEVER_CIRCLE,   // не понятная аура  и одевается какой-то шмот
 
 S_TRANSFORM,
 S_TRANSFORM1,
 S_TRANSFORM2,     // аура
 S_TRANSFORM3,
 S_TRANSFORM4,
 ULTIMATE_DEFENCE,
 
 TEST_88, // появляется леденец над головой как агатион
 TEST_89,// появляется конфета над головой как агатион
 TEST_90,// появляется конфета над головой как агатион
 TEST_91, // появлется 5 звёзд на головой
 TEST_92, //заполняется 1 звезда
 TEST_93,//заполняется 2 звезда
 TEST_94,//заполняется 3 звезда
 TEST_95,//заполняется 4 звезда
 TEST_96,//заполняется 5 звезда
 TEST_97, //2 сияющих меча над головой
 TEST_98, //ноги во льду
 TEST_99, // менет вид сета
 TEST_100, //рядом с головой появляется какая-то хуйня
 TEST_101, //значёк ноты жёлтый
 TEST_102, //значёк ноты синий
 TEST_103, //значёк ноты Зелёный
 TEST_104, //лого л2
 TEST_105, // меняет вид сета
 TEST_106,// меняет вид сета
 TEST_107,// меняет вид сета
 TEST_108,// меняет вид сета
 TEST_109,// меняет вид сета
 TEST_110,// меняет вид сета(бикини)
 TEST_111,
 TEST_112,
 TEST_113,//меняет вид пухи
 
 TEST_114,//меняет вид пухи
 
 }
 
 
это все конечно хорошо, но лучше бы клиентские пакеты с опкодом выложили =(
	 
	
	
	
		
	Сообщений: 122 
	Тем: 6 
	Зарегистрирован: Sep 2013
	
 Репутация: 
112 
	
	
		НАТЕ ПОЖАЛУЙСТА[SPOILER="пакеты"][PHP]package l2p.gameserver.network;
 
 import l2p.commons.net.nio.impl.*;
 import l2p.gameserver.Config;
 import l2p.gameserver.ThreadPoolManager;
 import l2p.gameserver.network.clientpackets.*;
 import l2p.gameserver.network.clientpackets.Beautyshop.RequestRegistBeauty;
 import l2p.gameserver.network.clientpackets.Beautyshop.RequestShowBeautyList;
 import l2p.gameserver.network.clientpackets.Beautyshop.RequestShowResetShopList;
 import l2p.gameserver.network.clientpackets.CuriousHouse.*;
 import l2p.gameserver.network.clientpackets.NewAbility.*;
 import l2p.gameserver.network.clientpackets.NewEnchant.*;
 import l2p.gameserver.network.clientpackets.PledgeRecruit.*;
 import l2p.gameserver.network.clientpackets.Test_packet.d0de;
 import l2p.gameserver.network.clientpackets.shapeShifting.RequestExTryToPutShapeShiftingTargetItem;
 import l2p.gameserver.network.clientpackets.shapeShifting.RequestShapeShiftingItem;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.nio.BufferUnderflowException;
 import java.nio.ByteBuffer;
 
 public final class GamePacketHandler implements IPacketHandler<GameClient>, IClientFactory<GameClient>, IMMOExecutor<GameClient> {
 private static final Logger _log = LoggerFactory.getLogger(GamePacketHandler.class);
 
 @Override
 public ReceivablePacket<GameClient> handlePacket(ByteBuffer buf, GameClient client) {
 int id = buf.get() & 0xFF;
 
 ReceivablePacket<GameClient> msg = null;
 
 try {
 int id2 = 0;
 switch (client.getState()) {
 case CONNECTED:
 switch (id) {
 case 0x00:
 msg = new RequestStatus();
 break;
 case 0x0e:
 msg = new ProtocolVersion();
 break;
 case 0x2b:
 msg = new AuthLogin();
 break;
 case 0xcb:
 msg = new ReplyGameGuardQuery();
 break;
 default:
 client.onUnknownPacket("CONNECTED" + " " + "id", id);
 _log.warn("Unknown packet on state: CONNECTED, id: " + Integer.toHexString(id) + " from " + client.getConnection().getSocket().getInetAddress().getHostAddress());
 break;
 }
 break;
 case AUTHED:
 switch (id) {
 case 0x00:
 msg = new Logout();
 break;
 case 0x0c:
 msg = new CharacterCreate(); //RequestCharacterCreate();
 break;
 case 0x0d:
 msg = new CharacterDelete(); //RequestCharacterDelete();
 break;
 case 0x12:
 msg = new CharacterSelected(); //CharacterSelect();
 break;
 case 0x13:
 msg = new NewCharacter(); //RequestNewCharacter();
 break;
 case 0x7b:
 msg = new CharacterRestore(); //RequestCharacterRestore();
 break;
 case 0xcb:
 msg = new ReplyGameGuardQuery();
 break;
 case 0xd0:
 int id3 = buf.getShort() & 0xffff;
 switch (id3) {
 case 0x33:
 msg = new GotoLobby();
 break;
 case 0xA9:
 //  msg = new RequestWebSessionID();
 _log.info("0xA9" + " AUTHED");
 break;
 case 0xAA:
 msg = new RequestEx2ndPasswordCheck();
 break;
 case 0xAB:
 msg = new RequestEx2ndPasswordVerify();
 break;
 case 0xAC:
 msg = new RequestEx2ndPasswordReq();
 break;
 case 0xAD:
 msg = new RequestCharacterNameCreatable();
 break;
 default:
 client.onUnknownPacket("AUTHED" + " " + "id", id3);
 _log.warn("Unknown packet on state: CONNECTED, id: " + Integer.toHexString(id) + " from " + client.getConnection().getSocket().getInetAddress().getHostAddress());
 
 break;
 }
 break;
 default:
 client.onUnknownPacket("AUTHED" + " " + "id", id);
 _log.warn("Unknown packet on state: CONNECTED, id: " + Integer.toHexString(id) + " from " + client.getConnection().getSocket().getInetAddress().getHostAddress());
 break;
 }
 break;
 case IN_GAME:
 switch (id) {
 case 0x00:
 msg = new Logout();
 break;
 case 0x01:
 msg = new AttackRequest();  // LINDVIOR
 break;
 case 0x02:
 // msg = new ?();
 _log.info("0x02" + " IN_GAME");
 break;
 case 0x03:
 msg = new RequestStartPledgeWar();
 break;
 case 0x04:
 // msg = new ?();
 _log.info("0x04" + " IN_GAME");
 break;
 case 0x05:
 msg = new RequestStopPledgeWar();
 break;
 case 0x06:
 //  msg = RequestSCCheck(); // ? Format: cdx
 _log.info("RequestSCCheck");
 break;
 case 0x07:
 msg = new ReplyGameGuardQuery();
 // здесь совсем другой пакет
 // ResponseAuthGameGuard[cddddd] © Drin
 break;
 case 0x08:
 // msg = new ?();
 _log.info("0x08" + " IN_GAME");
 break;
 case 0x09:
 msg = new RequestSetPledgeCrest();
 // _log.info("RequestSetPledgeCrest");
 break;
 case 0x0a:
 // msg = new ?();
 _log.info("0x0a" + " IN_GAME");
 break;
 case 0x0b:
 msg = new RequestGiveNickName();
 break;
 case 0x0c:
 // wtf???
 _log.info("0x0c" + " IN_GAME");
 break;
 case 0x0d:
 // wtf???
 _log.info("0x0d" + " IN_GAME");
 break;
 case 0x0e:
 //msg = new RequestPIAgreementCheck(); (cd)
 _log.info("RequestPIAgreementCheck");
 break;
 case 0x0f:
 msg = new MoveBackwardToLocation();
 break;
 case 0x10:
 // msg = new Say(); //Format: cS // старый ?
 _log.info("Say");
 break;
 case 0x11:
 msg = new EnterWorld();
 break;
 case 0x12:
 // wtf???
 _log.info("0x12");
 break;
 case 0x14:
 msg = new RequestItemList();
 break;
 case 0x15:
 // msg = new RequestEquipItem(); // старый?
 _log.info("RequestEquipItem");
 // Format: cdd server id = %d Slot = %d
 break;
 case 0x16:
 msg = new RequestUnEquipItem();
 break;
 case 0x17:
 msg = new RequestDropItem();
 break;
 case 0x18:
 // msg = new ?();
 _log.info("0x18");
 break;
 case 0x19:
 msg = new UseItem();
 break;
 case 0x1a:
 msg = new TradeRequest();
 break;
 case 0x1b:
 msg = new AddTradeItem();
 break;
 case 0x1c:
 msg = new TradeDone();
 break;
 case 0x1d:
 // msg = new ?();
 _log.info("0x1d");
 break;
 case 0x1e:
 // msg = new ?();
 _log.info("0x1e");
 break;
 case 0x1f:
 msg = new Action();
 break;
 case 0x20:
 // msg = new ?();
 _log.info("0x20");
 break;
 case 0x21:
 // msg = new ?();
 _log.info("0x21");
 break;
 case 0x22:
 msg = new RequestLinkHtml();
 break;
 case 0x23:
 msg = new RequestBypassToServer();
 break;
 case 0x24:
 msg = new RequestBBSwrite();
 break;
 case 0x25:
 msg = new RequestCreatePledge();
 break;
 case 0x26:
 msg = new RequestJoinPledge();
 break;
 case 0x27:
 msg = new RequestAnswerJoinPledge();
 break;
 case 0x28:
 msg = new RequestWithdrawalPledge();
 break;
 case 0x29:
 msg = new RequestOustPledgeMember();
 break;
 case 0x2a:
 // msg = new ?();
 _log.info("0x2a");
 break;
 case 0x2c:
 msg = new RequestGetItemFromPet();
 break;
 case 0x2d:
 // RequestDismissParty
 _log.info("RequestDismissParty");
 break;
 case 0x2e:
 msg = new RequestAllyInfo();
 break;
 case 0x2f:
 msg = new RequestCrystallizeItem();
 break;
 case 0x30:
 // RequestPrivateStoreManage, устарел
 _log.info("RequestPrivateStoreManage");
 break;
 case 0x31:
 msg = new SetPrivateStoreSellList();
 break;
 case 0x32:
 // RequestPrivateStoreManageCancel, устарел
 _log.info("RequestPrivateStoreManageCancel");
 break;
 case 0x33:
 msg = new RequestTeleport();
 break;
 case 0x34:
 // msg = new RequestSocialAction();
 _log.info("RequestSocialAction");
 break;
 case 0x35:
 // ChangeMoveType, устарел
 _log.info("ChangeMoveType");
 break;
 case 0x36:
 // ChangeWaitType, устарел
 _log.info("ChangeWaitType");
 break;
 case 0x37:
 msg = new RequestSellItem();
 break;
 case 0x38:
 msg = new RequestMagicSkillList();
 break;
 case 0x39:
 msg = new RequestMagicSkillUse();
 break;
 case 0x3a:
 msg = new Appearing(); // Appering();
 break;
 case 0x3b:
 if (Config.ALLOW_WAREHOUSE)
 msg = new SendWareHouseDepositList();
 break;
 case 0x3c:
 msg = new SendWareHouseWithDrawList();
 break;
 case 0x3d:
 msg = new RequestShortCutReg();
 break;
 case 0x3e:
 // msg = new RequestShortCutUse(); // Format: cddc ?
 _log.info("RequestShortCutUse");
 break;
 case 0x3f:
 msg = new RequestShortCutDel();
 break;
 case 0x40:
 msg = new RequestBuyItem();
 break;
 case 0x41:
 // msg = new RequestDismissPledge(); //Format: c ?
 _log.info("RequestDismissPledge");
 break;
 case 0x42:
 msg = new RequestJoinParty();
 break;
 case 0x43:
 msg = new RequestAnswerJoinParty();
 break;
 case 0x44:
 msg = new RequestWithDrawalParty();
 break;
 case 0x45:
 msg = new RequestOustPartyMember();
 break;
 case 0x46:
 msg = new RequestDismissParty();
 break;
 case 0x47:
 msg = new CannotMoveAnymore();
 break;
 case 0x48:
 msg = new RequestTargetCanceld();
 break;
 case 0x49:
 msg = new Say2C();
 break;
 // -- maybe GM packet's
 case 0x4a:
 id2 = buf.get() & 0xff;
 switch (id2) {
 case 0x00:
 //	msg = new SendCharacterInfo(); // Format: S
 _log.info("0x4a" + " 0x00" + " IN_GAME");
 break;
 case 0x01:
 //	msg = new SendSummonCmd(); // Format: S
 _log.info("0x4a" + " 0x01" + " IN_GAME");
 break;
 case 0x02:
 //	msg = new SendServerStatus(); // Format: (noargs)
 _log.info("0x4a" + " 0x02" + " IN_GAME");
 break;
 case 0x03:
 //	msg = new SendL2ParamSetting(); // Format: dd
 _log.info("0x4a" + " 0x03" + " IN_GAME");
 break;
 default:
 client.onUnknownPacket("IN_GAME" + " " + "id", id2);
 break;
 }
 break;
 case 0x4b:
 // msg = new ?();
 _log.info("0x4b");
 break;
 case 0x4c:
 // msg = new ?();
 _log.info("0x4c");
 break;
 case 0x4d:
 msg = new RequestPledgeMemberList();
 break;
 case 0x4e:
 // msg = new ?();
 _log.info("0x4e");
 break;
 case 0x4f:
 int id_2 = buf.getShort() & 0xFFFF;
 switch (id_2) {
 case 0:
 _log.info("0x4f" + " 0x00" + " IN_GAME");
 break;
 case 1:
 _log.info("0x4f" + " 0x01" + " IN_GAME");
 break;
 case 2:
 _log.info("0x4f" + " 0x02" + " IN_GAME");
 break;
 case 3:
 _log.info("0x4f" + " 0x03" + " IN_GAME");
 break;
 default:
 client.onUnknownPacket("INGAME id", id_2);
 }
 break;
 case 0x50:
 msg = new RequestSkillList(); // trigger
 break;
 case 0x51:
 //	msg = new ?();
 _log.info("0x51" + " IN_GAME");
 break;
 case 0x52:
 msg = new MoveWithDelta();
 break;
 case 0x53:
 msg = new RequestGetOnVehicle();
 break;
 case 0x54:
 msg = new RequestGetOffVehicle();
 break;
 case 0x55:
 msg = new AnswerTradeRequest();
 break;
 case 0x56:
 msg = new RequestActionUse();
 break;
 case 0x57:
 msg = new RequestRestart();
 break;
 case 0x58:
 msg = new RequestSiegeInfo();
 break;
 case 0x59:
 msg = new ValidatePosition();
 break;
 case 0x5a:
 msg = new RequestSEKCustom();
 break;
 case 0x5b:
 msg = new StartRotatingC();
 break;
 case 0x5c:
 msg = new FinishRotatingC();
 break;
 case 0x5d:
 // msg = new ?();
 _log.info("0x5d");
 break;
 case 0x5e:
 msg = new RequestShowBoard();
 break;
 case 0x5f:
 msg = new RequestEnchantItem();
 break;
 case 0x60:
 msg = new RequestDestroyItem();
 break;
 case 0x61:
 // msg = new ?();
 _log.info("0x61");
 break;
 case 0x62:
 msg = new RequestQuestList();
 break;
 case 0x63:
 msg = new RequestQuestAbort(); // RequestDestroyQuest();
 break;
 case 0x64:
 // msg = new ?();
 _log.info("0x64");
 break;
 case 0x65:
 msg = new RequestPledgeInfo(); // Follow EnterWorld
 break;
 case 0x66:
 msg = new RequestPledgeExtendedInfo();
 break;
 case 0x67:
 msg = new RequestPledgeCrest();
 // _log.info("RequestPledgeCrest");
 break;
 case 0x68:
 // msg = new ?();
 _log.info("0x68");
 break;
 case 0x69:
 // msg = new ?();
 _log.info("0x69");
 break;
 case 0x6a:
 msg = new RequestFriendInfoList();
 //_log.info("RequestFriendInfoList");
 break;
 case 0x6b:
 msg = new RequestSendL2FriendSay();
 break;
 case 0x6c:
 msg = new RequestShowMiniMap();
 break;
 case 0x6d:
 msg = new RequestSendMsnChatLog();
 break;
 case 0x6e:
 msg = new RequestReload(); // record video
 break;
 case 0x6f:
 msg = new RequestHennaEquip();
 break;
 case 0x70:
 msg = new RequestHennaUnequipList();
 break;
 case 0x71:
 msg = new RequestHennaUnequipInfo();
 break;
 case 0x72:
 msg = new RequestHennaUnequip();
 break;
 case 0x73:
 msg = new RequestAquireSkillInfo(); // RequestAcquireSkillInfo();
 break;
 case 0x74:
 msg = new SendBypassBuildCmd();
 break;
 case 0x75:
 msg = new RequestMoveToLocationInVehicle();
 break;
 case 0x76:
 msg = new CannotMoveAnymoreInVehicle();
 break;
 case 0x77:
 msg = new RequestFriendInvite();
 break;
 case 0x78:
 msg = new RequestFriendAddReply();
 break;
 case 0x79:
 msg = new RequestFriendList();
 break;
 case 0x7a:
 msg = new RequestFriendDel();
 break;
 case 0x7c:
 msg = new RequestAquireSkill();
 break;
 case 0x7d:
 msg = new RequestRestartPoint();
 break;
 case 0x7e:
 msg = new RequestGMCommand();
 break;
 case 0x7f:
 msg = new RequestPartyMatchConfig();
 break;
 case 0x80:
 msg = new RequestPartyMatchList();
 break;
 case 0x81:
 msg = new RequestPartyMatchDetail();
 break;
 case 0x82:
 msg = new RequestPrivateStoreList();
 break;
 case 0x83:
 msg = new RequestPrivateStoreBuy();
 break;
 case 0x84:
 // msg = new ReviveReply(); // format: cd ?
 _log.info("ReviveReply");
 break;
 case 0x85:
 msg = new RequestTutorialLinkHtml();
 break;
 case 0x86:
 msg = new RequestTutorialPassCmdToServer();
 break;
 case 0x87:
 msg = new RequestTutorialQuestionMark(); // RequestTutorialQuestionMarkPressed();
 break;
 case 0x88:
 msg = new RequestTutorialClientEvent();
 break;
 case 0x89:
 msg = new RequestPetition();
 break;
 case 0x8a:
 msg = new RequestPetitionCancel();
 break;
 case 0x8b:
 msg = new RequestGmList();
 break;
 case 0x8c:
 msg = new RequestJoinAlly();
 break;
 case 0x8d:
 msg = new RequestAnswerJoinAlly();
 break;
 case 0x8e:
 // Команда /allyleave - выйти из альянса
 msg = new RequestWithdrawAlly();
 break;
 case 0x8f:
 // Команда /allydismiss - выгнать клан из альянса
 msg = new RequestOustAlly();
 break;
 case 0x90:
 // Команда /allydissolve - распустить альянс
 msg = new RequestDismissAlly();
 break;
 case 0x91:
 msg = new RequestSetAllyCrest();
 break;
 case 0x92:
 msg = new RequestAllyCrest();
 break;
 case 0x93:
 msg = new RequestChangePetName();
 break;
 case 0x94:
 msg = new RequestPetUseItem();
 break;
 case 0x95:
 msg = new RequestGiveItemToPet();
 break;
 case 0x96:
 msg = new RequestPrivateStoreQuitSell();
 break;
 case 0x97:
 msg = new SetPrivateStoreMsgSell();
 break;
 case 0x98:
 msg = new RequestPetGetItem();
 break;
 case 0x99:
 msg = new RequestPrivateStoreBuyManage();
 break;
 case 0x9a:
 msg = new SetPrivateStoreBuyList();
 break;
 case 0x9b:
 //
 _log.info("0x9b");
 break;
 case 0x9c:
 msg = new RequestPrivateStoreQuitBuy();
 break;
 case 0x9d:
 msg = new SetPrivateStoreMsgBuy();
 break;
 case 0x9e:
 //
 _log.info("0x9e");
 break;
 case 0x9f:
 msg = new RequestPrivateStoreBuySellList();
 break;
 case 0xa0:
 msg = new RequestTimeCheck();
 break;
 case 0xa1:
 // msg = new ?();
 _log.info("0xa1");
 break;
 case 0xa2:
 // msg = new ?();
 _log.info("0xa2");
 break;
 case 0xa3:
 // msg = new ?();
 _log.info("0xa3");
 break;
 case 0xa4:
 // msg = new ?();
 _log.info("0xa4");
 break;
 case 0xa5:
 // msg = new ?();
 _log.info("0xa5");
 break;
 case 0xa6:
 msg = new RequestSkillCoolTime(); //Deprecated ?
 // _log.info("0xa6");
 break;
 case 0xa7:
 msg = new RequestPackageSendableItemList();
 break;
 case 0xa8:
 msg = new RequestPackageSend();
 break;
 case 0xa9:
 msg = new RequestBlock();
 break;
 case 0xaa:
 // msg = new RequestCastleSiegeInfo(); // format: cd
 // ?
 _log.info("RequestCastleSiegeInfo");
 break;
 case 0xab:
 msg = new RequestCastleSiegeAttackerList();
 break;
 case 0xac:
 msg = new RequestCastleSiegeDefenderList();
 break;
 case 0xad:
 msg = new RequestJoinCastleSiege();
 break;
 case 0xae:
 msg = new RequestConfirmCastleSiegeWaitingList();
 break;
 case 0xaf:
 msg = new RequestSetCastleSiegeTime();
 break;
 case 0xb0:
 msg = new RequestMultiSellChoose();
 break;
 case 0xb1:
 msg = new NetPing();
 break;
 case 0xb2:
 msg = new RequestRemainTime();
 break;
 case 0xb3:
 msg = new BypassUserCmd();
 break;
 case 0xb4:
 msg = new SnoopQuit();
 break;
 case 0xb5:
 msg = new RequestRecipeBookOpen();
 break;
 case 0xb6:
 msg = new RequestRecipeItemDelete();
 break;
 case 0xb7:
 msg = new RequestRecipeItemMakeInfo();
 break;
 case 0xb8:
 msg = new RequestRecipeItemMakeSelf();
 break;
 case 0xb9:
 // msg = new RequestRecipeShopManageList();
 // deprecated // format: c
 _log.info("RequestRecipeShopManageList");
 break;
 case 0xba:
 msg = new RequestRecipeShopMessageSet();
 break;
 case 0xbb:
 msg = new RequestRecipeShopListSet();
 break;
 case 0xbc:
 msg = new RequestRecipeShopManageQuit();
 break;
 case 0xbd:
 msg = new RequestRecipeShopManageCancel();
 break;
 case 0xbe:
 msg = new RequestRecipeShopMakeInfo();
 break;
 case 0xbf:
 msg = new RequestRecipeShopMakeDo();
 break;
 case 0xc0:
 msg = new RequestRecipeShopSellList();
 break;
 case 0xc1:
 msg = new RequestObserverEnd();
 break;
 case 0xc2:
 // msg = new VoteSociality(); // Recommend
 _log.info("0xc2");
 break;
 case 0xc3:
 msg = new RequestHennaList(); // RequestHennaItemList();
 break;
 case 0xc4:
 msg = new RequestHennaItemInfo();
 break;
 case 0xc5:
 msg = new RequestBuySeed();
 break;
 case 0xc6:
 msg = new ConfirmDlg();
 break;
 case 0xc7:
 msg = new RequestPreviewItem();
 break;
 case 0xc8:
 msg = new RequestSSQStatus();
 break;
 case 0xc9:
 msg = new PetitionVote();
 break;
 case 0xca:
 // msg = new ?();
 _log.info("0xca");
 break;
 case 0xcb:
 msg = new ReplyGameGuardQuery();
 break;
 case 0xcc:
 msg = new RequestPledgePower();
 break;
 case 0xcd:
 msg = new RequestMakeMacro();
 break;
 case 0xce:
 msg = new RequestDeleteMacro();
 break;
 case 0xcf:
 msg = new RequestProcureCrop(); // ?
 break;
 case 0xd0:
 int id3 = buf.getShort() & 0xffff;
 //           printDebugDoubleOpcode(id, id3, buf, client.getState(), client);
 switch (id3) {
 case 0x00:
 // msg = new ?();
 _log.info("0xd0" + " 0x00" + " IN_GAME");
 break;
 case 0x01:
 msg = new RequestManorList();
 break;
 case 0x02:
 msg = new RequestProcureCropList();
 break;
 case 0x03:
 msg = new RequestSetSeed();
 break;
 case 0x04:
 msg = new RequestSetCrop();
 break;
 case 0x05:
 msg = new RequestWriteHeroWords();
 break;
 case 0x06:
 msg = new RequestExMPCCAskJoin(); // RequestExAskJoinMPCC();
 break;
 case 0x07:
 msg = new RequestExMPCCAcceptJoin(); // RequestExAcceptJoinMPCC();
 break;
 case 0x08:
 msg = new RequestExOustFromMPCC();
 break;
 case 0x09:
 msg = new RequestOustFromPartyRoom();
 break;
 case 0x0A:
 msg = new RequestDismissPartyRoom();
 break;
 case 0x0B:
 msg = new RequestWithdrawPartyRoom();
 break;
 case 0x0C:
 msg = new RequestHandOverPartyMaster();
 break;
 case 0x0D:
 msg = new RequestAutoSoulShot();
 break;
 case 0x0E:
 msg = new RequestExEnchantSkillInfo();
 break;
 case 0x0F:
 msg = new RequestExEnchantSkill();
 break;
 case 0x10:
 msg = new RequestPledgeCrestLarge();
 break;
 case 0x11:
 int id9 = buf.getInt();
 if (client.getActiveChar().isGM() && client.getActiveChar().isDebug()) {
 client.getActiveChar().sendMessage("IN_GAME 0xd0: 0x11:" + id9);
 }
 switch (id9) {
 case 0x00:
 msg = new RequestSetPledgeCrestLarge(0);
 break;
 case 0x01:
 msg = new RequestSetPledgeCrestLarge(1);
 break;
 case 0x02:
 msg = new RequestSetPledgeCrestLarge(2);
 break;
 case 0x03:
 msg = new RequestSetPledgeCrestLarge(3);
 break;
 case 0x04:
 msg = new RequestSetPledgeCrestLarge(4);
 break;
 }
 //   _log.info("RequestSetPledgeCrestLarge");
 break;
 case 0x12:
 msg = new RequestPledgeSetAcademyMaster();
 break;
 case 0x13:
 msg = new RequestPledgePowerGradeList();
 break;
 case 0x14:
 msg = new RequestPledgeMemberPowerInfo();
 break;
 case 0x15:
 msg = new RequestPledgeSetMemberPowerGrade();
 break;
 case 0x16:
 msg = new RequestPledgeMemberInfo();
 break;
 case 0x17:
 msg = new RequestPledgeWarList();
 break;
 case 0x18:
 msg = new RequestExFishRanking();
 break;
 case 0x19:
 msg = new RequestPCCafeCouponUse();
 break;
 case 0x1A:
 //msg = new RequestServerLogin(); (chb) b - array размером в 64 байта
 _log.info("RequestServerLogin");
 break;
 case 0x1B:
 msg = new RequestDuelStart();
 break;
 case 0x1C:
 msg = new RequestDuelAnswerStart();
 break;
 case 0x1D:
 msg = new RequestTutorialClientEvent(); // RequestExSetTutorial(); Format: d / требует отладки, ИМХО, это совсем другой пакет (с) Drin
 break;
 case 0x1E:
 msg = new RequestExRqItemLink();
 break;
 case 0x1F:
 msg = new CannotMoveAnymoreInVehicle(); // (AirShip) (ddddd)
 break;
 case 0x20:
 msg = new RequestExMoveToLocationInAirShip();
 break;
 case 0x21:
 msg = new RequestKeyMapping();
 break;
 case 0x22:
 msg = new RequestSaveKeyMapping();
 break;
 case 0x23:
 msg = new RequestExRemoveItemAttribute();
 break;
 case 0x24:
 msg = new RequestSaveInventoryOrder();
 break;
 case 0x25:
 msg = new RequestExitPartyMatchingWaitingRoom();
 break;
 case 0x26:
 msg = new RequestConfirmTargetItem();
 break;
 case 0x27:
 msg = new RequestConfirmRefinerItem();
 break;
 case 0x28:
 msg = new RequestConfirmGemStone();
 break;
 case 0x29:
 msg = new RequestOlympiadObserverEnd();
 break;
 case 0x2A:
 msg = new RequestCursedWeaponList();
 break;
 case 0x2B:
 msg = new RequestCursedWeaponLocation();
 break;
 case 0x2C:
 msg = new RequestPledgeReorganizeMember();
 break;
 case 0x2D:
 msg = new RequestExMPCCShowPartyMembersInfo();
 break;
 case 0x2E:
 msg = new RequestExOlympiadObserverEnd(); // не уверен (в клиенте называется RequestOlympiadMatchList)
 break;
 case 0x2F:
 msg = new RequestAskJoinPartyRoom();
 break;
 case 0x30:
 msg = new AnswerJoinPartyRoom();
 break;
 case 0x31:
 msg = new RequestListPartyMatchingWaitingRoom();
 break;
 case 0x32:
 msg = new RequestEnchantItemAttribute();
 break;
 case 0x33:
 //msg = new RequestGotoLobby();
 _log.info("RequestGotoLobby");
 break;
 case 0x35:
 msg = new RequestExMoveToLocationAirShip();
 break;
 case 0x36:
 msg = new RequestBidItemAuction();
 break;
 case 0x37:
 msg = new RequestInfoItemAuction();
 break;
 case 0x38:
 msg = new RequestExChangeName();
 break;
 case 0x39:
 msg = new RequestAllCastleInfo();
 break;
 case 0x3A:
 msg = new RequestAllFortressInfo();
 break;
 case 0x3B:
 msg = new RequestAllAgitInfo();
 break;
 case 0x3C:
 msg = new RequestFortressSiegeInfo();
 break;
 case 0x3D:
 msg = new RequestGetBossRecord();
 break;
 case 0x3E:
 msg = new RequestRefine();
 break;
 case 0x3F:
 msg = new RequestConfirmCancelItem();
 break;
 case 0x40:
 msg = new RequestRefineCancel();
 break;
 case 0x41:
 msg = new RequestExMagicSkillUseGround();
 break;
 case 0x42:
 msg = new RequestDuelSurrender();
 break;
 case 0x43:
 msg = new RequestExEnchantSkillInfoDetail();
 break;
 /** 0xD0:0x44 - пропущен корейцами */
 case 0x45:
 msg = new RequestFortressMapInfo();
 break;
 case 0x46:
 msg = new RequestPVPMatchRecord();
 break;
 case 0x47:
 msg = new SetPrivateStoreWholeMsg();
 break;
 case 0x48:
 msg = new RequestDispel();
 break;
 case 0x49:
 msg = new RequestExTryToPutEnchantTargetItem();
 break;
 case 0x4A:
 msg = new RequestExTryToPutEnchantSupportItem();
 break;
 case 0x4B:
 msg = new RequestExCancelEnchantItem();
 break;
 case 0x4C:
 msg = new RequestChangeNicknameColor();
 break;
 case 0x4D:
 msg = new RequestResetNickname();
 break;
 case 0x4E:
 int id4 = buf.getInt();
 switch (id4) {
 case 0x00:
 msg = new RequestBookMarkSlotInfo();
 break;
 case 0x01:
 msg = new RequestSaveBookMarkSlot();
 break;
 case 0x02:
 msg = new RequestModifyBookMarkSlot();
 break;
 case 0x03:
 msg = new RequestDeleteBookMarkSlot();
 break;
 case 0x04:
 msg = new RequestTeleportBookMark();
 break;
 case 0x05:
 msg = new RequestChangeBookMarkSlot();
 break;
 default:
 client.onUnknownPacket("IN_GAME" + " " + "id3", id4);
 break;
 }
 break;
 case 0x4F:
 msg = new RequestWithDrawPremiumItem();
 break;
 case 0x50:
 msg = new RequestExJump();
 break;
 case 0x51:
 msg = new RequestExStartShowCrataeCubeRank();
 break;
 case 0x52:
 msg = new RequestExStopShowCrataeCubeRank();
 break;
 case 0x53:
 msg = new NotifyStartMiniGame();
 break;
 case 0x54:
 //          msg = new RequestExJoinDominionWar();
 _log.info("0xd0" + " 0x54" + " IN_GAME");
 break;
 case 0x55:
 //          msg = new RequestExDominionInfo();
 _log.info("0xd0" + " 0x55" + " IN_GAME");
 break;
 case 0x56:
 msg = new RequestExCleftEnter();
 break;
 case 0x57:
 msg = new RequestExCubeGameChangeTeam();
 break;
 case 0x58:
 msg = new RequestExEndScenePlayer();
 break;
 case 0x59:
 msg = new RequestExCubeGameReadyAnswer(); // RequestExBlockGameVote
 break;
 case 0x5A:
 msg = new RequestExListMpccWaiting();
 break;
 case 0x5B:
 msg = new RequestExManageMpccRoom();
 break;
 case 0x5C:
 msg = new RequestExJoinMpccRoom();
 break;
 case 0x5D:
 msg = new RequestExOustFromMpccRoom();
 break;
 case 0x5E:
 msg = new RequestExDismissMpccRoom();
 break;
 case 0x5F:
 msg = new RequestExWithdrawMpccRoom();
 break;
 case 0x60:
 msg = new RequestExSeedPhase();
 break;
 case 0x61:
 msg = new RequestExMpccPartymasterList();
 break;
 case 0x62:
 msg = new RequestExPostItemList();
 break;
 case 0x63:
 msg = new RequestExSendPost();
 break;
 case 0x64:
 msg = new RequestExRequestReceivedPostList();
 break;
 case 0x65:
 msg = new RequestExDeleteReceivedPost();
 break;
 case 0x66:
 msg = new RequestExRequestReceivedPost();
 break;
 case 0x67:
 msg = new RequestExReceivePost();
 break;
 case 0x68:
 msg = new RequestExRejectPost();
 break;
 case 0x69:
 msg = new RequestExRequestSentPostList();
 break;
 case 0x6A:
 msg = new RequestExDeleteSentPost();
 break;
 case 0x6B:
 msg = new RequestExRequestSentPost();
 break;
 case 0x6C:
 msg = new RequestExCancelSentPost();
 break;
 case 0x6D:
 msg = new RequestExShowNewUserPetition();
 break;
 case 0x6E:
 msg = new RequestExShowStepTwo();
 break;
 case 0x6F:
 msg = new RequestExShowStepThree();
 break;
 case 0x70:
 // msg = new ExConnectToRaidServer(); (chddd)
 _log.info("ExConnectToRaidServer");
 break;
 case 0x71:
 // msg = new ExReturnFromRaidServer(); (chd)
 _log.info("ExReturnFromRaidServer");
 break;
 case 0x72:
 msg = new RequestExRefundItem();
 break;
 case 0x73:
 msg = new RequestExBuySellUIClose();
 break;
 case 0x74:
 msg = new RequestExEventMatchObserverEnd();
 break;
 case 0x75:
 msg = new RequestPartyLootModification();
 break;
 case 0x76:
 msg = new AnswerPartyLootModification();
 break;
 case 0x77:
 msg = new AnswerCoupleAction();
 break;
 case 0x78:
 msg = new RequestExBR_EventRankerList();
 break;
 case 0x79:
 // msg = new RequestAskMemberShip();
 _log.info("RequestAskMemberShip");
 break;
 case 0x7A:
 msg = new RequestAddExpandQuestAlarm();
 break;
 case 0x7B:
 msg = new RequestVoteNew();
 break;
 case 0x7C:
 msg = new RequestGetOnShuttle();
 break;
 case 0x7D:
 msg = new RequestGetOffShuttle();
 break;
 case 0x7E...
 |