; ----------------------------------------------------------------------------
;
; AutoIt Version: 3.1.0
; Author: Relz (thanks to Ziao for helping me clean up and fix the code)
;
; Script Function:
; WoW Thing! 3.0
;
; ----------------------------------------------------------------------------
; Script Start
#include <GUIConstants.au3>
#NoTrayIcon
#include <NomadMemory.au3>
#include <String.au3>
#include <Date.au3>
#include <array.au3>
#Include <Misc.au3>
#include <File.au3>
;ask if user wants to load
$answer = MsgBox(4, "WoW Thing! 3.0", "WoW Thing! 3.0 ready to load! Continue?")
If $answer = 7 Then
MsgBox(0, "WoW Thing!", "WoW Thing! 3.0 Closing")
Exit
EndIf
MsgBox(0,"WoW Thing! 3.0", "Alt+H:hide window, Alt+S: show window, Alt+T: set transparency of window")
;variable stuff
Dim $datafoundX,$datafoundX2, $datafoundY, $datafoundZ = 0
Dim $Finalrot, $Finallocx,$Finallocy,$Finalrandom
dim $value = 100
dim $knownX = 0x00D0E54C
dim $startsearchX = 0x00000B88
dim $startsearchX5 = 0x00000BBC
dim $knownY = 0x00D0E550
dim $startsearchY = 0x00000B8C
dim $knownZ = 0x00D0E554
dim $startsearchZ = 0x00000B90
dim $memoryX = 0
dim $memoryX2 = 0
dim $memoryY = 0
dim $memoryZ = 0 ;0x184d8b90
dim $addZ =10.5
dim $addX =0.03
dim $processfound = 0
dim $appname = "MSN Messenger"
Global $defaultstatus = "Ready"
dim $scanprocess = 0
dim $startX, $startY, $startZ
dim $transyn = 0
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
$reply = msgbox(1,$appname,"If the game is running, then type window name [case sensitive]")
if $reply = 2 then
Exit
Else
$Processnewname = InputBox($appname,"type the window name (Case sensitive)")
Global $ProcessID = WinGetProcess($Processnewname,"")
EndIf
Else
$processfound = 1
EndIf
WEnd
EndFunc
Local $DllInformation = _MemoryOpen($ProcessID)
If @Error Then
MsgBox(4096, "error", "couldnt open process;" & $ProcessID)
Exit
EndIf
Local $DllInformation = _MemoryOpen($ProcessID)
;window stuff
GUICreate("WoW Thing!", 500, 150)
Global $fadein = 0
Do
$fadein = $fadein + 1
WinSetTrans("WoW Thing!","",$fadein)
Until $fadein = 255
$statuslabel = GUICtrlCreateLabel ($defaultstatus,0,155,150,15,BitOr($SS_SIMPLE,$SS_SUNKEN))
GUICtrlCreateLabel("Input", 320, 10, 95, 110)
$valueInput = GUICtrlCreateInput ( "0", 395, 10, 70, 20)
GUICtrlCreateLabel("X Axis:", 320, 40, 95, 80)
$Xvaluepointer = GUICtrlCreateLabel("Not found",395, 40,70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
GUICtrlCreateLabel("Y Axis:", 320, 70, 95, 50)
$Yvaluepointer = GUICtrlCreateLabel("Not found", 395, 70, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
GUICtrlCreateLabel("Z Axis:", 320, 100, 95, 20)
$Zvaluepointer = GUICtrlCreateLabel("Not found", 395, 100, 70, 18,BitOr($SS_CENTER ,$SS_SUNKEN))
GUISetState()
$CurrentLocX = _MemoryRead($knownX , $DllInformation, 'float')
$CurrentLocY = _MemoryRead($knownY , $DllInformation, 'float')
$CurrentLocZ = _MemoryRead($knownZ , $DllInformation, 'float')
GUICtrlSetData($Xvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer X1...")
while $datafoundX = 0
$valueSS = _MemoryRead($startsearchX , $DllInformation, 'float')
if $valueSS = $CurrentLocX Then
TrayTip($appname, "X Position Pointer1 Found", 5, 1)
GUICtrlSetData($Xvaluepointer,"Found.")
$memoryX = "0x" & hex($startsearchX,

$datafoundX = 1
Else
$startsearchX = $startsearchX+$offset
EndIf
WEnd
GUICtrlSetData($Xvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer X2...")
while $datafoundX2 = 0
$valueSS = _MemoryRead($startsearchX5 , $DllInformation, 'float')
if $valueSS = $CurrentLocX Then
TrayTip($appname, "X Position Pointer2 Found", 5, 1)
GUICtrlSetData($Xvaluepointer,"Found.")
$memoryX2 = "0x" & hex($startsearchX5,

$datafoundX2 = 1
Else
$startsearchX5 = $startsearchX5+$offset
EndIf
WEnd
;Y Pointer
GUICtrlSetData($Yvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer Y...")
while $datafoundY = 0
$valueSS = _MemoryRead($startsearchY , $DllInformation, 'float')
if $valueSS = $CurrentLocY Then
TrayTip($appname, "Y Position Pointer Found", 5, 1)
GUICtrlSetData($Yvaluepointer,"Found.")
$memoryY = "0x" & hex($startsearchY,

$datafoundY = 1
Else
$startsearchY = $startsearchY+$offset
EndIf
WEnd
;Z Pointer
GUICtrlSetData($Zvaluepointer,"Scanning...")
GUICtrlSetData($statuslabel,"Scanning For Pointer Z...")
while $datafoundZ = 0
$valueSS = _MemoryRead($startsearchZ , $DllInformation, 'float')
if $valueSS = $CurrentLocZ Then
TrayTip($appname, "Z Position Pointer Found - The Manipulator is now ready", 5, 1)
GUICtrlSetData($Zvaluepointer,"Found.")
$memoryZ = "0x" & hex($startsearchZ,

$datafoundZ = 1
Else
$startsearchZ = $startsearchZ+$offset
EndIf
WEnd
GUICtrlSetData($statuslabel,"Ready.")
GUICtrlSetState ( $valueInput, $GUI_ENABLE )
$startX = $CurrentLocX
$startY = $CurrentLocY
$startZ = $CurrentLocZ
WinActivate("WoW Thing!", "")
;hotkeys
HotKeySet("!t", "Transparency")
HotKeySet("!h", "hidegui")
HotKeySet("!s", "showgui")
HotKeySet("!p", "privateserver")
;Functions
Func privateserver()
$input = InputBox("Server", "type 'set realmlist' then the IP/domain of the server you want to play on")
_FileWriteToLine("C:\Program Files\World of Warcraft\realmlist.wtf", 1, $input, 1)
EndFunc
Func hidegui()
GUISetState (@SW_HIDE)
EndFunc
Func showgui()
GUISetState (@SW_SHOW)
EndFunc
Func Transparency ()
$TransNum = Inputbox("WoW Thing!", "Select a number between 0-255 to set the transparency of WoW Thing!")
WinSetTrans("WoW Thing!", "", $TransNum)
EndFunc
GuiSetState()
GuiCtrlCreateLabel("Dashboard", 0, 0)
GUICtrlSetColor(-1,0xFFFFFF)
$button1= GUICtrlCreateButton("Launch WoW", 5, 25, 100, 30)
$button2= GUICtrlCreateButton("Close WoW", 110, 25, 100, 30)
$button3= GUICtrlCreateButton("Show WoW", 215, 25, 100, 30)
$button4= GUICtrlCreateButton("Hide WoW", 5, 65, 100, 30)
$button5= GUICtrlCreateButton("MMOwned", 110, 65,100 ,30)
$button6= GUICtrlCreateButton("WoW.com", 215, 65, 100, 30)
$button7= GUICtrlCreateButton("Thottbot", 5, 105, 100, 30)
$button8= GUICtrlCreateButton("Wallhack", 110, 105, 100, 30)
$button9= GUICtrlCreateButton("Teleport",215,105,100,30)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $button1
$input = InputBox("Password", "Type in your password to auto-login")
Run("C:\Program Files\World of Warcraft\WoW.exe")
WinWaitActive("World of Warcraft")
Sleep(5000)
Send($input)
Sleep(500)
Send("{enter}")
WinSetTitle("World of Warcraft", "", "World of Warcraft [WoW Thing! loaded]")
WinSetTitle("WORLD OF WARCRAFT", "", "World of Warcraft [WoW Thing! loaded]")
Case $msg = $button2
WinActivate("World of Warcraft", "")
WinKill("World of Warcraft", "")
Case $msg = $button5
Send("#r")
WinWaitActive("Run")
Send("Http://MMOwned.com/{Enter}")
Case $msg = $button6
Send("#r")
WinWaitActive("Run")
Send("Http://worldofwarcraft.com/{Enter}")
Case $msg = $button7
Send("#r")
WinWaitActive("Run")
Send("Http://thottbot.com/{Enter}")
Case $msg = $button3
Global $Show = 1
WinSetState("World of Warcraft", "", @SW_SHOW)
WinSetState("World of Warcraft", "", @SW_MAXIMIZE)
WinActivate("World of Warcraft", "")
Case $msg = $Button4
Global $Show = 0
WinSetState("World of Warcraft","", @SW_MINIMIZE)
WinSetState("World of Warcraft", "", @SW_HIDE)
Case $msg = $button8
$Value = GUICtrlRead($valueInput)
WinActivate("World of Warcraft")
sleep(100)
$CurrentLocX = _MemoryRead($memoryx , $DllInformation, 'float')
for $x = 0 to $value Step +1
send("aaa")
$CurrentLocX = _MemoryRead($memoryx , $DllInformation, 'float')
$CurrentLocX = ($CurrentLocX-$addX)
_MemoryWrite($memoryX , $DllInformation, $CurrentLocX , 'float')
;_MemoryWrite($memoryX2 , $DllInformation,($CurrentLocX+$addX) , 'float')
;sleep(1)
$scanprocess = $scanprocess + 1
GUICtrlSetData($statuslabel,$scanprocess)
next
send("aaa")
Case $msg = $button9
$portX=inputbox("Telehack","Enter X")
$portY=inputbox("Telehack","Enter Y")
$portZ=inputbox("Telehack","Enter Z")
_MemoryWrite($memoryX , $DllInformation,$portX , 'float')
_MemoryWrite($memoryY , $DllInformation,$portY , 'float')
_MemoryWrite($memoryZ , $DllInformation,$portZ , 'float')
EndSelect
If $msg = $GUI_EVENT_CLOSE Then MsgBox(0,"Credits", "Created by Relz of MMOwned.com. Help From Ziao and many thanks to Malu05 for the memory editing stuff")
If $msg = $GUI_EVENT_CLOSE Then Exit
WEnd