Working on an update will post it shortly just running some tests now..everyhting so far seems to be working just fine.
And about the player's Radius...I cannot control how much u run around ....so just get a spot where mobs are in abundance..or use a ranged class :P
****EDIT****
Here is the new Au3 Files...I'm assuming everyone can compile/run these script files themselves, as I will not be posting compiled executables (.exes).
There's is so much to add and so much to change around..it's not worth compiling anything for anyone to use as if it were the real deal..
Bypassing the capcha code will not be happening anytime soon unless you can magically catch the packet being sent from the server somehow decrypt it..and go from there..which is beyond me at this point lol.
Well here it is...
EEBot_v1.1.au3 - you may need to edit the Hotkey to start/stop the bot and the sleep time for the UpdateInfo. Without using any delays the text flashes uber fast on the GUI which in my opinion is annoying lol. But the rest of it seems to be working fine ! F5 is default hotkey to enable/disable this bot.
Code:
#include 'EEMem.au3'
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIComboBoxEx.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
opt("GuiOnEventMode",1)
global $running
HotKeySet("{F5}","RunMiniBot")
$Form1 = GUICreate("EE Auto-Pilot", 201, 219, 192, 124)
GuiSetOnEvent($GUI_EVENT_CLOSE,"CLOSE")
$str = "1|2|3|4|5|6|7|8|9|0"
$lbl_name = GUICtrlCreateLabel("Name", 8, 8, 150, 17)
$Label1 = GUICtrlCreateLabel("Label1", 8, 24, 150, 17)
$Label2 = GUICtrlCreateLabel("Label2", 8, 40, 150, 17)
$Label3 = GUICtrlCreateLabel("Label2", 8, 56, 150, 17)
$Label4 = GUICtrlCreateLabel("Pot if HP <=", 8, 80, 70, 17)
$Input1 = GUICtrlCreateInput("250", 84, 80, 50, 21)
$Combo4 = GuiCtrlCreateCombo("",135,80,49,25)
GuiCtrlSetData($Combo4,$str)
$Label5 = GUICtrlCreateLabel("Pot if MP <=", 8, 104, 62, 17)
$Input2 = GUICtrlCreateInput("250", 84, 104, 50, 21)
$Combo5 = GuiCtrlCreateCombo("",135,104,49,25)
GuiCtrlSetData($Combo5,$str)
$Label6 = GUICtrlCreateLabel("Skill 1:", 8, 144, 35, 17)
$Label7 = GUICtrlCreateLabel("Skill 2:", 8, 168, 35, 17)
$Label8 = GUICtrlCreateLabel("Skill 3:", 8, 193, 35, 17)
$Combo1 = GUICtrlCreateCombo("", 48, 144, 49, 25)
;skill 1 key
GuiCtrlSetData($Combo1,$str)
$Combo2 = GUICtrlCreateCombo("", 48, 168, 49, 25)
GuiCtrlSetData($Combo2,$str)
$Combo3 = GUICtrlCreateCombo("", 48, 192, 49, 25)
GuiCtrlSetData($Combo3,$str)
GUISetState(@SW_SHOW)
func CLOSE()
exit 0
EndFunc
func UpdateInfo()
GuiCtrlSetData($Label1,Format(ReadEE("current_hp"),",",3) & " / " & Format(ReadEE("max_hp"),",",3) & " : " & Round(Int(ReadEE("current_hp")) / Int(ReadEE("max_hp")) * 100,2) & " %")
GuiCtrlSetData($Label2,Format(ReadEE("current_mp"),",",3) & " / " & Format(ReadEE("max_mp"),",",3) & " : " & Round(Int(ReadEE("current_mp")) / Int(ReadEE("max_mp")) * 100,2) & " %")
GuiCtrlSetData($Label3,"Player Target: " & ReadEE("player_target"))
GuiCtrlSetData($lbl_name,"Player Name: " & ReadEE("name"))
Sleep(300)
EndFunc
func CheckHP()
$hp = Int(ReadEE("current_hp"))
$hp_pot = Int(GuiCtrlRead($Input1))
if Int($hp) < Int($hp_pot) Then
$key4 = Int(GuiCtrlRead($Combo4))
Send($key4,0)
EndIf
EndFunc
func CheckMP()
$mp = Int(ReadEE("current_mp"))
$mp_pot = Int(GuiCtrlRead($Input2))
if Int($mp) < Int($mp_pot) Then
$key5 = Int(GuiCtrlRead($Combo5))
Send($key5,0)
EndIf
EndFunc
Func CheckTarget()
$target = Int(ReadEE("player_target"))
if Int($target) == 0 Then
Send("{TAB}",0)
EndIf
Return Int(ReadEE("player_target"))
EndFunc
func RunMiniBot()
$running = NOT $running
while $running
UpdateInfo()
CheckTarget()
CheckHP()
CheckMP()
$key1 = Int(GuiCtrlRead($Combo1))
Send($key1,0)
$key2 = Int(GuiCtrlRead($Combo2))
Send($key2,0)
$key3 = Int(GuiCtrlRead($Combo3))
Send($key3,0)
Wend
EndFunc
While 1
UpdateInfo()
Sleep(600)
WEnd
EEMem.au3 - same as before only _MEMREAD was changed to _MemoryRead, as well as the rest of the functions because the function declared is a duplicate while using the #include <GUIComboBoxEx.au3>.
*Edit*
New Addresses added for EXP, Max EXP, Class EXP, Class Max EXP.
**EDIT**
Current Class EXP and EXP work..the Max values have changed as I had the wrong pointers setup my apologies.
Code:
#include-once
#Region======================================MEMREAD/WRITE/OPEN/CLOSE================================================================
Func _MemoryOpen($DWPROCID, $DWACCESS = 0x1F0FFF, $DWINHERITHANDLE = 1)
Local $DWHANDLES[2] = [DllOpen("kernel32.dll")]
If @error Then
SetError(2)
Return 0
EndIf
Local $DWOPENPROC = DllCall($DWHANDLES[0], "int", "OpenProcess", "int", $DWACCESS, "int", $DWINHERITHANDLE, "int", $DWPROCID)
If @error Then
SetError(3)
Return 0
EndIf
$DWHANDLES[1] = $DWOPENPROC[0]
Return $DWHANDLES
EndFunc
Func _MemoryRead($DWHANDLES, $DWADDRESS, $DWTYPE = "dword")
If Not IsArray($DWHANDLES) Then
SetError(1)
Return 0
EndIf
Local $DWBUFFER = DllStructCreate($DWTYPE)
If @error Then
SetError(@error + 1)
Return 0
EndIf
DllCall($DWHANDLES[0], "int", "ReadProcessMemory", "int", $DWHANDLES[1], "int", $DWADDRESS, "ptr", DllStructGetPtr($DWBUFFER), "int", DllStructGetSize($DWBUFFER), "int", "")
If Not @error Then
Local $DWVALUE = DllStructGetData($DWBUFFER, 1)
Return $DWVALUE
Else
SetError(6)
Return 0
EndIf
EndFunc
Func _MemoryWrite($DWHANDLES, $DWADDRESS, $DWDATA, $DWTYPE = "dword")
If Not IsArray($DWHANDLES) Then
SetError(1)
Return 0
EndIf
Local $DWBUFFER = DllStructCreate($DWTYPE)
If @error Then
SetError(@error + 1)
Return 0
Else
DllStructSetData($DWBUFFER, 1, $DWDATA)
If @error Then
SetError(6)
Return 0
EndIf
EndIf
DllCall($DWHANDLES[0], "int", "WriteProcessMemory", "int", $DWHANDLES[1], "int", $DWADDRESS, "ptr", DllStructGetPtr($DWBUFFER), "int", DllStructGetSize($DWBUFFER), "int", "")
If Not @error Then
Return 1
Else
SetError(7)
Return 0
EndIf
EndFunc
Func _MemoryClose($DWHANDLES)
If Not IsArray($DWHANDLES) Then
SetError(1)
Return 0
EndIf
DllCall($DWHANDLES[0], "int", "CloseHandle", "int", $DWHANDLES[1])
If Not @error Then
DllClose($DWHANDLES[0])
Return 1
Else
DllClose($DWHANDLES[0])
SetError(2)
Return 0
EndIf
EndFunc
#EndRegion===========================================================================================================================
#Region======================================MISC FUNCTIONS==========================================================================
;~ Function-'Format'-Description-------------------------------------------------------
;~ Format Function Created by Blinko
;~ Description: Format( $value )
;~ This was made to imitate Visual Basic's Format Function.
;~ Where (Example Text1 = Format( Text1, "###,###" )
;~ If Text1.text = 1000
;~ then Format(Text1, "###,###") = 1,000
;~ However AutoIt doesnt have a function for this. So i made one up.
;~
;~ Usage: Format($expression, $separator, $nSize)
;~ As the Above Example u want a string like 100000 to read as 100,000
;~ You simply say for example Format('100000' , ',' , 3)
;~ Usage Example: GuiCtrlSetData( $Label, Format(GetPlayerGold(), ',' , 3) )
;~ You may also use "," instead of ',' it does not matter :P
;~ ---------------------------------------------------------------------------------------
Func Format($expression, $separator, $nSize)
Local $split = StringSplit($expression, "")
Local $newText = ""
Local $counter = 0
If StringLen($expression) > $nSize Then
For $i = $split[0] To 1 Step -1
If $counter = $nSize Then
$newText = $split[$i] & $separator & $newText
$counter = 0
Else
$newText = $split[$i] & $newText
EndIf
$counter +=1
Next
Else
$expression = $expression
Return $expression
EndIf
Return $newText
EndFunc
#EndRegion===========================================================================================================================
Global $pid = ProcessExists("_Launcher.exe")
If $pid = 0 then
MsgBox(0,"","Process Doesn't Exist")
exit 0
EndIf
func GetBaseAddress()
Global $app_base = 0x00C71E98
Global $app_base_offset = 0xC
global $pHandle = _MemoryOpen($pid)
global $base = _MemoryRead($pHandle, $app_base)
global $ptr = '0x' & Hex($base + $app_base_offset)
global $base_address = _MemoryRead($pHandle,$ptr)
_MemoryClose($pHandle)
return $base_address
EndFunc
func ReadEE($type)
local $OFFSET_CurHP = 0x4
local $CurHP = '0x' & Hex(GetBaseAddress() + $OFFSET_CurHP)
local $OFFSET_MaxHP = 0x48
local $MaxHP = '0x' & Hex(GetBaseAddress() + $OFFSET_MaxHP)
local $OFFSET_CurMP = 0x8
local $CurMP = '0x' & Hex(GetBaseAddress() + $OFFSET_CurMP)
local $OFFSET_MaxMP = 0x4C
local $MaxMP = '0x' & Hex(GetBaseAddress() + $OFFSET_MaxMP)
local $pname = 0x00C71D84
local $ptarget = 0x00C71EAC
local $OFFSET_TARGET = 0x08
local $OFFSET_EXP = 0x14
local $CurEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_EXP)
local $OFFSET_MAXEXP = 0x64B0A80
local $MaxEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_MAXEXP)
local $OFFSET_CEXP = 0x1C
local $CurCEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_CEXP)
local $OFFSET_MAXCEXP = 0x64B0A88
local $MaxCEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_MAXCEXP)
switch $type
case "current_cexp"
$pHandle = _MemoryOpen($pid)
$cur_cexp = _MemoryRead($pHandle,$CurCEXP, "dword")
_MemoryClose($pHandle)
return Int($cur_cexp)
case "max_cexp"
$pHandle = _MemoryOpen($pid)
$max_cexp = _MemoryRead($pHandle,$MaxCEXP, "dword")
_MemoryClose($pHandle)
return Int($max_cexp)
case "current_exp"
$pHandle = _MemoryOpen($pid)
$cur_exp = _MemoryRead($pHandle,$CurEXP, "dword")
_MemoryClose($pHandle)
return Int($cur_exp)
case "max_exp"
$pHandle = _MemoryOpen($pid)
$max_exp = _MemoryRead($pHandle,$MaxEXP, "dword")
_MemoryClose($pHandle)
return Int($max_exp)
case "player_target"
$pHandle = _MemoryOpen($pid)
$targetbaseADDR = _MemoryRead($phandle,$ptarget,"dword")
$target = '0x' & Hex($targetbaseADDR + $OFFSET_TARGET)
$targeted = '0x' & Hex($target)
$target = _MemoryRead($pHandle,$targeted, "dword")
Return Int($target)
case "name"
$pHandle = _MemoryOpen($pid)
$name = _MemoryRead($pHandle,$pname, "char[16]")
_MemoryClose($pHandle)
return String($name)
case "current_hp"
$pHandle = _MemoryOpen($pid)
$cur_hp = _MemoryRead($pHandle,$CurHP)
_MemoryClose($pHandle)
return Int($cur_hp)
case "max_hp"
$pHandle = _MemoryOpen($pid)
$max_hp = _MemoryRead($pHandle,$MaxHP)
_MemoryClose($pHandle)
return Int($max_hp)
case "current_mp"
$pHandle = _MemoryOpen($pid)
$cur_mp = _MemoryRead($pHandle,$CurMP)
_MemoryClose($pHandle)
return Int($cur_mp)
case "max_mp"
$pHandle = _MemoryOpen($pid)
$max_mp = _MemoryRead($pHandle,$MaxMP)
_MemoryClose($pHandle)
return Int($max_mp)
EndSwitch
EndFunc
Again I tested this and to those who got the last one working, then this some should be even better in terms of functioning properly..It's a fast non-stop mob killing machine from what I've seen so far :P
Enjoi !!