Help me fix my object manager :) menu

User Tag List

Results 1 to 4 of 4
  1. #1
    aeo's Avatar Contributor
    Reputation
    127
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    84/62
    Trade Feedback
    7 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Help me fix my object manager :)

    Hello all,

    As a last resort im going to post here in hope someone can help me solve this issue( probably a stupid mistake). Right now i have a basic LUA function calling application that i would like to expand upon by writing some c++ functions using the object manager and then register them for use in my lua scripts.

    My problem lies with the code below. I never run into a time when my local GUID and the object GUID match. I'll admit im not an expert with pointers but im working from within the process and( endscene detour) and it seems that my GUIDs for the object come back like so. The object type seems to be working as when i log it i get correct values in the range 1-7.


    Code:
    objGuid 11070632
    objGuid 11070632
    objGuid 11078928
    objGuid 11095056
    objGuid 11070632
    objGuid 11095056
    objGuid 11070632
    objGuid 11070632
    --------------player 0x6482207
    --------------playerBaseObj 0x0
    --------------playerGuid 105390599
    As you can see they are different lengths and I have repeats for GUIDs( are they not supposed to be unique?)

    My looping code is posted below. If someone could point out my error or at least point me in the right direction that would be great.

    Thanks,
    Aeo

    Code:
    {
        
    /*
    Object
    
    
    GuidOffset        = 0x0
    DescFieldsOffset  = 0x4
    TypeOffset        = 0xC
    
    
    DWORD ClientConnection  = 0xEBF608;
    DWORD ObjectMgrOffset   = 0x462C;
    DWORD PlayerGuidOffset  = 0xE8;
    DWORD FirstObjectOffset = 0xCC;
    DWORD NextObjectOffset  = 0x34;*/
    
    
        DWORD playerObj = 0;
        DWORD dwClientConnection = *(DWORD*)((DWORD)GetModuleHandle(NULL)+ClientConnection);
        DWORD dwCurMgr = *(DWORD*)(dwClientConnection+ObjectMgrOffset);
        INT64 GUID = *(INT64*)(dwCurMgr+PlayerGuidOffset); //105390599
        DWORD dwCurrObj = *(DWORD*)(dwCurMgr+FirstObjectOffset);
        DWORD player = (DWORD)oClntObjMgrGetActivePlayer();
    
    
        while (dwCurrObj != 0 && dwCurrObj%2==0) {
            DWORD nextObj= *(DWORD*)(dwCurrObj+NextObjectOffset);
            INT64 objGuid = *(INT64*)(dwCurrObj+0x0);
            int objType = *(int*)(dwCurrObj+0xC);
            Log("objGuid %i",objGuid);
            if(objGuid == GUID)
            {
                playerObj = dwCurrObj;
                break;
            }
            else if (dwCurrObj == nextObj)
            {
                        break;
            } 
             else 
            {
                        dwCurrObj = nextObj;
            }
        }
        Log("--------------player 0x%x",player);
        Log("--------------playerBaseObj 0x%x",playerObj);
        Log("--------------playerGuid %i",GUID);
    }

    Help me fix my object manager :)
  2. #2
    xalcon's Avatar Contributor ふたなり
    Authenticator enabled
    Reputation
    198
    Join Date
    Oct 2008
    Posts
    291
    Thanks G/R
    20/58
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    you are reading the wrong location for the GUID. There are multiple places where you can find the GUID for an object, one is
    [[objectBasePtr + DescriptorFieldsOffset] + GuidOffset]
    "Threads should always commit suicide - they should never be murdered" - DirectX SDK

  3. #3
    aeo's Avatar Contributor
    Reputation
    127
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    84/62
    Trade Feedback
    7 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by xalcon View Post
    you are reading the wrong location for the GUID. There are multiple places where you can find the GUID for an object, one is
    [[objectBasePtr + DescriptorFieldsOffset] + GuidOffset]

    I figured it was something like that, Ok i will look at the recent dump thread and the object descriptors. I was trying to avoid using them as it just another thing ill have to read and search about but thats ok, more knowledge in the end,.

    Thanks xalcon.

  4. #4
    aeo's Avatar Contributor
    Reputation
    127
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    84/62
    Trade Feedback
    7 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Going to hope someone sees this and knows the answer instead of starting a new thread. Now that i understand and can locate/dump these descriptors my self. How does one find the "DescriptorOffset" in this case 0x4? Same thing for player and object xyz? I've searched and the only consensus I can come to is that 1) they don't change too often 2) when they do ,fire up cheat engine move around and you'll find the addresses relative to your player base?

    Edit, got the position working via get position call for units.
    Last edited by aeo; 02-19-2014 at 11:21 AM.

Similar Threads

  1. need a big help on 'object manager' offset
    By bobby2524 in forum Diablo 3 Memory Editing
    Replies: 6
    Last Post: 05-24-2015, 05:16 AM
  2. [help] Getting a firm grip on the object manager...
    By yeahlol in forum WoW Bots Questions & Requests
    Replies: 3
    Last Post: 11-23-2010, 03:44 AM
  3. Replies: 9
    Last Post: 04-16-2010, 02:52 PM
  4. Replies: 9
    Last Post: 03-03-2010, 02:36 PM
  5. Object Manager Help
    By nathan2022001 in forum WoW Memory Editing
    Replies: 11
    Last Post: 07-28-2009, 11:26 AM
All times are GMT -5. The time now is 10:42 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