Object manager question menu

User Tag List

Results 1 to 7 of 7
  1. #1
    para_'s Avatar Active Member 01001100 01001111 01001100 CoreCoins Purchaser
    Reputation
    56
    Join Date
    Aug 2008
    Posts
    55
    Thanks G/R
    16/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Object manager question

    Hey guys,

    I'm back trying to get better at this memory editing stuff. I'm able to change the FoV, zoom, climb angle, and walk on air (replacing a jump instruction) using the offsets provided for the latest version (ty btw).

    Anyways here's an image of what I think is the object manager. I ask a pointed question after the link.

    cheat engine screenshot

    Main question (about photo): I think this value would represent the Type of the sixth element in the object manager. Is that right?

    Code:
    Type = 0x20, // Size: 0x1, Flags: 0x1
    I'm using the offset for the s_curMgr in that thread dump.

    Also, a few more dumb questions that can be ignored if you want:
    - what does the prepended s_ in s_curMgr stand for?
    - I get that size 0x1 means one byte (I think) but what does the flag part mean. It seems to say next to alot of the values provided

    Thanks!
    Last edited by para_; 02-10-2016 at 11:53 PM.

    Object manager question
  2. #2
    Jadd's Avatar 🐸 Premium Seller
    Reputation
    1515
    Join Date
    May 2008
    Posts
    2,433
    Thanks G/R
    81/336
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    http://www.ownedcore.com/forums/worl...ml#post3372219 (Explanation of release info dumps)

    Everything you're asking is answered there. Except this:

    Originally Posted by para_ View Post
    - what does the prepended s_ in s_curMgr stand for?
    's_' means the variable is static in a similar fashion to 'm_' being used to denote an instance member. It's pretty widely used with C++ naming conventions (and usually replaces the older 'g_' prefix.)

    Edit: Also, flags:

    Code:
        [Flags]
        public enum MirrorFlags {
            None            = 0x00000000,
            All             = 0x00000001,
            Self            = 0x00000002,
            Owner           = 0x00000004,
            EMPath          = 0x00000010,
            Party           = 0x00000020,
            UnitAll         = 0x00000040,
            ViewerDependent = 0x00000080,
            Urgent          = 0x00000200,
            UrgentSelfOnly  = 0x00000400
        }
    Last edited by Jadd; 02-11-2016 at 06:38 AM.

  3. Thanks para_ (1 members gave Thanks to Jadd for this useful post)
  4. #3
    para_'s Avatar Active Member 01001100 01001111 01001100 CoreCoins Purchaser
    Reputation
    56
    Join Date
    Aug 2008
    Posts
    55
    Thanks G/R
    16/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks Jadd. I really appreciate it. No idea how I missed that post to the explanation. I should have known you guys were using standard naming conventions.

    EDIT: Upon looking a bit closer - I see the suggestions are to look at old projects. I had looked at WoWRadar by I think it was KcDan (among others like OHack by l0l1dk) and the above Cheat Engine scheme is how I interpreted his type checking. I suppose I just wanted confirmation that what I had done correctly mirrored what I read. The only issue I see is that the types are the same across all the objects. And that there are only like 25 of them depending on the surrounding area.
    Last edited by para_; 02-11-2016 at 10:56 AM.

  5. #4
    para_'s Avatar Active Member 01001100 01001111 01001100 CoreCoins Purchaser
    Reputation
    56
    Join Date
    Aug 2008
    Posts
    55
    Thanks G/R
    16/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Can anyone confirm if that Cheat Engine screen shot does indeed point at the 6th object's object type? The advice was to look at other projects to try and glean the meaning of a lot of these offsets which is exactly what I did.

    The things that makes me think it is:
    * There is a static size between each iteration of 3C offsets - 0x69C

    The things that make me think it isnt:
    * Each object type byte is 0 meaning it would be the same type of object?

    Screenshot: Imgur: The most awesome images on the Internet

  6. #5
    danwins's Avatar Contributor
    Reputation
    189
    Join Date
    Mar 2013
    Posts
    143
    Thanks G/R
    6/62
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Object type is at object+0xC (object -> type)

    looks like you are trying to read this:

    Code:
    namespace CGObjectData {
    enum {
        Guid = 0x0, // Size: 0x4, Flags: 0x1
        Data = 0x10, // Size: 0x4, Flags: 0x1
        Type = 0x20, // Size: 0x1, Flags: 0x1
        EntryID = 0x24, // Size: 0x1, Flags: 0x80
        DynamicFlags = 0x28, // Size: 0x1, Flags: 0x280
        Scale = 0x2C, // Size: 0x1, Flags: 0x1
    };
    }
    in which case you should be reading: [object+0x4]+0x20 (object -> descriptors -> type)

  7. Thanks para_ (1 members gave Thanks to danwins for this useful post)
  8. #6
    para_'s Avatar Active Member 01001100 01001111 01001100 CoreCoins Purchaser
    Reputation
    56
    Join Date
    Aug 2008
    Posts
    55
    Thanks G/R
    16/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks danwins. That did it. I think I got it.



    This has helped me look at the offsets a bit differently. I was treating the 0x20 as if the descriptors were loaded at the start of the object... Kinda dumb. Thanks for the nudge.
    Attached Thumbnails Attached Thumbnails Object manager question-kgfco4w-png  

  9. #7
    Buntstift's Avatar Member
    Reputation
    10
    Join Date
    Feb 2016
    Posts
    17
    Thanks G/R
    17/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi Para_
    I run into a similar problems (some old hints in this forum not always work for me).
    This is my result of digging days over the forum and google:
    Code:
    /* 
    s_curMgr = 0xDA6A20
    FirstObject = 0xD8
    NextObjectOffset = 0xD0
    */
    				
    uint objMgr = wowMem.ReadUInt((uint)wowMem.MainModule.BaseAddress + (uint)ObjectOffsets.s_curMgr);
    uint curObj = wowMem.ReadUInt((uint)objMgr + (uint)ObjectOffsets.FirstObject);
    
    while ((curObj & 1) == 0)
    {
    	uint curObjDescriptor = wowMem.ReadUInt(curObj + 0x04);
    	uint objGUID = wowMem.ReadUInt((uint)curObjDescriptor + 0x0);
    	int objType = wowMem.ReadByte((uint)curObjDescriptor + 0x20);
    	txtDebug.Text += "[" + objGUID.ToString("X16") + "]" + "\tType: " + objType + "\r\n";
    	curObj = wowMem.ReadUInt((uint)wowMem.ReadUInt((uint)objMgr + (uint)ObjectOffsets.NextObjectOffset) + (uint)curObj + (uint)0x4);
    }

Similar Threads

  1. [Bot] Question: Lazy Bot Object Manager Pointers and Offsets
    By gxavier in forum WoW Memory Editing
    Replies: 1
    Last Post: 07-29-2015, 11:31 AM
  2. [Question] How to use Object Manager
    By Akaike in forum Wildstar Memory Editing
    Replies: 17
    Last Post: 05-16-2014, 09:57 AM
  3. [Question] Object Manager relationships.
    By Twarwizard in forum WoW Memory Editing
    Replies: 2
    Last Post: 09-19-2011, 12:28 PM
  4. Replies: 9
    Last Post: 04-16-2010, 02:52 PM
  5. [Question] Object Manager
    By hestas in forum WoW Memory Editing
    Replies: 11
    Last Post: 10-31-2009, 02:02 PM
All times are GMT -5. The time now is 03:43 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search