And here is the result.
Finished packets:
Code: Select all
// PACKET_CZ_MAKE_GROUP = 0xf9,
struct PACKET_CZ_MAKE_GROUP {
short PacketType;
char groupName[24];
}
// PACKET_ZC_ACK_MAKE_GROUP = 0xfa,
struct PACKET_ZC_ACK_MAKE_GROUP {
short PacketType;
unsigned char result;
}
// PACKET_ZC_GROUP_LIST = 0xfb,
struct PACKET_ZC_GROUP_LIST {
short PacketType;
short PacketLength;
char[0x18] groupName[24];
struct GROUPMEMBER_INFO[...] {
unsigned long AID;
char characterName[24];
char mapName[16];
unsigned char role;
unsigned char state;
}
}
// PACKET_CZ_REQ_JOIN_GROUP = 0xfc,
struct PACKET_CZ_REQ_JOIN_GROUP {
short PacketType;
unsigned long AID;
}
// PACKET_ZC_ACK_REQ_JOIN_GROUP = 0xfd,
struct PACKET_ZC_ACK_REQ_JOIN_GROUP {
short PacketType;
char characterName[24];
unsigned char answer;
}
// PACKET_ZC_REQ_JOIN_GROUP = 0xfe,
struct PACKET_ZC_REQ_JOIN_GROUP {
short PacketType;
unsigned long GRID;
char groupName[24];
}
// PACKET_CZ_JOIN_GROUP = 0xff,
struct PACKET_CZ_JOIN_GROUP {
short PacketType;
unsigned long GRID;
int answer;
}
// PACKET_CZ_REQ_LEAVE_GROUP = 0x100,
struct PACKET_CZ_REQ_LEAVE_GROUP {
short PacketType;
}
// PACKET_ZC_GROUPINFO_CHANGE = 0x101,
struct PACKET_ZC_GROUPINFO_CHANGE {
short PacketType;
unsigned long expOption;
}
// PACKET_CZ_CHANGE_GROUPEXPOPTION = 0x102,
struct PACKET_CZ_CHANGE_GROUPEXPOPTION {
short PacketType;
unsigned long expOption;
}
// PACKET_CZ_REQ_EXPEL_GROUP_MEMBER = 0x103,
struct PACKET_CZ_REQ_EXPEL_GROUP_MEMBER {
short PacketType;
unsigned long AID;
char characterName[24];
}
// PACKET_ZC_ADD_MEMBER_TO_GROUP = 0x104,
struct PACKET_ZC_ADD_MEMBER_TO_GROUP {
short PacketType;
unsigned long AID;
unsigned long Role;
short xPos;
short yPos;
unsigned char state;
char groupName[24];
char characterName[24];
char mapName[16];
}
// PACKET_ZC_DELETE_MEMBER_FROM_GROUP = 0x105,
struct PACKET_ZC_DELETE_MEMBER_FROM_GROUP {
short PacketType;
unsigned long AID;
char characterName[24];
unsigned char result;
}
// PACKET_ZC_NOTIFY_HP_TO_GROUPM = 0x106,
struct PACKET_ZC_NOTIFY_HP_TO_GROUPM {
short PacketType;
unsigned long AID;
short hp;
short maxhp;
}
// PACKET_ZC_NOTIFY_POSITION_TO_GROUPM = 0x107,
struct PACKET_ZC_NOTIFY_POSITION_TO_GROUPM {
short PacketType;
unsigned long AID;
short xPos;
short yPos;
}
// PACKET_CZ_REQUEST_CHAT_PARTY = 0x108,
struct PACKET_CZ_REQUEST_CHAT_PARTY {
short PacketType;
unsigned short PacketLength;
unsigned char msg[...];
}
// PACKET_ZC_NOTIFY_CHAT_PARTY = 0x109,
struct PACKET_ZC_NOTIFY_CHAT_PARTY {
short PacketType;
unsigned short PacketLength;
unsigned long AID;
unsigned char msg[...];
}
// PACKET_CZ_MAKE_GROUP2 = 0x1e8,
struct PACKET_CZ_MAKE_GROUP2 {
short PacketType;
char groupName[24];
unsigned char ItemPickupRule;
unsigned char ItemDivisionRule;
}
// PACKET_ZC_ADD_MEMBER_TO_GROUP2 = 0x1e9,
struct PACKET_ZC_ADD_MEMBER_TO_GROUP2 {
short PacketType;
unsigned long AID;
unsigned long Role;
short xPos;
short yPos;
unsigned char state;
char groupName[24];
char characterName[24];
char mapName[16];
unsigned char ItemPickupRule;
unsigned char ItemDivisionRule;
}
// PACKET_ZC_ITEM_PICKUP_PARTY = 0x2b8,
struct PACKET_ZC_ITEM_PICKUP_PARTY {
short PacketType;
unsigned long accountID;
unsigned short ITID;
bool IsIdentified;
bool IsDamaged;
unsigned char refiningLevel;
struct EQUIPSLOTINFO slot {
unsigned short info[4];
}
unsigned short location;
unsigned char type;
}
// PACKET_CZ_PARTY_JOIN_REQ = 0x2c4,
struct PACKET_CZ_PARTY_JOIN_REQ {
short PacketType;
char characterName[24];
}
// PACKET_ZC_PARTY_JOIN_REQ_ACK = 0x2c5,
struct PACKET_ZC_PARTY_JOIN_REQ_ACK {
short PacketType;
char characterName[24];
enum PACKET_ZC_PARTY_JOIN_REQ_ACK::enumAnswer answer {
ANSWER_ALREADY_OTHERGROUPM = 0x0,
ANSWER_MEMBER_OVERSIZE = 0x3,
ANSWER_JOIN_ACCEPT = 0x2,
ANSWER_JOIN_REFUSE = 0x1,
ANSWER_DUPLICATE = 0x4,
ANSWER_JOINMSG_REFUSE = 0x5,
ANSWER_UNKNOWN_ERROR = 0x6,
ANSWER_UNKNOWN_CHARACTER = 0x7,
ANSWER_INVALID_MAPPROPERTY = 0x8,
};
}
// PACKET_ZC_PARTY_JOIN_REQ = 0x2c6,
struct PACKET_ZC_PARTY_JOIN_REQ {
short PacketType;
unsigned long GRID;
char groupName[24];
}
// PACKET_CZ_PARTY_JOIN_REQ_ACK = 0x2c7,
struct PACKET_CZ_PARTY_JOIN_REQ_ACK {
short PacketType;
unsigned long GRID;
bool bAccept;
}
// PACKET_CZ_PARTY_CONFIG = 0x2c8,
struct PACKET_CZ_PARTY_CONFIG {
short PacketType;
bool bRefuseJoinMsg;
}
// PACKET_ZC_PARTY_CONFIG = 0x2c9,
struct PACKET_ZC_PARTY_CONFIG {
short PacketType;
bool bRefuseJoinMsg;
}
// PACKET_CZ_GROUPINFO_CHANGE_V2 = 0x7d7,
struct PACKET_CZ_GROUPINFO_CHANGE_V2 {
short PacketType;
unsigned long expOption;
unsigned char ItemPickupRule;
unsigned char ItemDivisionRule;
}
// PACKET_ZC_REQ_GROUPINFO_CHANGE_V2 = 0x7d8,
struct PACKET_ZC_REQ_GROUPINFO_CHANGE_V2 {
short PacketType;
unsigned long expOption;
unsigned char ItemPickupRule;
unsigned char ItemDivisionRule;
}
// PACKET_CZ_CHANGE_GROUP_MASTER = 0x7da,
struct PACKET_CZ_CHANGE_GROUP_MASTER {
short PacketType;
unsigned long AID;
}
// PACKET_CZ_SEEK_PARTY = 0x7dc,
struct PACKET_CZ_SEEK_PARTY {
short PacketType;
unsigned long Option;
}
// PACKET_ZC_SEEK_PARTY = 0x7dd,
struct PACKET_ZC_SEEK_PARTY {
short PacketType;
char Name[24];
unsigned long Job;
unsigned long Level;
char mapName[16];
unsigned long Option;
}
// PACKET_CZ_SEEK_PARTY_MEMBER = 0x7de,
struct PACKET_CZ_SEEK_PARTY_MEMBER {
short PacketType;
unsigned long Job;
unsigned long Level;
char mapName[16];
unsigned long Option;
}
// PACKET_ZC_SEEK_PARTY_MEMBER = 0x7df
struct PACKET_ZC_SEEK_PARTY_MEMBER {
short PacketType;
char Name[16];
unsigned long Job;
unsigned long Level;
char mapName[16];
unsigned long Option;
}
Code: Select all
// Usage Unknown
// PACKET_ZC_HO_PAR_CHANGE = 0x7db,
struct PACKET_ZC_HO_PAR_CHANGE {
short PacketType;
unsigned short var;
int value;
}
Code: Select all
// Unknown
// PACKET_ZC_WAITINGROOM_PARTYPLAY_JOIN = 0x3df,
// Unknown
// PACKET_CZ_WAITINGROOM_PARTYPLAY_JOIN_RESULT = 0x3e0,
// Unknown
// PACKET_ZC_WAITINGROOM_SUBSCRIPTION_RESULT = 0x3e1,