diff --git a/common/eq_packet_structs.h b/common/eq_packet_structs.h index 7b44bd45c..3730e1d14 100644 --- a/common/eq_packet_structs.h +++ b/common/eq_packet_structs.h @@ -2243,6 +2243,7 @@ struct GroupFollow_Struct { // SoF Follow Struct /*0132*/ }; +// this is generic struct struct GroupLeaderChange_Struct { /*000*/ char Unknown000[64]; diff --git a/common/patches/rof2.cpp b/common/patches/rof2.cpp index 8f8d41281..cf84f040b 100644 --- a/common/patches/rof2.cpp +++ b/common/patches/rof2.cpp @@ -1182,17 +1182,17 @@ namespace RoF2 // Leader // - VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0); - VARSTRUCT_ENCODE_STRING(Buffer, gu2->yourname); - VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); - VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); + VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0); // index + VARSTRUCT_ENCODE_STRING(Buffer, gu2->yourname); // name + VARSTRUCT_ENCODE_TYPE(uint16, Buffer, 0); // owner name of merc //VARSTRUCT_ENCODE_STRING(Buffer, ""); - VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); // This is a string - VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0x46); // Observed 0x41 and 0x46 here - VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); - VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0); - VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0); - VARSTRUCT_ENCODE_TYPE(uint16, Buffer, 0); + VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); // This is a string + VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0x46); // level + VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); // group tank flag + VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); // group assist flag + VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); // group puller flag + VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0); // offline + VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0); // timestamp int MemberNumber = 1; @@ -1201,17 +1201,17 @@ namespace RoF2 if (gu2->membername[i][0] == '\0') continue; - VARSTRUCT_ENCODE_TYPE(uint32, Buffer, MemberNumber++); - VARSTRUCT_ENCODE_STRING(Buffer, gu2->membername[i]); - VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); - VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); + VARSTRUCT_ENCODE_TYPE(uint32, Buffer, MemberNumber++); // index + VARSTRUCT_ENCODE_STRING(Buffer, gu2->membername[i]); // name + VARSTRUCT_ENCODE_TYPE(uint16, Buffer, 0); // merc flag //VARSTRUCT_ENCODE_STRING(Buffer, ""); - VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); // This is a string - VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0x41); // Observed 0x41 and 0x46 here - VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); - VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0); // Low byte is Main Assist Flag - VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0); - VARSTRUCT_ENCODE_TYPE(uint16, Buffer, 0); + VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); // owner name fo merc + VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0x41); // level + VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); // group tank flag + VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); // group assist flag + VARSTRUCT_ENCODE_TYPE(uint8, Buffer, 0); // group puller flag + VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0); // offline + VARSTRUCT_ENCODE_TYPE(uint32, Buffer, 0); // timestamp } //Log.Hex(Logs::Netcode, outapp->pBuffer, outapp->size); diff --git a/common/patches/rof2_structs.h b/common/patches/rof2_structs.h index 1ed1b9916..13befdad9 100644 --- a/common/patches/rof2_structs.h +++ b/common/patches/rof2_structs.h @@ -2566,9 +2566,12 @@ struct GroupJoin_Struct_Live { // New for Live }; struct GroupJoin_Struct { -/*000*/ char unknown000[64]; +/*000*/ char owner_name[64]; // merc /*064*/ char membername[64]; -/*128*/ uint8 unknown128[20]; // Leadership AA ? +/*128*/ uint8 merc; +/*129*/ uint8 padding129[3]; +/*132*/ uint32 level; +/*136*/ uint8 unknown136[12]; // group ID most likely in here judging from like captures (unused by client) /*148*/ };