[Help] Dont know why its not working! menu

User Tag List

Page 1 of 3 123 LastLast
Results 1 to 15 of 35
  1. #1
    GRB's Avatar Established Member CoreCoins Purchaser
    Reputation
    65
    Join Date
    Oct 2008
    Posts
    222
    Thanks G/R
    0/1
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Help] Dont know why its not working!

    Hello Everyone!

    Im just curious why this is not working and if any1 can give me a hand on how to solve it! This is beeing made in autoit3.

    Code:
    #Include <NomadMemory.au3>
    #Include <Misc.au3>
    #Include <GUIConstantsEx.au3>
    #include <Math.au3> 
    
    ;Globals Here
    Global $PlayerBaseStatic = 0x010B65F4   ;Static Offset
    
    SetPrivilege('SeDebugPrivilege', 1)
    
    $DllInformation = _memoryopen(WinGetProcess("World of Warcraft")) ;Open WoW
    
    If @error = 1 then ;WoW Open
    	MsgBox(0, 'Error', 'World of Warcraft Process not found, closing program...') 
      Exit
    EndIf
    
    ;Gets base addresses
    $lvl1Pointer = _MemoryRead('0x' & hex($PlayerBaseStatic), $DllInformation , 'uint')
    $lvl2Pointer = _MemoryRead('0x' & hex($lvl1Pointer + 0x34), $DllInformation , 'uint')
    $PlayerBase = _MemoryRead('0x' & hex($lvl2Pointer + 0x24), $DllInformation , 'uint')
    
    $pointer = 0x8
    $pointer1 = (0x17 * 4)
    
    $hp0 = _MemoryRead('0x' & hex($PlayerBase + $pointer), $DllInformation , 'uint')
    $hp = _MemoryRead('ox' & hex($hp0 + $pointer1), $DllInformation, 'uint')
    
    MsgBox(0, 'Current HP', $hp)
    It should appear my HP but just appear 0.

    Any help plz?

    [Help] Dont know why its not working!
  2. #2
    Apoc's Avatar Angry Penguin
    Reputation
    1387
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/12
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by GRB View Post
    Hello Everyone!

    Im just curious why this is not working and if any1 can give me a hand on how to solve it! This is beeing made in autoit3.

    Code:
    #Include <NomadMemory.au3>
    #Include <Misc.au3>
    #Include <GUIConstantsEx.au3>
    #include <Math.au3> 
    
    ;Globals Here
    Global $PlayerBaseStatic = 0x010B65F4   ;Static Offset
    
    SetPrivilege('SeDebugPrivilege', 1)
    
    $DllInformation = _memoryopen(WinGetProcess("World of Warcraft")) ;Open WoW
    
    If @error = 1 then ;WoW Open
    	MsgBox(0, 'Error', 'World of Warcraft Process not found, closing program...') 
      Exit
    EndIf
    
    ;Gets base addresses
    $lvl1Pointer = _MemoryRead('0x' & hex($PlayerBaseStatic), $DllInformation , 'uint')
    $lvl2Pointer = _MemoryRead('0x' & hex($lvl1Pointer + 0x34), $DllInformation , 'uint')
    $PlayerBase = _MemoryRead('0x' & hex($lvl2Pointer + 0x24), $DllInformation , 'uint')
    
    $pointer = 0x8
    $pointer1 = (0x17 * 4)
    
    $hp0 = _MemoryRead('0x' & hex($PlayerBase + $pointer), $DllInformation , 'uint')
    $hp = _MemoryRead('ox' & hex($hp0 + $pointer1), $DllInformation, 'uint')
    
    MsgBox(0, 'Current HP', $hp)
    It should appear my HP but just appear 0.

    Any help plz?
    Proof read.

  3. #3
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1356
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Apoc View Post
    Proof read.

    Proof reading is for fgts like you. I code once and code right. Take that bitch!

  4. #4
    Apoc's Avatar Angry Penguin
    Reputation
    1387
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/12
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cypher View Post

    Proof reading is for fgts like you. I code once and code right. Take that bitch!
    Lul. If only that were true...

  5. #5
    Cypher's Avatar Kynox's Sister's Pimp
    Reputation
    1356
    Join Date
    Apr 2006
    Posts
    5,368
    Thanks G/R
    0/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Apoc View Post
    Lul. If only that were true...

    You're just jealous.

  6. #6
    GRB's Avatar Established Member CoreCoins Purchaser
    Reputation
    65
    Join Date
    Oct 2008
    Posts
    222
    Thanks G/R
    0/1
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ty for the answer its working now! Ty vm.

    Now im trying to find if myself have a certain buff but im not beeing able to do it!

    Code:
    #Include <NomadMemory.au3>
    #Include <Misc.au3>
    #Include <GUIConstantsEx.au3>
    #include <Math.au3> 
    
    ;Globals Here
    Global $PlayerBaseStatic = 0x010B65F4   ;Static Offset
    
    SetPrivilege('SeDebugPrivilege', 1)
    
    $DllInformation = _memoryopen(WinGetProcess("World of Warcraft")) ;Open WoW
    
    If @error = 1 then ;WoW Open
    	MsgBox(0, 'Error', 'World of Warcraft Process not found, closing program...') 
      Exit
    EndIf
    
    ;Gets base addresses
    $lvl1Pointer = _MemoryRead('0x' & hex($PlayerBaseStatic), $DllInformation , 'uint')
    $lvl2Pointer = _MemoryRead('0x' & hex($lvl1Pointer + 0x34), $DllInformation , 'uint')
    $PlayerBase = _MemoryRead('0x' & hex($lvl2Pointer + 0x24), $DllInformation , 'uint')
    
    $p1 = 0x8
    $pchp = (0x17 * 4) ;Curreent HP
    $pmhp = (0x1F * 4) ;Max HP
    
    #cs
    $hp = _MemoryRead('0x' & hex($PlayerBase + $p1), $DllInformation , 'uint')
    $chp = _MemoryRead(($hp + $pchp), $DllInformation, 'uint') ; Current HP
    $mhp = _MemoryRead(($hp + $pmhp), $DllInformation, 'uint') ; Max HP
    
    MsgBox(0, 'Current HP & Max HP', $chp &" :: "& $mhp)
    #ce
    
    $bufftocheck = 0x4F97 ;This is Seal Of Command
    
    $buff = _MemoryRead('0x' & hex($PlayerBase + $p1), $DllInformation , 'uint')
    $cbuff = _MemoryRead(($PlayerBase + $bufftocheck), $DllInformation , 'uint')
    
    MsgBox(0, 'Buff', $cbuff)
    The green part is commented out so not active atm, so what im trying to do is to check if my char have a certain buff and if it have return true if it dont have return false. I will keep trying to get this to work, but if any1 could point me what im doing wrong, i would apreciate.

    Its not a loop function yet. i just want to run the script one time and the return value atm is 24 with buff or witout it.
    Last edited by GRB; 05-07-2009 at 03:06 AM.

  7. #7
    spawnfestis's Avatar Contributor
    Reputation
    85
    Join Date
    May 2009
    Posts
    261
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Shouldn't this:
    Code:
    $cbuff = _MemoryRead(($PlayerBase + $bufftocheck), $DllInformation , 'uint')
    Be this:
    Code:
    $cbuff = _MemoryRead(($buff + $bufftocheck), $DllInformation , 'uint')
    ? Considering you're reading three-level pointers, it should be obvious that the next step you read from is the result of $buff.

  8. #8
    Jadd's Avatar 🐸 Premium Seller
    Reputation
    1511
    Join Date
    May 2008
    Posts
    2,432
    Thanks G/R
    81/333
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    You're obviously making this wayyyy too hard for yourself... Try re-writing the code neatly... it will probably help you understand what you did wrong.

  9. #9
    mordok's Avatar Member
    Reputation
    11
    Join Date
    Oct 2007
    Posts
    103
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Im currently looking at shynds non-injecting method to read type 4 (players) objects names. I know theres nothing wrong with injecting but if possible ill prefere to use this method instead. For the moment I couldnt test it becouse the adresses are out of day. Anyone knows the new adress, and where to find it in IDA.

    Shynds method
    Code:
    static string GetPlayerName(IntPtr hProcess, uint player)
            {
                //read the object's GUID from obj+0x30 (again, pretty basic)
                UInt64 GUID = Memory.ReadUInt64(hProcess, (player + 0x30));
    
                //some sort of list index
                int var1 = Memory.ReadInt(hProcess, ((ADRESS + 0x8) + 0x24));
                if (var1 == -1)
                    return "Unknown Player";
    
                //here we're getting the pointer to the start of the linked list
                int var2 = Memory.ReadInt(hProcess, ((ADRESS + 0x8) + 0x1C));
                var1 &= (int)GUID;
                var1 += var1 * 2;
                var1 = (var2 + (var1 * 4) + 4);
                var1 = Memory.ReadInt(hProcess, (var1 + 4));
    
                //iterate through the linked list until the current entry has
                //the same GUID as the object whose name we want
                while (Memory.ReadInt(hProcess, var1) != (int)GUID)
                {
                    int var3 = Memory.ReadInt(hProcess, ((ADRESS +0x8) + 0x1C));
                    var2 = (int)GUID;
                    var2 &= Memory.ReadInt(hProcess, ((ADRESS + 0x8) + 0x24));
                    var2 += var2 * 2;
                    var2 = Memory.ReadInt(hProcess, (var3 + (var2 * 4)));
                    var2 += var1;
                    var1 = Memory.ReadInt(hProcess, (var2 + 4));
                }
    
                //now that we have the correct entry in the linked list,
                //read its name from entry+0x20
                return Memory.ReadString(hProcess, (var1 + 0x20), 40);
            }
    Last edited by mordok; 05-07-2009 at 08:28 AM.
    "I'm not going to expose my methods for time bending, as i don't want to do get nerfed!"-Kynox

  10. #10
    SKU's Avatar Contributor
    Reputation
    306
    Join Date
    May 2007
    Posts
    565
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    This has been covered a 100 times. Take a look at the virtual method that retrieves the name.

  11. #11
    Apoc's Avatar Angry Penguin
    Reputation
    1387
    Join Date
    Jan 2008
    Posts
    2,750
    Thanks G/R
    0/12
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by mordok View Post
    im currently looking at shynds non-injecting method to read type 4 (players) objects names. I know theres nothing wrong with injecting but if possible ill prefere to use this method instead. For the moment i couldnt test it becouse the adresses are out of day. Anyone knows the new adress, and where to find it in ida.

    Shynds method
    Code:
    static string getplayername(intptr hprocess, uint player)
            {
                //read the object's guid from obj+0x30 (again, pretty basic)
                uint64 guid = memory.readuint64(hprocess, (player + 0x30));
    
                //some sort of list index
                int var1 = memory.readint(hprocess, ((adress + 0x8) + 0x24));
                if (var1 == -1)
                    return "unknown player";
    
                //here we're getting the pointer to the start of the linked list
                int var2 = memory.readint(hprocess, ((adress + 0x8) + 0x1c));
                var1 &= (int)guid;
                var1 += var1 * 2;
                var1 = (var2 + (var1 * 4) + 4);
                var1 = memory.readint(hprocess, (var1 + 4));
    
                //iterate through the linked list until the current entry has
                //the same guid as the object whose name we want
                while (memory.readint(hprocess, var1) != (int)guid)
                {
                    int var3 = memory.readint(hprocess, ((adress +0x8) + 0x1c));
                    var2 = (int)guid;
                    var2 &= memory.readint(hprocess, ((adress + 0x8) + 0x24));
                    var2 += var2 * 2;
                    var2 = memory.readint(hprocess, (var3 + (var2 * 4)));
                    var2 += var1;
                    var1 = memory.readint(hprocess, (var2 + 4));
                }
    
                //now that we have the correct entry in the linked list,
                //read its name from entry+0x20
                return memory.readstring(hprocess, (var1 + 0x20), 40);
            }
    oh my sweet jesus! Name your variables!

  12. #12
    GRB's Avatar Established Member CoreCoins Purchaser
    Reputation
    65
    Join Date
    Oct 2008
    Posts
    222
    Thanks G/R
    0/1
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by JetlagJad View Post
    You're obviously making this wayyyy too hard for yourself... Try re-writing the code neatly... it will probably help you understand what you did wrong.
    This is the first time im working with _MemoryRead/Write on autoit, autoit for convencional things are easy to play with, but this is all new to me so if you can help a lil bit would be great, btw some of those lines come from ur work, thanks for it.

    EDIT:

    Ok i have changed the code to

    Code:
    $bufftocheck = 0x4F97
    
    $buff = _MemoryRead('0x' & hex($PlayerBase + $p1), $DllInformation , 'uint')
    $cbuff = _MemoryRead(($buff + $bufftocheck), $DllInformation , 'boolean')
    
    MsgBox(0, 'Buff', $cbuff)
    But now im just getting 0 with buff or without buff! Btw dont know if the 4F97 code is the correct one for "Seal of Command" but checked the spellid on net and its 20375, so i just converted it to HEX.
    Last edited by GRB; 05-07-2009 at 10:03 AM.

  13. #13
    deafrow's Avatar Member
    Reputation
    1
    Join Date
    Apr 2009
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by mordok View Post
    Im currently looking at shynds non-injecting method to read type 4 (players) objects names. I know theres nothing wrong with injecting but if possible ill prefere to use this method instead. For the moment I couldnt test it becouse the adresses are out of day. Anyone knows the new adress, and where to find it in IDA.

    Shynds method
    Code:
    static string GetPlayerName(IntPtr hProcess, uint player)
            {
                //read the object's GUID from obj+0x30 (again, pretty basic)
                UInt64 GUID = Memory.ReadUInt64(hProcess, (player + 0x30));
    
                //some sort of list index
                int var1 = Memory.ReadInt(hProcess, ((ADRESS + 0x8) + 0x24));
                if (var1 == -1)
                    return "Unknown Player";
    
                //here we're getting the pointer to the start of the linked list
                int var2 = Memory.ReadInt(hProcess, ((ADRESS + 0x8) + 0x1C));
                var1 &= (int)GUID;
                var1 += var1 * 2;
                var1 = (var2 + (var1 * 4) + 4);
                var1 = Memory.ReadInt(hProcess, (var1 + 4));
    
                //iterate through the linked list until the current entry has
                //the same GUID as the object whose name we want
                while (Memory.ReadInt(hProcess, var1) != (int)GUID)
                {
                    int var3 = Memory.ReadInt(hProcess, ((ADRESS +0x8) + 0x1C));
                    var2 = (int)GUID;
                    var2 &= Memory.ReadInt(hProcess, ((ADRESS + 0x8) + 0x24));
                    var2 += var2 * 2;
                    var2 = Memory.ReadInt(hProcess, (var3 + (var2 * 4)));
                    var2 += var1;
                    var1 = Memory.ReadInt(hProcess, (var2 + 4));
                }
    
                //now that we have the correct entry in the linked list,
                //read its name from entry+0x20
                return Memory.ReadString(hProcess, (var1 + 0x20), 40);
            }
    The variables in this made baby jesus cry.

    edited, damn Apoc beat me to it.

  14. #14
    mordok's Avatar Member
    Reputation
    11
    Join Date
    Oct 2007
    Posts
    103
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Well, although that method its not mine, its Shynd's, I find very easy to follow. (thanks Shynd for sharing this method even If people dont like your variables ^^, I like em, SHYND 4 PRESIDENT ).

    Sku, I know getPlayerName() has been covered, but only by injection methods thats why I was asking ^^.

    Still cant find the name store ptr for 3.1.1 (adress in the above method)??? any Ideas¿?¿?¿?
    Last edited by mordok; 05-07-2009 at 02:48 PM.
    "I'm not going to expose my methods for time bending, as i don't want to do get nerfed!"-Kynox

  15. #15
    SKU's Avatar Contributor
    Reputation
    306
    Join Date
    May 2007
    Posts
    565
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm aware of the fact that you don't want to inject, but that doesn't stop you from taking a look at GetObjectName and ripping out the offsets you need.

Page 1 of 3 123 LastLast

Similar Threads

  1. Need some Help with a script of mine! not working and i dont know why.
    By Flesh0209 in forum WoW EMU Questions & Requests
    Replies: 3
    Last Post: 08-08-2009, 08:10 PM
  2. [HELP!]Dont Know How To Use C++ Scripts...
    By Lets See2 in forum WoW EMU Questions & Requests
    Replies: 3
    Last Post: 08-24-2008, 12:55 AM
  3. [HELP] My spell.dbc is not working
    By kate1 in forum World of Warcraft Emulator Servers
    Replies: 9
    Last Post: 05-06-2008, 12:43 PM
  4. Help! 2.2.0 Still not working!
    By Losheau in forum World of Warcraft Emulator Servers
    Replies: 0
    Last Post: 10-01-2007, 02:56 PM
All times are GMT -5. The time now is 04:23 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