I recently managed to crack (after alot of hard work) a still unreleased bot. This bot is very similar to MMOglider (has way
points, kills shit) but its much safer as MUCH MUCH less people have it.
I managed to decompile the .exe and essentially de-obfuscate the code and remove the parts in which you had to enter your 'thermkey' and then it forced your client to authenticate your unique 'thermkey' with his server.
I then recompiled it.
There is a readme included and i suggest you read it.
From my over zealous scanning / reversing i found no malicious code. That said, i still suggest you hex it yourself to be sure (Or at least scan it)
Link to scanners:
Link to file
This Bot is coded in AUTOIT therefore some virus scanners (Due to heuristics) might pick it up; its a false positive.
HERE IS THE SOURCE, COMPILE IT FOR YOUR OWN SAFETY OR DOWNLOAD WITH THE LINK PROVIDED
Code:
#Region;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=..\..\Scripts\Thermo.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Allow_Decompile=n
#AutoIt3Wrapper_Run_Obfuscator=n
#EndRegion;**** Directives created by AutoIt3Wrapper_GUI ****
; ----------------------------------------------------------------------------
; ----------------------------------------------------------------------------
;
; Author:
; Malu05 aka. Mads Hagbart Lund <>
;
; Script Function:
; Thermo Prime - A Automated Movement Script for wow.
;
;
; ----------------------------------------------------------------------------
; ----------------------------------------------------------------------------
; About Project Thermo:
; A Memory Reading Automated Movement Script for World Of Warcraft.
; Developed to be fully indenpendet.
; ----------------------------------------------------------------------------
; ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;Includes
#include <GUIConstants.au3>
#include <String.au3>
#include <Date.au3>
#include <array.au3>
#include <Math.au3>
#include <File.au3>
#include <_XMLDomWrapper.au3>
#include <NomadMemory.au3>
#include <File.au3>
;Hotkeys
HotKeySet("{ESC}", "terminate")
HotKeySet("{F2}", "RunTheBot")
;hotkeyset("{F3}","Pause") - Implant soon...
HotKeySet("{F4}", "SaveDestination")
HotKeySet("{F5}", "SaveDestination_Ghost")
;;==============================================================================
=
;;Variable Definition;
;;==============================================================================
=
;;App
$App_name = "Thermo Prime";Main Name of the application
$App_version = "3.1";Version Number of the Application
$App_Title = ($App_name & " v" & $App_version & " -Full version Enabled-" & " Cracked By DiEsIeL");Final Name of Process
;Files
Global $WowProcessName = "World of Warcraft";Name of the process (CASE SENSITIVE!!! FIX FOR YOUR VERSION)
Global $logname = "/Progress.log";Name of the logfile
;; Usual Config
Dim $RatioConvertion = "100"
Dim $slowdistance = "1"
Dim $TimeBeforeJump = "4000";ms before starting to jump over a obstecle
Dim $TimeBeforeReverse = "10000";ms before going back to previous waypoint
Dim $walkkey = "{NUMLOCK}";Not used
;others
Global $wait, $running, $MouseDown, $taskset, $rot_perfect = 0;MouseDown is 1 when the mouse is down, and 0 when not
Dim $cmdtabel = 0;When running the bot it will automaticly go to the first CASE in the CMDTable
Global $CurrentCheck = 1;Is 1 when its first time a check is being made
Dim $dubblecheckPos
Dim $Overllrot, $OverllLocX, $OverllLocY, $OverllZone, $CurrentRot, $CurrentLocX, $CurrentLocY, $continentID, $lastX, $lastY, $debug, $toposX, $toposY, $result = 0
Dim $dubblecheckPos, $ycheck, $slow, $move_x_big, $move_y_big, $rot_perfect, $rot_fast, $down, $XCurBigger, $YCurBigger, $jtdif, $jtstart = 0
Dim $checkagain = 0
Global $arraynumber = "0"
Dim $array_x_number = "0"
Global $pi = 4 * ATan(1)
Dim $Xstart, $Ystart = 0
Global $pasedborder = 0
Dim $jumptimerwalk, $deathNY = 0
$alive = 1
;for XML Process
Global $xmlFile;Name of the XML File open
Dim $test_pause = 0
$ATTRIBS = _ArrayCreate("Continent", "Zone", "Nr", "posX", "posY", "Comment")
$CHILDATTRIBS = _ArrayCreate("Continent", "Zone", "Nr", "posX", "posY", "Comment")
Global $xmlFile
Global $count = 0
Global $sNxPath, $fHwnd
Global $ARRAY[1][1]
Global $ARRAYX
Global $ARRAYY
Local $additional = 1
Local $numb = 0001
Dim $corpselocX, $releasecorpse, $corpselocY = 0
;for XML Process __ for save waypoint
Local $szXPath1, $szXPath2, $aNodeName1, $aNodeName2, $find, $oXSD, $iNodeCount, $aAttrName1[1], $aAttrVal1[1], $aAttrName2[1], $aAttrVal2[1], $ret_val, $X
Opt("WinTitleMatchMode", 4)
Global $ProcessID = WinGetProcess($WowProcessName, "")
SetPrivilege ("SeDebugPrivilege", 1)
If $ProcessID = -1 Then
MsgBox(4096, "Thermo Prime - ERROR", "Failed to detect World of Warcraft running.")
Exit
EndIf
_FileWriteLog(@ScriptDir & $logname, ":::Start Of Session:::")
;;==============================================================================
=
;;GUI;
;;==============================================================================
=
;Window
GUICreate($App_Title, 500, 250)
GUISetState(@SW_SHOW)
;Buttons
$Button_SelectProfile = GUICtrlCreateButton("Select Profile", 100, 10, 100)
$Button_NewProfile = GUICtrlCreateButton("New Profile", 100, 40, 100)
;Labels
$FinalCharname = GUICtrlCreateLabel("Charname", 10, 10, 70, 20, ($SS_SUNKEN))
$Finallocx = GUICtrlCreateLabel("Position X", 10, 40, 70, 20, ($SS_SUNKEN))
$Finallocy = GUICtrlCreateLabel("Position Y", 10, 70, 70, 20, ($SS_SUNKEN))
$Finalrot = GUICtrlCreateLabel("Rotation", 10, 100, 70, 20, ($SS_SUNKEN))
$Finalrandom = GUICtrlCreateLabel("ZoneID", 10, 130, 70, 20, ($SS_SUNKEN))
;Labels_debug
$DebugID = GUICtrlCreateLabel("StatusID", 5, 210, 120, 20, ($SS_SUNKEN))
$RotationID = GUICtrlCreateLabel("RotationID", 5, 190, 120, 20, ($SS_SUNKEN))
;Checkbox
$debugcheck = GUICtrlCreateCheckbox("Debug Mode", 5, 230, 160, 20)
$combatmode = GUICtrlCreateCheckbox("Combat Mode", 180, 230, 260, 20)
;WinSetOnTop($App_Title, "", 1) - Implant soon...
SmartBehavior()
;;==============================================================================
=
;;THERMO START!
;;==============================================================================
=
Func SmartBehavior()
While $wait = 0
;Check GUI for userinput
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit 0
Case $msg = $Button_SelectProfile
SelectOpenXML()
Case $msg = $Button_NewProfile
NewProfile()
EndSelect
;Check if wow is running
If WinActive("World of Warcraft") Then
If $xmlFile = "" Then
Sleep(10)
MsgBox(0, "Thermo Prime - ERROR", "You have not selected a XML File! Please press the [Select Profile] button and select a profile before running")
WinWaitActive($App_Title)
Else
_FileWriteLog(@ScriptDir & $logname, "World Of Warcraft process opned")
Sleep(20)
Send("{Enter}")
Sleep(11)
ClipPut("/script DEFAULT_CHAT_FRAME:AddMessage(""" & $App_name & " v" & $App_version & " is running!! "",0.0,0.0,1.0); ")
Sleep(11)
Send("^v")
Sleep(11)
Send("{Enter}")
$wait = 1
EndIf
EndIf
WEnd
;Start the bot-----------------
While 1
Cmdtable()
WEnd
EndFunc ;==>SmartBehavior
;;==============================================================================
=
;;Command Table;
;;==============================================================================
=
Func Cmdtable();;Command Table for functions, this table can be used for configuring the steps of the bots behaviour
$debug = GUICtrlRead($debugcheck)
Switch $cmdtabel
Case 0
;ControlSetText($App_Title, "", $DebugID, "0-GetCurrentData")
GetCurrentData()
Case 1
ControlSetText($App_Title, "", $DebugID, "1-EventCalculation" & $array_x_number);these are for debuggin - Remove soon...
EventCalculation()
Case 2
ControlSetText($App_Title, "", $DebugID, "2-CheckRotation")
_FileWriteLog(@ScriptDir & $logname, "checkRotation" & $taskset)
CheckRotation()
Case 3
ControlSetText($App_Title, "", $DebugID, "3-GoToPos")
_FileWriteLog(@ScriptDir & $logname, "Gotopos")
GoToPos()
Case 4
ControlSetText($App_Title, "", $DebugID, "4-Dubblecheck")
_FileWriteLog(@ScriptDir & $logname, "dualchecl")
Dubblecheck()
Case 5
ControlSetText($App_Title, "", $DebugID, "5-runbot")
_FileWriteLog(@ScriptDir & $logname, "runbot")
RunBot()
EndSwitch
Return
EndFunc ;==>Cmdtable
;;==============================================================================
=
;;GetCurrentData;
;;==============================================================================
=
Func GetCurrentData();Read data from memory
If $CurrentCheck = 1 Then
MemoryLoop()
EndIf
If $dubblecheckPos = 1 Then
$cmdtabel = 4;Next step = 4 Dubblecheck()
Return
Else
$cmdtabel = 1;Next step = EvenCalculation()
Return
EndIf
EndFunc ;==>GetCurrentData
;;==============================================================================
=
;;EvenCalculation;
;;==============================================================================
=
Func EventCalculation();With the info from GetCurrentData calculate what to do
If $deathNY = 0 Then
If $alive = 1 Then
$alive = 0
$corpselocX = $CurrentLocX
$corpselocY = $CurrentLocY
Sleep(20)
Send("{Enter}")
Sleep(11)
ClipPut("/script RepopMe()")
Sleep(11)
Send("^v")
Sleep(11)
Send("{Enter}")
EndIf
EndIf
If $running = "1" Then
If $CurrentLocX = $toposX Then
If $CurrentLocY = $toposY Then
$running = "0"
$checkagain = 0
$dubblecheckPos = 0
$cmdtable = 5
$rot_perfect = 0
Return;Next step = GetCurrentData()
EndIf
EndIf
;$cmdtable = 5
;$rot_perfect = 0
;Return;Next step = GetCurrentData()
EndIf
If $pasedborder = 1 Then
$running = "0"
$checkagain = 0
$dubblecheckPos = 0
$cmdtable = 5
$rot_perfect = 0
Return;Next step = GetCurrentData()
EndIf
If $taskset = 1 Then
_FileWriteLog(@ScriptDir & $logname, "Data recived from game; Rotation=" & $CurrentRot & ". PositionX=" & $CurrentLocX & ". PositionY=" & $CurrentLocY & ".")
$cmdtabel = 2;Next step = CheckRotation()
Return
EndIf
If $rot_perfect = 1 Then
$cmdtabel = 3;Next step = GoToPos()
Return
EndIf
$cmdtabel = 0;Next step = GetCurrentData()
Return
EndFunc ;==>EventCalculation
;;==============================================================================
=
;;CheckRotation
;;==============================================================================
=
Func CheckRotation()
If $debug = 1 Then
Send("{Enter}")
Sleep(200)
ClipPut("Current = " & $CurrentRot & " result= " & $result)
Send("^v")
Sleep(200)
Send("{Enter}")
EndIf
$jtstart = "0"
$jumptimerwalk = "0"
$lastX = "0"
$lastY = "0"
$windowsize = WinGetPos($WowProcessName)
MouseMove((($windowsize[2] / 2) + $windowsize[0]), (($windowsize[3] / 2) + $windowsize[1]), 0)
While $taskset = 1
MemoryLoop()
Rotationfix()
$Rot_Smallest = _Min($CurrentRot, $result)
$Rot_Biggest = _Max($CurrentRot, $result)
If $CurrentRot = $Rot_Biggest Then
If ($CurrentRot - $result) < 190 Then
$down = 1
If ($CurrentRot - $result) < 50 Then
$rot_fast = 0
If ($CurrentRot - $result) < 9 Then
$rot_fast = 2
EndIf
Else
$rot_fast = 1
EndIf
Else
$down = 0
If (($result + 360) - $CurrentRot) < 50 Then
$rot_fast = 0
If (($result + 360) - $CurrentRot) < 9 Then
$rot_fast = 2
EndIf
Else
$rot_fast = 1
EndIf
EndIf
Else
If ($result - $CurrentRot) < 190 Then
$down = 0
If ($result - $CurrentRot) < 50 Then
$rot_fast = 0
If ($result - $CurrentRot) < 9 Then
$rot_fast = 2
EndIf
Else
$rot_fast = 1
EndIf
Else
$down = 1
If (($CurrentRot + 360) - $result) < 50 Then
$rot_fast = 0
If (($CurrentRot + 360) - $result) < 9 Then
$rot_fast = 2
EndIf
Else
$rot_fast = 1
EndIf
EndIf
EndIf
If $CurrentLocX = $toposX Then
If $CurrentLocY = $toposY Then
$cmdtabel = 5;Next step = GetCurrentData()
$rot_perfect = 1
$taskset = 0
Return;Next step = GetCurrentData()
EndIf
EndIf
MouseDown("right")
If $rot_fast = 1 Then
If $down = 0 Then
;MouseDown("right")
_MouseMovePlus(-20, 0)
Sleep(10)
Else
;MouseDown("right")
_MouseMovePlus(20, 0)
Sleep(10)
EndIf
EndIf
If $rot_fast = 0 Then
If $down = 0 Then
MouseDown("right")
_MouseMovePlus(-10, 0)
Sleep(10)
;sleep(200)
Else
;MouseDown("right")
_MouseMovePlus(10, 0)
Sleep(10)
EndIf
EndIf
If $rot_fast = 2 Then
If $down = 0 Then
;MouseDown("right")
_MouseMovePlus(-2, 0)
Sleep(10)
;sleep(200)
Else
;MouseDown("right")
_MouseMovePlus(2, 0)
Sleep(10)
EndIf
EndIf
;Update Rotation Data
MemoryLoop()
Rotationfix()
If Floor($CurrentRot) = Floor($result) Then
MouseUp("right")
$taskset = 0
Sleep(200)
EndIf
WEnd
_FileWriteLog(@ScriptDir & $logname, "Rotation Complete; CurrentRotation=" & $CurrentRot & ". FinalRotation=" & $result & ".")
MouseUp("right")
$cmdtabel = 0;Next step = GetCurrentData()
$rot_perfect = 1
$taskset = 0
Return
EndFunc ;==>CheckRotation
;;==============================================================================
=
;;GoToPos
;;==============================================================================
=
Func GoToPos()
; [Find The Coordinate Place]
If $toposX <= $Xstart Then
$XCurBigger = 1
Else
$XCurBigger = 0
EndIf
If $toposY <= $Ystart Then
$YCurBigger = 1
Else
$YCurBigger = 0
EndIf
$distance = _Max(($CurrentLocX + $CurrentLocY), ($toposX + $toposY)) - _Min(($CurrentLocX + $CurrentLocY), ($toposX + $toposY))
; [/Find The Coordinate Place]
Send("{w down}")
While $rot_perfect = 1
;For Jump Timer
$lastX = $CurrentLocX
$lastY = $CurrentLocY
; [Gather Position Data From WoW]
MemoryLoop()
;[Tjek Data]
;Jump Timer (if the player stays too long at the same location it will start jumping, and short after return to previous waypoint.)
If $lastX = $CurrentLocX Then
If $lastY = $CurrentLocY Then
If $jtstart = 0 Then
$jumptimerwalk = TimerInit()
$jtstart = 1
EndIf
$jtdif = TimerDiff($jumptimerwalk)
ControlSetText($App_Title, "", $RotationID, "TimerLoc:" & $lastX & "," & $lastY & " t:" & Floor($jtdif))
If $jtdif > $TimeBeforeReverse Then;For Going Back One Step in the Waypoint Section
If $deathNY = 0 Then
If $alive = 1 Then
$alive = 0
$corpselocX = $CurrentLocX
$corpselocY = $CurrentLocY
Sleep(20)
Send("{Enter}")
Sleep(11)
ClipPut("/script RepopMe()")
Sleep(11)
Send("^v")
Sleep(11)
Send("{Enter}")
EndIf
EndIf
_FileWriteLog(@ScriptDir & $logname, "Could not reach the desired destination; waypoint: " & $array_x_number & ", retrying from last waypoint. RP=" & $jtdif)
$array_x_number = $array_x_number - 1
$cmdtabel = 5;Next step = Save_test()
$jtstart = 0
;send ("{w down}")
Send("{w}")
Return
EndIf
If $jtdif > $TimeBeforeJump Then;For Basic Jump after X Secounds
_FileWriteLog(@ScriptDir & $logname, "Suspected stuck trying to reach; waypoint: " & $array_x_number & ", attempting jump procedure. RP=" & $jtdif)
Send("{w up}")
Sleep(20)
Send("{space}")
Sleep(100)
Send("{w down}")
EndIf
Else
$jumptimerwalk = 0
$jtstart = 0
$jtdif = 0
EndIf
Else
$jumptimerwalk = 0
$jtstart = 0
$jtdif = 0
EndIf
;[Tjek Data]
If _Max(($CurrentLocX + $CurrentLocY), ($toposX + $toposY)) - _Min(($CurrentLocX + $CurrentLocY), ($toposX + $toposY)) > $distance Then
$cmdtabel = 0;Next step = Save_test()
Send("{w}")
$dubblecheckPos = 1
$cmdtable = 0
$rot_perfect = 0
$pasedborder = 1
Return
EndIf
If $XCurBigger = 0 Then
If $CurrentLocX >= $toposX Then
;send ("{w down}")
$dubblecheckPos = 1
$cmdtable = 0
$rot_perfect = 0
$pasedborder = 1
Return;Next step = GetCurrentData()
EndIf
EndIf
If $XCurBigger = 1 Then
If $CurrentLocX <= $toposX Then
If $YCurBigger = 1 Then
If $CurrentLocY <= $toposY Then
;send ("{w down}")
$dubblecheckPos = 1
$cmdtable = 0
$rot_perfect = 0
$pasedborder = 1
Return;Next step = GetCurrentData()
EndIf
EndIf
If $YCurBigger = 0 Then
If $CurrentLocY >= $toposY Then
;send ("{w down}")
$dubblecheckPos = 1
$cmdtable = 0
$rot_perfect = 0
$pasedborder = 1
Return;Next step = GetCurrentData()
EndIf
EndIf
EndIf
EndIf
If $YCurBigger = 0 Then
If $CurrentLocY >= $toposY Then
;send ("{w down}")
$dubblecheckPos = 1
$cmdtable = 0
$rot_perfect = 0
$pasedborder = 1
Return;Next step = GetCurrentData()
EndIf
EndIf
If $YCurBigger = 1 Then
If $CurrentLocY <= $toposY Then
If $XCurBigger = 0 Then
If $CurrentLocX >= $toposX Then
;send ("{w down}")
$dubblecheckPos = 1
$cmdtable = 0
$rot_perfect = 0
$pasedborder = 1
Return;Next step = GetCurrentData()
EndIf
EndIf
If $XCurBigger = 1 Then
If $CurrentLocX <= $toposX Then
;send ("{w down}")
$dubblecheckPos = 1
$cmdtable = 0
$rot_perfect = 0
$pasedborder = 1
Return;Next step = GetCurrentData()
EndIf
EndIf
EndIf
EndIf
ControlSetText($App_Title, "", $DebugID, "3-GoToPos:" & $toposX & "," & $toposY)
WEnd
If $debug = 1 Then
Send("{Enter}")
Sleep(200)
ClipPut("Error")
Send("^v")
Sleep(200)
Send("{Enter}")
EndIf
;send ("{w up}")
$cmdtabel = 0;Next step = GetCurrentData()
Return
EndFunc ;==>GoToPos
;;==============================================================================
=
;;Dubblecheck()
;;==============================================================================
=
Func Dubblecheck()
If $CurrentLocX <= ($toposX + 1) And $CurrentLocX >= ($toposX - 1) Then
If $CurrentLocY <= ($toposY + 1) And $CurrentLocY >= ($toposY - 1) Then
$dubblecheckPos = 0
$taskset = 0
$rot_perfect = 0
$cmdtabel = 0
;send("{´}")
$slow = 0
If ($ARRAY[4][($ARRAYY - $arraynumber) + 0]) = $arraynumber Then
$checkagain = 1
MsgBox(0, "error", "error")
Return
Else
$cmdtabel = 5
$checkagain = 0
_FileWriteLog(@ScriptDir & $logname, "Succes Reaching waypoint: " & $array_x_number & " check" & $CurrentLocX & "=" & $toposX & " . " & $CurrentLocY & "=" & $toposY)
If $deathNY = 0 Then
If $releasecorpse = 1 Then
Send("{Enter}")
Sleep(11)
ClipPut("/script RetrieveCorpse()")
Sleep(11)
Send("^v")
Sleep(11)
Send("{Enter}")
$alive = 1
EndIf
EndIf
Return
EndIf
EndIf
EndIf
$checkagain = 1
$dubblecheckPos = 0
$cmdtabel = 5;Next step = EvenCalculation()
Send("{w up}")
Return
EndFunc ;==>Dubblecheck
;;==============================================================================
=
;;Runbot;
;;==============================================================================
=
Func RunBot()
;msgbox(0,"LOL",$toposX & " " & $toposY & " <- " & $CurrentLocX & " " & $CurrentLocY)
$running = "1"
If $checkagain = 0 Then
;;For repeat (if the current number goes beyond the last array it will set to 1)
If $deathNY = 1 Then
If ($array_x_number) = ($ARRAYY) Then
$array_x_number = 0
Return
EndIf
EndIf
$array_x_number = $array_x_number + 1
EndIf
If $deathNY = 0 Then
If ($array_x_number) = ($ARRAYY) Then
Send("{Enter}")
Sleep(11)
ClipPut("/script RetrieveCorpse()")
Sleep(11)
Send("^v")
Sleep(11)
Send("{Enter}")
Sleep(20)
If $deathNY = 1 Then
$alive = 1
$array_x_number = 0
Else
$posx2 = $CurrentLocX
$posy2 = (($CurrentLocY / "100") * $RatioConvertion)
$toposX = $corpselocX
$toposY = $corpselocY
$posx1 = $corpselocX
$posy1 = (($corpselocY / "100") * $RatioConvertion)
$releasecorpse = 1
MsgBox(0, "test", $corpselocX & " " & $corpselocY)
$radToDeg = -180 / $pi
$result = ATan(($posy1 - $posy2) / ($posx2 - $posx1)) * $radToDeg
If $posx2 < $posx1 Then
If $result < 0 Then
$result = 270 + $result
Else
$result = 270 + $result
EndIf
EndIf
If $posx2 >= $posx1 Then
If $result < 0 Then
$result = 90 + $result
Else
$result = 90 + $result
EndIf
EndIf
$result = $result - 360
$result = Floor(($result - $result) - $result)
If $result = "360" Then $result = 0
$cmdtabel = 0
$taskset = 1
$pasedborder = 0
$cmdtable = 1
EndIf
Return;Next step = GetCurrentData()
EndIf
EndIf
;; If the Current number is 0 it will go to the last waypoint to make it backwoards compatible.
If $array_x_number = 0 Then
$array_x_number = $ARRAYY
EndIf
_FileWriteLog(@ScriptDir & $logname, "Processing Destination Waypoint; " & $array_x_number & ".")
If $debug = 1 Then
Send("{Enter}")
Sleep(200)
ClipPut("1 = " & $array_x_number)
Sleep(20)
Send("^v")
Sleep(200)
Send("{Enter}")
EndIf
If $deathNY = 1 Then
$szXPath1 = "//DATAPACKET/METADATA/FIELDS"
$szXPath2 = "//DATAPACKET/ROWDATA"
Else
$szXPath1 = "//DATAPACKET/METADATA/FIELDS"
$szXPath2 = "//DATAPACKET/ROWGHOST"
Secureghost()
;$array_x_number = 0
EndIf
;; If the Current number is 0 it will go to the last waypoint to make it backwoards compatible.
;if $array_x_number = 0 Then
; $array_x_number = $ARRAYY
; EndIf
ReDim $ARRAY[$ARRAYX][$ARRAYY + 1]
;TrayTip("Position Manager", $ARRAYY & " Nodes Loaded...", 5, 1)
$aNodeName1 = _XMLGetChildNodes ($szXPath1)
$aNodeName2 = _XMLGetChildNodes ($szXPath2)
If $aNodeName1 <> -1 Then
;LOOP THROUGH //DATAPACKET/METADATA/FIELDS
For $find = 1 To $aNodeName1[0]
_XMLGetAllAttrib ($szXPath1 & "/*" & '[' & $find & ']', $aAttrName1, $aAttrVal1)
;ADD TO ARRAY
$ARRAY[$find - 1][0] = $aAttrVal1[0]
;LOOP THROUGH //DATAPACKET/ROWDATA
For $X = 1 To $aNodeName2[0]
_XMLGetAllAttrib ($szXPath2 & "/*" & '[' & $X & ']', $aAttrName2, $aAttrVal2)
;ONLY APPEND IF CURRENT FIELD NIMBER IS LESS THAN NUMBER OF ATTRIBS FOUND IN EACH ROW
If $find <= UBound($aAttrName2) Then
;msgbox(0,"hej",$find & " X= " & $X & " att " &$aNodeName2[0] & " AN= " & $aNodeName1[0] & " " & $aAttrVal2[$find-1])
Secureghost()
$ARRAY[$find - 1][$X] = $aAttrVal2[$find - 1]
EndIf
Next
Next
Else
MsgBox(0, "Error:", "No nodes found for " & $szXPath1)
EndIf
;if $array_x_number = ($ARRAYY+1) Then
; $array_x_number = $array_x_number - 1
; EndIf
$posx2 = $CurrentLocX
$posy2 = (($CurrentLocY / "100") * $RatioConvertion)
$posx1 = $ARRAY[3][$array_x_number]
$posy1 = ((($ARRAY[4][$array_x_number]) / "100") * $RatioConvertion)
$toposX = $ARRAY[3][$array_x_number]
$toposY = $ARRAY[4][$array_x_number]
$checkagain = 1
;if $deathNY = 0 Then
; if ($array_x_number+1) = ($ARRAYY) Then
; $toposX = $corpselocX
; $toposY = $corpselocY
; $posx1 = $corpselocX
; $posy1 = (($corpselocY/"100")*$RatioConvertion )
; $releasecorpse = 1
; msgbox(0,"test",$corpselocX & " " & $corpselocY)
; EndIf
;EndIf
;msgbox(0,"hej","$posx1=" & $posx1 & " " & "$posy1=" & $posy1 & " " & "$posx2=" &$posx2 & " " & "$posy2=" & $posy2 & " " & "$toposX=" &$toposX & " " & "$toposY=" & $toposY)
_FileWriteLog(@ScriptDir & $logname, "Data From XML - " & $array_x_number & ". Destination pos: " & $toposX & "." & $toposY)
If $debug = 1 Then
Send("{Enter}")
Sleep(200)
ClipPut("1 = " & $ARRAY[3][1] & " 2 = " & $ARRAY[4][1] & " 3 =" & $array_x_number)
Sleep(20)
Send("^v")
Sleep(200)
Send("{Enter}")
EndIf
$radToDeg = -180 / $pi
$result = ATan(($posy1 - $posy2) / ($posx2 - $posx1)) * $radToDeg
If $posx2 < $posx1 Then
If $result < 0 Then
$result = 270 + $result
Else
$result = 270 + $result
EndIf
EndIf
If $posx2 >= $posx1 Then
If $result < 0 Then
$result = 90 + $result
Else
$result = 90 + $result
EndIf
EndIf
$result = $result - 360
$result = Floor(($result - $result) - $result)
If $result = "360" Then $result = 0
$cmdtabel = 0
$taskset = 1
If $debug = 1 Then
Send("{Enter}")
Sleep(200)
ClipPut("Current position = " & $CurrentLocX & "," & $CurrentLocY & " End Position = " & $toposX & "," & $toposY & " rotation calculated = " & $result)
Sleep(20)
Send("^v")
Sleep(200)
Send("{Enter}")
EndIf
$pasedborder = 0
$cmdtable = 1
Return;Next step = GetCurrentData()
EndFunc ;==>RunBot
;;==============================================================================
=
;;Runbot1;
;;==============================================================================
=
Func RunTheBot()
If $test_pause = 0 Then
$oXSD = _XMLFileOpen ($xmlFile, "")
;If @error Or $oXSD < 1 Then
; MsgBox(0, "Error", "There was an error opening the file " & $xmlFile)
; $oXSD = 0
; _FileWriteLog(@ScriptDir & $logname,"Error Opning XMLFile - Ending Session")
; _FileWriteLog(@ScriptDir & $logname,":::End Of Session:::")
; Exit
;EndIf
If $deathNY = 1 Then
$szXPath1 = "//DATAPACKET/METADATA/FIELDS"
$szXPath2 = "//DATAPACKET/ROWDATA"
Else
$szXPath1 = "//DATAPACKET/METADATA/FIELDS"
$szXPath2 = "//DATAPACKET/ROWGHOST"
$array_x_number = 0
EndIf
$ARRAYX = _XMLGetNodeCount ($szXPath1 & "/*")
$ARRAYY = _XMLGetNodeCount ($szXPath2 & "/*")
$additional = $ARRAYY
;ReDim $ARRAY[$ARRAYX][$ARRAYY+1]
If $ARRAYY < 0 Then $ARRAYY = 0
TrayTip("Position Manager", $ARRAYY & " Nodes Loaded...", 5, 1)
$aNodeName1 = _XMLGetChildNodes ($szXPath1)
$aNodeName2 = _XMLGetChildNodes ($szXPath2)
If $aNodeName1 <> -1 Then
;LOOP THROUGH //DATAPACKET/METADATA/FIELDS
For $find = 1 To $aNodeName1[0]
_XMLGetAllAttrib ($szXPath1 & "/*" & '[' & $find & ']', $aAttrName1, $aAttrVal1)
;ADD TO ARRAY
;$ARRAY[$find-1][0] = $aAttrVal1[0]
;LOOP THROUGH //DATAPACKET/ROWDATA
;For $X=1 To $aNodeName2[0]
; _XMLGetAllAttrib($szXPath2 & "/*" & '[' & $X & ']',$aAttrName2,$aAttrVal2)
;;ONLY APPEND IF CURRENT FIELD NIMBER IS LESS THAN NUMBER OF ATTRIBS FOUND IN EACH ROW
; If $find <= Ubound($aAttrName2) Then
; $ARRAY[$find-1][$X] = $aAttrVal2[$find-1]
; EndIf
;Next
Next
Else
MsgBox(0, "Error:", "No nodes found for " & $szXPath1)
EndIf
;$arraynumber = ($ARRAY[2][$ARRAYY])
$array_x_number = 0;$arraynumber
$oXSD = 0
EndIf
RunBot()
EndFunc ;==>RunTheBot
;;==============================================================================
=
;;Secure Ghost
;;==============================================================================
=
Func Secureghost()
If $test_pause = 0 Then
$oXSD = _XMLFileOpen ($xmlFile, "")
;If @error Or $oXSD < 1 Then
; MsgBox(0, "Error", "There was an error opening the file " & $xmlFile)
; $oXSD = 0
; _FileWriteLog(@ScriptDir & $logname,"Error Opning XMLFile - Ending Session")
; _FileWriteLog(@ScriptDir & $logname,":::End Of Session:::")
; Exit
;EndIf
If $deathNY = 1 Then
$szXPath1 = "//DATAPACKET/METADATA/FIELDS"
$szXPath2 = "//DATAPACKET/ROWDATA"
Else
$szXPath1 = "//DATAPACKET/METADATA/FIELDS"
$szXPath2 = "//DATAPACKET/ROWGHOST"
EndIf
$ARRAYX = _XMLGetNodeCount ($szXPath1 & "/*")
$ARRAYY = _XMLGetNodeCount ($szXPath2 & "/*")
$additional = $ARRAYY
;ReDim $ARRAY[$ARRAYX][$ARRAYY+1]
If $ARRAYY < 0 Then $ARRAYY = 0
TrayTip("Position Manager", $ARRAYY & " Nodes Loaded...", 5, 1)
$aNodeName1 = _XMLGetChildNodes ($szXPath1)
$aNodeName2 = _XMLGetChildNodes ($szXPath2)
If $aNodeName1 <> -1 Then
;LOOP THROUGH //DATAPACKET/METADATA/FIELDS
For $find = 1 To $aNodeName1[0]
_XMLGetAllAttrib ($szXPath1 & "/*" & '[' & $find & ']', $aAttrName1, $aAttrVal1)
;ADD TO ARRAY
;$ARRAY[$find-1][0] = $aAttrVal1[0]
;LOOP THROUGH //DATAPACKET/ROWDATA
;For $X=1 To $aNodeName2[0]
; _XMLGetAllAttrib($szXPath2 & "/*" & '[' & $X & ']',$aAttrName2,$aAttrVal2)
;;ONLY APPEND IF CURRENT FIELD NIMBER IS LESS THAN NUMBER OF ATTRIBS FOUND IN EACH ROW
; If $find <= Ubound($aAttrName2) Then
; $ARRAY[$find-1][$X] = $aAttrVal2[$find-1]
; EndIf
;Next
Next
Else
MsgBox(0, "Error:", "No nodes found for " & $szXPath1)
EndIf
;$arraynumber = ($ARRAY[2][$ARRAYY])
$oXSD = 0
EndIf
Return
EndFunc ;==>Secureghost
;;==============================================================================
=
;;MemoryLoop;
;;==============================================================================
=
Func MemoryLoop()
;Check if memory is accesible
Local $DllInformation = _MemoryOpen ($ProcessID)
If @error Then
MsgBox(4096, "ERROR", "Failed to open memory.")
Exit
EndIf
$CurrentCharname = _MemoryRead (0x00cbaa88, $DllInformation, 'char[11]')
If @error Then
MsgBox(4096, "ERROR", "Failed to read memory.")
Exit
EndIf
$CurrentLocX = Floor(_MemoryRead (0x00D80228, $DllInformation, 'float'))
If @error Then
MsgBox(4096, "ERROR", "Failed to read memory.")
Exit
EndIf
$CurrentLocY = Floor(_MemoryRead (0x00D81234, $DllInformation, 'float'))
If @error Then
MsgBox(4096, "ERROR", "Failed to read memory.")
Exit
EndIf
$CurrentRot = _MemoryRead (0x00d80248, $DllInformation, 'float')
If @error Then
MsgBox(4096, "ERROR", "Failed to read memory.")
Exit
EndIf
$continentID = _MemoryRead (0x008D5B20, $DllInformation, 'dword')
If @error Then
MsgBox(4096, "ERROR", "Failed to read memory.")
Exit
EndIf
$deathNY = _MemoryRead (0x00C58FD0, $DllInformation, 'dword')
If @error Then
MsgBox(4096, "ERROR", "Failed to read memory.")
Exit
EndIf
_MemoryClose ($DllInformation)
;Final Calculations
$Xstart = $CurrentLocX
$Ystart = $CurrentLocY
$CurrentRot = Floor(($CurrentRot / (3.14159265358979 / 180)))
;Update GUI
ControlSetText($App_Title, "", $FinalCharname, $CurrentCharname)
ControlSetText($App_Title, "", $Finalrot, $CurrentRot)
ControlSetText($App_Title, "", $Finallocx, $CurrentLocX)
ControlSetText($App_Title, "", $Finallocy, $CurrentLocY)
ControlSetText($App_Title, "", $Finalrandom, $continentID)
EndFunc ;==>MemoryLoop
;;==============================================================================
=
;;Rotationfix
;;==============================================================================
=
Func Rotationfix()
$posx2 = $CurrentLocX
$posy2 = (($CurrentLocY / "100") * $RatioConvertion)
$posx1 = $ARRAY[3][$array_x_number]
$posy1 = ((($ARRAY[4][$array_x_number]) / "100") * $RatioConvertion)
$toposX = $ARRAY[3][$array_x_number]
$toposY = $ARRAY[4][$array_x_number]
$radToDeg = -180 / $pi
$result = ATan(($posy1 - $posy2) / ($posx2 - $posx1)) * $radToDeg
If $posx2 < $posx1 Then
If $result < 0 Then
$result = 270 + $result
Else
$result = 270 + $result
EndIf
EndIf
If $posx2 >= $posx1 Then
If $result < 0 Then
$result = 90 + $result
Else
$result = 90 + $result
EndIf
EndIf
$result = $result - 360
$result = Floor(($result - $result) - $result)
If $result = "360" Then $result = 0
EndFunc ;==>Rotationfix
;;==============================================================================
=
;;Select XML;
;;==============================================================================
=
Func SelectOpenXML()
$xmlFile = FileOpenDialog("Open XML", @ScriptDir, "XML (*.XML)", 1)
If @error Then
MsgBox(4096, "Thermo Prime - File Open", "No file chosen, you must select a profile to be able to run the bot!")
Else
_FileWriteLog(@ScriptDir & $logname, "XML File Selected; " & $xmlFile)
If $test_pause = 0 Then
$oXSD = _XMLFileOpen ($xmlFile, "")
;If @error Or $oXSD < 1 Then
; MsgBox(0, "Error", "There was an error opening the file " & $xmlFile)
; $oXSD = 0
; _FileWriteLog(@ScriptDir & $logname,"Error Opning XMLFile - Ending Session")
; _FileWriteLog(@ScriptDir & $logname,":::End Of Session:::")
; Exit
;EndIf
$szXPath1 = "//DATAPACKET/METADATA/FIELDS"
$szXPath2 = "//DATAPACKET/ROWDATA"
$ARRAYX = _XMLGetNodeCount ($szXPath1 & "/*")
$ARRAYY = _XMLGetNodeCount ($szXPath2 & "/*")
$additional = $ARRAYY
;ReDim $ARRAY[$ARRAYX][$ARRAYY+1]
If $ARRAYY < 0 Then $ARRAYY = 0
TrayTip("Position Manager", $ARRAYY & " Nodes Loaded...", 5, 1)
$aNodeName1 = _XMLGetChildNodes ($szXPath1)
$aNodeName2 = _XMLGetChildNodes ($szXPath2)
If $aNodeName1 <> -1 Then
;LOOP THROUGH //DATAPACKET/METADATA/FIELDS
For $find = 1 To $aNodeName1[0]
_XMLGetAllAttrib ($szXPath1 & "/*" & '[' & $find & ']', $aAttrName1, $aAttrVal1)
;ADD TO ARRAY
;$ARRAY[$find-1][0] = $aAttrVal1[0]
;LOOP THROUGH //DATAPACKET/ROWDATA
;For $X=1 To $aNodeName2[0]
; _XMLGetAllAttrib($szXPath2 & "/*" & '[' & $X & ']',$aAttrName2,$aAttrVal2)
;;ONLY APPEND IF CURRENT FIELD NIMBER IS LESS THAN NUMBER OF ATTRIBS FOUND IN EACH ROW
; If $find <= Ubound($aAttrName2) Then
; $ARRAY[$find-1][$X] = $aAttrVal2[$find-1]
; EndIf
;Next
Next
Else
MsgBox(0, "Error:", "No nodes found for " & $szXPath1)
EndIf
;$arraynumber = ($ARRAY[2][$ARRAYY])
$array_x_number = 0;$arraynumber
$oXSD = 0
EndIf
Return
EndIf
Return
EndFunc ;==>SelectOpenXML
;;==============================================================================
=
;;Create New XML;
;;==============================================================================
=
Func NewProfile()
$newprfname = InputBox("Thermo Prime - New Profile", "Enter Profile Name.", "", "", 20, 20)
If @error Then
MsgBox(4096, "Thermo Prime - New Profile", "No Profile Created")
Else
$newprfname = ($newprfname & ".xml")
If FileExists($newprfname) Then
$answer1 = MsgBox(4, "Thermo Prime - New Profile", "A profile with that name; " & $newprfname & " does allready exists. Do you want to overwrite this file?")
If $answer1 = 6 Then
FileDelete($newprfname)
Else
Return
EndIf
EndIf
_FileCreate($newprfname)
$file = FileOpen($newprfname, 1)
FileWriteLine($newprfname, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>")
FileWriteLine($newprfname, "<DATAPACKET Version=""2.0"">")
FileWriteLine($newprfname, " <METADATA>")
FileWriteLine($newprfname, " <FIELDS>")
FileWriteLine($newprfname, " <FIELD attrname=""Continent"" fieldtype=""i4""/>")
FileWriteLine($newprfname, " <FIELD attrname=""Zone"" fieldtype=""i4""/>")
FileWriteLine($newprfname, " <FIELD attrname=""Nr"" fieldtype=""i4""/>")
FileWriteLine($newprfname, " <FIELD attrname=""posX"" fieldtype=""i4""/>")
FileWriteLine($newprfname, " <FIELD attrname=""posY"" fieldtype=""i4""/>")
FileWriteLine($newprfname, " <FIELD attrname=""Comment"" fieldtype=""string"" WIDTH=""20""/>")
FileWriteLine($newprfname, " </FIELDS>")
FileWriteLine($newprfname, " <PARAMS/>")
FileWriteLine($newprfname, " </METADATA>")
FileWriteLine($newprfname, " <ROWDATA>")
FileWriteLine($newprfname, " </ROWDATA>")
FileWriteLine($newprfname, " <ROWGHOST>")
FileWriteLine($newprfname, " </ROWGHOST>")
FileWriteLine($newprfname, "</DATAPACKET>")
FileClose($newprfname)
Return
EndIf
EndFunc ;==>NewProfile
;;==============================================================================
=
;;SaveDestination;
;;==============================================================================
=
Func SaveDestination()
If $test_pause = 0 Then
$toposX = $CurrentLocX
$toposY = $CurrentLocY
$oXSD = _XMLFileOpen ($xmlFile, "")
If @error Or $oXSD < 1 Then
MsgBox(0, "Error", "There was an error opening the file " & $xmlFile)
$oXSD = 0
_FileWriteLog(@ScriptDir & $logname, "Error Opening XMLFile- Ending Session")
_FileWriteLog(@ScriptDir & $logname, ":::End Of Session:::")
Exit
EndIf
$szXPath1 = "//DATAPACKET/METADATA/FIELDS"
$szXPath2 = "//DATAPACKET/ROWDATA"
$ARRAYX = _XMLGetNodeCount ($szXPath1 & "/*")
$ARRAYY = _XMLGetNodeCount ($szXPath2 & "/*")
If $ARRAYY = -1 Then
$ARRAYY = 0
EndIf
$additional = $ARRAYY
ReDim $ARRAY[$ARRAYX][$ARRAYY + 1]
TrayTip("Position Manager", $ARRAYY & " Nodes Loaded...", 5, 1)
$aNodeName1 = _XMLGetChildNodes ($szXPath1)
$aNodeName2 = _XMLGetChildNodes ($szXPath2)
If $aNodeName1 <> -2 Then
;LOOP THROUGH //DATAPACKET/METADATA/FIELDS
For $find = 1 To $aNodeName1[0]
_XMLGetAllAttrib ($szXPath1 & "/*" & '[' & $find & ']', $aAttrName1, $aAttrVal1)
;ADD TO ARRAY
$ARRAY[$find - 1][0] = $aAttrVal1[0]
;LOOP THROUGH //DATAPACKET/ROWDATA
If $ARRAYY > 0 Then
For $X = 1 To $aNodeName2[0]
_XMLGetAllAttrib ($szXPath2 & "/*" & '[' & $X & ']', $aAttrName2, $aAttrVal2)
;ONLY APPEND IF CURRENT FIELD NIMBER IS LESS THAN NUMBER OF ATTRIBS FOUND IN EACH ROW
If $find <= UBound($aAttrName2) Then
$ARRAY[$find - 1][$X] = $aAttrVal2[$find - 1]
EndIf
Next
EndIf
Next
Else
MsgBox(0, "Error:", "No nodes found for " & $szXPath1)
EndIf
$arraynumber = ($ARRAY[2][$ARRAYY])
$array_x_number = 0;$arraynumber
;MsgBox(0, "hej", $ARRAY[2][$ARRAYY]);[$additional])
$oXSD = 0
$currentZone = 1
$numb = $ARRAY[2][$additional]
$CHILDVALUES = _ArrayCreate($continentID, $currentZone, ($numb + 1), $toposX, $toposY, "For Testing")
_XMLCreateChildWAttr ("//DATAPACKET/ROWDATA[1]", "ROW", $CHILDATTRIBS, $CHILDVALUES);by node index
If $debug = 1 Then
Send("{Enter}")
Sleep(200)
ClipPut("Waypoint - " & ($numb + 1) & " pos: " & $toposX & "." & $toposY)
_FileWriteLog(@ScriptDir & $logname, "Waypoint - " & ($numb + 1) & ". Saves pos: " & $toposX & "." & $toposY)
Sleep(20)
Send("^v")
Sleep(200)
Send("{Enter}")
EndIf
EndIf
Return
EndFunc ;==>SaveDestination
;;==============================================================================
=
;;SaveDestinationGhost;
;;==============================================================================
=
Func SaveDestination_Ghost()
If $test_pause = 0 Then
$toposX = $CurrentLocX
$toposY = $CurrentLocY
$oXSD = _XMLFileOpen ($xmlFile, "")
If @error Or $oXSD < 1 Then
MsgBox(0, "Error", "There was an error opening the file " & $xmlFile)
$oXSD = 0
_FileWriteLog(@ScriptDir & $logname, "Error Opening XMLFile- Ending Session")
_FileWriteLog(@ScriptDir & $logname, ":::End Of Session:::")
Exit
EndIf
$szXPath1 = "//DATAPACKET/METADATA/FIELDS"
$szXPath2 = "//DATAPACKET/ROWGHOST"
$ARRAYX = _XMLGetNodeCount ($szXPath1 & "/*")
$ARRAYY = _XMLGetNodeCount ($szXPath2 & "/*")
If $ARRAYY = -1 Then
$ARRAYY = 0
EndIf
$additional = $ARRAYY
ReDim $ARRAY[$ARRAYX][$ARRAYY + 1]
TrayTip("Position Manager", $ARRAYY & " Nodes Loaded...", 5, 1)
$aNodeName1 = _XMLGetChildNodes ($szXPath1)
$aNodeName2 = _XMLGetChildNodes ($szXPath2)
If $aNodeName1 <> -2 Then
;LOOP THROUGH //DATAPACKET/METADATA/FIELDS
For $find = 1 To $aNodeName1[0]
_XMLGetAllAttrib ($szXPath1 & "/*" & '[' & $find & ']', $aAttrName1, $aAttrVal1)
;ADD TO ARRAY
$ARRAY[$find - 1][0] = $aAttrVal1[0]
;LOOP THROUGH //DATAPACKET/ROWDATA
If $ARRAYY > 0 Then
For $X = 1 To $aNodeName2[0]
_XMLGetAllAttrib ($szXPath2 & "/*" & '[' & $X & ']', $aAttrName2, $aAttrVal2)
;ONLY APPEND IF CURRENT FIELD NIMBER IS LESS THAN NUMBER OF ATTRIBS FOUND IN EACH ROW
If $find <= UBound($aAttrName2) Then
$ARRAY[$find - 1][$X] = $aAttrVal2[$find - 1]
EndIf
Next
EndIf
Next
Else
MsgBox(0, "Error:", "No nodes found for " & $szXPath1)
EndIf
$arraynumber = ($ARRAY[2][$ARRAYY])
$array_x_number = 0;$arraynumber
;MsgBox(0, "hej", $ARRAY[2][$ARRAYY]);[$additional])
$oXSD = 0
$currentZone = 1
$numb = $ARRAY[2][$additional]
$CHILDVALUES = _ArrayCreate($continentID, $currentZone, ($numb + 1), $toposX, $toposY, "For Testing")
_XMLCreateChildWAttr ("//DATAPACKET/ROWGHOST[1]", "ROWGHOST", $CHILDATTRIBS, $CHILDVALUES);by node index
If $debug = 1 Then
Send("{Enter}")
Sleep(200)
ClipPut("Waypoint - " & ($numb + 1) & " pos: " & $toposX & "." & $toposY)
_FileWriteLog(@ScriptDir & $logname, "Waypoint - " & ($numb + 1) & ". Saves pos: " & $toposX & "." & $toposY)
Sleep(20)
Send("^v")
Sleep(200)
Send("{Enter}")
EndIf
EndIf
Return
EndFunc ;==>SaveDestination_Ghost
;;==============================================================================
=
;;MouseMovePlus (thx to Oxin8 for this code)
;;==============================================================================
=
Func _MouseMovePlus($X, $Y, $absolute = 0)
Local $MOUSEEVENTF_MOVE = 1
Local $MOUSEEVENTF_ABSOLUTE = 32768
DllCall("user32.dll", "none", "mouse_event", _
"long", $MOUSEEVENTF_MOVE + ($absolute * $MOUSEEVENTF_ABSOLUTE), _
"long", $X, _
"long", $Y, _
"long", 0, _
"long", 0)
EndFunc ;==>_MouseMovePlus
;;==============================================================================
=
;;Terminate;
;;==============================================================================
=
Func terminate()
WinSetOnTop($App_Title, "", 0)
Send("{w}")
If $MouseDown = 1 Then
MouseUp("right")
EndIf
MsgBox(1, "Info", "Terminate")
_FileWriteLog(@ScriptDir & $logname, "User Termination - Ending Session")
_FileWriteLog(@ScriptDir & $logname, ":::End Of Session:::")
Exit 0
EndFunc ;==>terminate
First thank you for this bot, it seem to work unproblematic! I just got the Problem after I saved the waypoints there are some popups with "test 0 0", that follows an error says:
"Line -1: Error: Array variable has incorrect number of subscripts or subsrpit dimension range exceeded."
; About Project Thermo:
; A Memory Reading Automated Movement Script for World Of Warcraft.
; Developed to be fully indenpendet.
afaik, Malu05 is from the AutoIT Forums an this Bot does nothing else than
walking from waypoint to waypoint... atleast I thought that was his project.
This bot is written by Malu05 in Autoit and he provided the source code, this Thread is realy stupid, btw I already postet this "bot" because it helps alot if you want to write your own level bot.
wer lesen kann ist heut zutage KLAR in vorteil ..... "New Waypoint Bot Released"
Ach wie ich solche Hampel wie dich liebe!
Quote:
Originally Posted by Bot_interesierter
This bot is written by Malu05 in Autoit and he provided the source code, this Thread is realy stupid, btw I already postet this "bot" because it helps alot if you want to write your own level bot.
Und warum redet der dann von nem level Bot?
Aber da du eh nicht fähig bist ne richtige Antwort zu geben, spar dir deine sinnlosen Zeilen...
Und warum redet der dann von nem level Bot?
Aber da du eh nicht fähig bist ne richtige Antwort zu geben, spar dir deine sinnlosen Zeilen...
Weil das schonma der anfang von nem level bot wäre, der code is nicht fuer newbs die keine ahnung vom programmieren haben zb wenn du jetz einen bot coden wills , musst du dich um dem walk den der bot machen muss nichtmehr kuemmern
@ Markusschulter
Lehrn bitte Englisch, es ist wirklich unglaublich wieviele Menschen immer noch kein Englisch können, Englisch ist Die Sprache wenn es um Computer und Hacking geht, jeder, aber wirklich jeder sollte das inzwischen begriffen haben, lehrn englisch es ist wirklich nicht so schwer, die Gramatik ist leichter als die Deutsche und du kannst dich mit viel mehr Leuten verständigen...
Waypoint-System 04/19/2010 - Nostale - 10 Replies Ich habe mal angefangen n Waypointsystem zu machen und hier ist ein kleines Vid von, aber scheiß Quali wie imma xD
YouTube - Nostale Waypointsystem by expo_botter
Waypoint 12/29/2008 - Guild Wars - 4 Replies hab das Tool Waypointer runtergeladen und krieg da ja son echt schönen text mit : moveto(bblblbla) , hat einer die func von _moveto oder was muss ich machen um die daten zum "rumlaufen in Gw" zu nutzen?
(mir ist schon klar das man damit gut die Spawnpunkte bestimmen kann und dann laufen könnte aber ich würde gerne mit dem "moveto" das Ganze regeln).
würde mich über Antworten freuen
Autoit waypoint Bot 03/13/2008 - WoW Bots - 5 Replies brauche hilfe habe sonen travel bot habe ihn selber etwas umgeschrieben, also zb. er läuft die waypoints so ab er steht zb. auf 1550(Y),-525(X) und er muss eigentlich 1551(Y), -525(X) dann überprüft der das so und dann dreht er sich und will auf die richtigen coordinaten laufen und er läuft dann immer drüber und dann dauert das bis er weiter läuft wollte fragen wie man das überprüfen in dem code rausnimmt oder macht das wenn er 2 - 3 oder so höher oder niedriger auf der X und Y achse ist das er...
Glider/ Waypoint etc. 02/10/2006 - World of Warcraft - 3 Replies Hallo Leute ...
Ich habe folgendes Problem ... habe Glider, nur das Problem ist das ich ihn nicht richtig zum laufen bekomm.
Wenn ich z.b abgefertigte Waypoints nehme und auf Glide klick, sagt er mir das ich z.b 529 yards in die richtung gehen soll weil waypoint zu weit entfernt ist... Nun dann fang ich an in die Richtung zu gehen . drück dann wieder auf glide und aufeinmal sagt er mir 1200 yards in eine völlig andere Richtung ?!?!
Dann dacht ich mir, mach ich doch selber waypoints, aber...