3.0.3 Player structure.. definition and identification menu

User Tag List

Results 1 to 4 of 4
  1. #1
    namreeb's Avatar Legendary

    Reputation
    658
    Join Date
    Sep 2008
    Posts
    1,023
    Thanks G/R
    7/215
    Trade Feedback
    0 (0%)
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    3.0.3 Player structure.. definition and identification

    Let me start by saying I understand that the TLS method for identifying the player structure in memory is faster, but I am trying to understand what is going on, and I don't understand TLS yet.. so I'm using a brute force method of searching.

    The only information I have been able to locate thus far on the format in WoW's memory as to the structure of player information (health, mana, rage, what-have-you) is in this post: wow offsets and pointers

    As stated in the post, this is information from 2.4.3. I assumed going into this that since we are now in the 3.x.x versions, the information presented in this post may be significantly out of date, if not completely incorrect. I have set out over the past few days to either locate a more recent map of this structure or to reproduce it myself. As for my quest to locate such a map, let me just say I have been unsuccessful though I believe thorough in my search. As for my attempts to reconstruct it, my attempts have met with very limited success.

    I started by reading my character's coordinates (x, y, and z) from their accepted static location in memory for 3.0.3, defined as follows:

    Code:
    DWORD xAddr = 0x012E1B7C;
    DWORD yAddr = 0x012E1B80;
    DWORD zAddr = 0x012E1B84;
    After reading the values at these locations, I search from 0x00000000 until ReadProcessMemory() fails for other instances of these consecutive values. Usually I turn up about four additional locations.

    I then examined the neighboring memory of these locations (about a kilobyte before and after each location) manually looking for other player related information (current health versus max health, faction information, character name, etc.) but was entirely unsuccessful.

    I then modified my code to, once locating the (x, y, z) ordered triplet, search 'nearby' memory for the ordered pair of (max_health, max_mana), and inform me when they were found. This happened in two locations, and I wrote my code to output the offset between the xAddr and the hpAddr. The values were close, but not equal, for the two locations. I repeated my manual examination of the surrounding memory looking for information that seemed to relate to my character, but was again unsuccessful.

    I now pose the question to this community, as I have also to the EoN community... what information is available on the player/mob data structure inside WoW 3.0.3? I am particularly interested in information on the character's health/mana/rage/energy/etc. as well as it's targets and potentially party members.

    I apologize in advance if the answer to my search is in a sticky on this forum or somewhere else obvious, but I reiterate that I have looked everywhere I can think of for this information.

    Oh, and I am using C++, not C# or "AutoIT".

    3.0.3 Player structure.. definition and identification
  2. #2
    argh44z's Avatar Member
    Reputation
    19
    Join Date
    Nov 2007
    Posts
    93
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by bierstud View Post
    Let me start by saying I understand that the TLS method for identifying the player structure in memory is faster, but I am trying to understand what is going on, and I don't understand TLS yet.. so I'm using a brute force method of searching.
    Much much easier to use the pointer to s_curMgr inside of the g_clientConnection instead of any sort of thread enumeration (what's called the TLS "method").

    See Kynox' post here:
    http://www.mmowned.com/forums/wow-me...r-pointer.html


    Originally Posted by bierstud View Post
    The only information I have been able to locate thus far on the format in WoW's memory as to the structure of player information (health, mana, rage, what-have-you) is in this post: wow offsets and pointer
    See http://www.mmowned.com/forums/wow-me...ml#post1148601 for a 3.0.x description of the CGObject_C base class. CGPlayer_C/CGLocalPlayer_C/etc all inherit from this class.

    See the post before that for a description of the storage descriptor fields that contain the info you want (players also have unit fields).
    Last edited by argh44z; 11-11-2008 at 02:47 AM.

  3. #3
    namreeb's Avatar Legendary

    Reputation
    658
    Join Date
    Sep 2008
    Posts
    1,023
    Thanks G/R
    7/215
    Trade Feedback
    0 (0%)
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)
    Ahh, many thanks for that. I had read that post earlier the other day, but what I've learned since then makes it much more intelligible.

    Thanks again!

  4. #4
    namreeb's Avatar Legendary

    Reputation
    658
    Join Date
    Sep 2008
    Posts
    1,023
    Thanks G/R
    7/215
    Trade Feedback
    0 (0%)
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)
    Again, that was very informative. I've been making some good steps forward. I can now detect health, mana, etc. I even figured out how to see when my character is in combat or not (UNIT_FIELD_FLAGS & 0x80000).

    From the reading I'm doing, it seems like a spell is considered a dynamic object. Is this correct?

    If so, how can I get information about the dynamic object corresponding to a spell I am casting?

    If not, same question, but forget the part about dynamic object ... I am interested in making a simple 'spam cast' mode where it will cast a spell, ascertain the cast time from WoW's memory, wait that long (plus the global cooldown if that is not included), and cast again.

Similar Threads

  1. Replies: 5
    Last Post: 10-21-2012, 09:29 PM
  2. Player base address and offsets
    By Require in forum WoW Memory Editing
    Replies: 3
    Last Post: 01-02-2012, 06:00 AM
  3. Player Hornor Points and Sings
    By lustikus12 in forum WoW Memory Editing
    Replies: 9
    Last Post: 10-23-2009, 01:50 PM
  4. PLayers do .playall and its annoying for everyody, how do I take out this command?
    By mafiaboy in forum World of Warcraft Emulator Servers
    Replies: 10
    Last Post: 12-19-2007, 03:44 PM
  5. Replies: 25
    Last Post: 11-25-2007, 11:14 AM
All times are GMT -5. The time now is 09:18 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