Its not working because theirs a problem with the memory read functions. Im also having problems reading memory in dekaron with the nomadmemory UDF.. needs an update.
I simply took out all the functions that read memory..
Because of this, the bot wont run perfectly. It no longer can tell if you are
inside or outside the dungeon, so becareful.. use at your own risk..
I made the bot run on a timer. it goes in, and spams skills for 5 minutes, then it waits a minute and 15 seconds before trying to go back in.
Code:
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=D:\nemesis\Nemesis\dekaron.ico
#AutoIt3Wrapper_Outfile=C:\Users\MightyPaPi\Desktop\boty\src boty\Nowy folder\src\bot manager x86.exe
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Region
#EndRegion
#NoAutoIt3Execute
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <nomadmemory.au3>
AdlibRegister("Maps",2000)
func Maps()
_mapcheck()
EndFunc
$version = "1.5"
global $Form1
#Region ### START Koda GUI section ### Form=
Global $1, $map
$Form1 = GUICreate("Flybee Bot Manager", 617, 251, 192, 124)
$Button1 = GUICtrlCreateButton("44 - 90 Bot", 32, 184, 89, 41)
$Button2 = GUICtrlCreateButton("91 - 130 Bot", 152, 184, 89, 41)
$Button3 = GUICtrlCreateButton("131+ Bot", 272, 184, 89, 41)
$Button4 = GUICtrlCreateButton("Startup bypass", 464, 184, 137, 41)
$Button6 = GUICtrlCreateButton("Memory Check", 464, 10, 137, 41)
$Input1 = GUICtrlCreateInput("dekaron.exe", 464, 150, 137, 21)
$Input2 = GUICtrlCreateInput("50", 175, 150, 40, 21)
$Label1 = GUICtrlCreateLabel("Bot manager written by Paul from elitepvpers."&@CRLF&"version: "& $version &@CRLF&"Flybee - bypass that lets you inject hacks while being in game"&@CRLF&"Startup bypass - write the process name (dekaron.exe by default) "&@CRLF&"and push the button."&@CRLF&"Each bot will repeat itself 50 times so make sure you have enough tickets!"&@CRLF&@CRLF&"Thanks for using it!", 48, 24, 400, 121)
$label4 = GUICtrlCreateLabel("repeat me: ", 110, 152, 60, 17)
$Button5 = GUICtrlCreateButton("Flybee", 384, 184, 57, 41)
GUISetState(@SW_SHOW, $Form1)
#EndRegion ### END Koda GUI section ###
$dll = DllOpen("C:\Windows\System32\user32.dll")
Global Const $keys[8] = [0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x5b, 0x5c]
;0xa0 LSHIFT
;0xa1 RSHIFT
;0xa2 LCTRL
;0xa3 RCTRL
;0xa4 LALT
;0xa5 RALT
;0x5b LWIN
;0x5c RWIN
Func UnstickKeys()
For $vkvalue In $keys
DllCall($dll, "int", "keybd_event", "int", $vkvalue, "int", 0, "long", 2, "long", 0) ;Release each key
Next
EndFunc ;==>UnstickKeys
Func _ReduceMemory($i_PID = -1)
If $i_PID <> -1 Then
Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
Else
Local $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
EndIf
Return $ai_Return[0]
EndFunc ;==>_ReduceMemory
func _PCheck()
if processexists('dekaron.exe') = False Then
msgbox(0,"Error", "The game has crashed, bot will be closed now.",10)
;~ Exit
Shutdown(1)
EndIf
EndFunc
Func _WinGetInfoByProcess($vProcess, $nShow = -1)
If Not ProcessExists($vProcess) Then Return SetError(1, 0, 0) ; no matching process
Local $iWinList, $aWinList = WinList()
Local $iResult, $aResult[UBound($aWinList)][3]
Local $iProcessList, $aProcessList = ProcessList($vProcess)
If $aProcessList[0][0] = 0 Then Local $aProcessList[2][2] = [[1, 0],["", $vProcess]]
For $iWinList = 1 To $aWinList[0][0]
For $iProcessList = 1 To $aProcessList[0][0]
If WinGetProcess($aWinList[$iWinList][1]) = $aProcessList[$iProcessList][1] Then
If $nShow > -1 And Not $nShow = (2 = BitAND(WinGetState($aWinList[$iWinList][1]), 2)) Then ContinueLoop
$iResult += 1
$aResult[$iResult][0] = $aWinList[$iWinList][0]
$aResult[$iResult][1] = $aWinList[$iWinList][1]
$aResult[$iResult][2] = $aProcessList[$iProcessList][1]
EndIf
Next
Next
If $iResult = 0 Then Return SetError(2, 0, 0) ; no window found
ReDim $aResult[$iResult + 1][3]
$aResult[0][0] = $iResult
If $nShow = 2 Then Return SetError(0, $iResult, $aResult[1][1])
Return SetError(0, $iResult, $aResult)
EndFunc ;==>_WinGetInfoByProcess
HotKeySet("{HOME}", "_Pause")
Global $Paused
func _isinside($mapin, $coordX, $coordY)
local $PID, $input
$ppid = ProcessExists("dekaron.exe")
$handle = _memoryopen($ppid)
$mapc = _MemoryRead(0x00C9EE68, $handle)
$mapc = _MemoryRead($mapc + 0x04, $handle)
$mapc = _MemoryRead($mapc + 0xAC, $handle)
$PID = _WinGetInfoByProcess($ppid, 2)
if $mapc <> $mapin Then
$problems = 1
while 1
if $problems = 3 Then
msgbox(0,"Sir we has troubles", "The program could not enter by itself, please set it on the right position and restart it")
Exit
EndIf
Controlsend($PID,"","","{esc}")
sleep(200)
Controlsend($PID,"","","{esc}")
sleep(500)
Controlsend($PID,"","","{n}")
sleep(2000)
ControlClick($PID, "", "", "left", 1, $coordX, $coordY) ;167, 318
sleep(800)
controlclick($PID, "", "", "left", 1, 461, 448)
$problems = $problems+1
WEnd
EndIf
EndFunc
func _Pause()
$Paused = Not $Paused
While $Paused
Sleep(100)
WEnd
EndFunc
$bot = 1
$input = guictrlread($Input1)
$ppid = processexists($input)
$PID = _WinGetInfoByProcess($ppid, 2)
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Bot Info", 357, 110, 217, 175)
$Label1 = GUICtrlCreateLabel("Char name: Coming soon!", 16, 0, 132, 25)
$Label2 = GUICtrlCreateLabel("Current Map: ", 208, 0, 132, 25)
$Label3 = GUICtrlCreateLabel("Run Number: ", 16, 48, 132, 25)
$Label4 = GUICtrlCreateLabel("Server: ", 208, 48, 132, 25)
#EndRegion ### END Koda GUI section ###
func _mapcheck()
$proces_ID = ProcessExists($Input)
$handle = _MemoryOpen($proces_ID)
$map = _MemoryRead(0x00C9EE68, $handle)
$map = _MemoryRead($map + 0x04, $handle)
$map = _MemoryRead($map + 0xAC, $handle)
;~ _MemoryClose($handle)
if $map = 7 Then
$map = "Loa Castle"
elseif $map = 0 Then
$map = "Braiken Castle"
elseif $map = 3 Then
$map = "Denebe"
elseif $map = 5 Then
$map = "Heiharp"
elseif $map = 6 Then
$map = "Parca Temple"
elseif $map = 10 Then
$map = "Castor Cave"
elseif $map = 11 Then
$map = "Frozen Valley"
elseif $map = 12 Then
$map = "Crespo"
elseif $map = 13 Then
$map = "Draco Desert"
elseif $map = 14 Then
$map = "Norak Cave"
elseif $map = 15 Then
$map = "Castor Cave"
elseif $map = 17 Then
$map = "Requies Beach"
elseif $map = 18 Then
$map = "Avalon Island"
elseif $map = 19 Then
$map = "Python Castle"
elseif $map = 20 Then
$map = "Tomb"
elseif $map = 21 Then
$map = "Doomed Maze"
elseif $map = 23 Then
$map = "Siege Map"
elseif $map = 25 Then
$map = "Crespo C"
elseif $map = 26 Then
$map = "Aquarius"
elseif $map = 29 Then
$map = "Abyss indun"
elseif $map = 31 Then
$map = "Crevice A"
for $map = 39 to 44
$map = "Dead Front"
Next
elseif $map = 60 Then
$map = "Dead Front"
elseif $map = 45 Then
$map = "Chain of Fire"
elseif $map = 46 Then
$map = "Acquarai Ruins"
elseif $map = 47 Then
$map = "Space of Pilgrimage"
elseif $map = 49 Then
$map = "Cherubim's Nest"
elseif $map = 50 Then
$map = "Morse Yawalai"
for $map = 52 to 55
$map = "Karon's Transportship"
Next
for $map = 77 to 84
$map = "DK DeadFront"
Next
elseif $map = 88 Then
$map = "Worshipper's Shelter"
elseif $map = 89 Then
$map = "Tower F1"
elseif $map = 90 Then
$map = "Tower F2"
elseif $map = 91 Then
$map = "Tower F3"
elseif $map = 92 Then
$map = "Tower F4"
elseif $map = 93 Then
$map = "Tower F5"
elseif $map = 95 Then
$map = "Tower F1"
elseif $map = 96 Then
$map = "Tower F2"
elseif $map = 97 Then
$map = "Tower F3"
elseif $map = 98 Then
$map = "Tower F4"
elseif $map = 99 Then
$map = "Tower F5"
elseif $map = 150 Then
$map = "Ardeca"
elseif $map = 154 Then
$map = "Cartel [Infinite Battle]"
elseif $map = 153 Then
$map = "Secret Arena [Infinite Battle]"
elseif $map = 155 Then
$map = "Colosseum [Infinite Battle]"
ElseIf $map = 65535 Then
$map = "Char Screen"
EndIf
GUICtrlsetdata($Label2,"Current Map: " & $map)
$server = _MemoryRead(0x00C9EE68, $handle)
$server = _MemoryRead($server + 0x04, $handle)
$server = _MemoryRead($server + 0xA8, $handle)
;~ _MemoryClose($handle)
if $server = 0 Then
$server = "Kalibus/Divine Valley"
ElseIf $server = 1 Then
$server = "Asray/Arcadia"
ElseIf $server = 2 Then
$server = "Blades/Helicita"
ElseIf $server = 3 Then
$server = "Oread"
EndIf
GUICtrlsetdata($Label4,"Server: " & $server)
EndFunc
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
$ppid = processexists($input)
$PID = _WinGetInfoByProcess($ppid, 2)
GUISetState(@SW_HIDE, $Form1)
GUISetState(@SW_SHOW, $Form2)
$input2 = guictrlread($Input2)
bot("d", 183, 301, 13, 154, 1000, 2500)
Case $Button1
$ppid = processexists($input)
$PID = _WinGetInfoByProcess($ppid, 2)
GUISetState(@SW_HIDE, $Form1)
GUISetState(@SW_SHOW, $Form2)
$input2 = guictrlread($Input2)
bot("a", 167, 318, 14, 153, 1000)
Case $Button3
$ppid = processexists($input)
$PID = _WinGetInfoByProcess($ppid, 2)
GUISetState(@SW_HIDE, $Form1)
GUISetState(@SW_SHOW, $Form2)
$input2 = guictrlread($Input2)
bot("w", 178, 302, 10, 155, 1000)
Case $Button4
$input = guictrlread($Input1)
processwait($Input)
$PID123 = ProcessExists($Input)
$as = _memoryopen($PID123)
while 1
$1 = _MemoryRead("0x00401000", $as)
if $1 = 1408011093 Then
ExitLoop
else
ContinueLoop
EndIf
WEnd
_ProcessSuspend("xxd.xem")
_ProcessSuspend("xsherlock.xem")
_ProcessSuspend($Input)
msgbox(0,"bypass", "Push OK after you've loaded the hacks in CE. ")
_ProcessResume($Input)
Case $Button5
_ProcessSuspend("xxd.xem")
msgbox(0,"Flybee","Change your hacks now")
_ProcessResume("xxd.xem")
Case $Button6
MsgBox(0,"Sorry!","Temporarily Disabled")
EndSwitch
WEnd
func bot($direction, $coordX, $coordY, $mapindex, $mapin, $castsleep = 500,$normaldelay = 1000)
msgbox(0,"Infinite Battle Bot","The bot will start in 5 seconds", 5)
do
AutoItSetOption("sendkeydowndelay",150)
Controlsend($PID,"","","s")
AutoItSetOption("sendkeydowndelay",$normaldelay)
Controlsend($PID,"","",$direction)
Controlsend($PID,"","","{F2}")
sleep(1500)
autoitsetoption("sendkeydowndelay",5)
sleep(1000)
Controlsend($PID,"","","n")
sleep(1000)
Controlsend($PID,"","","n")
sleep(1000)
ControlClick($PID, "", "", "left", 1, $coordX, $coordY) ;167, 318
sleep(800)
controlclick($PID, "", "", "left", 1, 461, 448)
sleep(2000)
GUICtrlsetdata($Label3,"Current Run: " & $bot)
sleep(30000)
;_isinside($mapin, $coordX, $coordY)
$key = 0
$begin = TimerInit()
while 1
$dif = TimerDiff($begin)
Controlsend($PID,"","","u")
Controlsend($PID,"","","3")
controlsend($PID,"","","{space}")
UnstickKeys()
$key = $key+1
if $key = 10 Then
$key = 0
EndIf
_PCheck()
sleep($castsleep)
;$proces_ID = ProcessExists($Input)
;$handle = _MemoryOpen($proces_ID)
;$map = _MemoryRead(0x00C9EE68, $handle)
;$map = _MemoryRead($map + 0x04, $handle)
;$map = _MemoryRead($map + 0xAC, $handle)
;~ _MemoryClose($handle)
;if $map = $mapindex Then
;ExitLoop
;EndIf
If $dif > 305000 Then
ExitLoop
EndIf
WEnd
Sleep(75000); waiting to leave dungeon
sleep(5000)
_ReduceMemory($ppid)
$bot = $bot+1
until $bot = $input2
msgbox(0,'sir, its done!', 'the bot has finished its work, it will now shut the pc down', 10)
;Shutdown(1)
EndFunc
I have not tested this, so if any problems, just shoot me a pm.. atleast until we can find a way around the memory reading issues.