Рейтинг темы:
  • 2 Голос(ов) - 5 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Работа над Goddess of Destruction (part 6)
Поделитесь кто-то растемиженной Engine.dll 603 протокола
И патчем желательно.
Мда, только додумался проверить протокол sysytem-ru, который выложил Bonux. Big Grin
Warencense Написал:Поделитесь кто-то растемиженной Engine.dll 603 протокола
И патчем желательно.

могу только PacketHandler и ServerOpcodes

[spoiler=хендлер клиентских опкодов 603]
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.NotifyExitBeautyShop;
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.DivideAdena.RequestDivideAdena;
import l2p.gameserver.network.clientpackets.DivideAdena.RequestDivideAdenaCancel;
import l2p.gameserver.network.clientpackets.DivideAdena.RequestDivideAdenaStart;
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 0xA6:
msg = new RequestEx2ndPasswordCheck();
break;
case 0xA7:
msg = new RequestEx2ndPasswordVerify();
break;
case 0xA8:
msg = new RequestEx2ndPasswordReq();
break;
case 0xA9:
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:
// ChangeMoveTypePacket, устарел
_log.info("ChangeMoveTypePacket");
break;
case 0x36:
// ChangeWaitTypePacket, устарел
_log.info("ChangeWaitTypePacket");
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:
msg = new RequestMoveToLocationInShuttle();
break;
case 0x7F:
msg = new CannotMoveAnymoreInVehicle(); // CannotMoveAnymoreInShuttle(); (chddddd)
break;
case 0x80:
int id5 = buf.getInt();
switch (id5) {
case 0x01:
//msg = new RequestExAgitInitialize chd 0x01
_log.info("0xd0" + " 0x80" + " 0x01" + " IN_GAME");
break;
case 0x02:
//msg = new RequestExAgitDetailInfo chdcd 0x02
_log.info("0xd0" + " 0x80" + " 0x02" + " IN_GAME");
break;
case 0x03:
//msg = new RequestExMyAgitState chd 0x03
_log.info("0xd0" + " 0x80" + " 0x03" + " IN_GAME");
break;
case 0x04:
//msg = new RequestExRegisterAgitForBidStep1 chd 0x04
_log.info("0xd0" + " 0x80" + " 0x04" + " IN_GAME");
break;
case 0x05:
//msg = new RequestExRegisterAgitForBidStep2 chddQd 0x05 //msg = new RequestExRegisterAgitForBidStep3 chddQd 0x05 -no error? 0x05
_log.info("0xd0" + " 0x80" + " 0x05" + " IN_GAME");
break;
case 0x07:
//msg = new RequestExConfirmCancelRegisteringAgit chd 0x07...
[quote=TonsFun]могу только PacketHandler и ServerOpcodes

[spoiler=хендлер клиентских опкодов 603]
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.NotifyExitBeautyShop;
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.DivideAdena.RequestDivideAdena;
import l2p.gameserver.network.clientpackets.DivideAdena.RequestDivideAdenaCancel;
import l2p.gameserver.network.clientpackets.DivideAdena.RequestDivideAdenaStart;
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 0xA6:
msg = new RequestEx2ndPasswordCheck();
break;
case 0xA7:
msg = new RequestEx2ndPasswordVerify();
break;
case 0xA8:
msg = new RequestEx2ndPasswordReq();
break;
case 0xA9:
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:
// ChangeMoveTypePacket, устарел
_log.info("ChangeMoveTypePacket");
break;
case 0x36:
// ChangeWaitTypePacket, устарел
_log.info("ChangeWaitTypePacket");
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;
...
http://l2i-god.gaikotsu.ru/?show=search&str=Запрет+Чата (не реклама)
кто реализовал 2 этих скила
Ид: 9486 лвл: 1
Ид: 19092 лвл: 1

поделитесь если есть возможность
NoizeBD Написал:http://l2i-god.gaikotsu.ru/?show=search&str=Запрет+Чата (не реклама)
кто реализовал 2 этих скила
Ид: 9486 лвл: 1
Ид: 19092 лвл: 1

поделитесь если есть возможность

<skill id="9459" levels="1" name="Бешенство Таути">
<table name="#effectPoint">173</table>
<table name="#mpConsume2">191</table>
<table name="#power">27552</table>
<set name="coolTime" val="300" />
<set name="reuseDelay" val="15000" />
<set name="power" val="#power" />
<set name="hitTime" val="1500" />
<set name="hitCancelTime" val="500" />
<set name="mpConsume2" val="#mpConsume2" />
<set name="activateRate" val="50" />
<set name="effectPoint" val="#effectPoint" />
<set name="target" val="TARGET_AREA" />
<set name="overHit" val="true" />
<set name="skillType" val="PDAM" />
<set name="operateType" val="OP_ACTIVE" />
<set name="nextAction" val="attack" />
<set name="trait" val="SHOCK" />
<set name="saveVs" val="CON" />
<for>
<effect name="KnockBack" val="0" effectPower="60"/>
</for>

по поводу 19092 - делаешь эффект через рефлекшн на подобии свитка телепорта только для всей группы, или просто новый тип суммона пишешь
TonsFun Написал:<skill id="9459" levels="1" name="Бешенство Таути">
<table name="#effectPoint">173</table>
<table name="#mpConsume2">191</table>
<table name="#power">27552</table>
<set name="coolTime" val="300" />
<set name="reuseDelay" val="15000" />
<set name="power" val="#power" />
<set name="hitTime" val="1500" />
<set name="hitCancelTime" val="500" />
<set name="mpConsume2" val="#mpConsume2" />
<set name="activateRate" val="50" />
<set name="effectPoint" val="#effectPoint" />
<set name="target" val="TARGET_AREA" />
<set name="overHit" val="true" />
<set name="skillType" val="PDAM" />
<set name="operateType" val="OP_ACTIVE" />
<set name="nextAction" val="attack" />
<set name="trait" val="SHOCK" />
<set name="saveVs" val="CON" />
<for>
<effect name="KnockBack" val="0" effectPower="60"/>
</for>

Я благодарен за отзывчивость но не тот скилл что я просил (что вы кинули давно сделан).
пы.сы У вас скилл немного не верно сделан <set name="nextAction" val="attack" /> нету атаки после юза скилла (тестил на оффе пока был ЛВ).

Добавлено через 18 минут
спс за помощь, решил сам проблему.
кстати я не очень понял куда эти скиллы, ну блокирующие чат, использовать
вроде бы не попадалось предметов с ними к примеру...

у себя я вот подобный скилл использовал чисто для индикации того что персонажу на определенное время забанен чат и все.
Gaikotsu Написал:кстати я не очень понял куда эти скиллы, ну блокирующие чат, использовать
вроде бы не попадалось предметов с ними к примеру...

у себя я вот подобный скилл использовал чисто для индикации того что персонажу на определенное время забанен чат и все.

Да это чисто плюшка для гмов. По идее просто пассивки.
нет это функционал игрового процеса (в пуху такой ЛС словил на оффе даже) и пашет гуд.
Warencense Написал:Да это чисто плюшка для гмов. По идее просто пассивки.


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Работа над Goddess of Destruction (part 7) n3k0nation 459 172,952 03-21-2022, 04:21 PM
Последний пост: TieLay
  Помогите с Сервером L2Dream версии 439 для Lineage 2 Gracia Part 2 CAHTEX 4 3,359 10-01-2021, 02:40 PM
Последний пост: tenor
  Работа с камерой и Энтер чат FriendlyGhost 0 1,288 04-29-2018, 06:07 AM
Последний пост: FriendlyGhost
  Goddess of Destruction ( новая ветка от NcSoft ) Bacek 180 58,619 08-22-2017, 12:32 PM
Последний пост: BadStealth
  EmuRT Gracia part 2 ? knaif 3 1,605 02-08-2016, 01:19 PM
Последний пост: knaif
  Gracia Part 1 от l2emu исходы TFH 6 1,936 10-05-2015, 07:53 PM
Последний пост: G1ta0
  Ищу исходы L2-Dream gracia part 2 knaif 1 1,370 10-05-2015, 07:51 PM
Последний пост: G1ta0
  Оплачиваемая работа Grek1993 1 1,336 08-01-2015, 11:29 AM
Последний пост: ztaecz
  Работа с мультиселлом Evencelance 11 2,413 09-19-2014, 12:43 PM
Последний пост: Evencelance
  Работа над Goddess of Destruction (part 5) Ozzy 980 336,182 10-09-2013, 09:13 AM
Последний пост: Ashe

Перейти к форуму:


Пользователи, просматривающие эту тему: 19 Гость(ей)