[Burning Crusade] Build: 43638 menu

User Tag List

Results 1 to 14 of 14
  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)

    [Burning Crusade] Build: 43638

    Code:
    publicclassOffsets_43638{
        
        public class Guids
        {
            
            public const int Mouseover_Guid = 0x2C88C10;
            
            public const int Pet_Guid = 0x2CC7000;
            
            public const int Player_Guid = 0x2C1C7C0;
            
            public const int Target_Guid = 0x2DFC4D0;
            
            public const int Last_Target_Guid = 0x2DFC4E0;
            
            public const int Last_Enemy_Guid = 0x2DFC4F0;
            
            public const int Last_Friendly_Guid = 0x2DFC500;
            
            public const int Focus_Guid = 0x2DFC510;
            
            public const int DialogWindowOwner_Guid = 0x2DFC520;
            
            public const int Bag_Guid = 0x2CC6CE0;
        }
        
        public class Global_Data
        {
            
            public const int In_Game_Status = 0x2C88BBC;
            
            public const int Player_Name = 0x2C1C7D8;
            
            public const int Corpse_Position = 0x2ADE5F0;
            
            public const int Last_Message = 0x2C879E0;
            
            public const int Loot_Window = 0x2CC7AC8;
        }
        
        public class Quests
        {
            
            public const int Base = 0x2CFD600;
            
            public const int NumQuests = 0x2CFD440;
            
            public const int CurrentQuest = 0x2CEDE24;
            
            public const int QuestTitle = 0x2CF8F70;
            
            public const int GossipQuests = 0x2CBE6B8;
            
            public const int NumQuestChoices = 0x2CFD420;
            
            public const int QuestReward = 0x2CFD428;
        }
        
        public class Auto_Loot
        {
            
            public const int Base = 0x2C88820;
            
            public const int Offset = 0x5C;
        }
        
        public class Click_To_Move
        {
            
            public const int Base = 0x2C887D8;
            
            public const int Offset = 0x5C;
        }
        
        public class Chat
        {
            
            public const int Open = 0x300AEA4;
            
            public const int Start = 0x2C89280;
            
            public const int Offset = 0xCB8;
            
            public const int Message = 0xE6;
        }
        
        public class Key_Bindings
        {
            
            public const int Base = 0x2C1BB38;
        }
        
        public class Add_On
        {
            
            public const int Count = 0x2D0E418;
            
            public const int List = 0x2D0E960;
        }
        
        public class Spellbooks
        {
            
            public const int Count = 0x2CBC1B0;
            
            public const int Base = 0x2CBC1B8;
            
            public const int PetBase = 0x2CBC1E0;
            
            public const int PetCount = 0x2CBC1D8;
        }
        
        public class Object_Manager
        {
            
            public const int Zone_ID = 0x2C885E8;
            
            public const int Names = 0x2B04D00;
            
            public const int Base = 0x2C878E0;
            
            public const int Cooldown = 0x2C23690;
        }
        
        public class Battlegrounds
        {
            
            public const int Finished = 0x2CC3EBC;
            
            public const int Winner = 0x2CC3EC0;
            
            public const int Info = 0x2AE8508;
        }
        
        public class Camera
        {
            
            public const int Base = 0x3058178;
            
            public const int Offset = 0x38E0;
        }
    
    }
    Code:
    publicclassFields{
        public class Item
        {
            public const int Creator = 0x0; // ?
            public const int ID = 0x150; // Updated
            public const int Expiration = 0x0; // ?
            public const int Flag = 0x1F8; // Updated
            public const int Owner = 0x1B0; // Updated
            public const int Enchant = 0x2C0; // Updated
            public const int Container = 0x1C0; // Updated
            public const int Enchant_ID = 0x2C; // Updated
            public const int StackCount = 0x1F0; // Updated
            public const int Durability = 0x204; // Updated
            public const int Enchant_Expire = 0x30; // Updated
            public const int MaxDurability = 0x208; // Updated
        }
    
        public class Container
        {
            public const int Count = 0x430; // Updated
            public const int Items = 0x438; // Updated
        }
    
        public class Unit
        {
            public const int UnitId = 0x0; // ?
            public const int Master = 0x0; // ?
            public const int Charmer = 0x0; // ?
            public const int DisplayId = 0x0; // ?
            public const int Sex = 0xD5DF; // Updated
            public const int Race = 0xD5DC; // Updated
            public const int Pitch = 0x34;  // Updated
            public const int Rank = 0x38;   // Updated
            public const int Type = 0x30;   // Updated
            public const int Name = 0xF8;   // Updated
            public const int CastID = 0x560; // Updated
            public const int ChanID = 0x5B8; // Updated
            public const int Class = 0xD5DD; // Updated
            public const int Level = 0xD5E8; // Updated
            public const int Info = 0x3A0;   // Updated
            public const int CastEnd = 0x5B4; // Updated
            public const int ChanEnd = 0x5C4; // Updated
            public const int Target = 0xD5A8; // Updated
            public const int Power1 = 0xD7B8; // Updated
            public const int Power2 = 0xD7BC; // Updated
            public const int Power3 = 0xD7C0; // Updated
            public const int Power4 = 0xD7C4; // Updated
            public const int Power5 = 0xD7C8; // Updated
            public const int Power6 = 0xD7CC; // Updated
            public const int Power7 = 0xD7D0; // Updated
            public const int Movement = 0xF0;  // Updated
            public const int Family = 0x34;   // Updated
            public const int Creator = 0xD580; // Updated
            public const int Health = 0xD4E8;  // Updated
            public const int NpcFlag = 0xD520; // Updated
            public const int Location = 0x20;  // Updated
            public const int Faction = 0xD60C; // Updated
            public const int CastStart = 0x5B0; // Updated
            public const int ChanStart = 0x5C0; // Updated
            public const int RotationD = 0x2C;  // Updated
            public const int RotationF = 0x30;  // Updated
            public const int Summoner = 0xD560; // Updated
            public const int MaxHealth = 0xD4F0; // Updated
            public const int MaxPower1 = 0xD7D4; // Updated
            public const int MaxPower2 = 0xD7D8; // Updated
            public const int MaxPower3 = 0xD7DC; // Updated
            public const int MaxPower4 = 0xD7E0; // Updated
            public const int MaxPower5 = 0xD7E4; // Updated
            public const int MaxPower6 = 0xD7E8; // Updated
            public const int MaxPower7 = 0xD7EC; // Updated
            public const int DynamicFlag = 0xDC; // Updated
            public const int UnitFlag1 = 0xD610; // Updated
            public const int UnitFlag2 = 0xD614; // Updated
            public const int UnitFlag3 = 0xD618; // Updated
            public const int MoveFlag = 0x58; // Updated
            public const int MountID = 0xD638;
        }
        public class Player
        {
            public const int LootTarget = 0x0; // ?
            public const int Flags1 = 0xDB78; // Updated
            public const int Flags2 = 0xDB7C; // Updated
        }
        public class LocalPlayer
        {
            public const int Flags = 0x0; // ?
            public const int ComboTarget = 0x0; // ?
            public const int Bags = 0x130; // Updated
            public const int Money = 0xE390; // Updated
            public const int Equipment = 0x0;  // Updated
            public const int Backpack = 0x170; // Updated
            public const int Experience = 0xE398; // Updated
            public const int Inventory = 0x12408;  // Updated
            public const int NextLevelXP = 0xE39C; // Updated
        }
        public class Object
        {
            public const int Name2 = 0xE0; // Updated
            public const int Flags = 0xA0; // Updated
            public const int Name1 = 0x148; // Updated
            public const int Creator = 0x210; // Updated
            public const int ObjectID = 0xD0; // Updated
            public const int Location = 0x108; // Updated
        }
        public class Aura
        {
            public const int Size = 0xB0; // Updated
            public const int Table1 = 0x6C0; // Updated
            public const int Table2 = 0x6C8; // Updated
        }
    
    }

    [Burning Crusade] Build: 43638
  2. Thanks Aceolus, moisteroyster (2 members gave Thanks to Razzue for this useful post)
  3. #2
    shmilyzxt's Avatar Member
    Reputation
    2
    Join Date
    May 2020
    Posts
    9
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    LocalPlayerFacing = 0X2B36468
    localPlayerPosition = 0X2AD9C78

    thansk for share!

  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 shmilyzxt View Post
    LocalPlayerFacing = 0X2B36468
    localPlayerPosition = 0X2AD9C78

    thansk for share!
    Or just use
    UnitBase + Movement + Location
    And UnitBase + Movement + RotationD/F (rotation can be read as double or single, either provide expected results) as it should be 🤔

    Unless you're meaning the functions in which case.. 🤷*♂️

  5. #4
    shmilyzxt's Avatar Member
    Reputation
    2
    Join Date
    May 2020
    Posts
    9
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Razzue View Post
    Or just use
    UnitBase + Movement + Location
    And UnitBase + Movement + RotationD/F (rotation can be read as double or single, either provide expected results) as it should be 🤔

    Unless you're meaning the functions in which case.. 🤷*♂️
    So that is what it is,your are my god!

  6. #5
    chfxs's Avatar Member
    Reputation
    1
    Join Date
    Jul 2011
    Posts
    3
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    where the ClickToMove?
    2.5.3 42940 it is
    static inline uintptr_t ClickToMove = Base + 0x1327580; // Fix it urself 48 83 EC 48 48 8B 81 ? ? ? ? 48 83 B8 ? ? ? ? ?

  7. #6
    0xd5d's Avatar Member
    Reputation
    11
    Join Date
    Mar 2021
    Posts
    20
    Thanks G/R
    22/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks Razzue for this great post!

    Other new joiners like me may find it difficult to find how to consume these offsets. Here are threads that can help:
    Post from qop1832 to iterate through object manager: wor...d-42917-a.html
    Post from razzue on the same: https://www.ownedcore.com/forums/wor...offsets-4.html

    I think I'm able to get the objects from the object manager, but I'm unable to get their type. Do you have an idea why?

    Using this enum:
    Code:
    public enum ManagerType
    {
        Object = 0,
        Item = 1,
        Container = 2,
        EmpAzeriteItem = 3,
        AzeriteItem = 4,
        Unit = 5,
        Player = 6,
        LocalPlayer = 7,
        GameObject = 8,
        DynamicObject = 9,
        Corpse = 10,
        AreaTrigger = 11,
        SceneObject = 12,
        Conversation = 13,
        Nil = 255
    }
    Here is my code (inspired from Razzue's one):
    Code:
            var objects = new List<(IntPtr,ManagerType)>();
    
            Process wowProcess = _applicationService.GetWowProcess();
            IntPtr baseAddress = wowProcess.MainModule.BaseAddress;
        
            const int array = 0x8;
            const int objGuid = 0x8;
            const int entGuid = 0x18;
            const int objType = 0x10;
            IntPtr countAddr = _memoryAccessor.ReadAddress(IntPtr.Add(baseAddress, Offsets43638.ObjectManager.Base), 8);
            IntPtr arrayAddr = _memoryAccessor.ReadAddress(IntPtr.Add(countAddr, array), 8);
    
            _memoryAccessor.Read(countAddr, out uint count);
            for (int i = 0; i < count; i++)
            {
                var ptr = _memoryAccessor.ReadAddress(arrayAddr + (i * array), 8);
                
                if (ptr == IntPtr.Zero) continue;
    
                while (ptr != IntPtr.Zero)
                {
                    _memoryAccessor.Read(ptr + objGuid, out Guid guid); // Seems OK
          
                    IntPtr entryPtr = _memoryAccessor.ReadAddress(ptr + 0x18, 8);
                    _memoryAccessor.Read(entryPtr + objType, out ManagerType type); // <= this is KO
                    //  _memoryAccessor.Read(entryPtr + Fields.Unit.Type, out ManagerType type); // KO as well
    
                    ptr = _memoryAccessor.ReadAddress(ptr, 8);
                    
                    objects.Add((entryPtr, type));
                }
            }
            
            foreach ((IntPtr unitPtr, _) in objects.Where(x => x.Item2 == ManagerType.Unit))
            {
                _memoryAccessor.Read(unitPtr + Fields.Unit.Level, out int level); // Fields.Unit.Level is provided by Razzue in the offset list
                IntPtr namePtr = _memoryAccessor.ReadAddress(unitPtr + Fields.Unit.Name, 8); // Fields.Unit.Name is provided by Razzue in the offset list
                _memoryAccessor.ReadString(namePtr, Encoding.UTF8, out string name);
                
                Debug.WriteLine($"=> {name} lvl {level}");
            }
    Also, I did a similar attempt for the position with no more success:
    Code:
    _memoryAccessor.Read(entryPtr + Fields.Unit.Location, out Vector3 v3); // <= this is KO
    Any idea why?
    Last edited by 0xd5d; 05-15-2022 at 08:14 AM.

  8. Thanks moisteroyster (1 members gave Thanks to 0xd5d for this useful post)
  9. #7
    shmilyzxt's Avatar Member
    Reputation
    2
    Join Date
    May 2020
    Posts
    9
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by 0xd5d View Post
    Thanks Razzue for this great post!

    Other new joiners like me may find it difficult to find how to consume these offsets. Here are threads that can help:
    Post from qop1832 to iterate through object manager: wor...d-42917-a.html
    Post from razzue on the same: https://www.ownedcore.com/forums/wor...offsets-4.html

    I think I'm able to get the objects from the object manager, but I'm unable to get their type. Do you have an idea why?

    Using this enum:
    Code:
    public enum ManagerType
    {
        Object = 0,
        Item = 1,
        Container = 2,
        EmpAzeriteItem = 3,
        AzeriteItem = 4,
        Unit = 5,
        Player = 6,
        LocalPlayer = 7,
        GameObject = 8,
        DynamicObject = 9,
        Corpse = 10,
        AreaTrigger = 11,
        SceneObject = 12,
        Conversation = 13,
        Nil = 255
    }
    Here is my code (inspired from Razzue's one):
    Code:
            var objects = new List<(IntPtr,ManagerType)>();
    
            Process wowProcess = _applicationService.GetWowProcess();
            IntPtr baseAddress = wowProcess.MainModule.BaseAddress;
        
            const int array = 0x8;
            const int objGuid = 0x8;
            const int entGuid = 0x18;
            const int objType = 0x10;
            IntPtr countAddr = _memoryAccessor.ReadAddress(IntPtr.Add(baseAddress, Offsets43638.ObjectManager.Base), 8);
            IntPtr arrayAddr = _memoryAccessor.ReadAddress(IntPtr.Add(countAddr, array), 8);
    
            _memoryAccessor.Read(countAddr, out uint count);
            for (int i = 0; i < count; i++)
            {
                var ptr = _memoryAccessor.ReadAddress(arrayAddr + (i * array), 8);
                
                if (ptr == IntPtr.Zero) continue;
    
                while (ptr != IntPtr.Zero)
                {
                    _memoryAccessor.Read(ptr + objGuid, out Guid guid); // Seems OK
          
                    IntPtr entryPtr = _memoryAccessor.ReadAddress(ptr + 0x18, 8);
                    _memoryAccessor.Read(entryPtr + objType, out ManagerType type); // <= this is KO
                    //  _memoryAccessor.Read(entryPtr + Fields.Unit.Type, out ManagerType type); // KO as well
    
                    ptr = _memoryAccessor.ReadAddress(ptr, 8);
                    
                    objects.Add((entryPtr, type));
                }
            }
            
            foreach ((IntPtr unitPtr, _) in objects.Where(x => x.Item2 == ManagerType.Unit))
            {
                _memoryAccessor.Read(unitPtr + Fields.Unit.Level, out int level); // Fields.Unit.Level is provided by Razzue in the offset list
                IntPtr namePtr = _memoryAccessor.ReadAddress(unitPtr + Fields.Unit.Name, 8); // Fields.Unit.Name is provided by Razzue in the offset list
                _memoryAccessor.ReadString(namePtr, Encoding.UTF8, out string name);
                
                Debug.WriteLine($"=> {name} lvl {level}");
            }
    Also, I did a similar attempt for the position with no more success:
    Code:
    _memoryAccessor.Read(entryPtr + Fields.Unit.Location, out Vector3 v3); // <= this is KO
    Any idea why?
    objType is one byte in memory , Are you sure you read one byte only?
    positon is 3 float in memory , each is 4 bytes,I read lik this:
    x = self.pm.read_float(entry + position)
    y = self.pm.read_float(entry + position + 4)
    z = self.pm.read_float(entry + position +
    Hope to hlep you!
    also,anyone can tell me how to identify a GameObject is a herb or a mine?

  10. Thanks 0xd5d, moisteroyster (2 members gave Thanks to shmilyzxt 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 shmilyzxt View Post
    objType is one byte in memory , Are you sure you read one byte only?
    positon is 3 float in memory , each is 4 bytes,I read lik this:
    x = self.pm.read_float(entry + position)
    y = self.pm.read_float(entry + position + 4)
    z = self.pm.read_float(entry + position +
    Hope to hlep you!
    also,anyone can tell me how to identify a GameObject is a herb or a mine?
    [StructLayout(LayoutType.Sequential)]
    Public struct Vector
    {
    public float X;
    public float Y;
    public float Z;
    }

    Read the struct from the address of X and stop doing 3 reads where you only need 1 :P (sorry for formatting, on mobile, as such StructLayout may be spelled incorrectly but meh 🤷*♂️)

  12. Thanks moisteroyster (1 members gave Thanks to Razzue for this useful post)
  13. #9
    0xd5d's Avatar Member
    Reputation
    11
    Join Date
    Mar 2021
    Posts
    20
    Thanks G/R
    22/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    objType is one byte in memory
    Thanks a lot! This is what I was missing.

    For the position (of unit, players), are you using Fields.Unit.Location offset to read x, y, z? (0x20 for this build). My z is empty.

    also,anyone can tell me how to identify a GameObject is a herb or a mine
    Just an idea, I hope it will help you: maybe you can find a real herb (or mine) and stand next to it in-game.
    Then, read the object manager and find out what other objects have the same position as your character.
    Last, check the properties of that object
    Last edited by 0xd5d; 05-16-2022 at 02:13 AM.

  14. #10
    shmilyzxt's Avatar Member
    Reputation
    2
    Join Date
    May 2020
    Posts
    9
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by 0xd5d View Post
    Thanks a lot! This is what I was missing.

    For the position (of unit, players), are you using Fields.Unit.Location offset to read x, y, z? (0x20 for this build). My z is empty.


    Just an idea, I hope it will help you: maybe you can find a real herb (or mine) and stand next to it in-game.
    Then, read the object manager and find out what other objects have the same position as your character.
    Last, check the properties of that object
    I use [ Fields.Unit + 0x148] for Unit positon.but also can use [ [Fields.Unit + Movement] + Location] not [ Fields.Unit + Location]
    as herb ,I have got the herb GameObje,but I dont't know wich properties is representative it is a herb

  15. Thanks 0xd5d (1 members gave Thanks to shmilyzxt for this useful post)
  16. #11
    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 0xd5d View Post
    Thanks a lot! This is what I was missing.

    For the position (of unit, players), are you using Fields.Unit.Location offset to read x, y, z? (0x20 for this build). My z is empty.


    Just an idea, I hope it will help you: maybe you can find a real herb (or mine) and stand next to it in-game.
    Then, read the object manager and find out what other objects have the same position as your character.
    Last, check the properties of that object
    You read the movement I fo pointer from UnitBase + Movement (0xF0), then from that pointer read s struct from location (0x20) to get what you need.

    You can also get a bit more info from that pointer such as:
    Code:
    public override IntPtr MovePTR => NtMemory.Read<IntPtr>(BaseAddress + Fields.Unit.Movement);
    public override Vector Position => NtMemory.Read<Vector>(MovePTR + Fields.Unit.Location);
    public override double RotationD => NtMemory.Read<double>(MovePTR + Fields.Unit.RotationD);
    public override float RotationF => NtMemory.Read<float>(MovePTR + Fields.Unit.RotationF);
    public override float Pitch => NtMemory.Read<float>(MovePTR + Fields.Unit.Pitch);
    public override bool IsBehind(wUnit Unit)
    {
        {
            try { return _Vector.NegativeAngle(Unit.RotationF - RotationF) < 0.6 || _Vector.NegativeAngle(Unit.RotationF - RotationF) > 5.5; }
            catch (Exception) { return false; }
        }
    }
    
    public override MoveFlag1 MoveFlag => (MoveFlag1)NtMemory.Read<uint>(MovePTR + Fields.Unit.MoveFlag);
    public override bool IsTurning => MoveFlag.HasFlag(MoveFlag1.Left) |
                                        MoveFlag.HasFlag(MoveFlag1.Right) |
                                        MoveFlag.HasFlag(MoveFlag1.PitchUp) |
                                        MoveFlag.HasFlag(MoveFlag1.PitchDown);
    public override bool IsMoving => MoveFlag.HasFlag(MoveFlag1.Forward) |
                                        MoveFlag.HasFlag(MoveFlag1.Backward) |
                                        MoveFlag.HasFlag(MoveFlag1.Left) |
                                        MoveFlag.HasFlag(MoveFlag1.Right) |
                                        MoveFlag.HasFlag(MoveFlag1.StrafeLeft) |
                                        MoveFlag.HasFlag(MoveFlag1.StrafeRight) |
                                        MoveFlag.HasFlag(MoveFlag1.Falling) |
                                        MoveFlag.HasFlag(MoveFlag1.Ascending) |
                                        MoveFlag.HasFlag(MoveFlag1.Descending);
    public override bool IsFlying 
        => MoveFlag.HasFlag(MoveFlag1.Flying);
    public override bool IsSwimming 
    
        => MoveFlag.HasFlag(MoveFlag1.Swimming);
    Last edited by Razzue; 05-16-2022 at 02:49 AM.

  17. Thanks 0xd5d (1 members gave Thanks to Razzue for this useful post)
  18. #12
    0xd5d's Avatar Member
    Reputation
    11
    Join Date
    Mar 2021
    Posts
    20
    Thanks G/R
    22/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks a lot!

  19. #13
    Aigewen's Avatar Member
    Reputation
    1
    Join Date
    May 2022
    Posts
    10
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I get messy code when I print the Name of Unit. Do you know why?

  20. #14
    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 Aigewen View Post
    I get messy code when I print the Name of Unit. Do you know why?
    For players: you need to get their name from the player name cache.
    For Npcs: just use [[Base+ Info] + Name] and read as ANSII string from pointer

  21. Thanks 0xd5d (1 members gave Thanks to Razzue for this useful post)

Similar Threads

  1. [Burning Crusade] Build: 43400
    By Razzue in forum WoW Memory Editing
    Replies: 3
    Last Post: 05-05-2022, 09:44 AM
  2. The Burning Crusade Mountain Climber
    By Demonkunga in forum World of Warcraft Bots and Programs
    Replies: 10
    Last Post: 09-04-2006, 08:24 PM
  3. Burning Crusade (images)
    By GtR[MoÐ] in forum World of Warcraft General
    Replies: 4
    Last Post: 08-27-2006, 08:14 AM
  4. Burning Crusade info
    By xlAnonym0uslx in forum World of Warcraft General
    Replies: 2
    Last Post: 08-24-2006, 12:33 PM
  5. Burning Crusade Screen Shots
    By Bossman4 in forum World of Warcraft General
    Replies: 4
    Last Post: 05-18-2006, 08:58 PM
All times are GMT -5. The time now is 03:30 PM. 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