[Help][SL 9.2.7] CGPlayer Auras menu

User Tag List

Results 1 to 5 of 5
  1. #1
    Trogg's Avatar Member
    Reputation
    1
    Join Date
    Feb 2024
    Posts
    4
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Help][SL 9.2.7] CGPlayer Auras

    Hi, i trying to find all auras, my research of npc:
    first table offset 0x6F8, 0xC0 is aura size
    Code:
    typedef struct {
    	int AuraId; // + 0
    	char unknown1[8];
    	int Duration; // + 12
    	int EndTime; // + 16
    	uint64_t CreatorGuid; // + 20
    	char unknown2[4]; // 
    	int StackCount; // + 28
    } AuraRec;
    when auras more than 16 we can read low = pm.read_int(start_address+0x6F8-0x
    Code:
    if low > 0:
        high = pm.read_int(start_address+0x6F8-0x4)
        shifted_20f = high << 32
        result = shifted_20f | low
    
        for offset in range(num_auras): #num_auras  random number, didnt found actual
            try:
                spellid = pm.read_int(result+offset*0xC0+0x98) # 0x98 is spellid offset
    so, i can read auras on npc by this method, but i tryed to get auras on players by the same method, and it didnt work
    i found 2 tables, with auras list with 0x8 offset and list with 0xC0 offset, but i cant found actual offset from start_address to pointer of that lists
    also tryed to decompile UnitAura/UnitBuff/UnitDebuff but its broken
    Just a moment... UnitBuff
    Just a moment... UnitDebuff
    Just a moment... UnitAura

    thanks for any information that would help me figure this out

    PS i using py.mem to fast debugging before implement it on c++

    [Help][SL 9.2.7] CGPlayer Auras
  2. #2
    scizzydo's Avatar Active Member
    Reputation
    74
    Join Date
    Oct 2019
    Posts
    75
    Thanks G/R
    4/31
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Trogg View Post
    Hi, i trying to find all auras, my research of npc:
    first table offset 0x6F8, 0xC0 is aura size
    Code:
    typedef struct {
    	int AuraId; // + 0
    	char unknown1[8];
    	int Duration; // + 12
    	int EndTime; // + 16
    	uint64_t CreatorGuid; // + 20
    	char unknown2[4]; // 
    	int StackCount; // + 28
    } AuraRec;
    when auras more than 16 we can read low = pm.read_int(start_address+0x6F8-0x
    Code:
    if low > 0:
        high = pm.read_int(start_address+0x6F8-0x4)
        shifted_20f = high << 32
        result = shifted_20f | low
    
        for offset in range(num_auras): #num_auras  random number, didnt found actual
            try:
                spellid = pm.read_int(result+offset*0xC0+0x98) # 0x98 is spellid offset
    so, i can read auras on npc by this method, but i tryed to get auras on players by the same method, and it didnt work
    i found 2 tables, with auras list with 0x8 offset and list with 0xC0 offset, but i cant found actual offset from start_address to pointer of that lists
    also tryed to decompile UnitAura/UnitBuff/UnitDebuff but its broken
    Just a moment... UnitBuff
    Just a moment... UnitDebuff
    Just a moment... UnitAura

    thanks for any information that would help me figure this out

    PS i using py.mem to fast debugging before implement it on c++
    I think you have a few values off. I did a quick dump of the binary and looked, this is the part in particular where you'd use it in your stuff:
    Code:
    v8 = v3 + 0x6E8;
    if ( *(_DWORD *)(v3 + 0x12E8) == -1 )
        v8 = *(_QWORD *)(v3 + 0x6F0);
    v9 = *(_DWORD *)(0xC0i64 * (unsigned int)v6 + v8 + 0x98);
    The auras start at 0x6E8, however if 0x12E8 == -1 then you instead start at 0x6F0. The v9 assignment in this example you can see that 0xC0 is in fact the right size of each Aura struct, and 0x98 being the ID (like you mentioned)

    It's worth noting that this is still the way things are done in Retail, and have been done for some time. Here's an example structure if you do it in C++:
    Code:
    // Should be defining base classes, but for this purpose w/e
    struct CGUnit_C {
        char pad_0000[1768];
        union {
            struct {
                CGAuraStrc Auras[16]; //0x06E8
                int32_t AuraCount; //0x12E8
                char pad_12EC[4];
            };
            struct {
                int32_t AuraCount2; //0x06E8
                char pad_06EC[4];
                CGAuraStrc* Auras2; //0x06F0
            };
        };
        CGAuraStrc* GetAuraStrc(uint32_t idx) {
            auto count = AuraCount;
            if (count == -1) count = AuraCount2;
            if (!(idx < count)) return nullptr;
            return (AuraCount == -1 ? &Auras2[idx] : &Auras[idx]);
        };
    };
    Last edited by scizzydo; 2 Weeks Ago at 06:54 PM.

  3. Thanks Trogg (1 members gave Thanks to scizzydo for this useful post)
  4. #3
    Trogg's Avatar Member
    Reputation
    1
    Join Date
    Feb 2024
    Posts
    4
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks, it works, i made a mistake in type (not int, longlong)
    There is a way to find flag or what else of chaied group for example in The Council of Blood by Dark Recital - Spell - World of Warcraft ?
    dr_chained.png

  5. #4
    scizzydo's Avatar Active Member
    Reputation
    74
    Join Date
    Oct 2019
    Posts
    75
    Thanks G/R
    4/31
    Trade Feedback
    0 (0%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Trogg View Post
    Thanks, it works, i made a mistake in type (not int, longlong)
    There is a way to find flag or what else of chaied group for example in The Council of Blood by Dark Recital - Spell - World of Warcraft ?
    dr_chained.png
    I personally didn't raid during that to give you an answer there, but the link shows it's a debuff. With the method I showed before you iterate all auras, debuff, buff, visible and invisible. There are a lot of auras on units for things that aren't visible. For example, morchie on retail for the fight on Dawn of the infinites, the correct morchie has a different aura. On court of stars, the imposter also does. For event times, like Christmas, the mobs wearing the Christmas hats have auras. Other auras can be like 4pc, etc. not just these auras on yourself, but others.

  6. #5
    Trogg's Avatar Member
    Reputation
    1
    Join Date
    Feb 2024
    Posts
    4
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The source of debuff is a player in chained group

    Code:
    for (const auto& u : playerData.players)
       for (const auto& aura : u->auras) {
    	if (aura->id == 331636 || aura->id == 331637) {
    		auto caster = aura->CasterGuid();
    		if (caster==playerData.me->Guid())
    		//our target
                    stuff
    	}
    }

Similar Threads

  1. [Question] an Aura that will increase NPC damage, thank for helping
    By WoW_Learner in forum WoW EMU Questions & Requests
    Replies: 1
    Last Post: 02-03-2021, 01:19 PM
  2. [help][8.3] How to handle Aura? my old code not working?
    By chlycooper in forum WoW Memory Editing
    Replies: 9
    Last Post: 01-18-2020, 02:20 AM
  3. Replies: 6
    Last Post: 03-26-2011, 02:30 AM
  4. [help] Moonkin -> Night Elf Female + natural aura
    By Cyberworg in forum WoW ME Questions and Requests
    Replies: 2
    Last Post: 05-28-2009, 03:46 PM
  5. bot help
    By xwhitedeathx in forum World of Warcraft General
    Replies: 3
    Last Post: 05-01-2006, 03:50 AM
All times are GMT -5. The time now is 10:40 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search