[TBC Classic] [2.5.2 - 40422] menu

User Tag List

Results 1 to 11 of 11
  1. #1
    Razzue's Avatar Contributor Avid Ailurophile

    CoreCoins Purchaser Authenticator enabled
    Reputation
    379
    Join Date
    Jun 2017
    Posts
    588
    Thanks G/R
    186/268
    Trade Feedback
    2 (100%)
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    [TBC Classic] [2.5.2 - 40422]

    Offsets
    Code:
    internal class Globals
    {
        // 48 8D 0D ? ? ? ? E8 ? ? ? ? 48 85 C0 74 ? 4C 8B C7 48 8D 0D ? ? ? ?
        internal const int MouseoverGUID = 0x30E7A88;
    
        // 48 8D 0D ?? ?? ?? ?? 48 03 C0 0F 10 44 C1 ?? 0F 11 44 24 ?? EB
        internal const int EquippedBagGUIDS = 0x3137110;
    
        // 48 8D 0D ? ? ? ? E8 ? ? ? ? 48 83 BC 24 ? ? ? ? ? 7C ? 48 8B 8C 24 ? ? ? ? 48 8D 15 ? ? ? ? 45 33 C9 45 8D 41 ? E8 ? ? ? ? 48 81 C4
        internal const int PlayerGUID = 0x2DCFCD0;
    
        // 48 8B 05 ? ? ? ? 33 DB 45 8B E1
        internal const int PetGUID = 0x31240B8;
    
        // 48 39 05 ? ? ? ? 75 ? B1 ? E8 ? ? ? ? 41 B8 ? ? ? ?
        internal const int TargetGUID = 0x2E45950;
    
        // 8B 15 ? ? ? ? 4C 8D 4C 24 ? 45 33 C0 48 8D 0D ? ? ? ? E8 ? ? ? ? 48 85 C0 75 ? B8 ? ? ? ?
        internal const int ZoneID = 0x30E695C;
    
        // E8 ? ? ? ? 48 8D 4C 24 ? 48 8B D8 E8 ? ? ? ? 4C 89 74 24 -> Decompile first sub in function
        internal const int PlayerName = 0x2DCFCE8;
    
        // 0F B6 15 ? ? ? ? C1 EA ? 83 E2 ? E8 ? ? ? ? B8 ? ? ? ? 48 83 C4 ? C3 40 53
        internal const int InGame = 0x30E7A64;
    
        // 8B 05 ? ? ? ? 89 06 8B 05 ? ? ? ? 89 07 B0 ?
        internal const int CorpsePos = 0x2CD3AA0;
    
        // 88 05 ? ? ? ? 85 DB
        internal const int LootWindow = 0x31241C8;
    
        // 48 8D 0D ? ? ? ? 41 B8 ? ? ? ? 48 8D 95 ? ? ? ? 0F 1F 40 ?
        internal const int EventMessage = 0x30E6960;
    }
    
    internal class Battleground
    {
        // 8B 1D ? ? ? ? 48 8B F9 85 DB 74 ? E8 ? ? ? ? 2B C3
        internal const int BattlegroundStartTickcount = 0x3122F74;
    
        // 89 0D ? ? ? ? C7 05 ? ? ? ? ? ? ? ? F3 48 0F 2A C0
        // // 89 15 ? ? ? ? F3 48 0F 2A C8
        internal const int Timestamp = 0x2E3ECAC;
    
        // 83 3D ? ? ? ? ? 0F 84 ? ? ? ? BA ? ? ? ? 48 8B CF
        internal const int IsBattlegroundFinished = 0x312321C;
    
        // 89 05 ? ? ? ? 89 1D ? ? ? ? 8B FB
        internal const int BattlegroundWinner = 0x3123220;
    
        // 48 8B 0D ? ? ? ? 33 C0 F6 C1 ? 75 ? 8B D0 48 85 C9 75 ? BA ? ? ? ? 85 D2 8B 15 ? ? ? ? 48 0F 44 C1 66 0F 1F 44 00
        internal const int BattlegroundInfo = 0x2CDD820;
    }
    
    internal class Keybinds
    {
        // 48 8B 05 ? ? ? ? 8B FA 48 8B F1
        internal const int Base = 0x2DCEB08;
        internal const int First = 0x18;
        internal const int Key = 0x30;
        internal const int Command = 0x50;
        internal const int Next = 0x18;
    }
    
    internal class Spellbooks
    {
        // 48 8B 05 ? ? ? ? 48 8B 0C 18
        internal const int Spellbook = 0x311B508;
        // Spellbook - 8;
        internal const int SpellCount = 0x311B500;
    
        // 4C 8B 0D ? ? ? ? 90 49 8B 0C D1 8B 41 ?
        internal const int PetSpellbook = 0x311B528;
        // PetSpellbook - 8;
        internal const int PetSpellCount = 0x311B520;
    }
    
    internal class Cooldowns
    {
        // 48 8D 15 ? ? ? ? 48 1B C9 81 E1 ? ? ? ? 48 03 CA 8B 53 ?
        public const int Base = 0x2E56570;
        public const int First = 0x10;
        public const int Next = 0x8;
    }
    
    internal class Camera
    {
        // 48 8B 1D ? ? ? ? 48 85 DB 74 ? E8 ? ? ? ? 84 C0
        internal const int Base = 0x31C9398;
        internal const int Offset = 0x38E0;
        internal const int X = 0x10;
        internal const int Y = 0x14;
        internal const int Z = 0x18;
        internal const int Matrix = 0x1C;
        internal const int Fov = 0x40;
        internal const int Zoom = 0x23C;
    }
    
    internal class ObjManager
    {
        // 4C 8B 05 ? ? ? ? 45 33 F6
        internal const int Base = 0x2EF3B98;
        internal const int First = 0x18;
        internal const int Next = 0x70;
        internal const int Type = 0x20;
        internal const int Guid = 0x58;
    }
    
    internal class NameCache
    {
        // 48 8D 0D ? ? ? ? E8 ? ? ? ? 4C 8B D0 48 85 C0 74 ?
        internal const int Base = 0x2AAF8A0;
    }
    
    internal class NpcName
    {
        internal const int Name_First = 0x1800;
        internal const int Name_Last = 0xF8;
    }
    Fields
    Code:
    internal class Unit
        {
            internal const int CharmerGUID = 0x4C;
            internal const int SummonerGUID = 0x5C;
            internal const int CreatorGUID = 0x6C;
            internal const int MasterGUID = 0x7C;
            internal const int TargetGUID = 0x9C;
            internal const int Sex = 0xD0;
            internal const int PowerType = 0xD4;
            internal const int Health = 0xDC;
            internal const int Power = 0xE4;
            internal const int ComboPoints = 0xE8;
            internal const int MaxHealth = 0xFC;
            internal const int MaxPower = 0x104;
            internal const int MaxCombo = 0x108;
            internal const int Level = 0x134;
            internal const int FactionTemplate = 0x158;
            internal const int Flags1 = 0x174;
            internal const int Flags2 = 0x178;
            internal const int Flags3 = 0x17C;
            internal const int BoundingRadius = 0x190;
            internal const int CombatRange = 0x194;
            internal const int DisplayID = 0x198;
            internal const int DisplayScale = 0x19C;
            internal const int MountDisplayID = 0x1A8;
            internal const int NpcFlags = 0x1EC;
    
            // These are added to unit base, not descriptors.
            internal const int CastID = 0x19E8;
            internal const int CastStart = 0x1A10;
            internal const int CastEnd = 0x1A14;
    
            internal const int ChannelID = 0x1A18;
            internal const int ChannelStart = 0x1A20;
            internal const int ChannelEnd = 0x1A24;
    
            internal const int Position = 0x15B8;
            internal const int Rotation = 0x15C8;
    
            internal const int CombatFirst = 0x188;
            internal const int CombatLast = 0x158;
            internal const int CombatMask = 19;
        }
    
        internal class Player
        {
            internal const int LootTargetGUID = 0x37C;
            internal const int PlayerFlags = 0x38C;
            internal const int PlayerFlagsEx = 0x390;
            internal const int Inebriation = 0x3A0;
            internal const int PvpRank = 0x3A4;
            internal const int DuelTeam = 0x3A8;
            internal const int vPlayerRealm = 0xA90;
            internal const int SpecID = 0xA94;
            internal const int TaxiMountAnim = 0xA98;
            internal const int ItemLevel = 0xA9C;
            internal const int HonorLevel = 0xAB8;
        }
    
        internal class LocalPlayer
        {
            internal const int comboTarget = 0x13FC;
            internal const int Money = 0x144C;
            internal const int Experience = 0x1454;
            internal const int NextLevelXP = 0x1458;
            internal const int CharacterPoints = 0x2260;
            internal const int MaxTalentTiers = 0x2264;
            internal const int TrackCreatureMask = 0x2268;
            internal const int TrackResourceMask = 0x226C;
            internal const int Speed = 0x22C8;
            internal const int LocalFlags = 0x2B08;
        }
        
        internal class Object
        {
            internal const int NameFirst = 0x478;
            internal const int Location = 0x1B0;
            internal const int NameLast = 0xE0;
            internal const int Creator = 0x1C;
            internal const int DisplayID = 0x3C;
            internal const int Flags = 0x40;
            internal const int FactionTemplate = 0x54;
            internal const int Level = 0x58;
            internal const int HealthPercent = 0x5C;
        }
    Last edited by Razzue; 09-30-2021 at 05:32 AM.

    [TBC Classic] [2.5.2 - 40422]
  2. Thanks blueDot, aeo (2 members gave Thanks to Razzue for this useful post)
  3. #2
    Mrasd's Avatar Member
    Reputation
    1
    Join Date
    Aug 2021
    Posts
    3
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thank you for constantly updating the addresses of various versions, i make a simple object manager. At present, I want to use "click to move". I searched bass = 0x30e7680 through hard coding. According to your previous file offset = 0x5C, the final address is 0x0000001. Which of my steps went wrong?

  4. #3
    Razzue's Avatar Contributor Avid Ailurophile

    CoreCoins Purchaser Authenticator enabled
    Reputation
    379
    Join Date
    Jun 2017
    Posts
    588
    Thanks G/R
    186/268
    Trade Feedback
    2 (100%)
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Mrasd View Post
    Thank you for constantly updating the addresses of various versions, i make a simple object manager. At present, I want to use "click to move". I searched bass = 0x30e7680 through hard coding. According to your previous file offset = 0x5C, the final address is 0x0000001. Which of my steps went wrong?
    I never actually used, or found use of CTM stuff, just maintained it from some of charles's old posts until i no longer did :P

  5. #4
    ChrisIsMe's Avatar Contributor
    Reputation
    164
    Join Date
    Apr 2017
    Posts
    210
    Thanks G/R
    67/100
    Trade Feedback
    0 (0%)
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Razzue View Post
    I never actually used, or found use of CTM stuff, just maintained it from some of charles's old posts until i no longer did :P
    ====================================
    Last edited by ChrisIsMe; 09-30-2021 at 08:14 AM.

  6. Thanks Razzue (1 members gave Thanks to ChrisIsMe for this useful post)
  7. #5
    Mrasd's Avatar Member
    Reputation
    1
    Join Date
    Aug 2021
    Posts
    3
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thank for your help

  8. #6
    oiramario's Avatar Established Member
    Reputation
    85
    Join Date
    Mar 2021
    Posts
    133
    Thanks G/R
    36/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    const uint64_t ClickToMoveInteractTo = 0x1259A50; // int32 (CGObject* localPlayer, CGObject* target)
    const uint64_t ClickToMoveFacing = 0x1267400; // int32 (CGObject* localPlayer, float facing)
    const uint64_t ClickToMoveObjectInteract = 0x12674C0; // bool (CGObject* localPlayer, WowGuid* unitGuid)
    const uint64_t ClickToMoveMoveTo = 0x1267670; // void (CGObject* localPlayer, Vector3 clickPos)
    const uint64_t ClickToMoveTargetTo = 0x1267740; // bool (CGObject* localPlayer, WowGuid* unitGuid, int32 clickType)

  9. #7
    _chase's Avatar Established Member
    Reputation
    96
    Join Date
    Dec 2019
    Posts
    58
    Thanks G/R
    17/50
    Trade Feedback
    0 (0%)
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Razzue View Post
    I never actually used, or found use of CTM stuff, just maintained it from some of charles's old posts until i no longer did :P
    I'm curious what are you working on where you don't need CTM? I'm only aware of three ways to move; ctm, packets, and setting movement flags. Where setting movement flags would would require an advanced steering motion controller. Do you not require any movement in your project, or are you using one of the latter two for movement?


    Also...
    Code:
    	inline uintptr_t MoveTo = 0x1267670;
    	inline uintptr_t UseItem = 0x12AEF00;
    	inline uintptr_t GetSpellCooldown = 0x1060F50;
    	inline uintptr_t SpellMinMaxRange = 0x105E470;
    	inline uintptr_t GetBagAndSlot = 0x18617E0;
    	inline uintptr_t GetNumLootItems = 0x173DE20;
    	inline uintptr_t RetrieveCorpse = 0x161C860;
    	inline uintptr_t HasSpellPower = 0x1065530;
    	inline uintptr_t GetItemRecord = 0x91AEE0;
    	inline uintptr_t Dismount = 0x12419B0;
    	inline uintptr_t IsAutoRepeatAction = 0x17C1E40;
    	inline uintptr_t SellItem = 0x11C3C6C;
    	inline uintptr_t FaceTo = 0x1267400;
    	inline uintptr_t CastSpellBySlot = 0x169D7C0;
    	inline uintptr_t RepopMe = 0x11C3C10;
    	inline uintptr_t SpriteRightClick = 0x16362B0;
    	inline uintptr_t FindSlotBySpellId = 0x169FAC0;
    	inline uintptr_t SpriteLeftClick = 0x1635EC0;
    	inline uintptr_t SelectGossipOption = 0x17162C0;
    	inline uintptr_t IsCurrentSpell = 0x106BCB0;
    	inline uintptr_t GossipOptions = 0x311D5E0;
    	inline uintptr_t InGame = 0x30E7A64;
    	inline uintptr_t GetBaseFromToken = 0x1AA0530;
    	inline uintptr_t CorpsePosition = 0x2CD3AA0;
    	inline uintptr_t WorldFrameIntersect = 0x1AC13B0;
    	inline uintptr_t GetItemPointer = 0x134ADA0;
    	inline uintptr_t ActiveMerchantGuid = 0x312CB18;
    	inline uintptr_t GossipNumOptions = 0x311CDDC;
    	inline uintptr_t ActiveGossiperGuid = 0x3122E40;
    	inline uintptr_t ObjectManager = 0x2EF3B98;
    	inline uintptr_t GetMapId = 0x1400EE0;
    	inline uintptr_t FrameContainer = 0x2E3F9A0;
    	inline uintptr_t GetWorld = 0x215600;
    	inline uintptr_t WorldFrame = 0x31C9398;
    	inline uintptr_t LastEventTime = 0x2E3F9A8;
    	inline uintptr_t RepeatingSpellId = 0x2E56734;
    	inline uintptr_t UseItemParam = 0x2E56550;
    	inline uintptr_t SetPetAction = 0x174A770;
    	inline uintptr_t LootWindow = 0x31241D0;
    
    	inline uintptr_t CGUnit_CastingSpellId = 0x19C0;
    	inline uintptr_t CGUnit_ChannelingSpellId = 0x1A18;
    	inline uintptr_t CGUnit_CombatStruct = 0x0188;
    	inline uintptr_t CGUnit_CombatStruct_InCombat = 0x0158;
    	inline uintptr_t CGUnit_MovementStruct = 0x0198;
    	inline uintptr_t CGUnit_MovementStruct_CurrentSpeed = 0xA0;
    	inline uintptr_t CGUnit_MovementStruct_RunSpeed = 0xA8;
    	inline uintptr_t CGUnit_MovementStruct_FlightSpeed = 0xB8;
    	inline uintptr_t CGUnit_MovementStruct_SwimSpeed = 0xB0;
    	inline uintptr_t CGUnit_AuraCount = 0x1B20;
    	inline uintptr_t CGUnit_AuraTable = 0x1B24;
    	inline uintptr_t CGPlayer_MountId = 0x1898;
    Last edited by _chase; 10-01-2021 at 09:40 AM.

  10. Thanks Razzue (1 members gave Thanks to _chase for this useful post)
  11. #8
    Razzue's Avatar Contributor Avid Ailurophile

    CoreCoins Purchaser Authenticator enabled
    Reputation
    379
    Join Date
    Jun 2017
    Posts
    588
    Thanks G/R
    186/268
    Trade Feedback
    2 (100%)
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by _chase View Post
    I'm curious what are you working on where you don't need CTM? I'm only aware of three ways to move; ctm, packets, and setting movement flags which would require an advanced steering motion controller.
    Do you not require any movement in your project, or are you using one of the latter two for movement?
    So i'm working externally, not sure if CTM if feasible there with my knowledge tbh (Just started memory stuff in like june )
    For movement, I just broadcast(PostMessage, or interception) movement keys for X amount of MS based on angle to target unit/location etc.

    For the moment i just read through set keybinds to auto grab primary movement keys for sending
    Code:
    internal Dictionary<string, int[]> CommandBindings = new Dictionary<string, int[]>();
    
    internal bool GetCommandBinds()
    {
        try
        {
            CommandBindings = new Dictionary<string, int[]>();
            if (!GetBindings(out var Bindings))
                return false;
    
            foreach (var t in Bindings
                .Where(t => !t.Value.Contains("MACRO"))
                .Where(t => !t.Value.Contains("SPELL"))
                .Where(t => !t.Value.Contains("ITEM"))
                .Where(t => !CommandBindings.ContainsKey(t.Value)))
            {
                if (FilterString(t.Key, out var Binds))
                    CommandBindings.Add(t.Value, Binds);
            }
    
            return CommandBindings.Count > 0;
        }
        catch (Exception)
        {
            CommandBindings = new Dictionary<string, int[]>();
            return false;
        }
    }
    
    private bool GetBindings(out List<KeyValuePair<string, string>> Bindings)
    {
        try
        {
            Bindings = new List<KeyValuePair<string, string>>();
            var NumOfBindings = Memory.Read<IntPtr>(ClientManager.BaseAddress + Offsets.Keybinds.Base);
            var FirstBind = Memory.Read<IntPtr>(NumOfBindings + Offsets.Keybinds.First);
    
            while (FirstBind != IntPtr.Zero)
            {
                var key = Memory.ReadUtfString(Memory.Read<IntPtr>(FirstBind + Offsets.Keybinds.Key));
                var command = Memory.ReadUtfString(Memory.Read<IntPtr>(FirstBind + Offsets.Keybinds.Command));
                if (key.Length > 0 && command.Length > 0)
                    Bindings.Add(new KeyValuePair<string, string>(key, command));
    
                FirstBind = Memory.Read<IntPtr>(FirstBind + Offsets.Keybinds.Next);
            }
    
            return Bindings.Count > 0;
        }
        catch (Exception)
        {
            Bindings = null;
            return false;
        }
    }
    ** Where "FilterString" just does KeyString.Split('-'), then parses string array to int array for appropriate keycodes
    Safest way? Probably not. Does it work for personal usage? Absolutely.
    Last edited by Razzue; 10-01-2021 at 09:51 AM.

  12. #9
    Ikse's Avatar Member
    Reputation
    1
    Join Date
    Dec 2014
    Posts
    10
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey, I’m working too with simulated inputs but I only base the keyPress and keyRelease on the updated character’s position and rotation. I’m running into some very not precise movements and have to deal with margins. I’m curious to have your feedbacks on keyPress/release time based inputs
    Would you tell me your results ?

  13. #10
    charles420's Avatar Contributor
    Reputation
    315
    Join Date
    Jun 2009
    Posts
    329
    Thanks G/R
    25/119
    Trade Feedback
    0 (0%)
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)
    Code:
    using System.Reflection;
    
    
    namespace LazyLib.Wow
    {
        public class PublicPointers
        {
            /// <summary>
            /// Globals
            /// </summary>
            public enum Globals
            {
                PlayerName = 0x2DCFCE8,
            }
    
            /// <summary>
            /// InGame
            /// </summary>
            public enum InGame
            {
                InGame = 0x30E7A64,//Reversed From Script_IsPlayerInWorld
                LoadingScreen = 0x2DB9020,//Reversed From Script_CanLogIn to CGlueMgr__CanLogIn
                RealID = 0x31C9D98, /// Real ID / Name / # 
            }
    
         }
    
        internal class Pointers
        {
            /// <summary>
            /// ActionBar
            /// </summary>
            internal enum ActionBar
            {
                ActionBarFirstSlot = 0x312A590,//Reversed From Script_GetActionTexture To CGActionBar__GetTexture
                ActionBarBonus =  ActionBarFirstSlot + 0x240,
                CurrentActionBar = 0x312ABE4,
            }
    
            /// <summary>
            /// Battleground
            /// </summary>
            internal enum Battleground
            {
                BattlegroundStartTickcount = 0x3122F74,// GetBattlefieldInstanceRunTime
                Timestamp = 0x2E3ECAC,////FrameTime__GetCurTimeMs
                IsBattlegroundFinished = 0x312321C,//GetBattlefieldWinner Todo fix Pattern
                BattlegroundWinner = 0x3123220,// string GetBattlefieldWinner
                BattlegroundInfo = 0x2CDD820,
                UISelectedBattlegroundId = 0x30E757C,
            }
    
            /// <summary>
            /// Corpse
            /// </summary>
            internal enum Corpse
            {
                X = 0x2CD3AA0,
                Y =  X + 0x4,
                Z =  X + 0x8,
            }
    
            /// <summary>
            /// Party
            /// </summary>
            internal enum Party
            {
                PartyOffset = 0x311CA10,// every pattern off by 2 idn why - 2 
                IsInGroupHome = 0x311CA10,// every pattern off by 2 idn why - 2 
                IsInGroupInstance = 0x311CA10,// every pattern off by 2 idn why - 2
                NumOfPlayers =  0x178,//Script_GetNumGroupMembers
                NumOfPlayersPattern = 0x178, // working 
                NumOfPlayers_SuBGroupPattern = 0x17C, // working 
                NumOfPlayers_SuBGroup =  0x17C,//// NumOFPlayers+4
                PlayerGuid =  0x10,
            }
    
            /// <summary>
            /// AutoLoot
            /// </summary>
            internal enum AutoLoot
            {
                Pointer = 0x30E76C8,//Reversed From CGGameUI__IsAutoLooting
                Offset =  0x5C,
            }
    
            /// <summary>
            /// ClickToMove
            /// </summary>
            internal enum ClickToMove
            {
                Pointer = 0x30E7680,//Search String in ida Automatically stand when needed to CGGameUI__RegisterGameCVars then thats the offset
                Offset =  0x5C,
            }
    
            /// <summary>
            /// Reversed from CGUnit_C__GetCreatureRank 
            /// </summary>
            internal enum CgUnitCGetCreatureRank
            {
                Offset1 =  0x1800, //0x17B8 old,
                Offset2 =  0x34,
            }
    
            /// <summary>
            /// reversed from CGUnit_C__GetCreatureType 
            /// </summary>
            internal enum CgUnitCGetCreatureType
            {
                Offset1 =  0x1800, //0x17B8 old,
                Offset2 =  0x30,
            }
    
            /// <summary>
            /// reversed from CGWorldFrame__GetActiveCamera
            /// </summary>
            internal enum CgWorldFrameGetActiveCamera
            {
                CameraPointer = 0x31C9398,
                CameraOffset =  0x38E0,// good
                CameraOffsetPattern = 0x38E0, // working 
                CameraX =  0x10,
                CameraY =  0x14,
                CameraZ =  0x18,
                CameraMatrix =  0x1C,
            }
    
            /// <summary>
            /// Search for CGUnit_C::GetSkinnableType_Checked 
            /// </summary>
            internal enum Skinning
            {
                SkinnableFlags1 =  0x1800, // old 0x17B8,
                SkinnableFlags1Pattern = 0x1800, // working 
                SkinnableFlags2Pattern = 0xE8, // working 
                SkinnableFlags2 =  0xE8, // old todo test 0x0CC,
            }
    
            /// <summary>
            /// AuctionHouse
            /// </summary>
            internal enum AuctionHouse
            {
                AuctionListCount = 0x3165898,
                AuctionList = AuctionListCount + 0x08 ,
                AuctionOwnerCount = 0x31658B8,
                AuctionOwnerList = AuctionOwnerCount + 0x08 ,
                AuctionBidderCount = 0x31658D8,
                AuctionBidderList = AuctionBidderCount + 0x08 ,
            }
    
            /// <summary>
            /// reversed from CGActionBar__IsCurrentAction
            /// </summary>
            internal enum AutoAttack
            {
                IsAutoRepeatingSpell = 0x2E56730,
                IsInMelee =  0xAF6C,
                IsInMelee1 =  0x18A8,
                AutoAttackFlag =  0xEE8,
                AutoAttackMask =  0xEEC,
                ///Address seems to show the GUID of the Auto Attack target
                AutoAttackGUID =  0xAF6C,
                ///Shows 0x06 when not wanding, 0x0C or 0x0E when wanding
                ///Wanding = 0xEF8
            }
    
            /// <summary>
            /// CastingInfo 
            /// </summary>
            internal enum CastingInfo
            {
                IsCasting2 =  0x19B0,// Script_UnitCastingInfo
                IsCasting =  0x19B0,// Script_UnitCastingInfo
                IsCastNotInterruptible =  0x1904,// Script_UnitCastingInfo
                ChanneledCasting2 =  0x1A08,// Script_UnitCastingInfo
                ChanneledCasting =  0x19C0,// Script_UnitChannelInfo//prb wrong 0x682 maybe
            }
    
            /// <summary>
            /// reversed from CGWorldFrame__GetActiveCamera
            /// </summary>
            internal enum Chat : uint
            {
                ChatStart = 0x30E7D90,
                chatBufferPos = 0x31178D0,
                OffsetToNextMsg =  0xCB8,
                OffsetToNextMsgPattern = 0xCB8, // working 
                MsgSenderGuid =  0x00,
                MsgSenderName =  0x34,
                MsgFullMessage =  0xE6,
                MsgChatType =  0xCA0,
                MsgChannelNum =  0xCA4,
                MsgTimeStamp =  0xCB0,
                ChatQueueDepth =  0x3C,
            }
    
            /// <summary>
            /// BlueChat
            /// </summary>
            internal enum Messages
            {
                EventMessage = 0x30E6960,//Reversed From CGGameUI__DisplayError
            }
    
            /// <summary>
            /// Container
            /// </summary>
            internal enum Container
            {
                EquippedBagGUID = 0x3122E40,// GetBagAtIndex 
            }
    
            /// <summary>
            /// Globals
            /// </summary>
            internal enum Globals
            {
                RedMessage = 0x30E6960,//Reversed From CGGameUI__DisplayError
                MouseOverGUID = 0x30E7A88,// Reversed From Script_GetGUIDFromToken - MouseOver
                LootWindow = 0x31241C8,//Reversed From CGPlayer_C_OnLootClose
                ChatboxIsOpen = 0x2E66774,//Reversed From CGPlayer_C_OnLootClose
                CursorType = 0x31B9A90,// Reversed From CursorInitialize - Script_SetCursor To CursorSetMode
                CursorType2 = CursorType + 0x04 ,
                SelectedSpellId = 0x3137F08,// aka trainer 
                CGGameUI__m_cursorItem = 0x30E6870,
                CGGameUI__m_cursorSpell = 0x30E68D8,
                IsMouseButtonPressed = 0x2E3ECDC,
                Indoors = 0x2E44365,
                IsBobbing = 0x14C ,
                ArchFacing = 0x198 ,
                ArchFacingOffset2 = 0x30 ,
            }
    
            /// <summary>
            /// KeyBinding // Reversed From Script_GetNumBindings
            /// </summary>
            internal enum KeyBinding
            {
                NumKeyBindings = 0x2DCE4C0,
                First =  0x28,// 0x18 hardcoded 
                Next =  0x18,
                Key =  0x30,
                Command =  0x58,// or 0x50
            }
    
            /// <summary>
            /// Macros Todo Add Pattern for dumper
            /// </summary>
            internal enum MacroManager
            {
                Next =  0x8,// currently not using anything besides 0x8 24 + 10 or 20 + 10
                Name =  0x38,
                Icon =  0x78,
                Body =  0x179,
                MacroFirst =  0x2CDC918,// MacroBase  4 Below GetRunningMacroButton STring
    	    MacroNext =  0x2CDC908,// MacroBase  4 Below GetRunningMacroButton STring
                nbGeneralMacros =  0x311C068,// Found With GetNumMacros String
                nbSpecificMacros =  0x311C070,// Found With GetNumMacros String
            }
    
            /// <summary>
            /// Quest
            /// </summary>
            internal enum Quest
            {
                m_quests = 0x312CFB0,
                m_numQuests = 0x312CDF0,//Found With GetNumQuestLogEntries String
                m_currentQuest = 0x31549F4,//Found In GetQuestID String
                m_questTitle = 0x315FB40,// Found With GetTitleText String pattern might not work
                m_gossipQuests = 0x311D9F8,
                QuestsCompleted = 0x0,// bugged out in ida lazy
                GetNumQuestChoices = 0x3163FF0,//Found WithGetNumQuestChoices String // RewardChoiceItemIdCount
                GetQuestReward = 0x3163FF8,
                CGQuestInfo_Available__Quest = 0x3163640,
                CGQuestInfo_Available__Num = 0x3154A0C,
                CGQuestInfo_Active__Num = 0x3154A10,//Found With GetNumActiveQuests String
                CGQuestInfo_Active__Quest = 0x3159E94,
            }
    
            /// <summary>
            /// ObjectManager
            /// </summary>
            internal enum ObjectManager
            {
                CurMgrPointer = 0x2EF3B98,
                LocalPlayerGUID = 0x2DCFCD0,
                TargetGUID = 0x2E45950,
                PetGUID = 0x31240B8,
                StorageField = 0x10 ,
                ObjectType = 0x20 ,
                NextObject = 0x70 ,
                FirstObject = 0x18 ,
                LocalGUID = 0x58 ,
            }
    
            /// <summary>
            /// Script_UnitAffectingCombat 
            ///v4 = v2 && (*(_DWORD *)(*(_DWORD *)(v2 + 284) + 316) >> 19) & 1; 
            /// </summary>
            internal enum InCombat
            {
                Mask =  19,
                Offset2 =  0x158,
                Offset1 =  0x188,
                Offset2Pattern = 0x188,// working
                Offset1Pattern = 0x158,// working
            }
    
            /// <summary>
            /// Runes 
            /// </summary>
            internal enum Runes
            {
                RuneTypes =  0x0,
                RunesOffset =  0x0,
                //Offset is usually RuneTypes + 0x64
            }
    
            /// <summary>
            /// CGUnit_C__GetShapeshiftFormId 
            /// </summary>
            internal enum ShapeshiftForm
            {
                BaseAddressOffset1Pattern = 0x188,// working
                BaseAddressOffset2Pattern = 0x27B,// working
                BaseAddressOffset1 =  0x188,// good
                BaseAddressOffset2 =  0x27B,// good
            }
    
            /// <summary>
            /// SpellCooldown
            /// </summary>
            internal enum SpellCooldown : uint
            {
                CooldPown = 0x2E56570,
            }
    
            /// <summary>
            /// Search for PowerTypePointer  
            /// </summary>
            internal enum PowerIndex
            {
                PowerIndexArrays = 0x2EB12E0,
                Multiplicator =  13,// good
            }
    
            /// <summary>
            /// Swimming v5 = v3 && (*(*(v3 + 0x198) + 0x58i64) >> 20) & 1; 
            /// </summary>
            internal enum Swimming
            {
                Pointer =  0x198,
                Offset =  0x58,
                Mask =  0x100000,
            }
    
            /// <summary>
            /// IsFlying 
            /// </summary>
            internal enum IsFlying
            {
                Pointer =  0x198,
                Offset =  0x58,
                Mask =  0x1000000,
            }
    
            /// <summary>
            /// IsFalling v5 = v3 && (*(*(v3 + 0x198) + 0x58i64) >> 11) & 1 && !((*(*(v3 + 0x198) + 0x58i64) >> 10) & 1);
            /// </summary>
            internal enum IsFalling
            {
                Pointer =  0x198,
                Offset =  0x58,
                Mask =  0x1000000,
            }
    
            /// <summary>
            /// reversed from CGUnit_C__GetAura 
            /// </summary>
            internal enum UnitAuras : uint
            {
                AuraCount1Pattern = 0x1B20, // working 
                AuraCount2Pattern = 0x1B28, // working 
                AuraCount1 =  0x1B20,// fixed 40045
                AuraCount2 =  0x1B28,// fixed 40045
                AuraTable1 =  0x1B20,// fixed 40045
                AuraTable2 =  0x1B28,// fixed 40045
                AuraSize =  0xB0,
                AuraSpellId =  0x88,
                AuraStack =  0x39,
                TimeLeft =  0x40,
                OwnerGUID =  0x20,
                AuraTableOffset =  0x00,
                AuraFlags =  0x90,
                AuraLevel =  0x92,
            }
    
            /// <summary>
            /// UnitName 
            /// </summary>
            internal enum UnitName : uint
            {
                ObjectName1Pattern = 0x478,// working
                ObjectName2Pattern = 0xE0,// working
                ObjectName1 =  0x478,// good
                ObjectName2 =  0xE0,// good
                PlayerNameGUIDOffset =  0x20,// dont use
                PlayerNameStringOffset =  0x31,// dont use
                PlayerNameCacheNext =  0x0,// dont use
                PlayerNameCachePointer = 0x2AAF8A0,
                UnitName1 =  0x1800,  //old 0x17B8,
                UnitName2 =  0xF8, // good
                UnitName1Pattern = 0x1800,// working
                UnitName2Pattern = 0xF8,// working
            }
    
            /// <summary>
            /// UnitSpeed 
            /// </summary>
            internal enum UnitSpeed
            {
                Pointer1 =  0x198,
                Pointer2 =  0xA0,
            }
    
            /// <summary>
            /// WowObject 
            /// </summary>
            internal enum WowObject
            {
                X =  0x15F8,
                Y =  X + 0x4,
                Z =  X + 0x8,
                RotationOffset =  X + 0x10,
                Pitch =  X + 0x14,
                GameObjectX =  0x1B0,
                GameObjectY =  GameObjectX + 0x4,
                GameObjectZ =  GameObjectX + 0x8,
                GameObjectRotation =  GameObjectX + 0x10,
                TransportGUID =  0x15F0,
            }
    
            /// <summary>
            /// Zone 
            /// </summary>
            internal enum Zone : uint
            {
                ZoneText = 0x30E67F8,//Script_GetZoneText
                ZoneID = 0x30E695C,//Reversed From Script_GetZonePVPInfo - Script_IsPlayerInMicroDungeon
                SubZoneText = 0x30E6800,//Reversed From Script_GetSubZoneText
                ContinentId = 0x2AC8B4C,
                GetContinentIDOffset =  0x00,
            }
    
            /// <summary>
            /// UiFrame 
            /// </summary>
            internal enum UiFrame
            {
                ScrWidth = 0x2AADE64,// Script_GetScreenWidth
                ScrHeight =  ScrWidth + 0x4,
                FrameBase = 0x2E3F9A0,// Script_GetMouseMotionFocus
                CurrentFramePtr = 0x2E3F9A0,// Script_GetMouseClickFocus
                CurrentFrameOffset =  0x290,
                FirstFrame =  0xF18,
                NextFrame =  0xF08,
                RegionsFirst =  0x2A0,
                RegionsNext =  0x290,
                Visible =  0x1CC,
                Visible1 =  1,
                Visible2 =  1,
                LabelText =  0x280,
                Name =  0x28,
                FrameBottom =  0x190,
                FrameLeft =  0x194,
                FrameTop =  0x198,
                FrameRight =  0x19C,
                EffectiveScale =  0x1C0,
                ParentFrame =  0x58,// 0xD0
                IconNumber =  0x12,
                ButtonEnabledPointer =  0x310,
                ButtonEnabledMask =  0xF,
                ButtonChecked =  0x360,
                EditBoxText =  0x330,
            }
    
        }
    
    }
    Last edited by charles420; 10-03-2021 at 08:12 AM.

  14. Thanks Razzue (1 members gave Thanks to charles420 for this useful post)
  15. #11
    Dorod52's Avatar Active Member
    Reputation
    19
    Join Date
    Jan 2020
    Posts
    38
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    the one above works really well

Similar Threads

  1. [Buying] Buying WOW WotLK Classic Gold All US + Eu Servers 24/7 Online
    By legalperson1 in forum WoW Classic Buy Sell Trade
    Replies: 23
    Last Post: 10-09-2023, 07:27 PM
  2. [Selling Gold] WoW Wotlk/SoD/SoM/Classic GOLD - All Regions - All Realms - CHEAP - FAST DELIVERY
    By NerdBooster in forum WoW Classic Buy Sell Trade
    Replies: 4
    Last Post: 09-17-2022, 04:22 PM
  3. [Selling] Selling tbc classic leveling eu & na! Cheap , fast & secure!
    By Goldstash in forum WoW Classic Buy Sell Trade
    Replies: 1
    Last Post: 10-20-2019, 06:26 AM
  4. [Powerleveling] ★WotLK Poweleveling 70-80 from 35$ + PVP/PVE Boosting & Farming★
    By MMO-GS in forum WoW Classic Buy Sell Trade
    Replies: 4
    Last Post: 09-13-2019, 07:30 AM
  5. [Selling] ★WotLK + SoD + WoW Classic Gold Service - All EU/NA Realms - Pro Service★
    By MMO-GS in forum WoW Classic Buy Sell Trade
    Replies: 0
    Last Post: 08-28-2019, 08:47 AM
All times are GMT -5. The time now is 05:19 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