[3.1.3] Player X, Y position menu

User Tag List

Results 1 to 9 of 9
  1. #1
    Claion's Avatar Member
    Reputation
    1
    Join Date
    Jul 2009
    Posts
    1
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [3.1.3] Player X, Y position

    Hello everybody.

    At first: sorry for my bad english
    I hope you can understand me =)

    So, I'm working on a little wow farm-bot. My problem is that i don't know how can I get the player's x and y position. Is it possible to get these coordinates?
    I thought I can read offsets. But it doesn't function so properly

    I'm searching for a short tutorial or anything like that..

    Bye
    Claion

    [3.1.3] Player X, Y position
  2. #2
    namreeb's Avatar Legendary

    Reputation
    668
    Join Date
    Sep 2008
    Posts
    1,029
    Thanks G/R
    8/222
    Trade Feedback
    0 (0%)
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)
    Search harder.

  3. #3
    qjlex's Avatar Member
    Reputation
    1
    Join Date
    Oct 2007
    Posts
    39
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Use search.
    C# MemoryReader.dll
    Code:
           public static int lvl1Pointer
           {
               get { return WowReader.ReadInt32((IntPtr)(0x10BD5F4)); }
           }
    
           public static int lvl2Pointer
           {
               get { return WowReader.ReadInt32((IntPtr)(lvl1Pointer + 0x34)); }
           }
    
           public static int pBase
           {
               get { return WowReader.ReadInt32((IntPtr)(lvl2Pointer + 0x24)); }
           }
           public static float XPosition
           {
               get { return WowReader.ReadFloat((IntPtr)(pBase +  0x798)); }
           }
    
           public static float YPosition
           {
               get { return WowReader.ReadFloat((IntPtr)(pBase + 0x79C)); }
           }
    
           public static float ZPosition
           {
               get { return WowReader.ReadFloat((IntPtr)(pBase + 0x7A0)); }
           }

  4. #4
    gissuf's Avatar Member
    Reputation
    1
    Join Date
    Jan 2009
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok i'm trying to calculate that, pleas stop me, if i am going wrong. (i will)

    lvl1pointer = 10BD5F4
    lvl2Pointer = lvl1pointer + 34 = 10BD628
    pBase = lvl2pointer + 24 = 10BD64C
    XPosition = pBase + 798 = 10BDDE4
    YPosition = pBase + 79C = 10BDDE8
    ZPosition = pBase + 7A0 = 10BDDEC

    but there is something wrong, i got only crap with these pointers an cheatengine...

    edit:
    i found this on wow.dev
    Playerbase as for 3.1.3
    Static = 10BD5F4
    + 0x34 (DWORD)
    + 0x24 (PTR)
    = PlayerBase
    so the player base should be: 10BD5F4 + 34 + 24 = 10BD64C

    the pointers from qjlex should be nice...

    Offset Type Description
    0x00 int64 player ID - 8 bytes integer
    0x79C float x
    0x798 float y
    0x7A0 float z
    0x8 int32 health (+ 0x17*4)
    0x7A8 float Rotation (/ (3.14159265358979 / 180))
    also from wow.dev

    maybe it is helpfull, but i am only confused now xD
    Last edited by gissuf; 07-14-2009 at 03:00 PM.

  5. #5
    flo8464's Avatar Active Member
    Reputation
    30
    Join Date
    Apr 2009
    Posts
    434
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    lvl1pointer = 10BD5F4
    lvl2Pointer = lvl1pointer + 34 = 10BD628
    You say it yourself. Its a level TWO pointer.
    That means, it gets pointed by some other pointer....

    So why are you adding an offset to a level1 pointer if you you want to add it to a level2 pointer?

    So just READ from the pointers....

    [[[0x10BD5F4] + 0x34] + 0x24]

  6. #6
    lanman92's Avatar Active Member
    Reputation
    50
    Join Date
    Mar 2007
    Posts
    1,033
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Go learn some C++ pointer concept and come back. That would be a GREAT start...

  7. #7
    Därkness's Avatar Active Member
    Reputation
    22
    Join Date
    Jul 2009
    Posts
    113
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey, thx for the working offsets qjlex, I was looking round but the ones I found in the objectdump I had no idea how to use. For anyone STILL lost on player x, y, z poz you should look at his post/code, and if you dont know then youve got a long way to go.... even I figured it out lol and I know only basic delphi and some pointer concept rofl.

    EDIT: Lol found the origional post of offets. Rotation is 0x7A8.
    Last edited by Därkness; 07-16-2009 at 02:33 AM.

  8. #8
    gissuf's Avatar Member
    Reputation
    1
    Join Date
    Jan 2009
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Here is the whole thing in delphi code, it SHOULD work, but i couldn't test it (no delphi compiler here)

    maybe you have to correct some spell failures or something, but that’s the basic how it should works…


    Code:
    function memoryreadptr(WindowName:string;adress:cardinal):pointer; 
    var p : pointer; 
        puffer : cardinal; 
        BytesRead: DWord; 
        WindowHandle,ProcessId,ThreadId,ProcessHandle  :  integer; 
       begin 
            p := addr(adress);  // convert the cardinal address to a pointer 
            WindowHandle  :=  FindWindow(nil,WindowName);  // find the window with that title and take the handle  (only ONE window with that title should be open)
            ThreadId  :=  GetWindowThreadProcessId(pchar(WindowName),@ProcessId); // get that process id
            ProcessHandle  :=  OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);  // open process cuz we want to read the memory of it
            if not ReadProcessMemory( HandleWindow, p , @puffer,sizeof(cardinal), BytesRead ) then // read as many bytes as cardinal can contain (32bits, 4 byte) from the memory in the var puffer
    	begin
    	closehandle(ProcessHandle); // close the processhandle cuz we have already read
    	memoryreadptr := addr($00000000); // return nothing
    	exit; // exit function
    	end;	  
            closehandle(ProcessHandle); // close the processhandle cuz we have already read
            memoryreadptr := addr(Puffer); // output
       end;
    
    function memoryreadfloat(WindowName:string;adress:cardinal):single; 
    var p : pointer; 
        puffer : single; 
        BytesRead: DWord; 
        WindowHandle,ProcessId,ThreadId,ProcessHandle  :  integer; 
       begin 
            p := addr(adress);  // convert the cardinal address to a pointer 
            WindowHandle  :=  FindWindow(nil,WindowName);  // find the window with that title and take the handle  (only ONE window with that title should be open)
            ThreadId  :=  GetWindowThreadProcessId(pchar(WindowName),@ProcessId); // get that process id
            ProcessHandle  :=  OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);  // open process cuz we want to read the memory of it
            if not ReadProcessMemory( HandleWindow, p , @puffer,sizeof(single), BytesRead ) then // read as many bytes as single can contain from the memory in the var puffer
    	begin
    	closehandle(ProcessHandle); // close the processhandle cuz we have already read
    	memoryreadptr := 0; // return nothing
    	exit; // exit function
    	end;	  
            closehandle(ProcessHandle); // close the processhandle cuz we have already read
            memoryreadptr := Puffer; // output
       end;
    
    function getpbase():pointer;
    var puff : pointer;
    begin
    puff := memoryreadptr('World of Warcraft', $10BD5F4);
    if puff > $00000000 then
    	puff := memoryreadptr('World of Warcraft', puff+$34);
    if puff > $00000000 then
    	puff := memoryreadptr('World of Warcraft', puff+$24);
    getpbase := puff;
    end;
    
    function location(axis:string):single;
    begin
    if (axis == 'x') or (axis == 'y') or (axis == 'z') then
    	else
    	begin
    	location := 0;
    	exit;
    	end;
    if axis = 'x' then
    	location := memoryreadfloat('World of Warcraft', getpbase()+$798);
    if axis = 'y' then
    	location := memoryreadfloat('World of Warcraft', getpbase()+$79C);
    if axis = 'z' then
    	location := memoryreadfloat('World of Warcraft', getpbase()+$7A0);
    end;
    
    procedure TForm1.Button1Click(sender: TObject);
    //var x,y,z: single;
    begin
      //x := location('x');
      //y := location('y');
      //z := location('z');
    showmessage('X = '+floattostr(location('x')+#13#10+
    		'Y = '+floattostr(location('y')+#13#10+
    		'Z = '+floattostr(location('z'));
    end;
    Last edited by gissuf; 07-16-2009 at 04:10 AM.

  9. #9
    jjaa's Avatar Contributor
    Reputation
    245
    Join Date
    Dec 2006
    Posts
    562
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Claion View Post
    Hello everybody.

    At first: sorry for my bad english
    I hope you can understand me =)

    So, I'm working on a little wow farm-bot. My problem is that i don't know how can I get the player's x and y position. Is it possible to get these coordinates?
    I thought I can read offsets. But it doesn't function so properly

    I'm searching for a short tutorial or anything like that..

    Bye
    Claion
    Please read the rules...
    Specifically:

    Originally Posted by Apoc View Post

    1. Posting;
    1. Search before posting. (This includes searching Google)
    4. Spoonfeeding;
    1. This section is not a copy/paste haven. Do not expect hand outs.
    6. Expectations (Not requirements, but highly suggested);
    2.
    You are expected to understand basic C++ datatypes, and other ideologies that come with C++, and native Win32 programming. (Pointers, the stack, etc)


Similar Threads

  1. Replies: 0
    Last Post: 09-08-2016, 07:16 AM
  2. A Connected With The Best 5 Players In Nba History, By Position
    By fifa14coins in forum Art & Graphic Design
    Replies: 0
    Last Post: 05-29-2014, 09:59 PM
  3. Player position memory adress
    By Kelz in forum Diablo 3 Bots and Programs
    Replies: 2
    Last Post: 06-15-2012, 08:06 PM
  4. Player position - best method? (what is base+0xF4?)
    By Tanaris4 in forum WoW Memory Editing
    Replies: 19
    Last Post: 04-29-2011, 08:40 PM
  5. Modifying player position
    By flo8464 in forum WoW Memory Editing
    Replies: 19
    Last Post: 07-21-2009, 08:51 PM
All times are GMT -5. The time now is 12:51 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