Eden Eternal Simple Bot

07/29/2011 08:50 playbunyy#196
Guys I found a working bot, I got it from this page
[Only registered and activated users can see links. Click Here To Register...]

Now here is the thing i try it on all my computers it works in the windows 7 one but not on window vista. No virus either xD. Hope i helped am so happy.
07/29/2011 08:55 blinko#197
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 !!
07/29/2011 10:31 blackzwing#198
anyone know how to make bot don't run around?
make it stay still???
or set radius?
07/29/2011 11:28 blinko#199
Quote:
Originally Posted by blackzwing View Post
anyone know how to make bot don't run around?
make it stay still???
or set radius?
There is one solution I can think of which works. I use my Engineer or my Hunter and i stand in one spot :P

Setting a Radius will not be possible. Even if I were to find addresses for player_x and player_y coordinates. It'd be hard to determine when to have you run back to your original position,or even run a fixed route.The only thing i can recommend is use WPE Pro and catch the packets being sent to and from the client/server and find the packets that move the player, then you must create a function to send this packet back to the server from the client....DLL Hooking and all that is required Autoit alone simply cannot do this.
07/29/2011 11:33 JeDa253#200
it works great!!!

just have a problem with the capcha code... is there a way to turn off enter... because it gives me 3 fast wrong inputs

i dont mind manually putting the code in... but it does it so fast i cant even stop the program

thanks again
07/29/2011 11:40 blinko#201
Quote:
Originally Posted by JeDa253 View Post
it works great!!!

just have a problem with the capcha code... is there a way to turn off enter... because it gives me 3 fast wrong inputs

i dont mind manually putting the code in... but it does it so fast i cant even stop the program

thanks again
Whats happening is when the captcha pops up, the bot is sending keys via the Send() function. This is just spamming the text from the set skill hotkeys.
So if you are using keys 1,3,5 then that captcha box will be spammed with 1,3,5 over and over again and any other hotkey being sent, hp/mp monitoring will do this too and that's like a total of 5 keys being spammed.
Just use the hotkey to turn the bot off I have mine set to a default F5 hotkey that starts/stops the bot. Just use the hotkey to stop it and type in the captcha numbers is all you can do. I haven't seen any way around the damn thing.
07/29/2011 14:04 Derogatory#202
Great bot mate, can you give me somewhere to level at lvl 31? Bot compatible? I keep getting stuck behind shit, cheers
07/29/2011 14:10 kachun#203
I can't get the bot to start at all could someone help me out a little. I'm a bit of a newb at doing this xD
07/29/2011 14:48 Satanais#204
blinko, what program do you use to create this bot? I think we can work together but I need some help, I am new but im interessed!! I think I need the library + framework.. can yo help me?
07/29/2011 17:04 hambal#205
when i use the bot i cant type or anything when the captcha comes up
07/29/2011 17:58 blinko#206
Quote:
Originally Posted by Derogatory View Post
Great bot mate, can you give me somewhere to level at lvl 31? Bot compatible? I keep getting stuck behind shit, cheers
The Bot just does what it does lol. If you get stuck behind shit there is nothing I can think to do about it but try and find some area that is open with more mobs.

Quote:
Originally Posted by Satanais View Post
blinko, what program do you use to create this bot? I think we can work together but I need some help, I am new but im interessed!! I think I need the library + framework.. can yo help me?
I'm using AutoIT for the bot. The same as the one from the original topic.
I've just used updated memory values and changed a few things around.
You can get it at [Only registered and activated users can see links. Click Here To Register...] after you install the files you can also download the Scite editor that allows us to run and debug our applications/macros made. Other than that I use Cheat Engine to find memory addresses and pointers, and my windows calculator setup for use with Programming to add/subtract hex values.

Here are some direct links for you.
[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
07/29/2011 20:02 bugness#207
So this is a .rar file? Do i need some special program to open/run this bot? All the programs i have that can read .rar files just opens a blankness >.>
07/29/2011 20:09 Satanais#208
Quote:
Originally Posted by bugness View Post
So this is a .rar file? Do i need some special program to open/run this bot? All the programs i have that can read .rar files just opens a blankness >.>
You need AutoIt do compile .au3 files and make .exe
07/29/2011 21:16 bugness#209
I've been up for 36 hours lol i cant figure this out... Is there an option in the program that im not seeing or what? Theres no readme file.......
07/29/2011 22:56 Satanais#210
download autoit, run "Compile Script to .exe", picking EEBot.au3

have fun