From 91bd9ccf266f93509076792b27f9f79464f1b645 Mon Sep 17 00:00:00 2001 From: KimLS Date: Tue, 24 Dec 2024 16:02:18 -0800 Subject: [PATCH] Minor group work --- common/patches/laurion.cpp | 27 +++++++++++++++++++++++++++ common/patches/laurion_ops.h | 4 +++- common/patches/laurion_structs.h | 15 ++++++++++++++- utils/patches/patch_Laurion.conf | 6 +++--- 4 files changed, 47 insertions(+), 5 deletions(-) diff --git a/common/patches/laurion.cpp b/common/patches/laurion.cpp index 660ea9fa0..776e437ff 100644 --- a/common/patches/laurion.cpp +++ b/common/patches/laurion.cpp @@ -3542,6 +3542,33 @@ namespace Laurion DECODE(OP_RemoveBlockedBuffs) { DECODE_FORWARD(OP_BlockedBuffs); } + DECODE(OP_GroupDisband) + { + DECODE_LENGTH_EXACT(structs::GroupGeneric_Struct); + SETUP_DIRECT_DECODE(GroupGeneric_Struct, structs::GroupGeneric_Struct); + + memcpy(emu->name1, eq->name1, sizeof(emu->name1)); + memcpy(emu->name2, eq->name2, sizeof(emu->name2)); + + FINISH_DIRECT_DECODE(); + } + + DECODE(OP_GroupInvite) + { + DECODE_LENGTH_EXACT(structs::GroupGeneric_Struct); + SETUP_DIRECT_DECODE(GroupGeneric_Struct, structs::GroupGeneric_Struct); + + memcpy(emu->name1, eq->name1, sizeof(emu->name1)); + memcpy(emu->name2, eq->name2, sizeof(emu->name2)); + + FINISH_DIRECT_DECODE(); + } + + DECODE(OP_GroupInvite2) + { + DECODE_FORWARD(OP_GroupInvite); + } + //Naive version but should work well enough for now int ExtractIDFile(const std::string& input) { std::string number; diff --git a/common/patches/laurion_ops.h b/common/patches/laurion_ops.h index e2a86e651..a0b5d38f2 100644 --- a/common/patches/laurion_ops.h +++ b/common/patches/laurion_ops.h @@ -68,6 +68,8 @@ D(OP_CastSpell) D(OP_GMTraining) D(OP_BlockedBuffs) D(OP_RemoveBlockedBuffs) - +D(OP_GroupDisband) +D(OP_GroupInvite) +D(OP_GroupInvite2) #undef E #undef D diff --git a/common/patches/laurion_structs.h b/common/patches/laurion_structs.h index 051b16a96..d9ff005be 100644 --- a/common/patches/laurion_structs.h +++ b/common/patches/laurion_structs.h @@ -861,7 +861,20 @@ namespace Laurion { /*016*/ uint32 silver; /*020*/ uint32 copper; /*024*/ - } + }; + + struct GroupGeneric_Struct { + /*0000*/ char name1[64]; + /*0064*/ char name2[64]; + /*0128*/ uint32 unknown0128; + /*0132*/ uint32 unknown0132; + /*0136*/ uint32 unknown0136; + /*0140*/ uint32 unknown0140; + /*0144*/ uint32 unknown0144; + /*0148*/ uint32 unknown0148; + /*0152*/ uint16 unknown0152; + /*0154*/ + }; #pragma pack() }; //end namespace structs diff --git a/utils/patches/patch_Laurion.conf b/utils/patches/patch_Laurion.conf index b47132ca7..8786552f8 100644 --- a/utils/patches/patch_Laurion.conf +++ b/utils/patches/patch_Laurion.conf @@ -529,8 +529,8 @@ OP_AdventureLeaderboardRequest=0x0000 OP_AdventureLeaderboardReply=0x0000 # Group Opcodes -OP_GroupDisband=0x0000 -OP_GroupInvite=0x0000 +OP_GroupDisband=0x78ef +OP_GroupInvite=0x1d90 OP_GroupFollow=0x0000 OP_GroupUpdate=0x0000 OP_GroupUpdateB=0x0000 @@ -539,7 +539,7 @@ OP_GroupAcknowledge=0x0000 OP_GroupDelete=0x0000 OP_CancelInvite=0x0000 OP_GroupFollow2=0x0000 -OP_GroupInvite2=0x0000 +OP_GroupInvite2=0x1e7e OP_GroupDisbandYou=0x0000 OP_GroupDisbandOther=0x0000 OP_GroupLeaderChange=0x0000