Packet [GROUP & PARTY all] -- All Group and Party related

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

Moderator: Moderators

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

Packet [GROUP & PARTY all] -- All Group and Party related

#1 Post by kLabMouse »

I've been researching party and group packets.
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;
}
Unknown, may-be related:

Code: Select all

// Usage Unknown
// PACKET_ZC_HO_PAR_CHANGE =  0x7db,
struct PACKET_ZC_HO_PAR_CHANGE {
  short PacketType;
  unsigned short var;
  int value;
}
Non implemented yet (Not seen in wild, no structures):

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,

EternalHarvest
Developers
Developers
Posts: 1798
Joined: 05 Dec 2008, 05:42
Noob?: Yes

Re: Packet [GROUP & PARTY all] -- All Group and Party related

#2 Post by EternalHarvest »

What SEEK_PARTY packets are about? Is there any description of this game feature?

Locked