Jump to content
Sign in to follow this  
malu05

World Of Warcraft Development

Recommended Posts

onestcoder

I found (for 3.0.9):

Player Name : 0x011CB348

Player Health : PlayerBase + 0xFF4

Player Max Health : PlayerBase + 0x26E4

Player Mana : PlayerBase + 0xFF8

Player Mana Max : PlayerBase + 0x26E8

Player Experience : PlayerBase + 0x3630

Player Experience All : PlayerBase + 0x3634

Level : PlayerBase + 0x41B8

Force : PlayerBase + 0x27B8

Agilite : PlayerBase + 0x27BC

Endurance : PlayerBase + 0x27C0

Intelligence : PlayerBase + 0x27C4

Esprit : PlayerBase + 0x27C8

Armure : PlayerBase + 0x27F4

Money (OrArgentCuivre) : PlayerBase + 0x3E90

Honnor : PlayerBase + 0x4028

Is there a way for autoit to find the player base?


Need a website: http://www.iconixmarketing.com

Share this post


Link to post
Share on other sites
WhOOt

Suggestion : move this topic to chat forum or put in sticky in the way I think this is only blabla for cheaters :P

[Parenthese : I know that somepeople only register to ask questions about this game (or anothers) and get out with what they wanted and play and play...this is serious and I realy take Autoit for a useful and great language for make fantastic things and its not preferable to merge it with games :( ]

Edit : please not reply to this, i dont want do add more blabla...

Cheers, FireFox.

I know you don't want any replies, but I think it is important for me to add that people don't nessecarily want to join because of this specefic game. I've read through some of the code Malu05 created, and made my own code to work for other games.

AutoIt is a wonderful language, which I think should be used where ever possible (This including "cheating" in games), as it makes people explore the possibilities in the language.

EDIT: Also, you can't neglect that this topic has had over 100k views. It does mean something to the community :unsure:

Edited by WhOOt

Share this post


Link to post
Share on other sites
maximus

is it safe to write to player memory values like orientation? or only option is to use of send("a"), send("w") or mousedown+mousemove to get to your orientation?

Thanks

Share this post


Link to post
Share on other sites
autoitxp

hay is there any way to use these for warcraft 3 Frozen throne ?

Share this post


Link to post
Share on other sites
BlackScorpion

For those of you looking to do, or understand how a bot can work reading the screen "pixel colors", search for "botxpert" or "lotro" and you will find a script of 5000 or 15k lines, I forget now, but it looks at the screen color bars in specific locations, It has a setup script that gets the lowest point on the Mob health bar, your health bar, power bar etc, and uses these to detect if you are low on health, or even if you are being attacked yet. He also parses the text log for certain text such as "death" or "you have killed" to see how the fight is progressing. For movement he just spams "loc" to the console, which will then put that in the log which he reads and determines if he is going the correct way. This would be really easy for any GM to look at and ban. If you are typing "loc" every 3 seconds it's very obvious. The harder way to do it is to have a big map consisting of the miniradar and use that pixel data to create a waypoint map from. By looking at the position of the arrow indicator on the radar you could tell which way you are facing. Being able to read from memory your xyz location woiuld be a big bonus, but that could change with each new version of the .exe. I did this and removed the log spamming so I could safely bot on lotro.

Use MHS memory hacking tools ... just search for L. spiro and you will find his utility... It will self encrypt so Warden or whatever program you are hacking wont be able to pick it out in a hash in the process table. I was using it and found out that all the NAUGHTY words like Fu** Cu** are sitting there for Character creation, you would have thought they would have done a simple hash or XOR on the cleartext so tools like me wouldnt see the stuff so easily. I was tempted to change them and see if I could use it in a name, but figured they would be smart enough to check the name server side... but hey... you never know!

My new toon name will be IWANTTOFU ... similar to the ILUVTOFU battle going on right now.. yea I'm vegetarian "right!"...GNGTOFU .... hey Maul05 ... sorry for polluting your thread...

Share this post


Link to post
Share on other sites
Dalord

..... so I could safely bot on lotro.

I wrote a bot for lotro too but it got so board it just quit playing and closed the accout :D

Share this post


Link to post
Share on other sites
WhOOt

For those of you looking to do, or understand how a bot can work reading the screen "pixel colors", search for "botxpert" or "lotro" and you will find a script of 5000 or 15k lines, I forget now, but it looks at the screen color bars in specific locations, It has a setup script that gets the lowest point on the Mob health bar, your health bar, power bar etc, and uses these to detect if you are low on health, or even if you are being attacked yet. He also parses the text log for certain text such as "death" or "you have killed" to see how the fight is progressing. For movement he just spams "loc" to the console, which will then put that in the log which he reads and determines if he is going the correct way. This would be really easy for any GM to look at and ban. If you are typing "loc" every 3 seconds it's very obvious. The harder way to do it is to have a big map consisting of the miniradar and use that pixel data to create a waypoint map from. By looking at the position of the arrow indicator on the radar you could tell which way you are facing. Being able to read from memory your xyz location woiuld be a big bonus, but that could change with each new version of the .exe. I did this and removed the log spamming so I could safely bot on lotro.

Use MHS memory hacking tools ... just search for L. spiro and you will find his utility... It will self encrypt so Warden or whatever program you are hacking wont be able to pick it out in a hash in the process table. I was using it and found out that all the NAUGHTY words like Fu** Cu** are sitting there for Character creation, you would have thought they would have done a simple hash or XOR on the cleartext so tools like me wouldnt see the stuff so easily. I was tempted to change them and see if I could use it in a name, but figured they would be smart enough to check the name server side... but hey... you never know!

My new toon name will be IWANTTOFU ... similar to the ILUVTOFU battle going on right now.. yea I'm vegetarian "right!"...GNGTOFU .... hey Maul05 ... sorry for polluting your thread...

I'm sorry mate, but you are nowhere near the correct method Malu05 uses :D

Share this post


Link to post
Share on other sites
lionel

Hello all!

I need you!

Please help me, for found Adress: "PlayerBase" for version 3.1.0

ex:

For version 3.0.9:

$lvl1Pointer = _MemoryRead(0x0127F13C, $Protocol, 'ptr')

$lvl2Pointer = _MemoryRead(($lvl1Pointer + 0x30), $Protocol, 'ptr')

$AdressPlayerBase = _MemoryRead(($lvl2Pointer + 0x28), $Protocol, 'ptr')

thank you all!

Share this post


Link to post
Share on other sites
hodgepodge

World Of Warcraft Memory Scanner

This program finds the NonStatic Changeable value of X, Y, Z and Rotation of your char.

This scanner is ALOT faster then the previous versions, and as said above also finds the rotation of the player.

This is 100% harmless since it only scans for the values (it is not detectable)

As you can see there is a timer in this version.

If you guys would be so kind as to try the sciprt and see what your "time" is, and post your "time" here or send a pm to me.

Mine is between 4.5 - 6.7

Posted Image

Thanks to Whoot for testing this for me.

Thanks to Ragnorok161 for knowledge for the update.

The Scanner requires the <NomadMemory.au3> from thermo prime. If you don't have it, then program wont be able to run!

You will be able to get Thermo Prime from the main post in this thread

; ----------------------------------------------------------------------------
; ----------------------------------------------------------------------------
;
; Author:
;   Malu05 aka. Mads Hagbart Lund <Batmazbaz@hotmail.com>
;
; Script Function:
;   World Of Warcraft - Memory Location Scanner
; ----------------------------------------------------------------------------
; ----------------------------------------------------------------------------
;;================================================================================
;;Includes;
;;================================================================================
#include <NomadMemory.au3>
#include <GUIConstants.au3>
#include <String.au3>
#include <Date.au3>
#include <array.au3>
#Include <Misc.au3>
HotkeySet("{F2}","rescan")
HotkeySet("{ESC}","terminate")
;;================================================================================
;;Config Variable Definition;
;;================================================================================
$UpdateSpeed = 5 ;Defines the update speed in milliseconds.
;;================================================================================
;;Variable Definition;
;;================================================================================
Dim $datafoundX= 0
Dim $Finalrot, $Finallocx,$Finallocy,$Finalrot
dim $value = 100
dim $knownX = 0x00CD6760
dim $startsearchX = 0x00400B88
dim $startsearchY, $startsearchZ, $startsearchRot
dim $memoryX, $memoryY, $memoryZ, $memoryRot = 0
dim $processfound = 0
dim $appname = "WOW Mem Scanner"
Global $defaultstatus = "Ready"
dim $scanprocess = 0
dim $transyn = 0
;;================================================================================
;;Process front
;;================================================================================
Opt("WinTitleMatchMode", 4)
SetPrivilege("SeDebugPrivilege", 1)
processopen()
func processopen()
Global $ProcessID = WinGetProcess("World of Warcraft","")
Global $offset = 0x1000
while $processfound = 0
    If $ProcessID = -1 Then
        MsgBox(4096, "ERROR", "Failed to detect process.")
        $reply = msgbox(1,$appname,"If world of warcraft is running please enter the name of the process (Ie, WORLD OF WARCRAFT) (uppercase sensitive)")
        if $reply = 2 then 
            Exit
        Else
            $Processnewname = InputBox($appname,"Please enter the name of the process. (Case sensitive)")
            Global $ProcessID = WinGetProcess($Processnewname,"")   
        EndIf
    Else
        $processfound = 1
    EndIf
WEnd
EndFunc
Local $DllInformation = _MemoryOpen($ProcessID)
If @Error Then
    MsgBox(4096, "ERROR", "Failed to open memory for process;" & $ProcessID)
    Exit
EndIf
;;================================================================================
;;GUI Creation
;;================================================================================
GUICreate($appname, 230, 170)
GUICtrlCreateLabel($appname & " by Malu05", 0, 0, 230, 30,BitOr($SS_CENTER ,$SS_SUNKEN))
$statuslabel = GUICtrlCreateLabel ($defaultstatus,0,155,230,15,BitOr($SS_SIMPLE,$SS_SUNKEN))
;Numbers
;x
GUICtrlCreateLabel("X Axis Pointer:", 5, 35, 95, 50)
$Xvaluepointer = GUICtrlCreateLabel("Not found", 80, 35, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
$Xvalue = GUICtrlCreateLabel("Not found", 160, 35, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
;y
GUICtrlCreateLabel("Y Axis Pointer:", 5, 55, 95, 50)
$Yvaluepointer = GUICtrlCreateLabel("Not found", 80, 55, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
$Yvalue = GUICtrlCreateLabel("Not found", 160, 55, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
;z
GUICtrlCreateLabel("Z Axis Pointer:", 5, 75, 95, 20)
$Zvaluepointer = GUICtrlCreateLabel("Not found", 80, 75, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
$Zvalue = GUICtrlCreateLabel("Not found", 160, 75, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
;rot
GUICtrlCreateLabel("Rotat Pointer:", 5, 95, 95, 20)
$Rotvaluepointer = GUICtrlCreateLabel("Not found", 80, 95, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
$Rotvalue = GUICtrlCreateLabel("Not found", 160, 95, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))

GUICtrlCreateLabel("", 0, 130, 230, 3,BitOr($SS_CENTER ,$SS_SUNKEN))
$ontop= GUICtrlCreateCheckbox ("On Top", 90, 135, 120, 18)
$trans= GUICtrlCreateCheckbox ("Transparent", 5, 135, 80, 18)
GUISetState()
$CurrentLocX = _MemoryRead($knownX , $DllInformation, 'float')
TrayTip($appname, "Scanning For Memory Pointers. Do NOT move your character while scanning...", 5, 1)
;;================================================================================
;;Pointer Scanner
;;================================================================================
;X Pointer
GUICtrlSetData($Xvaluepointer,"Scanning...")
GUICtrlSetData($Yvaluepointer,"Scanning...")
GUICtrlSetData($Zvaluepointer,"Scanning...")
GUICtrlSetData($Rotvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer X")
$begin = TimerInit()
$valueSS = _MemoryRead($startsearchX , $DllInformation, 'float')
while $CurrentLocX <> $valueSS
$startsearchX = $startsearchX+$offset
$valueSS = _MemoryRead($startsearchX , $DllInformation, 'float')
WEnd
$dif = TimerDiff($begin)
TrayTip($appname, "X, Y and Z Position Pointer Found in "& (floor($dif)/1000) & " Seconds", 5, 1)
GUICtrlSetData($Xvaluepointer,hex($startsearchX))
$memoryX = "0x" & hex($startsearchX,8)
$startsearchY = $startsearchX + 0X4
GUICtrlSetData($Yvaluepointer,hex($startsearchY))
$memoryY = "0x" & hex($startsearchx,8)
$startsearchZ = $startsearchX + 0X8
GUICtrlSetData($Zvaluepointer,hex($startsearchZ))
$memoryZ = "0x" & hex($startsearchx,8)
$startsearchRot = $startsearchX + 0XC
GUICtrlSetData($Rotvaluepointer,hex($startsearchRot))
$memoryRot = "0x" & hex($startsearchx,8)
GUICtrlSetData($statuslabel,"Ready. Time = " & (floor($dif)/1000)& " Seconds")
while 1
    Memscan()
    $scanprocess = 0
    if GUICtrlRead($trans) = 4 Then
        if $transyn = 1 Then
            WinSetTrans( $appname, $appname, 255)
            $transyn = 0
        EndIf
    Else
        if $transyn = 0 Then
            WinSetTrans( $appname, $appname, 200)
            $transyn = 1
        EndIf
    EndIf   
    if GUICtrlRead($ontop) = 1 Then
        WinSetOnTop($appname, "", 1)
    Else
        WinSetOnTop($appname, "", 0)
    EndIf
;nothing
WEnd
;;================================================================================
;;Memscan
;;================================================================================
Func Memscan()
GUICtrlSetData($Xvalue,floor(_MemoryRead($startsearchX, $DllInformation, 'float')))
GUICtrlSetData($Yvalue,floor(_MemoryRead($startsearchY, $DllInformation, 'float')))
GUICtrlSetData($Zvalue,floor(_MemoryRead($startsearchZ, $DllInformation, 'float')))
GUICtrlSetData($Rotvalue,floor((_MemoryRead($startsearchRot, $DllInformation, 'float') / (3.14159265358979/180))))
sleep($UpdateSpeed)
EndFunc
;;================================================================================
;;Rescan
;;================================================================================
func Rescan()
$startsearchX = 0x00000B88
$begin = 0
$CurrentLocX = _MemoryRead($knownX , $DllInformation, 'float')
TrayTip($appname, "Scanning For Memory Pointers. Do NOT move your character while scanning...", 5, 1)
GUICtrlSetData($Xvaluepointer,"Scanning...")
GUICtrlSetData($Yvaluepointer,"Scanning...")
GUICtrlSetData($Zvaluepointer,"Scanning...")
GUICtrlSetData($Rotvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer X")
$begin = TimerInit()
$valueSS = _MemoryRead($startsearchX , $DllInformation, 'float')
while $CurrentLocX <> $valueSS
$startsearchX = $startsearchX+$offset
$valueSS = _MemoryRead($startsearchX , $DllInformation, 'float')
WEnd
$dif = TimerDiff($begin)
TrayTip($appname, "X, Y and Z Position Pointer Found in "& (floor($dif)/1000) & " Seconds", 5, 1)
GUICtrlSetData($Xvaluepointer,hex($startsearchX))
$memoryX = "0x" & hex($startsearchX,8)
$startsearchY = $startsearchX + 0X4
GUICtrlSetData($Yvaluepointer,hex($startsearchY))
$memoryY = "0x" & hex($startsearchx,8)
$startsearchZ = $startsearchX + 0X8
GUICtrlSetData($Zvaluepointer,hex($startsearchZ))
$memoryZ = "0x" & hex($startsearchx,8)
$startsearchRot = $startsearchX + 0XC
GUICtrlSetData($Rotvaluepointer,hex($startsearchRot))
$memoryRot = "0x" & hex($startsearchx,8)
GUICtrlSetData($statuslabel,"Ready. Time = " & (floor($dif)/1000)& " Seconds")
EndFunc
;;================================================================================
;;Terminate
;;================================================================================
func terminate()
_MemoryClose($DllInformation)
exit 0
EndFunc ;==>Terminate

Now DONT try to replicate my hack since the new 2.1.0 warden checks for wild Z value offsets.

(hint... but still not packets ^^)

Edit;

Update 23.05.07 - 16:03

*Updated for minor preformence increase. (5-10%) faster.

*Added $UpdateSpeed for Defininition the update speed in milliseconds.

*Added a Rescan funtion, so you dont need to reopen the app when you Zone... (press F2)

Update 23.05.07 - 16:50

*Updated for minor preformence increase. (??%) faster.

Would implimenting this script for use in another game be viable?

Share this post


Link to post
Share on other sites
Chronos1337

World Of Warcraft Memory Scanner

This program finds the NonStatic Changeable value of X, Y, Z and Rotation of your char.

This scanner is ALOT faster then the previous versions, and as said above also finds the rotation of the player.

This is 100% harmless since it only scans for the values (it is not detectable)

As you can see there is a timer in this version.

If you guys would be so kind as to try the sciprt and see what your "time" is, and post your "time" here or send a pm to me.

Mine is between 4.5 - 6.7

Posted Image

Thanks to Whoot for testing this for me.

Thanks to Ragnorok161 for knowledge for the update.

The Scanner requires the <NomadMemory.au3> from thermo prime. If you don't have it, then program wont be able to run!

You will be able to get Thermo Prime from the main post in this thread

; ----------------------------------------------------------------------------
; ----------------------------------------------------------------------------
;
; Author:
;   Malu05 aka. Mads Hagbart Lund <Batmazbaz@hotmail.com>
;
; Script Function:
;   World Of Warcraft - Memory Location Scanner
; ----------------------------------------------------------------------------
; ----------------------------------------------------------------------------
;;================================================================================
;;Includes;
;;================================================================================
#include <NomadMemory.au3>
#include <GUIConstants.au3>
#include <String.au3>
#include <Date.au3>
#include <array.au3>
#Include <Misc.au3>
HotkeySet("{F2}","rescan")
HotkeySet("{ESC}","terminate")
;;================================================================================
;;Config Variable Definition;
;;================================================================================
$UpdateSpeed = 5 ;Defines the update speed in milliseconds.
;;================================================================================
;;Variable Definition;
;;================================================================================
Dim $datafoundX= 0
Dim $Finalrot, $Finallocx,$Finallocy,$Finalrot
dim $value = 100
dim $knownX = 0x00CD6760
dim $startsearchX = 0x00400B88
dim $startsearchY, $startsearchZ, $startsearchRot
dim $memoryX, $memoryY, $memoryZ, $memoryRot = 0
dim $processfound = 0
dim $appname = "WOW Mem Scanner"
Global $defaultstatus = "Ready"
dim $scanprocess = 0
dim $transyn = 0
;;================================================================================
;;Process front
;;================================================================================
Opt("WinTitleMatchMode", 4)
SetPrivilege("SeDebugPrivilege", 1)
processopen()
func processopen()
Global $ProcessID = WinGetProcess("World of Warcraft","")
Global $offset = 0x1000
while $processfound = 0
    If $ProcessID = -1 Then
        MsgBox(4096, "ERROR", "Failed to detect process.")
        $reply = msgbox(1,$appname,"If world of warcraft is running please enter the name of the process (Ie, WORLD OF WARCRAFT) (uppercase sensitive)")
        if $reply = 2 then 
            Exit
        Else
            $Processnewname = InputBox($appname,"Please enter the name of the process. (Case sensitive)")
            Global $ProcessID = WinGetProcess($Processnewname,"")   
        EndIf
    Else
        $processfound = 1
    EndIf
WEnd
EndFunc
Local $DllInformation = _MemoryOpen($ProcessID)
If @Error Then
    MsgBox(4096, "ERROR", "Failed to open memory for process;" & $ProcessID)
    Exit
EndIf
;;================================================================================
;;GUI Creation
;;================================================================================
GUICreate($appname, 230, 170)
GUICtrlCreateLabel($appname & " by Malu05", 0, 0, 230, 30,BitOr($SS_CENTER ,$SS_SUNKEN))
$statuslabel = GUICtrlCreateLabel ($defaultstatus,0,155,230,15,BitOr($SS_SIMPLE,$SS_SUNKEN))
;Numbers
;x
GUICtrlCreateLabel("X Axis Pointer:", 5, 35, 95, 50)
$Xvaluepointer = GUICtrlCreateLabel("Not found", 80, 35, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
$Xvalue = GUICtrlCreateLabel("Not found", 160, 35, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
;y
GUICtrlCreateLabel("Y Axis Pointer:", 5, 55, 95, 50)
$Yvaluepointer = GUICtrlCreateLabel("Not found", 80, 55, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
$Yvalue = GUICtrlCreateLabel("Not found", 160, 55, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
;z
GUICtrlCreateLabel("Z Axis Pointer:", 5, 75, 95, 20)
$Zvaluepointer = GUICtrlCreateLabel("Not found", 80, 75, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
$Zvalue = GUICtrlCreateLabel("Not found", 160, 75, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
;rot
GUICtrlCreateLabel("Rotat Pointer:", 5, 95, 95, 20)
$Rotvaluepointer = GUICtrlCreateLabel("Not found", 80, 95, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
$Rotvalue = GUICtrlCreateLabel("Not found", 160, 95, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))

GUICtrlCreateLabel("", 0, 130, 230, 3,BitOr($SS_CENTER ,$SS_SUNKEN))
$ontop= GUICtrlCreateCheckbox ("On Top", 90, 135, 120, 18)
$trans= GUICtrlCreateCheckbox ("Transparent", 5, 135, 80, 18)
GUISetState()
$CurrentLocX = _MemoryRead($knownX , $DllInformation, 'float')
TrayTip($appname, "Scanning For Memory Pointers. Do NOT move your character while scanning...", 5, 1)
;;================================================================================
;;Pointer Scanner
;;================================================================================
;X Pointer
GUICtrlSetData($Xvaluepointer,"Scanning...")
GUICtrlSetData($Yvaluepointer,"Scanning...")
GUICtrlSetData($Zvaluepointer,"Scanning...")
GUICtrlSetData($Rotvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer X")
$begin = TimerInit()
$valueSS = _MemoryRead($startsearchX , $DllInformation, 'float')
while $CurrentLocX <> $valueSS
$startsearchX = $startsearchX+$offset
$valueSS = _MemoryRead($startsearchX , $DllInformation, 'float')
WEnd
$dif = TimerDiff($begin)
TrayTip($appname, "X, Y and Z Position Pointer Found in "& (floor($dif)/1000) & " Seconds", 5, 1)
GUICtrlSetData($Xvaluepointer,hex($startsearchX))
$memoryX = "0x" & hex($startsearchX,8)
$startsearchY = $startsearchX + 0X4
GUICtrlSetData($Yvaluepointer,hex($startsearchY))
$memoryY = "0x" & hex($startsearchx,8)
$startsearchZ = $startsearchX + 0X8
GUICtrlSetData($Zvaluepointer,hex($startsearchZ))
$memoryZ = "0x" & hex($startsearchx,8)
$startsearchRot = $startsearchX + 0XC
GUICtrlSetData($Rotvaluepointer,hex($startsearchRot))
$memoryRot = "0x" & hex($startsearchx,8)
GUICtrlSetData($statuslabel,"Ready. Time = " & (floor($dif)/1000)& " Seconds")
while 1
    Memscan()
    $scanprocess = 0
    if GUICtrlRead($trans) = 4 Then
        if $transyn = 1 Then
            WinSetTrans( $appname, $appname, 255)
            $transyn = 0
        EndIf
    Else
        if $transyn = 0 Then
            WinSetTrans( $appname, $appname, 200)
            $transyn = 1
        EndIf
    EndIf   
    if GUICtrlRead($ontop) = 1 Then
        WinSetOnTop($appname, "", 1)
    Else
        WinSetOnTop($appname, "", 0)
    EndIf
;nothing
WEnd
;;================================================================================
;;Memscan
;;================================================================================
Func Memscan()
GUICtrlSetData($Xvalue,floor(_MemoryRead($startsearchX, $DllInformation, 'float')))
GUICtrlSetData($Yvalue,floor(_MemoryRead($startsearchY, $DllInformation, 'float')))
GUICtrlSetData($Zvalue,floor(_MemoryRead($startsearchZ, $DllInformation, 'float')))
GUICtrlSetData($Rotvalue,floor((_MemoryRead($startsearchRot, $DllInformation, 'float') / (3.14159265358979/180))))
sleep($UpdateSpeed)
EndFunc
;;================================================================================
;;Rescan
;;================================================================================
func Rescan()
$startsearchX = 0x00000B88
$begin = 0
$CurrentLocX = _MemoryRead($knownX , $DllInformation, 'float')
TrayTip($appname, "Scanning For Memory Pointers. Do NOT move your character while scanning...", 5, 1)
GUICtrlSetData($Xvaluepointer,"Scanning...")
GUICtrlSetData($Yvaluepointer,"Scanning...")
GUICtrlSetData($Zvaluepointer,"Scanning...")
GUICtrlSetData($Rotvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer X")
$begin = TimerInit()
$valueSS = _MemoryRead($startsearchX , $DllInformation, 'float')
while $CurrentLocX <> $valueSS
$startsearchX = $startsearchX+$offset
$valueSS = _MemoryRead($startsearchX , $DllInformation, 'float')
WEnd
$dif = TimerDiff($begin)
TrayTip($appname, "X, Y and Z Position Pointer Found in "& (floor($dif)/1000) & " Seconds", 5, 1)
GUICtrlSetData($Xvaluepointer,hex($startsearchX))
$memoryX = "0x" & hex($startsearchX,8)
$startsearchY = $startsearchX + 0X4
GUICtrlSetData($Yvaluepointer,hex($startsearchY))
$memoryY = "0x" & hex($startsearchx,8)
$startsearchZ = $startsearchX + 0X8
GUICtrlSetData($Zvaluepointer,hex($startsearchZ))
$memoryZ = "0x" & hex($startsearchx,8)
$startsearchRot = $startsearchX + 0XC
GUICtrlSetData($Rotvaluepointer,hex($startsearchRot))
$memoryRot = "0x" & hex($startsearchx,8)
GUICtrlSetData($statuslabel,"Ready. Time = " & (floor($dif)/1000)& " Seconds")
EndFunc
;;================================================================================
;;Terminate
;;================================================================================
func terminate()
_MemoryClose($DllInformation)
exit 0
EndFunc ;==>Terminate

Now DONT try to replicate my hack since the new 2.1.0 warden checks for wild Z value offsets.

(hint... but still not packets ^^)

Edit;

Update 23.05.07 - 16:03

*Updated for minor preformence increase. (5-10%) faster.

*Added $UpdateSpeed for Defininition the update speed in milliseconds.

*Added a Rescan funtion, so you dont need to reopen the app when you Zone... (press F2)

Update 23.05.07 - 16:50

*Updated for minor preformence increase. (??%) faster.

This doesn't seem to be working for me. :-(

i added the include you left out #include <StaticConstants.au3>

and it still won't find the xyz is there an update that I don't see?

any help would be appreciated.

Share this post


Link to post
Share on other sites
Kindbudz25

Be very careful trying to use any mem readers with wow. Warden is built to detect the use of these programs or any alterations to the or offsets not designated by the server. Some of the code here WILL get you caught. Just be warned :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×