RO Structs

Forum closed. All further discussion to be discussed at https://github.com/OpenKore/

Moderator: Moderators

Message
Author
Technology
Super Moderators
Super Moderators
Posts: 801
Joined: 06 May 2008, 12:47
Noob?: No

RO Structs

#1 Post by Technology »

(un)packer
kLab and harvest, i think you guys have being noticing the recent updates on the (un)packer?
If you haven't then i'm here to tell you that its capable of parsing all(?) known packets. (prove it wrong and earn a cookie :P)
That said, i'm proud to announce that it has now matured to the point where the API for (un)pack object creation is practically in its final state.
Which means we can start working on the "C struct parser to (un)pack object"! ;)

Rewrite of structs
However before we begin, lets set things straight...
I request that we make the structs public on svn and start rewriting them so they conform with the ANSI C standard ASAP.
With this, i suggest we extract the the (de facto) reusable inner structure's & constants (which are merely just ENUM's) from the structs and "typedef" them on top of the file for now.
The enums seem to be of the integer type (4 bytes) from the looks of it.
I think we should use the original names for the keys, but are typo's like "unsigned char Resut" due to gravity?
(what about we drop all these development projects somewhere on the svn?)

The future
After the (un)pack and "C struct parser to (un)pack object" classes are written we can implement the actual (un)packer in a new network model.
In this network model, Server, Client, encryption, decryption and all that we talked about will be taken in consideration.
Then we can implement XKore, Poseidon, etc... the way they were meant to be implemented.

In a later phase, we should be able to use those ENUM constants in our code, to improve readability.
The actual implementation of this will be decided when the time is ripe.
When we complete all this, we would only support one serverType with current structs, but you got to start somewhere... Besides, some structs remained unchanged.
Again, i'm positive that we should not worry about these details right now. It will all be solved in time.

So now, lets get things done! :ugeek:
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!

User avatar
kLabMouse
Administrator
Administrator
Posts: 1301
Joined: 24 Apr 2008, 12:02

Re: RO Structs

#2 Post by kLabMouse »

First of all: I cannot put the structs on Public SVN, because I risk getting a lot of attention from Gravity. (At least not in this project).
As for the Second: Some Structs are not completed, so thus must be completed first.

I suggest Using eA DiffTeam SVN Repository to hold the "structs.txt" file, while we hold it's perl buildings and representation.

Technology
Super Moderators
Super Moderators
Posts: 801
Joined: 06 May 2008, 12:47
Noob?: No

Re: RO Structs

#3 Post by Technology »

voila, i have converted the structs to ansi C and splitted them up, which btw was a tedious task. :roll:
I'll try to keep them up to date diffing kLab's latest structs to his previous.
(i however have removed enum's and defines until we know what to do with them)
Also, i've added some TODO's with questions in the structs.txt, please read those and comment here.

btw kLab, does g_charblock_size really exist? (I need to know before further design)

The code of the parser is hideous but by some miracle it seems to work, so it will not be seen until...


UPDATE:
... my patience is over.
ah what the heck, 7/7 unittests are passing, i'll include the full project so you guys can do some hands-on testing if you like. ;)
Just feed it some raw packets RAWR!
Attachments
RO_struct_3.tar.gz
(32.83 KiB) Downloaded 467 times
structs.txt
29/06/10 (ansi C)
(169.18 KiB) Downloaded 469 times
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!

User avatar
kLabMouse
Administrator
Administrator
Posts: 1301
Joined: 24 Apr 2008, 12:02

Re: RO Structs

#4 Post by kLabMouse »

Technology wrote: btw kLab, does g_charblock_size really exist? (I need to know before further design)
I think not. I used it to list different packet internals.

Btw.. about thus Questions.

PACKET_ZC_STORE_NORMAL_ITEMLIST has NORMALITEM_EXTRAINFO inside.
that is:

Code: Select all

  /* this+0x4 */ struct NORMALITEM_EXTRAINFO itemInfo[...] { // Size 10
    /* this+0x0 */ short index;
    /* this+0x2 */ unsigned short ITID;
    /* this+0x4 */ unsigned char type;
    /* this+0x5 */ bool IsIdentified;
    /* this+0x6 */ short count;
    /* this+0x8 */ unsigned short WearState;
  }; 
on PACKET_ZC_GROUP_LIST made a little update:

Code: Select all

struct PACKET_ZC_GROUP_LIST {
  /* this+0x0 */ short PacketType
  /* this+0x2 */ short PacketLength
  /* this+0x4 */ char groupName[24]
  /* this+0x1c */ struct GROUPMEMBER_INFO groupInfo[...] {
    /* this+0x0 */ unsigned long AID;
    /* this+0x4 */ char characterName[24];
    /* this+0x1c */ char mapName[16];
    /* this+0x2c */ unsigned char role;
    /* this+0x2d */ unsigned char state;
  }
} 
I also Upload my latest structs here.

Edit
File Deleted (Outdated).

Technology
Super Moderators
Super Moderators
Posts: 801
Joined: 06 May 2008, 12:47
Noob?: No

Re: RO Structs

#5 Post by Technology »

kLabMouse wrote:
Technology wrote: btw kLab, does g_charblock_size really exist? (I need to know before further design)
I think not. I used it to list different packet internals.
ah ok, thanks for answering the questions.

I'm going to make a plugin that hooks on the received packets of kore to test more packets.
Right now i need the latest enum that links packetID with packetHANDLE.
So, it would be nice if you could attach that, kLab.
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!

User avatar
kLabMouse
Administrator
Administrator
Posts: 1301
Joined: 24 Apr 2008, 12:02

Re: RO Structs

#6 Post by kLabMouse »

Technology wrote:I'm going to make a plugin that hooks on the received packets of kore to test more packets.
Right now i need the latest enum that links packetID with packetHANDLE.
So, it would be nice if you could attach that, kLab.
Here ya go:

Code: Select all

typedef enum <unnamed-tag> {
  HEADER_CA_LOGIN =  0x64,
  HEADER_CH_ENTER =  0x65,
  HEADER_CH_SELECT_CHAR =  0x66,
  HEADER_CH_MAKE_CHAR =  0x67,
  HEADER_CH_DELETE_CHAR =  0x68,
  HEADER_AC_ACCEPT_LOGIN =  0x69,
  HEADER_AC_REFUSE_LOGIN =  0x6a,
  HEADER_HC_ACCEPT_ENTER =  0x6b,
  HEADER_HC_REFUSE_ENTER =  0x6c,
  HEADER_HC_ACCEPT_MAKECHAR =  0x6d,
  HEADER_HC_REFUSE_MAKECHAR =  0x6e,
  HEADER_HC_ACCEPT_DELETECHAR =  0x6f,
  HEADER_HC_REFUSE_DELETECHAR =  0x70,
  HEADER_HC_NOTIFY_ZONESVR =  0x71,
  HEADER_CZ_ENTER =  0x72,
  HEADER_ZC_ACCEPT_ENTER =  0x73,
  HEADER_ZC_REFUSE_ENTER =  0x74,
  HEADER_ZC_NOTIFY_INITCHAR =  0x75,
  HEADER_ZC_NOTIFY_UPDATECHAR =  0x76,
  HEADER_ZC_NOTIFY_UPDATEPLAYER =  0x77,
  HEADER_ZC_NOTIFY_STANDENTRY =  0x78,
  HEADER_ZC_NOTIFY_NEWENTRY =  0x79,
  HEADER_ZC_NOTIFY_ACTENTRY =  0x7a,
  HEADER_ZC_NOTIFY_MOVEENTRY =  0x7b,
  HEADER_ZC_NOTIFY_STANDENTRY_NPC =  0x7c,
  HEADER_CZ_NOTIFY_ACTORINIT =  0x7d,
  HEADER_CZ_REQUEST_TIME =  0x7e,
  HEADER_ZC_NOTIFY_TIME =  0x7f,
  HEADER_ZC_NOTIFY_VANISH =  0x80,
  HEADER_SC_NOTIFY_BAN =  0x81,
  HEADER_CZ_REQUEST_QUIT =  0x82,
  HEADER_ZC_ACCEPT_QUIT =  0x83,
  HEADER_ZC_REFUSE_QUIT =  0x84,
  HEADER_CZ_REQUEST_MOVE =  0x85,
  HEADER_ZC_NOTIFY_MOVE =  0x86,
  HEADER_ZC_NOTIFY_PLAYERMOVE =  0x87,
  HEADER_ZC_STOPMOVE =  0x88,
  HEADER_CZ_REQUEST_ACT =  0x89,
  HEADER_ZC_NOTIFY_ACT =  0x8a,
  HEADER_ZC_NOTIFY_ACT_POSITION =  0x8b,
  HEADER_CZ_REQUEST_CHAT =  0x8c,
  HEADER_ZC_NOTIFY_CHAT =  0x8d,
  HEADER_ZC_NOTIFY_PLAYERCHAT =  0x8e,
  HEADER_SERVER_ENTRY_ACK =  0x8f,
  HEADER_CZ_CONTACTNPC =  0x90,
  HEADER_ZC_NPCACK_MAPMOVE =  0x91,
  HEADER_ZC_NPCACK_SERVERMOVE =  0x92,
  HEADER_ZC_NPCACK_ENABLE =  0x93,
  HEADER_CZ_REQNAME =  0x94,
  HEADER_ZC_ACK_REQNAME =  0x95,
  HEADER_CZ_WHISPER =  0x96,
  HEADER_ZC_WHISPER =  0x97,
  HEADER_ZC_ACK_WHISPER =  0x98,
  HEADER_CZ_BROADCAST =  0x99,
  HEADER_ZC_BROADCAST =  0x9a,
  HEADER_CZ_CHANGE_DIRECTION =  0x9b,
  HEADER_ZC_CHANGE_DIRECTION =  0x9c,
  HEADER_ZC_ITEM_ENTRY =  0x9d,
  HEADER_ZC_ITEM_FALL_ENTRY =  0x9e,
  HEADER_CZ_ITEM_PICKUP =  0x9f,
  HEADER_ZC_ITEM_PICKUP_ACK =  0xa0,
  HEADER_ZC_ITEM_DISAPPEAR =  0xa1,
  HEADER_CZ_ITEM_THROW =  0xa2,
  HEADER_ZC_NORMAL_ITEMLIST =  0xa3,
  HEADER_ZC_EQUIPMENT_ITEMLIST =  0xa4,
  HEADER_ZC_STORE_NORMAL_ITEMLIST =  0xa5,
  HEADER_ZC_STORE_EQUIPMENT_ITEMLIST =  0xa6,
  HEADER_CZ_USE_ITEM =  0xa7,
  HEADER_ZC_USE_ITEM_ACK =  0xa8,
  HEADER_CZ_REQ_WEAR_EQUIP =  0xa9,
  HEADER_ZC_REQ_WEAR_EQUIP_ACK =  0xaa,
  HEADER_CZ_REQ_TAKEOFF_EQUIP =  0xab,
  HEADER_ZC_REQ_TAKEOFF_EQUIP_ACK =  0xac,
  HEADER_CZ_REQ_ITEM_EXPLANATION_BYNAME =  0xad,
  HEADER_ZC_REQ_ITEM_EXPLANATION_ACK =  0xae,
  HEADER_ZC_ITEM_THROW_ACK =  0xaf,
  HEADER_ZC_PAR_CHANGE =  0xb0,
  HEADER_ZC_LONGPAR_CHANGE =  0xb1,
  HEADER_CZ_RESTART =  0xb2,
  HEADER_ZC_RESTART_ACK =  0xb3,
  HEADER_ZC_SAY_DIALOG =  0xb4,
  HEADER_ZC_WAIT_DIALOG =  0xb5,
  HEADER_ZC_CLOSE_DIALOG =  0xb6,
  HEADER_ZC_MENU_LIST =  0xb7,
  HEADER_CZ_CHOOSE_MENU =  0xb8,
  HEADER_CZ_REQ_NEXT_SCRIPT =  0xb9,
  HEADER_CZ_REQ_STATUS =  0xba,
  HEADER_CZ_STATUS_CHANGE =  0xbb,
  HEADER_ZC_STATUS_CHANGE_ACK =  0xbc,
  HEADER_ZC_STATUS =  0xbd,
  HEADER_ZC_STATUS_CHANGE =  0xbe,
  HEADER_CZ_REQ_EMOTION =  0xbf,
  HEADER_ZC_EMOTION =  0xc0,
  HEADER_CZ_REQ_USER_COUNT =  0xc1,
  HEADER_ZC_USER_COUNT =  0xc2,
  HEADER_ZC_SPRITE_CHANGE =  0xc3,
  HEADER_ZC_SELECT_DEALTYPE =  0xc4,
  HEADER_CZ_ACK_SELECT_DEALTYPE =  0xc5,
  HEADER_ZC_PC_PURCHASE_ITEMLIST =  0xc6,
  HEADER_ZC_PC_SELL_ITEMLIST =  0xc7,
  HEADER_CZ_PC_PURCHASE_ITEMLIST =  0xc8,
  HEADER_CZ_PC_SELL_ITEMLIST =  0xc9,
  HEADER_ZC_PC_PURCHASE_RESULT =  0xca,
  HEADER_ZC_PC_SELL_RESULT =  0xcb,
  HEADER_CZ_DISCONNECT_CHARACTER =  0xcc,
  HEADER_ZC_ACK_DISCONNECT_CHARACTER =  0xcd,
  HEADER_CZ_DISCONNECT_ALL_CHARACTER =  0xce,
  HEADER_CZ_SETTING_WHISPER_PC =  0xcf,
  HEADER_CZ_SETTING_WHISPER_STATE =  0xd0,
  HEADER_ZC_SETTING_WHISPER_PC =  0xd1,
  HEADER_ZC_SETTING_WHISPER_STATE =  0xd2,
  HEADER_CZ_REQ_WHISPER_LIST =  0xd3,
  HEADER_ZC_WHISPER_LIST =  0xd4,
  HEADER_CZ_CREATE_CHATROOM =  0xd5,
  HEADER_ZC_ACK_CREATE_CHATROOM =  0xd6,
  HEADER_ZC_ROOM_NEWENTRY =  0xd7,
  HEADER_ZC_DESTROY_ROOM =  0xd8,
  HEADER_CZ_REQ_ENTER_ROOM =  0xd9,
  HEADER_ZC_REFUSE_ENTER_ROOM =  0xda,
  HEADER_ZC_ENTER_ROOM =  0xdb,
  HEADER_ZC_MEMBER_NEWENTRY =  0xdc,
  HEADER_ZC_MEMBER_EXIT =  0xdd,
  HEADER_CZ_CHANGE_CHATROOM =  0xde,
  HEADER_ZC_CHANGE_CHATROOM =  0xdf,
  HEADER_CZ_REQ_ROLE_CHANGE =  0xe0,
  HEADER_ZC_ROLE_CHANGE =  0xe1,
  HEADER_CZ_REQ_EXPEL_MEMBER =  0xe2,
  HEADER_CZ_EXIT_ROOM =  0xe3,
  HEADER_CZ_REQ_EXCHANGE_ITEM =  0xe4,
  HEADER_ZC_REQ_EXCHANGE_ITEM =  0xe5,
  HEADER_CZ_ACK_EXCHANGE_ITEM =  0xe6,
  HEADER_ZC_ACK_EXCHANGE_ITEM =  0xe7,
  HEADER_CZ_ADD_EXCHANGE_ITEM =  0xe8,
  HEADER_ZC_ADD_EXCHANGE_ITEM =  0xe9,
  HEADER_ZC_ACK_ADD_EXCHANGE_ITEM =  0xea,
  HEADER_CZ_CONCLUDE_EXCHANGE_ITEM =  0xeb,
  HEADER_ZC_CONCLUDE_EXCHANGE_ITEM =  0xec,
  HEADER_CZ_CANCEL_EXCHANGE_ITEM =  0xed,
  HEADER_ZC_CANCEL_EXCHANGE_ITEM =  0xee,
  HEADER_CZ_EXEC_EXCHANGE_ITEM =  0xef,
  HEADER_ZC_EXEC_EXCHANGE_ITEM =  0xf0,
  HEADER_ZC_EXCHANGEITEM_UNDO =  0xf1,
  HEADER_ZC_NOTIFY_STOREITEM_COUNTINFO =  0xf2,
  HEADER_CZ_MOVE_ITEM_FROM_BODY_TO_STORE =  0xf3,
  HEADER_ZC_ADD_ITEM_TO_STORE =  0xf4,
  HEADER_CZ_MOVE_ITEM_FROM_STORE_TO_BODY =  0xf5,
  HEADER_ZC_DELETE_ITEM_FROM_STORE =  0xf6,
  HEADER_CZ_CLOSE_STORE =  0xf7,
  HEADER_ZC_CLOSE_STORE =  0xf8,
  HEADER_CZ_MAKE_GROUP =  0xf9,
  HEADER_ZC_ACK_MAKE_GROUP =  0xfa,
  HEADER_ZC_GROUP_LIST =  0xfb,
  HEADER_CZ_REQ_JOIN_GROUP =  0xfc,
  HEADER_ZC_ACK_REQ_JOIN_GROUP =  0xfd,
  HEADER_ZC_REQ_JOIN_GROUP =  0xfe,
  HEADER_CZ_JOIN_GROUP =  0xff,
  HEADER_CZ_REQ_LEAVE_GROUP =  0x100,
  HEADER_ZC_GROUPINFO_CHANGE =  0x101,
  HEADER_CZ_CHANGE_GROUPEXPOPTION =  0x102,
  HEADER_CZ_REQ_EXPEL_GROUP_MEMBER =  0x103,
  HEADER_ZC_ADD_MEMBER_TO_GROUP =  0x104,
  HEADER_ZC_DELETE_MEMBER_FROM_GROUP =  0x105,
  HEADER_ZC_NOTIFY_HP_TO_GROUPM =  0x106,
  HEADER_ZC_NOTIFY_POSITION_TO_GROUPM =  0x107,
  HEADER_CZ_REQUEST_CHAT_PARTY =  0x108,
  HEADER_ZC_NOTIFY_CHAT_PARTY =  0x109,
  HEADER_ZC_MVP_GETTING_ITEM =  0x10a,
  HEADER_ZC_MVP_GETTING_SPECIAL_EXP =  0x10b,
  HEADER_ZC_MVP =  0x10c,
  HEADER_ZC_THROW_MVPITEM =  0x10d,
  HEADER_ZC_SKILLINFO_UPDATE =  0x10e,
  HEADER_ZC_SKILLINFO_LIST =  0x10f,
  HEADER_ZC_ACK_TOUSESKILL =  0x110,
  HEADER_ZC_ADD_SKILL =  0x111,
  HEADER_CZ_UPGRADE_SKILLLEVEL =  0x112,
  HEADER_CZ_USE_SKILL =  0x113,
  HEADER_ZC_NOTIFY_SKILL =  0x114,
  HEADER_ZC_NOTIFY_SKILL_POSITION =  0x115,
  HEADER_CZ_USE_SKILL_TOGROUND =  0x116,
  HEADER_ZC_NOTIFY_GROUNDSKILL =  0x117,
  HEADER_CZ_CANCEL_LOCKON =  0x118,
  HEADER_ZC_STATE_CHANGE =  0x119,
  HEADER_ZC_USE_SKILL =  0x11a,
  HEADER_CZ_SELECT_WARPPOINT =  0x11b,
  HEADER_ZC_WARPLIST =  0x11c,
  HEADER_CZ_REMEMBER_WARPPOINT =  0x11d,
  HEADER_ZC_ACK_REMEMBER_WARPPOINT =  0x11e,
  HEADER_ZC_SKILL_ENTRY =  0x11f,
  HEADER_ZC_SKILL_DISAPPEAR =  0x120,
  HEADER_ZC_NOTIFY_CARTITEM_COUNTINFO =  0x121,
  HEADER_ZC_CART_EQUIPMENT_ITEMLIST =  0x122,
  HEADER_ZC_CART_NORMAL_ITEMLIST =  0x123,
  HEADER_ZC_ADD_ITEM_TO_CART =  0x124,
  HEADER_ZC_DELETE_ITEM_FROM_CART =  0x125,
  HEADER_CZ_MOVE_ITEM_FROM_BODY_TO_CART =  0x126,
  HEADER_CZ_MOVE_ITEM_FROM_CART_TO_BODY =  0x127,
  HEADER_CZ_MOVE_ITEM_FROM_STORE_TO_CART =  0x128,
  HEADER_CZ_MOVE_ITEM_FROM_CART_TO_STORE =  0x129,
  HEADER_CZ_REQ_CARTOFF =  0x12a,
  HEADER_ZC_CARTOFF =  0x12b,
  HEADER_ZC_ACK_ADDITEM_TO_CART =  0x12c,
  HEADER_ZC_OPENSTORE =  0x12d,
  HEADER_CZ_REQ_CLOSESTORE =  0x12e,
  HEADER_CZ_REQ_OPENSTORE =  0x12f,
  HEADER_CZ_REQ_BUY_FROMMC =  0x130,
  HEADER_ZC_STORE_ENTRY =  0x131,
  HEADER_ZC_DISAPPEAR_ENTRY =  0x132,
  HEADER_ZC_PC_PURCHASE_ITEMLIST_FROMMC =  0x133,
  HEADER_CZ_PC_PURCHASE_ITEMLIST_FROMMC =  0x134,
  HEADER_ZC_PC_PURCHASE_RESULT_FROMMC =  0x135,
  HEADER_ZC_PC_PURCHASE_MYITEMLIST =  0x136,
  HEADER_ZC_DELETEITEM_FROM_MCSTORE =  0x137,
  HEADER_CZ_PKMODE_CHANGE =  0x138,
  HEADER_ZC_ATTACK_FAILURE_FOR_DISTANCE =  0x139,
  HEADER_ZC_ATTACK_RANGE =  0x13a,
  HEADER_ZC_ACTION_FAILURE =  0x13b,
  HEADER_ZC_EQUIP_ARROW =  0x13c,
  HEADER_ZC_RECOVERY =  0x13d,
  HEADER_ZC_USESKILL_ACK =  0x13e,
  HEADER_CZ_ITEM_CREATE =  0x13f,
  HEADER_CZ_MOVETO_MAP =  0x140,
  HEADER_ZC_COUPLESTATUS =  0x141,
  HEADER_ZC_OPEN_EDITDLG =  0x142,
  HEADER_CZ_INPUT_EDITDLG =  0x143,
  HEADER_ZC_COMPASS =  0x144,
  HEADER_ZC_SHOW_IMAGE =  0x145,
  HEADER_CZ_CLOSE_DIALOG =  0x146,
  HEADER_ZC_AUTORUN_SKILL =  0x147,
  HEADER_ZC_RESURRECTION =  0x148,
  HEADER_CZ_REQ_GIVE_MANNER_POINT =  0x149,
  HEADER_ZC_ACK_GIVE_MANNER_POINT =  0x14a,
  HEADER_ZC_NOTIFY_MANNER_POINT_GIVEN =  0x14b,
  HEADER_ZC_MYGUILD_BASIC_INFO =  0x14c,
  HEADER_CZ_REQ_GUILD_MENUINTERFACE =  0x14d,
  HEADER_ZC_ACK_GUILD_MENUINTERFACE =  0x14e,
  HEADER_CZ_REQ_GUILD_MENU =  0x14f,
  HEADER_ZC_GUILD_INFO =  0x150,
  HEADER_CZ_REQ_GUILD_EMBLEM_IMG =  0x151,
  HEADER_ZC_GUILD_EMBLEM_IMG =  0x152,
  HEADER_CZ_REGISTER_GUILD_EMBLEM_IMG =  0x153,
  HEADER_ZC_MEMBERMGR_INFO =  0x154,
  HEADER_CZ_REQ_CHANGE_MEMBERPOS =  0x155,
  HEADER_ZC_ACK_REQ_CHANGE_MEMBERS =  0x156,
  HEADER_CZ_REQ_OPEN_MEMBER_INFO =  0x157,
  HEADER_ZC_ACK_OPEN_MEMBER_INFO =  0x158,
  HEADER_CZ_REQ_LEAVE_GUILD =  0x159,
  HEADER_ZC_ACK_LEAVE_GUILD =  0x15a,
  HEADER_CZ_REQ_BAN_GUILD =  0x15b,
  HEADER_ZC_ACK_BAN_GUILD =  0x15c,
  HEADER_CZ_REQ_DISORGANIZE_GUILD =  0x15d,
  HEADER_ZC_ACK_DISORGANIZE_GUILD_RESULT =  0x15e,
  HEADER_ZC_ACK_DISORGANIZE_GUILD =  0x15f,
  HEADER_ZC_POSITION_INFO =  0x160,
  HEADER_CZ_REG_CHANGE_GUILD_POSITIONINFO =  0x161,
  HEADER_ZC_GUILD_SKILLINFO =  0x162,
  HEADER_ZC_BAN_LIST =  0x163,
  HEADER_ZC_OTHER_GUILD_LIST =  0x164,
  HEADER_CZ_REQ_MAKE_GUILD =  0x165,
  HEADER_ZC_POSITION_ID_NAME_INFO =  0x166,
  HEADER_ZC_RESULT_MAKE_GUILD =  0x167,
  HEADER_CZ_REQ_JOIN_GUILD =  0x168,
  HEADER_ZC_ACK_REQ_JOIN_GUILD =  0x169,
  HEADER_ZC_REQ_JOIN_GUILD =  0x16a,
  HEADER_CZ_JOIN_GUILD =  0x16b,
  HEADER_ZC_UPDATE_GDID =  0x16c,
  HEADER_ZC_UPDATE_CHARSTAT =  0x16d,
  HEADER_CZ_GUILD_NOTICE =  0x16e,
  HEADER_ZC_GUILD_NOTICE =  0x16f,
  HEADER_CZ_REQ_ALLY_GUILD =  0x170,
  HEADER_ZC_REQ_ALLY_GUILD =  0x171,
  HEADER_CZ_ALLY_GUILD =  0x172,
  HEADER_ZC_ACK_REQ_ALLY_GUILD =  0x173,
  HEADER_ZC_ACK_CHANGE_GUILD_POSITIONINFO =  0x174,
  HEADER_CZ_REQ_GUILD_MEMBER_INFO =  0x175,
  HEADER_ZC_ACK_GUILD_MEMBER_INFO =  0x176,
  HEADER_ZC_ITEMIDENTIFY_LIST =  0x177,
  HEADER_CZ_REQ_ITEMIDENTIFY =  0x178,
  HEADER_ZC_ACK_ITEMIDENTIFY =  0x179,
  HEADER_CZ_REQ_ITEMCOMPOSITION_LIST =  0x17a,
  HEADER_ZC_ITEMCOMPOSITION_LIST =  0x17b,
  HEADER_CZ_REQ_ITEMCOMPOSITION =  0x17c,
  HEADER_ZC_ACK_ITEMCOMPOSITION =  0x17d,
  HEADER_CZ_GUILD_CHAT =  0x17e,
  HEADER_ZC_GUILD_CHAT =  0x17f,
  HEADER_CZ_REQ_HOSTILE_GUILD =  0x180,
  HEADER_ZC_ACK_REQ_HOSTILE_GUILD =  0x181,
  HEADER_ZC_MEMBER_ADD =  0x182,
  HEADER_CZ_REQ_DELETE_RELATED_GUILD =  0x183,
  HEADER_ZC_DELETE_RELATED_GUILD =  0x184,
  HEADER_ZC_ADD_RELATED_GUILD =  0x185,
  HEADER_COLLECTORDEAD =  0x186,
  HEADER_PING =  0x187,
  HEADER_ZC_ACK_ITEMREFINING =  0x188,
  HEADER_ZC_NOTIFY_MAPINFO =  0x189,
  HEADER_CZ_REQ_DISCONNECT =  0x18a,
  HEADER_ZC_ACK_REQ_DISCONNECT =  0x18b,
  HEADER_ZC_MONSTER_INFO =  0x18c,
  HEADER_ZC_MAKABLEITEMLIST =  0x18d,
  HEADER_CZ_REQMAKINGITEM =  0x18e,
  HEADER_ZC_ACK_REQMAKINGITEM =  0x18f,
  HEADER_CZ_USE_SKILL_TOGROUND_WITHTALKBOX =  0x190,
  HEADER_ZC_TALKBOX_CHATCONTENTS =  0x191,
  HEADER_ZC_UPDATE_MAPINFO =  0x192,
  HEADER_CZ_REQNAME_BYGID =  0x193,
  HEADER_ZC_ACK_REQNAME_BYGID =  0x194,
  HEADER_ZC_ACK_REQNAMEALL =  0x195,
  HEADER_ZC_MSG_STATE_CHANGE =  0x196,
  HEADER_CZ_RESET =  0x197,
  HEADER_CZ_CHANGE_MAPTYPE =  0x198,
  HEADER_ZC_NOTIFY_MAPPROPERTY =  0x199,
  HEADER_ZC_NOTIFY_RANKING =  0x19a,
  HEADER_ZC_NOTIFY_EFFECT =  0x19b,
  HEADER_CZ_LOCALBROADCAST =  0x19c,
  HEADER_CZ_CHANGE_EFFECTSTATE =  0x19d,
  HEADER_ZC_START_CAPTURE =  0x19e,
  HEADER_CZ_TRYCAPTURE_MONSTER =  0x19f,
  HEADER_ZC_TRYCAPTURE_MONSTER =  0x1a0,
  HEADER_CZ_COMMAND_PET =  0x1a1,
  HEADER_ZC_PROPERTY_PET =  0x1a2,
  HEADER_ZC_FEED_PET =  0x1a3,
  HEADER_ZC_CHANGESTATE_PET =  0x1a4,
  HEADER_CZ_RENAME_PET =  0x1a5,
  HEADER_ZC_PETEGG_LIST =  0x1a6,
  HEADER_CZ_SELECT_PETEGG =  0x1a7,
  HEADER_CZ_PETEGG_INFO =  0x1a8,
  HEADER_CZ_PET_ACT =  0x1a9,
  HEADER_ZC_PET_ACT =  0x1aa,
  HEADER_ZC_PAR_CHANGE_USER =  0x1ab,
  HEADER_ZC_SKILL_UPDATE =  0x1ac,
  HEADER_ZC_MAKINGARROW_LIST =  0x1ad,
  HEADER_CZ_REQ_MAKINGARROW =  0x1ae,
  HEADER_CZ_REQ_CHANGECART =  0x1af,
  HEADER_ZC_NPCSPRITE_CHANGE =  0x1b0,
  HEADER_ZC_SHOWDIGIT =  0x1b1,
  HEADER_CZ_REQ_OPENSTORE2 =  0x1b2,
  HEADER_ZC_SHOW_IMAGE2 =  0x1b3,
  HEADER_ZC_CHANGE_GUILD =  0x1b4,
  HEADER_SC_BILLING_INFO =  0x1b5,
  HEADER_ZC_GUILD_INFO2 =  0x1b6,
  HEADER_CZ_GUILD_ZENY =  0x1b7,
  HEADER_ZC_GUILD_ZENY_ACK =  0x1b8,
  HEADER_ZC_DISPEL =  0x1b9,
  HEADER_CZ_REMOVE_AID =  0x1ba,
  HEADER_CZ_SHIFT =  0x1bb,
  HEADER_CZ_RECALL =  0x1bc,
  HEADER_CZ_RECALL_GID =  0x1bd,
  HEADER_AC_ASK_PNGAMEROOM =  0x1be,
  HEADER_CA_REPLY_PNGAMEROOM =  0x1bf,
  HEADER_CZ_REQ_REMAINTIME =  0x1c0,
  HEADER_ZC_REPLY_REMAINTIME =  0x1c1,
  HEADER_ZC_INFO_REMAINTIME =  0x1c2,
  HEADER_ZC_BROADCAST2 =  0x1c3,
  HEADER_ZC_ADD_ITEM_TO_STORE2 =  0x1c4,
  HEADER_ZC_ADD_ITEM_TO_CART2 =  0x1c5,
  HEADER_CS_REQ_ENCRYPTION =  0x1c6,
  HEADER_SC_ACK_ENCRYPTION =  0x1c7,
  HEADER_ZC_USE_ITEM_ACK2 =  0x1c8,
  HEADER_ZC_SKILL_ENTRY2 =  0x1c9,
  HEADER_CZ_REQMAKINGHOMUN =  0x1ca,
  HEADER_CZ_MONSTER_TALK =  0x1cb,
  HEADER_ZC_MONSTER_TALK =  0x1cc,
  HEADER_ZC_AUTOSPELLLIST =  0x1cd,
  HEADER_CZ_SELECTAUTOSPELL =  0x1ce,
  HEADER_ZC_DEVOTIONLIST =  0x1cf,
  HEADER_ZC_SPIRITS =  0x1d0,
  HEADER_ZC_BLADESTOP =  0x1d1,
  HEADER_ZC_COMBODELAY =  0x1d2,
  HEADER_ZC_SOUND =  0x1d3,
  HEADER_ZC_OPEN_EDITDLGSTR =  0x1d4,
  HEADER_CZ_INPUT_EDITDLGSTR =  0x1d5,
  HEADER_ZC_NOTIFY_MAPPROPERTY2 =  0x1d6,
  HEADER_ZC_SPRITE_CHANGE2 =  0x1d7,
  HEADER_ZC_NOTIFY_STANDENTRY2 =  0x1d8,
  HEADER_ZC_NOTIFY_NEWENTRY2 =  0x1d9,
  HEADER_ZC_NOTIFY_MOVEENTRY2 =  0x1da,
  HEADER_CA_REQ_HASH =  0x1db,
  HEADER_AC_ACK_HASH =  0x1dc,
  HEADER_CA_LOGIN2 =  0x1dd,
  HEADER_ZC_NOTIFY_SKILL2 =  0x1de,
  HEADER_CZ_REQ_ACCOUNTNAME =  0x1df,
  HEADER_ZC_ACK_ACCOUNTNAME =  0x1e0,
  HEADER_ZC_SPIRITS2 =  0x1e1,
  HEADER_ZC_REQ_COUPLE =  0x1e2,
  HEADER_CZ_JOIN_COUPLE =  0x1e3,
  HEADER_ZC_START_COUPLE =  0x1e4,
  HEADER_CZ_REQ_JOIN_COUPLE =  0x1e5,
  HEADER_ZC_COUPLENAME =  0x1e6,
  HEADER_CZ_DORIDORI =  0x1e7,
  HEADER_CZ_MAKE_GROUP2 =  0x1e8,
  HEADER_ZC_ADD_MEMBER_TO_GROUP2 =  0x1e9,
  HEADER_ZC_CONGRATULATION =  0x1ea,
  HEADER_ZC_NOTIFY_POSITION_TO_GUILDM =  0x1eb,
  HEADER_ZC_GUILD_MEMBER_MAP_CHANGE =  0x1ec,
  HEADER_CZ_CHOPOKGI =  0x1ed,
  HEADER_ZC_NORMAL_ITEMLIST2 =  0x1ee,
  HEADER_ZC_CART_NORMAL_ITEMLIST2 =  0x1ef,
  HEADER_ZC_STORE_NORMAL_ITEMLIST2 =  0x1f0,
  HEADER_AC_NOTIFY_ERROR =  0x1f1,
  HEADER_ZC_UPDATE_CHARSTAT2 =  0x1f2,
  HEADER_ZC_NOTIFY_EFFECT2 =  0x1f3,
  HEADER_ZC_REQ_EXCHANGE_ITEM2 =  0x1f4,
  HEADER_ZC_ACK_EXCHANGE_ITEM2 =  0x1f5,
  HEADER_ZC_REQ_BABY =  0x1f6,
  HEADER_CZ_JOIN_BABY =  0x1f7,
  HEADER_ZC_START_BABY =  0x1f8,
  HEADER_CZ_REQ_JOIN_BABY =  0x1f9,
  HEADER_CA_LOGIN3 =  0x1fa,
  HEADER_CH_DELETE_CHAR2 =  0x1fb,
  HEADER_ZC_REPAIRITEMLIST =  0x1fc,
  HEADER_CZ_REQ_ITEMREPAIR =  0x1fd,
  HEADER_ZC_ACK_ITEMREPAIR =  0x1fe,
  HEADER_ZC_HIGHJUMP =  0x1ff,
  HEADER_CA_CONNECT_INFO_CHANGED =  0x200,
  HEADER_ZC_FRIENDS_LIST =  0x201,
  HEADER_CZ_ADD_FRIENDS =  0x202,
  HEADER_CZ_DELETE_FRIENDS =  0x203,
  HEADER_CA_EXE_HASHCHECK =  0x204,
  HEADER_ZC_DIVORCE =  0x205,
  HEADER_ZC_FRIENDS_STATE =  0x206,
  HEADER_ZC_REQ_ADD_FRIENDS =  0x207,
  HEADER_CZ_ACK_REQ_ADD_FRIENDS =  0x208,
  HEADER_ZC_ADD_FRIENDS_LIST =  0x209,
  HEADER_ZC_DELETE_FRIENDS =  0x20a,
  HEADER_CH_EXE_HASHCHECK =  0x20b,
  HEADER_CZ_EXE_HASHCHECK =  0x20c,
  HEADER_HC_BLOCK_CHARACTER =  0x20d,
  HEADER_ZC_STARSKILL =  0x20e,
  HEADER_CZ_REQ_PVPPOINT =  0x20f,
  HEADER_ZC_ACK_PVPPOINT =  0x210,
  HEADER_ZH_MOVE_PVPWORLD =  0x211,
  HEADER_CZ_REQ_GIVE_MANNER_BYNAME =  0x212,
  HEADER_CZ_REQ_STATUS_GM =  0x213,
  HEADER_ZC_ACK_STATUS_GM =  0x214,
  HEADER_ZC_SKILLMSG =  0x215,
  HEADER_ZC_BABYMSG =  0x216,
  HEADER_CZ_BLACKSMITH_RANK =  0x217,
  HEADER_CZ_ALCHEMIST_RANK =  0x218,
  HEADER_ZC_BLACKSMITH_RANK =  0x219,
  HEADER_ZC_ALCHEMIST_RANK =  0x21a,
  HEADER_ZC_BLACKSMITH_POINT =  0x21b,
  HEADER_ZC_ALCHEMIST_POINT =  0x21c,
  HEADER_CZ_LESSEFFECT =  0x21d,
  HEADER_ZC_LESSEFFECT =  0x21e,
  HEADER_ZC_NOTIFY_PKINFO =  0x21f,
  HEADER_ZC_NOTIFY_CRAZYKILLER =  0x220,
  HEADER_ZC_NOTIFY_WEAPONITEMLIST =  0x221,
  HEADER_CZ_REQ_WEAPONREFINE =  0x222,
  HEADER_ZC_ACK_WEAPONREFINE =  0x223,
  HEADER_ZC_TAEKWON_POINT =  0x224,
  HEADER_CZ_TAEKWON_RANK =  0x225,
  HEADER_ZC_TAEKWON_RANK =  0x226,
  HEADER_ZC_GAME_GUARD =  0x227,
  HEADER_CZ_ACK_GAME_GUARD =  0x228,
  HEADER_ZC_STATE_CHANGE3 =  0x229,
  HEADER_ZC_NOTIFY_STANDENTRY3 =  0x22a,
  HEADER_ZC_NOTIFY_NEWENTRY3 =  0x22b,
  HEADER_ZC_NOTIFY_MOVEENTRY3 =  0x22c,
  HEADER_CZ_COMMAND_MER =  0x22d,
  HEADER_ZC_PROPERTY_HOMUN =  0x22e,
  HEADER_ZC_FEED_MER =  0x22f,
  HEADER_ZC_CHANGESTATE_MER =  0x230,
  HEADER_CZ_RENAME_MER =  0x231,
  HEADER_CZ_REQUEST_MOVENPC =  0x232,
  HEADER_CZ_REQUEST_ACTNPC =  0x233,
  HEADER_CZ_REQUEST_MOVETOOWNER =  0x234,
  HEADER_ZC_HOSKILLINFO_LIST =  0x235,
  HEADER_ZC_KILLER_POINT =  0x236,
  HEADER_CZ_KILLER_RANK =  0x237,
  HEADER_ZC_KILLER_RANK =  0x238,
  HEADER_ZC_HOSKILLINFO_UPDATE =  0x239,
  HEADER_ZC_REQ_STORE_PASSWORD =  0x23a,
  HEADER_CZ_ACK_STORE_PASSWORD =  0x23b,
  HEADER_ZC_RESULT_STORE_PASSWORD =  0x23c,
  HEADER_AC_EVENT_RESULT =  0x23d,
  HEADER_HC_REQUEST_CHARACTER_PASSWORD =  0x23e,
  HEADER_CZ_MAIL_GET_LIST =  0x23f,
  HEADER_ZC_MAIL_REQ_GET_LIST =  0x240,
  HEADER_CZ_MAIL_OPEN =  0x241,
  HEADER_ZC_MAIL_REQ_OPEN =  0x242,
  HEADER_CZ_MAIL_DELETE =  0x243,
  HEADER_CZ_MAIL_GET_ITEM =  0x244,
  HEADER_ZC_MAIL_REQ_GET_ITEM =  0x245,
  HEADER_CZ_MAIL_RESET_ITEM =  0x246,
  HEADER_CZ_MAIL_ADD_ITEM =  0x247,
  HEADER_CZ_MAIL_SEND =  0x248,
  HEADER_ZC_MAIL_REQ_SEND =  0x249,
  HEADER_ZC_MAIL_RECEIVE =  0x24a,
  HEADER_CZ_AUCTION_CREATE =  0x24b,
  HEADER_CZ_AUCTION_ADD_ITEM =  0x24c,
  HEADER_CZ_AUCTION_ADD =  0x24d,
  HEADER_CZ_AUCTION_ADD_CANCEL =  0x24e,
  HEADER_CZ_AUCTION_BUY =  0x24f,
  HEADER_ZC_AUCTION_RESULT =  0x250,
  HEADER_CZ_AUCTION_ITEM_SEARCH =  0x251,
  HEADER_ZC_AUCTION_ITEM_REQ_SEARCH =  0x252,
  HEADER_ZC_STARPLACE =  0x253,
  HEADER_CZ_AGREE_STARPLACE =  0x254,
  HEADER_ZC_ACK_MAIL_ADD_ITEM =  0x255,
  HEADER_ZC_ACK_AUCTION_ADD_ITEM =  0x256,
  HEADER_ZC_ACK_MAIL_DELETE =  0x257,
  HEADER_CA_REQ_GAME_GUARD_CHECK =  0x258,
  HEADER_AC_ACK_GAME_GUARD =  0x259,
  HEADER_ZC_MAKINGITEM_LIST =  0x25a,
  HEADER_CZ_REQ_MAKINGITEM =  0x25b,
  HEADER_CZ_AUCTION_REQ_MY_INFO =  0x25c,
  HEADER_CZ_AUCTION_REQ_MY_SELL_STOP =  0x25d,
  HEADER_ZC_AUCTION_ACK_MY_SELL_STOP =  0x25e,
  HEADER_ZC_AUCTION_WINDOWS =  0x25f,
  HEADER_ZC_MAIL_WINDOWS =  0x260,
  HEADER_AC_REQ_LOGIN_OLDEKEY =  0x261,
  HEADER_AC_REQ_LOGIN_NEWEKEY =  0x262,
  HEADER_AC_REQ_LOGIN_CARDPASS =  0x263,
  HEADER_CA_ACK_LOGIN_OLDEKEY =  0x264,
  HEADER_CA_ACK_LOGIN_NEWEKEY =  0x265,
  HEADER_CA_ACK_LOGIN_CARDPASS =  0x266,
  HEADER_AC_ACK_EKEY_FAIL_NOTEXIST =  0x267,
  HEADER_AC_ACK_EKEY_FAIL_NOTUSESEKEY =  0x268,
  HEADER_AC_ACK_EKEY_FAIL_NOTUSEDEKEY =  0x269,
  HEADER_AC_ACK_EKEY_FAIL_AUTHREFUSE =  0x26a,
  HEADER_AC_ACK_EKEY_FAIL_INPUTEKEY =  0x26b,
  HEADER_AC_ACK_EKEY_FAIL_NOTICE =  0x26c,
  HEADER_AC_ACK_EKEY_FAIL_NEEDCARDPASS =  0x26d,
  HEADER_AC_ACK_AUTHEKEY_FAIL_NOTMATCHCARDPASS =  0x26e,
  HEADER_AC_ACK_FIRST_LOGIN =  0x26f,
  HEADER_AC_REQ_LOGIN_ACCOUNT_INFO =  0x270,
  HEADER_CA_ACK_LOGIN_ACCOUNT_INFO =  0x271,
  HEADER_AC_ACK_PT_ID_INFO =  0x272,
  HEADER_CZ_REQ_MAIL_RETURN =  0x273,
  HEADER_ZC_ACK_MAIL_RETURN =  0x274,
  HEADER_CH_ENTER2 =  0x275,
  HEADER_AC_ACCEPT_LOGIN2 =  0x276,
  HEADER_CA_LOGIN_PCBANG =  0x277,
  HEADER_ZC_NOTIFY_PCBANG =  0x278,
  HEADER_CZ_HUNTINGLIST =  0x279,
  HEADER_ZC_HUNTINGLIST =  0x27a,
  HEADER_ZC_PCBANG_EFFECT =  0x27b,
  HEADER_CA_LOGIN4 =  0x27c,
  HEADER_ZC_PROPERTY_MERCE =  0x27d,
  HEADER_ZC_SHANDA_PROTECT =  0x27e,
  HEADER_CA_CLIENT_TYPE =  0x27f,
  HEADER_ZC_GANGSI_POINT =  0x280,
  HEADER_CZ_GANGSI_RANK =  0x281,
  HEADER_ZC_GANGSI_RANK =  0x282,
  HEADER_ZC_AID =  0x283,
  HEADER_ZC_NOTIFY_EFFECT3 =  0x284,
  HEADER_ZC_DEATH_QUESTION =  0x285,
  HEADER_CZ_DEATH_QUESTION =  0x286,
  HEADER_ZC_PC_CASH_POINT_ITEMLIST =  0x287,
  HEADER_CZ_PC_BUY_CASH_POINT_ITEM =  0x288,
  HEADER_ZC_PC_CASH_POINT_UPDATE =  0x289,
  HEADER_ZC_NPC_SHOWEFST_UPDATE =  0x28a,
  HEADER_HC_CHARNOTBEENSELECTED =  0x28b,
  HEADER_CH_SELECT_CHAR_GOINGTOBEUSED =  0x28c,
  HEADER_CH_REQ_IS_VALID_CHARNAME =  0x28d,
  HEADER_HC_ACK_IS_VALID_CHARNAME =  0x28e,
  HEADER_CH_REQ_CHANGE_CHARNAME =  0x28f,
  HEADER_HC_ACK_CHANGE_CHARNAME =  0x290,
  HEADER_ZC_MSG =  0x291,
  HEADER_CZ_STANDING_RESURRECTION =  0x292,
  HEADER_ZC_BOSS_INFO =  0x293,
  HEADER_ZC_READ_BOOK =  0x294,
  HEADER_ZC_EQUIPMENT_ITEMLIST2 =  0x295,
  HEADER_ZC_STORE_EQUIPMENT_ITEMLIST2 =  0x296,
  HEADER_ZC_CART_EQUIPMENT_ITEMLIST2 =  0x297,
  HEADER_ZC_CASH_TIME_COUNTER =  0x298,
  HEADER_ZC_CASH_ITEM_DELETE =  0x299,
  HEADER_ZC_ITEM_PICKUP_ACK2 =  0x29a,
  HEADER_ZC_MER_INIT =  0x29b,
  HEADER_ZC_MER_PROPERTY =  0x29c,
  HEADER_ZC_MER_SKILLINFO_LIST =  0x29d,
  HEADER_ZC_MER_SKILLINFO_UPDATE =  0x29e,
  HEADER_CZ_MER_COMMAND =  0x29f,
  UNUSED_HEADER_CZ_MER_USE_SKILL =  0x2a0,
  UNUSED_HEADER_CZ_MER_UPGRADE_SKILLLEVEL =  0x2a1,
  HEADER_ZC_MER_PAR_CHANGE =  0x2a2,
  HEADER_ZC_GAMEGUARD_LINGO_KEY =  0x2a3,
  HEADER_CZ_GAMEGUARD_LINGO_READY =  0x2a4,
  HEADER_CZ_KSY_EVENT =  0x2a5,
  HEADER_ZC_HACKSH_CPX_MSG =  0x2a6,
  HEADER_CZ_HACKSH_CPX_MSG =  0x2a7,
  HEADER_ZC_HACKSHIELD_CRC_MSG =  0x2a8,
  HEADER_CZ_HACKSHIELD_CRC_MSG =  0x2a9,
  HEADER_ZC_REQ_CASH_PASSWORD =  0x2aa,
  HEADER_CZ_ACK_CASH_PASSWORD =  0x2ab,
  HEADER_ZC_RESULT_CASH_PASSWORD =  0x2ac,
  HEADER_AC_REQUEST_SECOND_PASSWORD =  0x2ad,
  HEADER_ZC_SRPACKET_INIT =  0x2ae,
  HEADER_CZ_SRPACKET_START =  0x2af,
  HEADER_CA_LOGIN_CHANNEL =  0x2b0,
  HEADER_ZC_ALL_QUEST_LIST =  0x2b1,
  HEADER_ZC_ALL_QUEST_MISSION =  0x2b2,
  HEADER_ZC_ADD_QUEST =  0x2b3,
  HEADER_ZC_DEL_QUEST =  0x2b4,
  HEADER_ZC_UPDATE_MISSION_HUNT =  0x2b5,
  HEADER_CZ_ACTIVE_QUEST =  0x2b6,
  HEADER_ZC_ACTIVE_QUEST =  0x2b7,
  HEADER_ZC_ITEM_PICKUP_PARTY =  0x2b8,
  HEADER_ZC_SHORTCUT_KEY_LIST =  0x2b9,
  HEADER_CZ_SHORTCUT_KEY_CHANGE =  0x2ba,
  HEADER_ZC_EQUIPITEM_DAMAGED =  0x2bb,
  HEADER_ZC_NOTIFY_PCBANG_PLAYING_TIME =  0x2bc,
  HEADER_ZC_SRCRYPTOR2_INIT =  0x2bd,
  HEADER_CZ_SRCRYPTOR2_START =  0x2be,
  HEADER_ZC_SRPACKETR2_INIT =  0x2bf,
  HEADER_CZ_SRPACKETR2_START =  0x2c0,
  HEADER_ZC_NPC_CHAT =  0x2c1,
  HEADER_ZC_FORMATSTRING_MSG =  0x2c2,
  UNUSED_HEADER_CZ_FORMATSTRING_MSG_RES =  0x2c3,
  HEADER_CZ_PARTY_JOIN_REQ =  0x2c4,
  HEADER_ZC_PARTY_JOIN_REQ_ACK =  0x2c5,
  HEADER_ZC_PARTY_JOIN_REQ =  0x2c6,
  HEADER_CZ_PARTY_JOIN_REQ_ACK =  0x2c7,
  HEADER_CZ_PARTY_CONFIG =  0x2c8,
  HEADER_ZC_PARTY_CONFIG =  0x2c9,
  HEADER_HC_REFUSE_SELECTCHAR =  0x2ca,
  HEADER_ZC_MEMORIALDUNGEON_SUBSCRIPTION_INFO =  0x2cb,
  HEADER_ZC_MEMORIALDUNGEON_SUBSCRIPTION_NOTIFY =  0x2cc,
  HEADER_ZC_MEMORIALDUNGEON_INFO =  0x2cd,
  HEADER_ZC_MEMORIALDUNGEON_NOTIFY =  0x2ce,
  HEADER_CZ_MEMORIALDUNGEON_COMMAND =  0x2cf,
  HEADER_ZC_EQUIPMENT_ITEMLIST3 =  0x2d0,
  HEADER_ZC_STORE_EQUIPMENT_ITEMLIST3 =  0x2d1,
  HEADER_ZC_CART_EQUIPMENT_ITEMLIST3 =  0x2d2,
  HEADER_ZC_NOTIFY_BIND_ON_EQUIP =  0x2d3,
  HEADER_ZC_ITEM_PICKUP_ACK3 =  0x2d4,
  HEADER_ZC_ISVR_DISCONNECT =  0x2d5,
  HEADER_CZ_EQUIPWIN_MICROSCOPE =  0x2d6,
  HEADER_ZC_EQUIPWIN_MICROSCOPE =  0x2d7,
  HEADER_CZ_CONFIG =  0x2d8,
  HEADER_ZC_CONFIG =  0x2d9,
  HEADER_ZC_CONFIG_NOTIFY =  0x2da,
  HEADER_CZ_BATTLEFIELD_CHAT =  0x2db,
  HEADER_ZC_BATTLEFIELD_CHAT =  0x2dc,
  HEADER_ZC_BATTLEFIELD_NOTIFY_CAMPINFO =  0x2dd,
  HEADER_ZC_BATTLEFIELD_NOTIFY_POINT =  0x2de,
  HEADER_ZC_BATTLEFIELD_NOTIFY_POSITION =  0x2df,
  HEADER_ZC_BATTLEFIELD_NOTIFY_HP =  0x2e0,
  HEADER_ZC_NOTIFY_ACT2 =  0x2e1,
  HEADER_CZ_USE_ITEM_NEW_JAPEN =  0x2e2,
  HEADER_CZ_USE_SKILL_NEW_JAPEN =  0x2e3,
  HEADER_CZ_ITEM_PICKUP_NEW_JAPEN =  0x2e4,
  HEADER_CZ_REQUEST_MOVE_NEW_JAPEN =  0x2e5,
  HEADER_CZ_BOT_CHECK =  0x2e6,
  HEADER_ZC_MAPPROPERTY =  0x2e7,
  HEADER_ZC_NORMAL_ITEMLIST3 =  0x2e8,
  HEADER_ZC_CART_NORMAL_ITEMLIST3 =  0x2e9,
  HEADER_ZC_STORE_NORMAL_ITEMLIST3 =  0x2ea,
  HEADER_ZC_ACCEPT_ENTER2 =  0x2eb,
  HEADER_ZC_NOTIFY_MOVEENTRY4 =  0x2ec,
  HEADER_ZC_NOTIFY_NEWENTRY4 =  0x2ed,
  HEADER_ZC_NOTIFY_STANDENTRY4 =  0x2ee,
  HEADER_ZC_NOTIFY_FONT =  0x2ef,
  HEADER_ZC_PROGRESS =  0x2f0,
  HEADER_CZ_PROGRESS =  0x2f1,
  HEADER_ZC_PROGRESS_CANCEL =  0x2f2,
  HEADER_ZC_ITEM_FALL_ENTRY2 =  0x2f3,
  HEADER_ZC_ITEM_FALL_ENTRY2__M1 =  0x2f4,
  HEADER_ZC_ITEM_FALL_ENTRY2__M2 =  0x2f5,
  HEADER_ZC_ITEM_FALL_ENTRY2__M3 =  0x2f6,
  HEADER_ZC_ITEM_FALL_ENTRY2__M4 =  0x2f7,
  HEADER_ZC_ITEM_FALL_ENTRY2__M5 =  0x2f8,
  HEADER_ZC_ITEM_FALL_ENTRY2__M6 =  0x2f9,
  HEADER_ZC_NOTIFY_MOVEENTRY5 =  0x2fa,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M1 =  0x2fb,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M2 =  0x2fc,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M3 =  0x2fd,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M4 =  0x2fe,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M5 =  0x2ff,
  HEADER_ZC_NOTIFY_MOVEENTRY5__M6 =  0x300,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY =  0x301,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M1 =  0x302,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M2 =  0x303,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M3 =  0x304,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M4 =  0x305,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M5 =  0x306,
  HEADER_ZC_NOTIFY_NPC_STANDENTRY__M6 =  0x307,
  HEADER_ZC_REASSEMBLY_CERTIFY =  0x308,
  HEADER_ZC_REASSEMBLY_CERTIFY__M01 =  0x309,
  HEADER_ZC_REASSEMBLY_CERTIFY__M02 =  0x30a,
  HEADER_ZC_REASSEMBLY_CERTIFY__M03 =  0x30b,
  HEADER_ZC_REASSEMBLY_CERTIFY__M04 =  0x30c,
  HEADER_ZC_REASSEMBLY_CERTIFY__M05 =  0x30d,
  HEADER_ZC_REASSEMBLY_CERTIFY__M06 =  0x30e,
  HEADER_ZC_REASSEMBLY_CERTIFY__M07 =  0x30f,
  HEADER_ZC_REASSEMBLY_CERTIFY__M08 =  0x310,
  HEADER_ZC_REASSEMBLY_CERTIFY__M09 =  0x311,
  HEADER_ZC_REASSEMBLY_CERTIFY__M10 =  0x312,
  HEADER_ZC_REASSEMBLY_CERTIFY__M11 =  0x313,
  HEADER_ZC_REASSEMBLY_CERTIFY__M12 =  0x314,
  HEADER_ZC_REASSEMBLY_CERTIFY__M13 =  0x315,
  HEADER_ZC_REASSEMBLY_CERTIFY__M14 =  0x316,
  HEADER_ZC_REASSEMBLY_CERTIFY__M15 =  0x317,
  HEADER_ZC_REASSEMBLY_CERTIFY__M16 =  0x318,
  HEADER_ZC_REASSEMBLY_CERTIFY__M17 =  0x319,
  HEADER_ZC_REASSEMBLY_CERTIFY__M18 =  0x31a,
  HEADER_ZC_REASSEMBLY_CERTIFY__M19 =  0x31b,
  HEADER_ZC_REASSEMBLY_CERTIFY__M20 =  0x31c,
  HEADER_ZC_REASSEMBLY_CERTIFY__M21 =  0x31d,
  HEADER_ZC_REASSEMBLY_CERTIFY__M22 =  0x31e,
  HEADER_ZC_REASSEMBLY_CERTIFY__M23 =  0x31f,
  HEADER_ZC_REASSEMBLY_CERTIFY__M24 =  0x320,
  HEADER_ZC_REASSEMBLY_CERTIFY__M25 =  0x321,
  HEADER_ZC_REASSEMBLY_CERTIFY__M26 =  0x322,
  HEADER_ZC_REASSEMBLY_CERTIFY__M27 =  0x323,
  HEADER_ZC_REASSEMBLY_CERTIFY__M28 =  0x324,
  HEADER_ZC_REASSEMBLY_CERTIFY__M29 =  0x325,
  HEADER_ZC_REASSEMBLY_CERTIFY__M30 =  0x326,
  HEADER_ZC_REASSEMBLY_CERTIFY__M31 =  0x327,
  HEADER_ZC_REASSEMBLY_CERTIFY__M32 =  0x328,
  HEADER_ZC_REASSEMBLY_CERTIFY__M33 =  0x329,
  HEADER_ZC_REASSEMBLY_CERTIFY__M34 =  0x32a,
  HEADER_ZC_REASSEMBLY_CERTIFY__M35 =  0x32b,
  HEADER_ZC_REASSEMBLY_CERTIFY__M36 =  0x32c,
  HEADER_ZC_REASSEMBLY_CERTIFY__M37 =  0x32d,
  HEADER_ZC_REASSEMBLY_CERTIFY__M38 =  0x32e,
  HEADER_ZC_REASSEMBLY_CERTIFY__M39 =  0x32f,
  HEADER_ZC_REASSEMBLY_CERTIFY__M40 =  0x330,
  HEADER_ZC_REASSEMBLY_CERTIFY__M41 =  0x331,
  HEADER_CZ_REASSEMBLY_IDENTITY =  0x332,
  HEADER_CZ_REASSEMBLY_IDENTITY__M01 =  0x333,
  HEADER_CZ_REASSEMBLY_IDENTITY__M02 =  0x334,
  HEADER_CZ_REASSEMBLY_IDENTITY__M03 =  0x335,
  HEADER_CZ_REASSEMBLY_IDENTITY__M04 =  0x336,
  HEADER_CZ_REASSEMBLY_IDENTITY__M05 =  0x337,
  HEADER_CZ_REASSEMBLY_IDENTITY__M06 =  0x338,
  HEADER_CZ_REASSEMBLY_IDENTITY__M07 =  0x339,
  HEADER_CZ_REASSEMBLY_IDENTITY__M08 =  0x33a,
  HEADER_CZ_REASSEMBLY_IDENTITY__M09 =  0x33b,
  HEADER_CZ_REASSEMBLY_IDENTITY__M10 =  0x33c,
  HEADER_CZ_REASSEMBLY_IDENTITY__M11 =  0x33d,
  HEADER_CZ_REASSEMBLY_IDENTITY__M12 =  0x33e,
  HEADER_CZ_REASSEMBLY_IDENTITY__M13 =  0x33f,
  HEADER_CZ_REASSEMBLY_IDENTITY__M14 =  0x340,
  HEADER_CZ_REASSEMBLY_IDENTITY__M15 =  0x341,
  HEADER_CZ_REASSEMBLY_IDENTITY__M16 =  0x342,
  HEADER_CZ_REASSEMBLY_IDENTITY__M17 =  0x343,
  HEADER_CZ_REASSEMBLY_IDENTITY__M18 =  0x344,
  HEADER_CZ_REASSEMBLY_IDENTITY__M19 =  0x345,
  HEADER_CZ_REASSEMBLY_IDENTITY__M20 =  0x346,
  HEADER_CZ_REASSEMBLY_IDENTITY__M21 =  0x347,
  HEADER_CZ_REASSEMBLY_IDENTITY__M22 =  0x348,
  HEADER_CZ_REASSEMBLY_IDENTITY__M23 =  0x349,
  HEADER_CZ_REASSEMBLY_IDENTITY__M24 =  0x34a,
  HEADER_CZ_REASSEMBLY_IDENTITY__M25 =  0x34b,
  HEADER_CZ_REASSEMBLY_IDENTITY__M26 =  0x34c,
  HEADER_CZ_REASSEMBLY_IDENTITY__M27 =  0x34d,
  HEADER_CZ_REASSEMBLY_IDENTITY__M28 =  0x34e,
  HEADER_CZ_REASSEMBLY_IDENTITY__M29 =  0x34f,
  HEADER_CZ_REASSEMBLY_IDENTITY__M30 =  0x350,
  HEADER_CZ_REASSEMBLY_IDENTITY__M31 =  0x351,
  HEADER_CZ_REASSEMBLY_IDENTITY__M32 =  0x352,
  HEADER_CZ_REASSEMBLY_IDENTITY__M33 =  0x353,
  HEADER_CZ_REASSEMBLY_IDENTITY__M34 =  0x354,
  HEADER_CZ_REASSEMBLY_IDENTITY__M35 =  0x355,
  HEADER_CZ_REASSEMBLY_IDENTITY__M36 =  0x356,
  HEADER_CZ_REASSEMBLY_IDENTITY__M37 =  0x357,
  HEADER_CZ_REASSEMBLY_IDENTITY__M38 =  0x358,
  HEADER_CZ_REASSEMBLY_IDENTITY__M39 =  0x359,
  HEADER_CZ_REASSEMBLY_IDENTITY__M40 =  0x35a,
  HEADER_CZ_REASSEMBLY_IDENTITY__M41 =  0x35b,
  HEADER_CZ_OPEN_SIMPLE_CASHSHOP_ITEMLIST =  0x35c,
  HEADER_ZC_SIMPLE_CASHSHOP_POINT_ITEMLIST =  0x35d,
  HEADER_CZ_CLOSE_WINDOW =  0x35e,
  HEADER_ZC_NOTIFY_MOVEENTRY6 =  0x35f,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M01 =  0x360,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M02 =  0x361,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M03 =  0x362,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M04 =  0x363,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M05 =  0x364,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M06 =  0x365,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M07 =  0x366,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M08 =  0x367,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M09 =  0x368,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M10 =  0x369,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M11 =  0x36a,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M12 =  0x36b,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M13 =  0x36c,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M14 =  0x36d,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M15 =  0x36e,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M16 =  0x36f,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M17 =  0x370,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M18 =  0x371,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M19 =  0x372,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M20 =  0x373,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M21 =  0x374,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M22 =  0x375,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M23 =  0x376,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M24 =  0x377,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M25 =  0x378,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M26 =  0x379,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M27 =  0x37a,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M28 =  0x37b,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M29 =  0x37c,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M30 =  0x37d,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M31 =  0x37e,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M32 =  0x37f,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M33 =  0x380,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M34 =  0x381,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M35 =  0x382,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M36 =  0x383,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M37 =  0x384,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M38 =  0x385,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M39 =  0x386,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M40 =  0x387,
  HEADER_ZC_NOTIFY_MOVEENTRY6__M41 =  0x388,
  HEADER_ZC_NOTIFY_STANDENTRY6 =  0x389,
  HEADER_ZC_NOTIFY_STANDENTRY6__M01 =  0x38a,
  HEADER_ZC_NOTIFY_STANDENTRY6__M02 =  0x38b,
  HEADER_ZC_NOTIFY_STANDENTRY6__M03 =  0x38c,
  HEADER_ZC_NOTIFY_STANDENTRY6__M04 =  0x38d,
  HEADER_ZC_NOTIFY_STANDENTRY6__M05 =  0x38e,
  HEADER_ZC_NOTIFY_STANDENTRY6__M06 =  0x38f,
  HEADER_ZC_NOTIFY_STANDENTRY6__M07 =  0x390,
  HEADER_ZC_NOTIFY_STANDENTRY6__M08 =  0x391,
  HEADER_ZC_NOTIFY_STANDENTRY6__M09 =  0x392,
  HEADER_ZC_NOTIFY_STANDENTRY6__M10 =  0x393,
  HEADER_ZC_NOTIFY_STANDENTRY6__M11 =  0x394,
  HEADER_ZC_NOTIFY_STANDENTRY6__M12 =  0x395,
  HEADER_ZC_NOTIFY_STANDENTRY6__M13 =  0x396,
  HEADER_ZC_NOTIFY_STANDENTRY6__M14 =  0x397,
  HEADER_ZC_NOTIFY_STANDENTRY6__M15 =  0x398,
  HEADER_ZC_NOTIFY_STANDENTRY6__M16 =  0x399,
  HEADER_ZC_NOTIFY_STANDENTRY6__M17 =  0x39a,
  HEADER_ZC_NOTIFY_STANDENTRY6__M18 =  0x39b,
  HEADER_ZC_NOTIFY_STANDENTRY6__M19 =  0x39c,
  HEADER_ZC_NOTIFY_STANDENTRY6__M20 =  0x39d,
  HEADER_ZC_NOTIFY_STANDENTRY6__M21 =  0x39e,
  HEADER_ZC_NOTIFY_STANDENTRY6__M22 =  0x39f,
  HEADER_ZC_NOTIFY_STANDENTRY6__M23 =  0x3a0,
  HEADER_ZC_NOTIFY_STANDENTRY6__M24 =  0x3a1,
  HEADER_ZC_NOTIFY_STANDENTRY6__M25 =  0x3a2,
  HEADER_ZC_NOTIFY_STANDENTRY6__M26 =  0x3a3,
  HEADER_ZC_NOTIFY_STANDENTRY6__M27 =  0x3a4,
  HEADER_ZC_NOTIFY_STANDENTRY6__M28 =  0x3a5,
  HEADER_ZC_NOTIFY_STANDENTRY6__M29 =  0x3a6,
  HEADER_ZC_NOTIFY_STANDENTRY6__M30 =  0x3a7,
  HEADER_ZC_NOTIFY_STANDENTRY6__M31 =  0x3a8,
  HEADER_ZC_NOTIFY_STANDENTRY6__M32 =  0x3a9,
  HEADER_ZC_NOTIFY_STANDENTRY6__M33 =  0x3aa,
  HEADER_ZC_NOTIFY_STANDENTRY6__M34 =  0x3ab,
  HEADER_ZC_NOTIFY_STANDENTRY6__M35 =  0x3ac,
  HEADER_ZC_NOTIFY_STANDENTRY6__M36 =  0x3ad,
  HEADER_ZC_NOTIFY_STANDENTRY6__M37 =  0x3ae,
  HEADER_ZC_NOTIFY_STANDENTRY6__M38 =  0x3af,
  HEADER_ZC_NOTIFY_STANDENTRY6__M39 =  0x3b0,
  HEADER_ZC_NOTIFY_STANDENTRY6__M40 =  0x3b1,
  HEADER_ZC_NOTIFY_STANDENTRY6__M41 =  0x3b2,
  HEADER_ZC_ITEM_FALL_ENTRY3 =  0x3b3,
  HEADER_ZC_ITEM_FALL_ENTRY3__M01 =  0x3b4,
  HEADER_ZC_ITEM_FALL_ENTRY3__M02 =  0x3b5,
  HEADER_ZC_ITEM_FALL_ENTRY3__M03 =  0x3b6,
  HEADER_ZC_ITEM_FALL_ENTRY3__M04 =  0x3b7,
  HEADER_ZC_ITEM_FALL_ENTRY3__M05 =  0x3b8,
  HEADER_ZC_ITEM_FALL_ENTRY3__M06 =  0x3b9,
  HEADER_ZC_ITEM_FALL_ENTRY3__M07 =  0x3ba,
  HEADER_ZC_ITEM_FALL_ENTRY3__M08 =  0x3bb,
  HEADER_ZC_ITEM_FALL_ENTRY3__M09 =  0x3bc,
  HEADER_ZC_ITEM_FALL_ENTRY3__M10 =  0x3bd,
  HEADER_ZC_ITEM_FALL_ENTRY3__M11 =  0x3be,
  HEADER_ZC_ITEM_FALL_ENTRY3__M12 =  0x3bf,
  HEADER_ZC_ITEM_FALL_ENTRY3__M13 =  0x3c0,
  HEADER_ZC_ITEM_FALL_ENTRY3__M14 =  0x3c1,
  HEADER_ZC_ITEM_FALL_ENTRY3__M15 =  0x3c2,
  HEADER_ZC_ITEM_FALL_ENTRY3__M16 =  0x3c3,
  HEADER_ZC_ITEM_FALL_ENTRY3__M17 =  0x3c4,
  HEADER_ZC_ITEM_FALL_ENTRY3__M18 =  0x3c5,
  HEADER_ZC_ITEM_FALL_ENTRY3__M19 =  0x3c6,
  HEADER_ZC_ITEM_FALL_ENTRY3__M20 =  0x3c7,
  HEADER_ZC_ITEM_FALL_ENTRY3__M21 =  0x3c8,
  HEADER_ZC_ITEM_FALL_ENTRY3__M22 =  0x3c9,
  HEADER_ZC_ITEM_FALL_ENTRY3__M23 =  0x3ca,
  HEADER_ZC_ITEM_FALL_ENTRY3__M24 =  0x3cb,
  HEADER_ZC_ITEM_FALL_ENTRY3__M25 =  0x3cc,
  HEADER_ZC_ITEM_FALL_ENTRY3__M26 =  0x3cd,
  HEADER_ZC_ITEM_FALL_ENTRY3__M27 =  0x3ce,
  HEADER_ZC_ITEM_FALL_ENTRY3__M28 =  0x3cf,
  HEADER_ZC_ITEM_FALL_ENTRY3__M29 =  0x3d0,
  HEADER_ZC_ITEM_FALL_ENTRY3__M30 =  0x3d1,
  HEADER_ZC_ITEM_FALL_ENTRY3__M31 =  0x3d2,
  HEADER_ZC_ITEM_FALL_ENTRY3__M32 =  0x3d3,
  HEADER_ZC_ITEM_FALL_ENTRY3__M33 =  0x3d4,
  HEADER_ZC_ITEM_FALL_ENTRY3__M34 =  0x3d5,
  HEADER_ZC_ITEM_FALL_ENTRY3__M35 =  0x3d6,
  HEADER_ZC_ITEM_FALL_ENTRY3__M36 =  0x3d7,
  HEADER_ZC_ITEM_FALL_ENTRY3__M37 =  0x3d8,
  HEADER_ZC_ITEM_FALL_ENTRY3__M38 =  0x3d9,
  HEADER_ZC_ITEM_FALL_ENTRY3__M39 =  0x3da,
  HEADER_ZC_ITEM_FALL_ENTRY3__M40 =  0x3db,
  HEADER_ZC_ITEM_FALL_ENTRY3__M41 =  0x3dc,
  HEADER_AHC_GAME_GUARD =  0x3dd,
  HEADER_CAH_ACK_GAME_GUARD =  0x3de,
  HEADER_ZC_WAITINGROOM_PARTYPLAY_JOIN =  0x3df,
  HEADER_CZ_WAITINGROOM_PARTYPLAY_JOIN_RESULT =  0x3e0,
  HEADER_ZC_WAITINGROOM_SUBSCRIPTION_RESULT =  0x3e1,
  HEADER_ZC_NOTIFY_ACT3 =  0x3e2,
  HEADER_ZC_NOTIFY_ACT3__M01 =  0x3e3,
  HEADER_ZC_NOTIFY_ACT3__M02 =  0x3e4,
  HEADER_ZC_NOTIFY_ACT3__M03 =  0x3e5,
  HEADER_ZC_NOTIFY_ACT3__M04 =  0x3e6,
  HEADER_ZC_NOTIFY_ACT3__M05 =  0x3e7,
  HEADER_ZC_NOTIFY_ACT3__M06 =  0x3e8,
  HEADER_ZC_NOTIFY_ACT3__M07 =  0x3e9,
  HEADER_ZC_NOTIFY_ACT3__M08 =  0x3ea,
  HEADER_ZC_NOTIFY_ACT3__M09 =  0x3eb,
  HEADER_ZC_NOTIFY_ACT3__M10 =  0x3ec,
  HEADER_ZC_NOTIFY_ACT3__M11 =  0x3ed,
  HEADER_ZC_NOTIFY_ACT3__M12 =  0x3ee,
  HEADER_ZC_NOTIFY_ACT3__M13 =  0x3ef,
  HEADER_ZC_NOTIFY_ACT3__M14 =  0x3f0,
  HEADER_ZC_NOTIFY_ACT3__M15 =  0x3f1,
  HEADER_ZC_NOTIFY_ACT3__M16 =  0x3f2,
  HEADER_ZC_NOTIFY_ACT3__M17 =  0x3f3,
  HEADER_ZC_NOTIFY_ACT3__M18 =  0x3f4,
  HEADER_ZC_NOTIFY_ACT3__M19 =  0x3f5,
  HEADER_ZC_NOTIFY_ACT3__M20 =  0x3f6,
  HEADER_ZC_NOTIFY_ACT3__M21 =  0x3f7,
  HEADER_ZC_NOTIFY_ACT3__M22 =  0x3f8,
  HEADER_ZC_NOTIFY_ACT3__M23 =  0x3f9,
  HEADER_ZC_NOTIFY_ACT3__M24 =  0x3fa,
  HEADER_ZC_NOTIFY_ACT3__M25 =  0x3fb,
  HEADER_ZC_NOTIFY_ACT3__M26 =  0x3fc,
  HEADER_ZC_NOTIFY_ACT3__M27 =  0x3fd,
  HEADER_ZC_NOTIFY_ACT3__M28 =  0x3fe,
  HEADER_ZC_NOTIFY_ACT3__M29 =  0x3ff,
  HEADER_ZC_NOTIFY_ACT3__M30 =  0x400,
  HEADER_ZC_NOTIFY_ACT3__M31 =  0x401,
  HEADER_ZC_NOTIFY_ACT3__M32 =  0x402,
  HEADER_ZC_NOTIFY_ACT3__M33 =  0x403,
  HEADER_ZC_NOTIFY_ACT3__M34 =  0x404,
  HEADER_ZC_NOTIFY_ACT3__M35 =  0x405,
  HEADER_ZC_NOTIFY_ACT3__M36 =  0x406,
  HEADER_ZC_NOTIFY_ACT3__M37 =  0x407,
  HEADER_ZC_NOTIFY_ACT3__M38 =  0x408,
  HEADER_ZC_NOTIFY_ACT3__M39 =  0x409,
  HEADER_ZC_NOTIFY_ACT3__M40 =  0x40a,
  HEADER_ZC_NOTIFY_ACT3__M41 =  0x40b,
  HEADER_ZC_BROADCAST3 =  0x40c,
  HEADER_ZC_BROADCAST3__M01 =  0x40d,
  HEADER_ZC_BROADCAST3__M02 =  0x40e,
  HEADER_ZC_BROADCAST3__M03 =  0x40f,
  HEADER_ZC_BROADCAST3__M04 =  0x410,
  HEADER_ZC_BROADCAST3__M05 =  0x411,
  HEADER_ZC_BROADCAST3__M06 =  0x412,
  HEADER_ZC_BROADCAST3__M07 =  0x413,
  HEADER_ZC_BROADCAST3__M08 =  0x414,
  HEADER_ZC_BROADCAST3__M09 =  0x415,
  HEADER_ZC_BROADCAST3__M10 =  0x416,
  HEADER_ZC_BROADCAST3__M11 =  0x417,
  HEADER_ZC_BROADCAST3__M12 =  0x418,
  HEADER_ZC_BROADCAST3__M13 =  0x419,
  HEADER_ZC_BROADCAST3__M14 =  0x41a,
  HEADER_ZC_BROADCAST3__M15 =  0x41b,
  HEADER_ZC_BROADCAST3__M16 =  0x41c,
  HEADER_ZC_BROADCAST3__M17 =  0x41d,
  HEADER_ZC_BROADCAST3__M18 =  0x41e,
  HEADER_ZC_BROADCAST3__M19 =  0x41f,
  HEADER_ZC_BROADCAST3__M20 =  0x420,
  HEADER_ZC_BROADCAST3__M21 =  0x421,
  HEADER_ZC_BROADCAST3__M22 =  0x422,
  HEADER_ZC_BROADCAST3__M23 =  0x423,
  HEADER_ZC_BROADCAST3__M24 =  0x424,
  HEADER_ZC_BROADCAST3__M25 =  0x425,
  HEADER_ZC_BROADCAST3__M26 =  0x426,
  HEADER_ZC_BROADCAST3__M27 =  0x427,
  HEADER_ZC_BROADCAST3__M28 =  0x428,
  HEADER_ZC_BROADCAST3__M29 =  0x429,
  HEADER_ZC_BROADCAST3__M30 =  0x42a,
  HEADER_ZC_BROADCAST3__M31 =  0x42b,
  HEADER_ZC_BROADCAST3__M32 =  0x42c,
  HEADER_ZC_BROADCAST3__M33 =  0x42d,
  HEADER_ZC_BROADCAST3__M34 =  0x42e,
  HEADER_ZC_BROADCAST3__M35 =  0x42f,
  HEADER_ZC_BROADCAST3__M36 =  0x430,
  HEADER_ZC_BROADCAST3__M37 =  0x431,
  HEADER_ZC_BROADCAST3__M38 =  0x432,
  HEADER_ZC_BROADCAST3__M39 =  0x433,
  HEADER_ZC_BROADCAST3__M40 =  0x434,
  HEADER_ZC_BROADCAST3__M41 =  0x435,
  HEADER_CZ_ENTER2 =  0x436,
  HEADER_CZ_REQUEST_ACT2 =  0x437,
  HEADER_CZ_USE_SKILL2 =  0x438,
  HEADER_CZ_USE_ITEM2 =  0x439,
  HEADER_ZC_REQ_CRACKPROOF =  0x43a,
  HEADER_CZ_ACK_CRACKPROOF =  0x43b,
  HEADER_ZC_CRACKPROOF_ERRCODE =  0x43c,
  HEADER_ZC_SKILL_POSTDELAY =  0x43d,
  HEADER_ZC_SKILL_POSTDELAY_LIST =  0x43e,
  HEADER_ZC_MSG_STATE_CHANGE2 =  0x43f,
  HEADER_ZC_MILLENNIUMSHIELD =  0x440,
  HEADER_ZC_SKILLINFO_DELETE =  0x441,
  HEADER_ZC_SKILL_SELECT_REQUEST =  0x442,
  HEADER_CZ_SKILL_SELECT_RESPONSE =  0x443,
  HEADER_ZC_SIMPLE_CASH_POINT_ITEMLIST =  0x444,
  HEADER_CZ_SIMPLE_BUY_CASH_POINT_ITEM =  0x445,
  HEADER_ZC_QUEST_NOTIFY_EFFECT =  0x446,
  HEADER_CZ_BLOCKING_PLAY_CANCEL =  0x447,
  HEADER_HC_CHARACTER_LIST =  0x448,
  HEADER_ZC_HACKSH_ERROR_MSG =  0x449,
  HEADER_CZ_CLIENT_VERSION =  0x44a,
  HEADER_CZ_CLOSE_SIMPLECASH_SHOP =  0x44b,
  HEADER_ZC_ES_RESULT =  0x7d0,
  HEADER_CZ_ES_GET_LIST =  0x7d1,
  HEADER_ZC_ES_LIST =  0x7d2,
  HEADER_CZ_ES_CHOOSE =  0x7d3,
  HEADER_CZ_ES_CANCEL =  0x7d4,
  HEADER_ZC_ES_READY =  0x7d5,
  HEADER_ZC_ES_GOTO =  0x7d6,
  HEADER_CZ_GROUPINFO_CHANGE_V2 =  0x7d7,
  HEADER_ZC_REQ_GROUPINFO_CHANGE_V2 =  0x7d8,
  HEADER_ZC_SHORTCUT_KEY_LIST_V2 =  0x7d9,
  HEADER_CZ_CHANGE_GROUP_MASTER =  0x7da,
  HEADER_ZC_HO_PAR_CHANGE =  0x7db,
  HEADER_CZ_SEEK_PARTY =  0x7dc,
  HEADER_ZC_SEEK_PARTY =  0x7dd,
  HEADER_CZ_SEEK_PARTY_MEMBER =  0x7de,
  HEADER_ZC_SEEK_PARTY_MEMBER =  0x7df,
  HEADER_ZC_ES_NOTI_MYINFO =  0x7e0,
  HEADER_ZC_SKILLINFO_UPDATE2 =  0x7e1,
  HEADER_ZC_MSG_VALUE =  0x7e2,
  HEADER_ZC_ITEMLISTWIN_OPEN =  0x7e3,
  HEADER_CZ_ITEMLISTWIN_RES =  0x7e4,
  HDADER_CH_ENTER_CHECKBOT =  0x7e5,
  HEADER_ZC_MSG_SKILL =  0x7e6,
  HEADER_CH_CHECKBOT =  0x7e7,
  HEADER_HC_CHECKBOT =  0x7e8,
  HEADER_HC_CHECKBOT_RESULT =  0x7e9,
  HEADER_CZ_BATTLE_FIELD_LIST =  0x7ea,
  HEADER_ZC_BATTLE_FIELD_LIST =  0x7eb,
  HEADER_CZ_JOIN_BATTLE_FIELD =  0x7ec,
  HEADER_ZC_JOIN_BATTLE_FIELD =  0x7ed,
  HEADER_CZ_CANCEL_BATTLE_FIELD =  0x7ee,
  HEADER_ZC_CANCEL_BATTLE_FIELD =  0x7ef,
  HEADER_CZ_REQ_BATTLE_STATE_MONITOR =  0x7f0,
  HEADER_ZC_ACK_BATTLE_STATE_MONITOR =  0x7f1,
  HEADER_ZC_BATTLE_NOTI_START_STEP =  0x7f2,
  HEADER_ZC_BATTLE_JOIN_NOTI_DEFER =  0x7f3,
  HEADER_ZC_BATTLE_JOIN_DISABLE_STATE =  0x7f4,
  HEADER_CZ_GM_FULLSTRIP =  0x7f5,
  HEADER_ZC_NOTIFY_EXP =  0x7f6,
  HEADER_ZC_NOTIFY_MOVEENTRY7 =  0x7f7,
  HEADER_ZC_NOTIFY_NEWENTRY5 =  0x7f8,
  HEADER_ZC_NOTIFY_STANDENTRY5 =  0x7f9,
  HEADER_ZC_DELETE_ITEM_FROM_BODY =  0x7fa,
  HEADER_ZC_USESKILL_ACK2 =  0x7fb,
  HEADER_ZC_CHANGE_GROUP_MASTER =  0x7fc,
  HEADER_ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN =  0x7fd,
  HEADER_ZC_PLAY_NPC_BGM =  0x7fe,
  HEADER_ZC_DEFINE_CHECK =  0x7ff,
  HEADER_ZC_PC_PURCHASE_ITEMLIST_FROMMC2 =  0x800,
  HEADER_CZ_PC_PURCHASE_ITEMLIST_FROMMC2 =  0x801,
  HEADER_CZ_PARTY_BOOKING_REQ_REGISTER =  0x802,
  HEADER_ZC_PARTY_BOOKING_ACK_REGISTER =  0x803,
  HEADER_CZ_PARTY_BOOKING_REQ_SEARCH =  0x804,
  HEADER_ZC_PARTY_BOOKING_ACK_SEARCH =  0x805,
  HEADER_CZ_PARTY_BOOKING_REQ_DELETE =  0x806,
  HEADER_ZC_PARTY_BOOKING_ACK_DELETE =  0x807,
  HEADER_CZ_PARTY_BOOKING_REQ_UPDATE =  0x808,
  HEADER_ZC_PARTY_BOOKING_NOTIFY_INSERT =  0x809,
  HEADER_ZC_PARTY_BOOKING_NOTIFY_UPDATE =  0x80a,
  HEADER_ZC_PARTY_BOOKING_NOTIFY_DELETE =  0x80b,
  HEADER_CZ_SIMPLE_CASH_BTNSHOW =  0x80c,
  HEADER_ZC_SIMPLE_CASH_BTNSHOW =  0x80d,
  HEADER_ZC_NOTIFY_HP_TO_GROUPM_R2 =  0x80e,
  HEADER_LAST =  0x80f,
} <unnamed-tag>;
Please. take a good look at packets that end with '__M<num>', thus are duplicate ID packets.
But for Example, to answer the incoming '_REASSEMBLY' packet you must answer with packet that has same '__M<num>'.

Technology
Super Moderators
Super Moderators
Posts: 801
Joined: 06 May 2008, 12:47
Noob?: No

Re: RO Structs

#7 Post by Technology »

kLabMouse wrote:Please. take a good look at packets that end with '__M<num>', thus are duplicate ID packets.
But for Example, to answer the incoming '_REASSEMBLY' packet you must answer with packet that has same '__M<num>'.
That can be handled on a different level than (un)packing process tho, lets not think too much about that and keep it simple for now.

I'll post the plugin now so you guys can have some fun with it. ;)
Packetstructs are as of: 07/06, so not the latest kLab posted.

(again, it was quickly hacked in so...)

EDIT: note that everything is printed in uc because of some mistake
replace:

Code: Select all

print DUMP (uc unpack('H4', pack('n', $unpacked->{PacketType})). "\n" . Dumper($unpacked) . "\n\n\n");
by:

Code: Select all

print DUMP (uc(unpack('H4', pack('n', $unpacked->{PacketType}))). "\n" . Dumper($unpacked) . "\n\n\n");
btw, the plugin unpacks all received packets to a hash and dumps that hash to DUMP_structs.txt
(the file contains binary data, so its possible that your "notepad" cannot display it, however harvest pointed out that it can be viewed in 'less')
Attachments
RO_struct_plugin.tar.gz
(36.18 KiB) Downloaded 461 times
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!

User avatar
kLabMouse
Administrator
Administrator
Posts: 1301
Joined: 24 Apr 2008, 12:02

Re: RO Structs

#8 Post by kLabMouse »

Technology wrote:'ll post the plugin now so you guys can have some fun with it. ;)
Packetstructs are as of: 07/06, so not the latest kLab posted.

(again, it was quickly hacked in so...)
Look's complicated, but Nice.
Again, I do not think, that we should use the 'structs.txt' and 'headers.txt' files.
So I suggest the structs and headers to be hardcoded.

Also, There is Bug with '__M<num>'. Because there is no such structs in 'structs.txt'

Technology
Super Moderators
Super Moderators
Posts: 801
Joined: 06 May 2008, 12:47
Noob?: No

Re: RO Structs

#9 Post by Technology »

kLabMouse wrote:Also, There is Bug with '__M<num>'. Because there is no such structs in 'structs.txt'
I know, and we could fix it by adding them to the file or w/e we choose to solve the problem. Btw, i haven't seen this packet anywhere yet...

The problem atm is that i don't see what you see when you RE the packets, if i could see what you are seeing, then i could probably form a better visual image.

Again, this is just a test, ...
Btw besides these silly details, it seems to work no?
One ST0 to rule them all? One PE viewer to find them!
One ST_kRO to bring them all and in the darkness bind them...

Mount Doom awaits us, fellowship of OpenKore!

User avatar
kLabMouse
Administrator
Administrator
Posts: 1301
Joined: 24 Apr 2008, 12:02

Re: RO Structs

#10 Post by kLabMouse »

Technology wrote:Again, this is just a test, ...
Btw besides these silly details, it seems to work no?
I Did not tested it.
Only quick look at source code.

Locked