Register for your free account! | Forgot your password?

You last visited: Today at 03:21

  • Please register to post and access all features, it's quick, easy and FREE!

 

New Waypoint Bot Released

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2008
Posts: 1
Received Thanks: 0
Exclamation New Waypoint Bot Released

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



abde007 is offline  
Old   #2
 
elite*gold: 0
Join Date: Jan 2006
Posts: 66
Received Thanks: 3
Heyhou,

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."

Dunno what to do now^^

DannyJoe


Dannyjoe is offline  
Old   #3
 
elite*gold: 0
Join Date: Aug 2007
Posts: 3
Received Thanks: 0
Very old - Thermo Prime has been available Forever...
real4ik is offline  
Old   #4
 
elite*gold: 0
Join Date: Dec 2006
Posts: 150
Received Thanks: 0
Quote:
; 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.


triris is offline  
Old   #5
 
elite*gold: 0
Join Date: May 2006
Posts: 6
Received Thanks: 0
Can someone please give information about how safe this is to use.
Kunstbanause is offline  
Old   #6
 
elite*gold: 0
Join Date: Jul 2007
Posts: 40
Received Thanks: 0
im very sceptical...
is this really safer then 80%?
any infos aboutthis bot ?
may som1 like to test it ?^^

so many virus detecting portals linked- mh..
Tavaro is offline  
Old   #7
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 185
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.
Bot_interesierter is offline  
Old   #8
 
elite*gold: 0
Join Date: May 2007
Posts: 2,304
Received Thanks: 83
omg is it this bot?:
tube.com/watch?v=8TZ1a4lqcEU

haha ;D ..

err ye.. will it be better than glider n all the others? :>

i dont think so!
nogipuH is offline  
Old   #9
 
elite*gold: 0
Join Date: Aug 2007
Posts: 3
Received Thanks: 0
Thanks, its working
real4ik is offline  
Old   #10
 
elite*gold: 0
Join Date: Nov 2007
Posts: 126
Received Thanks: 15
Könnte hier vielleicht bitte mal jemand ein paar Worte in deutsch verlieren wie das genau funktioniert?^^

Ist das jetzt ein level Bot, oder nur Waypoints ( was soll abgelaufen werden...? )
Markusschulter is offline  
Old   #11
 
elite*gold: 0
Join Date: Oct 2006
Posts: 180
Received Thanks: 5
Quote:
Originally Posted by Markusschulter View Post
Könnte hier vielleicht bitte mal jemand ein paar Worte in deutsch verlieren wie das genau funktioniert?^^

Ist das jetzt ein level Bot, oder nur Waypoints ( was soll abgelaufen werden...? )

wer lesen kann ist heut zutage KLAR in vorteil .....
"New Waypoint Bot Released"
TripleRR is offline  
Old   #12
 
elite*gold: 0
Join Date: Nov 2007
Posts: 126
Received Thanks: 15
Quote:
Originally Posted by TripleRR View Post
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 View Post
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...
Markusschulter is offline  
Old   #13
 
elite*gold: 0
Join Date: Oct 2006
Posts: 180
Received Thanks: 5
Quote:
Originally Posted by Markusschulter View Post
Ach wie ich solche Hampel wie dich liebe!

Danke ich kann dich auch gut leiden
TripleRR is offline  
Old   #14

 
elite*gold: 16
Join Date: Aug 2005
Posts: 256
Received Thanks: 23
Quote:
Originally Posted by Markusschulter View Post
Ach wie ich solche Hampel wie dich liebe!




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
smaLLmuck is offline  
Old   #15
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 185
@ 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...


Bot_interesierter is offline  
Thanks
1 User
Reply



« Previous Thread | Next Thread »

Similar Threads
Waypoint-System
Ich habe mal angefangen n Waypointsystem zu machen und hier ist ein kleines Vid von, aber scheiß Quali wie imma xD YouTube - Nostale...
10 Replies - Nostale
Waypoint
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...
4 Replies - Guild Wars
Autoit waypoint Bot
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...
5 Replies - WoW Bots
Glider/ Waypoint etc.
Hallo Leute ... Ich habe folgendes Problem ... habe Glider, nur das Problem ist das ich ihn nicht richtig zum laufen bekomm. Wenn ich z.b...
3 Replies - WoW Main - Discussions / Questions



All times are GMT +1. The time now is 03:21.


Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2018 elitepvpers All Rights Reserved.