Eden Eternal Simple Bot

08/04/2011 15:05 eylhynn#256
guys can someone post wat to compile when i run the EEbot_1.1 au3_auto_ file it says "process doent exist" also EEMem au3_auto_file when i run it same result. are these the 2 files that needs to be compile? tnx...
08/04/2011 15:12 Satanais#257
Quote:
Originally Posted by eylhynn View Post
guys can someone post wat to compile when i run the EEbot_1.1 au3_auto_ file it says "process doent exist" also EEMem au3_auto_file when i run it same result. are these the 2 files that needs to be compile? tnx...
The .au3 file doesnt affect .exe
You need to code .au3 with AutoIt and then compile the file to create .exe

to avoid "Process Doesn't Exist", launch Eden Eternal before open execute bot.
08/04/2011 15:34 blinko#258
Quote:
Originally Posted by wind7826 View Post
I definitely need help on this. I download but the number keeps running without stop. Also, the bot didn't work at all on my computer (win 7x64) need help on this
Try using the code source from the earlier post from me. It's the most up to date. The OverEE is old..I just haven't started a new thread.
08/04/2011 16:45 eylhynn#259
ok tnx ill compile the EEBot_1.1 au3 into a .exe how about the EEMem au3 wat does it do?

Quote:
Originally Posted by Satanais View Post
The .au3 file doesnt affect .exe
You need to code .au3 with AutoIt and then compile the file to create .exe

to avoid "Process Doesn't Exist", launch Eden Eternal before open execute bot.
i got it tnx, but my bot keeps using hp and mp pots even i already set a number in the hp/mp box
08/04/2011 18:07 Satanais#260
Quote:
Originally Posted by eylhynn View Post
ok tnx ill compile the EEBot_1.1 au3 into a .exe how about the EEMem au3 wat does it do?



i got it tnx, but my bot keeps using hp and mp pots even i already set a number in the hp/mp box
I have no idea what EEMem does...something about memory reading of something from eden eternal...

EDIT.: well, about hp/mp pot spam, it shouldnt be happening.. you must set hp value to use hp...

edit2: sry about my english =p
08/04/2011 18:44 eylhynn#261
Quote:
Originally Posted by Satanais View Post
I have no idea what EEMem does...something about memory reading of something from eden eternal...

EDIT.: well, about hp/mp pot spam, it shouldnt be happening.. you must set hp value to use hp...

edit2: sry about my english =p
wer to set hp value at the source code or at the bot boxes?
08/04/2011 18:53 Satanais#262
Quote:
Originally Posted by eylhynn View Post
wer to set hp value at the source code or at the bot boxes?
set at the bot boxes..

edit.: if you change the source code, you MUST compile and create a NEW .exe

.exe file work by himself...
08/04/2011 19:36 eylhynn#263
Quote:
Originally Posted by Satanais View Post
set at the bot boxes..

edit.: if you change the source code, you MUST compile and create a NEW .exe

.exe file work by himself...
oh i see tnx man..

i hope blinko add more stuff like setting radius and a sound stuff when captha is coming..
08/04/2011 19:41 Satanais#264
Quote:
Originally Posted by eylhynn View Post
oh i see tnx man..

i hope blinko add more stuff like setting radius and a sound stuff when captha is coming..
I think radius is imposible to set, but we can set coordenate, since we can move via left click in WORLD MAP... just verify the current map and set waypoints to run...
08/04/2011 20:39 kachun#265
So what is the latest bot could someone post the link for me ^.^
08/05/2011 03:41 Jujutsu#266
i guess i dont have my settings right but i cant get it to detect my hp, alway says 0 so it just spams the pot key, halp!
08/05/2011 04:02 ClusterSam#267
here is a less spawn bot
don't forget EEMem.au3 to compile the exe, or else you'll get and error.
i also include a autosave option with your character's name.
i also added two new keys, f6 to turn on or off auto hp pots and f7 to turn on or off auto mp pots
i also added a delay for each skill, the delay is in seconds
auto pots also function without starting bot, you just need to check the box, or click f6 or f7
you can also set the bot to use 1, 2 or 3 skills
if you check the box saying On Top, bot will always stay on top of other windows
just have fun


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)
Opt("SendKeyDownDelay",50)
Opt("TrayIconHide",1)

global $running
Global $timer_skill1,$timer_skill2,$timer_skill3,$timer_hp,$timer_mp

$g_szVersion = "ee bot 1.1"
If WinExists($g_szVersion) Then 
	MsgBox(0,"Warning","Bot already open")
	Exit
EndIf
AutoItWinSetTitle($g_szVersion)

$profile=ReadEE("name")
HotKeySet("{F5}","RunMiniBot")
HotKeySet("{F6}","turnHP")
HotKeySet("{F7}","turnMP")

$Form1 = GUICreate("EE Auto-Pilot",201,219,IniRead("save.ini","position","main_x",192),IniRead("save.ini","position","main_x",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, 140, 17)
$Label2 = GUICtrlCreateLabel("Label2", 8, 40, 140, 17)
$Label3 = GUICtrlCreateLabel("Label2", 8, 56, 150, 17)

$OnTop = GUICtrlCreateCheckbox("On Top",150,24,55,17)
$hpCKB = GUICtrlCreateCheckbox("Pot if HP <=", 8, 80, 75, 17)
$Input1 = GUICtrlCreateInput(IniRead("save.ini",$profile,"hp",250), 94, 80, 50, 21)
GUICtrlSetLimit(-1, 5)
$Combo4 = GuiCtrlCreateCombo("",145,80,39,25)
GuiCtrlSetData($Combo4,$str,IniRead("save.ini",$profile,"Hp_key",1))

$mpCKB = GUICtrlCreateCheckbox("Pot if MP <=", 8, 104, 75, 17)
$Input2 = GUICtrlCreateInput(IniRead("save.ini",$profile,"mp",250), 94, 104, 50, 21)
GUICtrlSetLimit(-1, 5)
$Combo5 = GuiCtrlCreateCombo("",145,104,39,25)
GuiCtrlSetData($Combo5,$str,IniRead("save.ini",$profile,"Mp_key",1))


$s1CKB=GUICtrlCreateCheckbox("Skill 1:", 8, 144, 45, 17)
$s2CKB=GUICtrlCreateCheckbox("Skill 2:", 8, 168, 45, 17)
$s3CKB=GUICtrlCreateCheckbox("Skill 3:", 8, 193, 45, 17)

$s1delay=GUICtrlCreateInput(IniRead("save.ini",$profile,"s1d",1),107,144,25,21)
GUICtrlSetLimit(-1, 3)
$s2delay=GUICtrlCreateInput(IniRead("save.ini",$profile,"s2d",1),107,168,25,21)
GUICtrlSetLimit(-1, 3)
$s3delay=GUICtrlCreateInput(IniRead("save.ini",$profile,"s3d",1),107,192,25,21)
GUICtrlSetLimit(-1, 3)

$Combo1 = GUICtrlCreateCombo("", 68, 144, 39, 25)
GuiCtrlSetData($Combo1,$str,IniRead("save.ini",$profile,"s1_key",1))

$Combo2 = GUICtrlCreateCombo("", 68, 168, 39, 25)
GuiCtrlSetData($Combo2,$str,IniRead("save.ini",$profile,"s2_key",1))

$Combo3 = GUICtrlCreateCombo("", 68, 192, 39, 25)
GuiCtrlSetData($Combo3,$str,IniRead("save.ini",$profile,"s3_key",1))


GUISetState(@SW_SHOW)

GUICtrlSetOnEvent($OnTop,"ontop")

func CLOSE()
	_save_profile()
	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"))
EndFunc


func CheckHP()
		$hp = Int(ReadEE("current_hp"))
		$hp_pot = Int(GuiCtrlRead($Input1))

	if Int($hp) < Int($hp_pot)  And Int($hp)>0 And TimerDiff($timer_hp)>2000 Then
                WinActivate("Eden Eternal")
		Send(GuiCtrlRead($Combo4))
		$timer_hp=TimerInit()
	EndIf

EndFunc

func CheckMP()
		$mp = Int(ReadEE("current_mp"))
		$mp_pot = Int(GuiCtrlRead($Input2))

	if Int($mp) < Int($mp_pot) And Int($mp)>0 And TimerDiff($timer_mp)>2000 Then
                WinActivate("Eden Eternal")
		Send(GuiCtrlRead($Combo5))
		$timer_mp=TimerInit()
	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
        WinActivate("Eden Eternal")
	while $running
		UpdateInfo()
		CheckTarget()
		If GUICtrlRead($hpCKB)=1 Then CheckHP()
		If GUICtrlRead($mpCKB)=1 Then CheckMP()

		If GUICtrlRead($s1CKB)=1 And TimerDiff($timer_skill1)>(GUICtrlRead($s1delay)*1000) Then 
			Send(GuiCtrlRead($Combo1))
			$timer_skill1=TimerInit()
			Sleep(200)
		EndIf
		If GUICtrlRead($s2CKB)=1 And TimerDiff($timer_skill2)>(GUICtrlRead($s2delay)*1000) Then 
			Send(GuiCtrlRead($Combo2))
			$timer_skill2=TimerInit()
			Sleep(200)
		EndIf
		If GUICtrlRead($s3CKB)=1 And TimerDiff($timer_skill3)>(GUICtrlRead($s3delay)*1000) Then 
			Send(GuiCtrlRead($Combo3))
			$timer_skill3=TimerInit()
			Sleep(200)
		EndIf
		Sleep(50)
	Wend
EndFunc


While 1
	UpdateInfo()
	If ProcessExists("_Launcher.exe") Then
		If GUICtrlRead($hpCKB)=1 Then CheckHP()
		If GUICtrlRead($mpCKB)=1 Then CheckMP()
	Else
		MsgBox(0,"EE Bot Error","Eden Eternal is not running"&@CRLF&"Please RUN game first")
		_save_profile()
		Exit 0
	EndIf
	Sleep(100)
WEnd

Func ontop()
	If GUICtrlRead($OnTop)=1 Then
		WinSetOnTop("EE Auto-Pilot","",1)
	Else
		WinSetOnTop("EE Auto-Pilot","",0)
	EndIf
EndFunc

Func _save_profile()
	IniWrite("save.ini",$profile,"HpCKB",GUICtrlRead($hpCKB))
	IniWrite("save.ini",$profile,"MpCKB",GUICtrlRead($MpCKB))
	IniWrite("save.ini",$profile,"s1CKB",GUICtrlRead($s1CKB))
	IniWrite("save.ini",$profile,"s2CKB",GUICtrlRead($s2CKB))
	IniWrite("save.ini",$profile,"s3CKB",GUICtrlRead($s3CKB))
	IniWrite("save.ini",$profile,"s1d",GUICtrlRead($s1delay))
	IniWrite("save.ini",$profile,"s2d",GUICtrlRead($s2delay))
	IniWrite("save.ini",$profile,"s3d",GUICtrlRead($s3delay))
	IniWrite("save.ini",$profile,"hp",GUICtrlRead($Input1))
	IniWrite("save.ini",$profile,"mp",GUICtrlRead($Input2))
	IniWrite("save.ini",$profile,"Hp_key",GUICtrlRead($Combo4))
	IniWrite("save.ini",$profile,"Mp_key",GUICtrlRead($Combo5))
	IniWrite("save.ini",$profile,"s1_key",GUICtrlRead($Combo1))
	IniWrite("save.ini",$profile,"s2_key",GUICtrlRead($Combo2))
	IniWrite("save.ini",$profile,"s3_key",GUICtrlRead($Combo3))
	$pos=WinGetPos($Form1)
	IniWrite("save.ini","position","main_x",$pos[0])
	IniWrite("save.ini","position","main_y",$pos[1])
EndFunc

Func turnHP()
	If GUICtrlRead($hpCKB)=1 Then
		GUICtrlSetState($hpCKB,$GUI_UNCHECKED)
	Else
		GUICtrlSetState($hpCKB,$GUI_CHECKED)
	EndIf
EndFunc

Func turnMP()
	If GUICtrlRead($mpCKB)=1 Then
		GUICtrlSetState($mpCKB,$GUI_UNCHECKED)
	Else
		GUICtrlSetState($mpCKB,$GUI_CHECKED)
	EndIf
EndFunc
08/05/2011 06:04 kkkleader#268
It doesnt work for windows Vista, please help? T_T What can I do to make it work?
08/05/2011 06:34 blinko#269
Quote:
Originally Posted by Satanais View Post
I have no idea what EEMem does...something about memory reading of something from eden eternal...
You're Right ! When you make the call to the function ReadEE() to return for example the current hp ( ReadEE("current_hp") ) The EEMem must be in the includes file or the function will be undeclared. Or you can even combine all of it into one single au3 file and split areas with regions. I just find it easier to use a separate au3 file for orginizational purposes.

Quote:
Originally Posted by Satanais View Post
I think radius is imposible to set, but we can set coordenate, since we can move via left click in WORLD MAP... just verify the current map and set waypoints to run...
That is a good idea, we could even use user create .route files where you just put in coordinates and then it'll go in order of the created list. Great idea. Radius however..that I am not sure how to determine. I'm currently working on a zoom hack.

Quote:
Originally Posted by ClusterSam View Post
here is a less spawn bot
don't forget EEMem.au3 to compile the exe, or else you'll get and error.
i also include a autosave option with your character's name.
i also added two new keys, f6 to turn on or off auto hp pots and f7 to turn on or off auto mp pots
i also added a delay for each skill, the delay is in seconds
auto pots also function without starting bot, you just need to check the box, or click f6 or f7
you can also set the bot to use 1, 2 or 3 skills
if you check the box saying On Top, bot will always stay on top of other windows
just have fun


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)
Opt("SendKeyDownDelay",50)
Opt("TrayIconHide",1)

global $running
Global $timer_skill1,$timer_skill2,$timer_skill3,$timer_hp,$timer_mp

$g_szVersion = "ee bot 1.1"
If WinExists($g_szVersion) Then 
	MsgBox(0,"Warning","Bot already open")
	Exit
EndIf
AutoItWinSetTitle($g_szVersion)

$profile=ReadEE("name")
HotKeySet("{F5}","RunMiniBot")
HotKeySet("{F6}","turnHP")
HotKeySet("{F7}","turnMP")

$Form1 = GUICreate("EE Auto-Pilot",201,219,IniRead("save.ini","position","main_x",192),IniRead("save.ini","position","main_x",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, 140, 17)
$Label2 = GUICtrlCreateLabel("Label2", 8, 40, 140, 17)
$Label3 = GUICtrlCreateLabel("Label2", 8, 56, 150, 17)

$OnTop = GUICtrlCreateCheckbox("On Top",150,24,55,17)
$hpCKB = GUICtrlCreateCheckbox("Pot if HP <=", 8, 80, 75, 17)
$Input1 = GUICtrlCreateInput(IniRead("save.ini",$profile,"hp",250), 94, 80, 50, 21)
GUICtrlSetLimit(-1, 5)
$Combo4 = GuiCtrlCreateCombo("",145,80,39,25)
GuiCtrlSetData($Combo4,$str,IniRead("save.ini",$profile,"Hp_key",1))

$mpCKB = GUICtrlCreateCheckbox("Pot if MP <=", 8, 104, 75, 17)
$Input2 = GUICtrlCreateInput(IniRead("save.ini",$profile,"mp",250), 94, 104, 50, 21)
GUICtrlSetLimit(-1, 5)
$Combo5 = GuiCtrlCreateCombo("",145,104,39,25)
GuiCtrlSetData($Combo5,$str,IniRead("save.ini",$profile,"Mp_key",1))


$s1CKB=GUICtrlCreateCheckbox("Skill 1:", 8, 144, 45, 17)
$s2CKB=GUICtrlCreateCheckbox("Skill 2:", 8, 168, 45, 17)
$s3CKB=GUICtrlCreateCheckbox("Skill 3:", 8, 193, 45, 17)

$s1delay=GUICtrlCreateInput(IniRead("save.ini",$profile,"s1d",1),107,144,25,21)
GUICtrlSetLimit(-1, 3)
$s2delay=GUICtrlCreateInput(IniRead("save.ini",$profile,"s2d",1),107,168,25,21)
GUICtrlSetLimit(-1, 3)
$s3delay=GUICtrlCreateInput(IniRead("save.ini",$profile,"s3d",1),107,192,25,21)
GUICtrlSetLimit(-1, 3)

$Combo1 = GUICtrlCreateCombo("", 68, 144, 39, 25)
GuiCtrlSetData($Combo1,$str,IniRead("save.ini",$profile,"s1_key",1))

$Combo2 = GUICtrlCreateCombo("", 68, 168, 39, 25)
GuiCtrlSetData($Combo2,$str,IniRead("save.ini",$profile,"s2_key",1))

$Combo3 = GUICtrlCreateCombo("", 68, 192, 39, 25)
GuiCtrlSetData($Combo3,$str,IniRead("save.ini",$profile,"s3_key",1))


GUISetState(@SW_SHOW)

GUICtrlSetOnEvent($OnTop,"ontop")

func CLOSE()
	_save_profile()
	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"))
EndFunc


func CheckHP()
		$hp = Int(ReadEE("current_hp"))
		$hp_pot = Int(GuiCtrlRead($Input1))

	if Int($hp) < Int($hp_pot)  And Int($hp)>0 And TimerDiff($timer_hp)>2000 Then
                WinActivate("Eden Eternal")
		Send(GuiCtrlRead($Combo4))
		$timer_hp=TimerInit()
	EndIf

EndFunc

func CheckMP()
		$mp = Int(ReadEE("current_mp"))
		$mp_pot = Int(GuiCtrlRead($Input2))

	if Int($mp) < Int($mp_pot) And Int($mp)>0 And TimerDiff($timer_mp)>2000 Then
                WinActivate("Eden Eternal")
		Send(GuiCtrlRead($Combo5))
		$timer_mp=TimerInit()
	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
        WinActivate("Eden Eternal")
	while $running
		UpdateInfo()
		CheckTarget()
		If GUICtrlRead($hpCKB)=1 Then CheckHP()
		If GUICtrlRead($mpCKB)=1 Then CheckMP()

		If GUICtrlRead($s1CKB)=1 And TimerDiff($timer_skill1)>(GUICtrlRead($s1delay)*1000) Then 
			Send(GuiCtrlRead($Combo1))
			$timer_skill1=TimerInit()
			Sleep(200)
		EndIf
		If GUICtrlRead($s2CKB)=1 And TimerDiff($timer_skill2)>(GUICtrlRead($s2delay)*1000) Then 
			Send(GuiCtrlRead($Combo2))
			$timer_skill2=TimerInit()
			Sleep(200)
		EndIf
		If GUICtrlRead($s3CKB)=1 And TimerDiff($timer_skill3)>(GUICtrlRead($s3delay)*1000) Then 
			Send(GuiCtrlRead($Combo3))
			$timer_skill3=TimerInit()
			Sleep(200)
		EndIf
		Sleep(50)
	Wend
EndFunc


While 1
	UpdateInfo()
	If ProcessExists("_Launcher.exe") Then
		If GUICtrlRead($hpCKB)=1 Then CheckHP()
		If GUICtrlRead($mpCKB)=1 Then CheckMP()
	Else
		MsgBox(0,"EE Bot Error","Eden Eternal is not running"&@CRLF&"Please RUN game first")
		_save_profile()
		Exit 0
	EndIf
	Sleep(100)
WEnd

Func ontop()
	If GUICtrlRead($OnTop)=1 Then
		WinSetOnTop("EE Auto-Pilot","",1)
	Else
		WinSetOnTop("EE Auto-Pilot","",0)
	EndIf
EndFunc

Func _save_profile()
	IniWrite("save.ini",$profile,"HpCKB",GUICtrlRead($hpCKB))
	IniWrite("save.ini",$profile,"MpCKB",GUICtrlRead($MpCKB))
	IniWrite("save.ini",$profile,"s1CKB",GUICtrlRead($s1CKB))
	IniWrite("save.ini",$profile,"s2CKB",GUICtrlRead($s2CKB))
	IniWrite("save.ini",$profile,"s3CKB",GUICtrlRead($s3CKB))
	IniWrite("save.ini",$profile,"s1d",GUICtrlRead($s1delay))
	IniWrite("save.ini",$profile,"s2d",GUICtrlRead($s2delay))
	IniWrite("save.ini",$profile,"s3d",GUICtrlRead($s3delay))
	IniWrite("save.ini",$profile,"hp",GUICtrlRead($Input1))
	IniWrite("save.ini",$profile,"mp",GUICtrlRead($Input2))
	IniWrite("save.ini",$profile,"Hp_key",GUICtrlRead($Combo4))
	IniWrite("save.ini",$profile,"Mp_key",GUICtrlRead($Combo5))
	IniWrite("save.ini",$profile,"s1_key",GUICtrlRead($Combo1))
	IniWrite("save.ini",$profile,"s2_key",GUICtrlRead($Combo2))
	IniWrite("save.ini",$profile,"s3_key",GUICtrlRead($Combo3))
	$pos=WinGetPos($Form1)
	IniWrite("save.ini","position","main_x",$pos[0])
	IniWrite("save.ini","position","main_y",$pos[1])
EndFunc

Func turnHP()
	If GUICtrlRead($hpCKB)=1 Then
		GUICtrlSetState($hpCKB,$GUI_UNCHECKED)
	Else
		GUICtrlSetState($hpCKB,$GUI_CHECKED)
	EndIf
EndFunc

Func turnMP()
	If GUICtrlRead($mpCKB)=1 Then
		GUICtrlSetState($mpCKB,$GUI_UNCHECKED)
	Else
		GUICtrlSetState($mpCKB,$GUI_CHECKED)
	EndIf
EndFunc
I tested this out seeing as you added some delays. I was having trouble with those and just decided to say screw it. It's working fine however one thing I'm concerned about is the time it takes to target the next mob, and then continue to attack. This done the same thing when I tried it. Any ideas? Also great idea on using the ini files so save user set options :P

Quote:
Originally Posted by kkkleader View Post
It doesnt work for windows Vista, please help? T_T What can I do to make it work?
Make sure to have autoit installed if your using the source code. as for the exe file..it should work on any platform.

I been running some tests using Visual Basic. Visual Basic is great for running the GUI which displays player/character information. Meanwhile you can use your VB application to run the targeted "bot.exe" file ( for example) and then the hotkey for the bot would work the same, and no more glitch guis !
Anywho here is the AutoIt EEMem.au3

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!" & @crlf & "If however it DOES, then something is terribly wrong !")
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)

local $OFFSET_CLASSLVL = 0x20
local $ClassLVL = '0x' & Hex(GetBaseAddress() + $OFFSET_CLASSLVL)

local $OFFSET_BASELVL = 0x18
local $BaseLVL = '0x' & Hex(GetBaseAddress() + $OFFSET_BASELVL)

local $OFFSET_PDEF = 0x60
local $PlayerDEF = '0x' & Hex(GetBaseAddress() + $OFFSET_PDEF)

local $OFFSET_PCRIT = 0x118
local $PlayerPCRIT = '0x' & Hex(GetBaseAddress() + $OFFSET_PCRIT)

local $OFFSET_PSTR = 0x144
local $PlayerPSTR = '0x' & Hex(GetBaseAddress() + $OFFSET_PSTR)

local $OFFSET_PAGI = 0x14C
local $PlayerPAGI = '0x' & Hex(GetBaseAddress() + $OFFSET_PAGI)

local $OFFSET_PINT = 0x148
local $PlayerPINT = '0x' & Hex(GetBaseAddress() + $OFFSET_PINT)

		switch $type
			Case "player_str"
				$pHandle = _MemoryOpen($pid)
				$p_str = _MemoryRead($pHandle,$PlayerPSTR, "float")
				_MemoryClose($pHandle)
			return Int($p_str)

			Case "player_agi"
				$pHandle = _MemoryOpen($pid)
				$p_agi = _MemoryRead($pHandle,$PlayerPAGI, "float")
				_MemoryClose($pHandle)
			return Int($p_agi)

			Case "player_int"
				$pHandle = _MemoryOpen($pid)
				$p_int = _MemoryRead($pHandle,$PlayerPINT, "float")
				_MemoryClose($pHandle)
			return Int($p_int)

			Case "player_crit"
				$pHandle = _MemoryOpen($pid)
				$p_crit = _MemoryRead($pHandle,$PlayerPCRIT, "float")
				_MemoryClose($pHandle)
			return Int($p_crit)

			Case "player_def"
				$pHandle = _MemoryOpen($pid)
				$p_def = _MemoryRead($pHandle,$PlayerDEF, "dword")
				_MemoryClose($pHandle)
			return Int($p_def)

			case "base_lvl"
				$pHandle = _MemoryOpen($pid)
				$base_lvl = _MemoryRead($pHandle,$BaseLVL, "dword")
				_MemoryClose($pHandle)
			return Int($base_lvl)

			case "class_lvl"
				$pHandle = _MemoryOpen($pid)
				$class_lvl = _MemoryRead($pHandle,$ClassLVL, "dword")
				_MemoryClose($pHandle)
			return Int($class_lvl)

			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
I've also added a new Attachment for the Visual Basic Memory Reading.
Should anyone still use Visual Basic that is.

I've also got inside the zip folder the required user defined functions. As my GUI uses jFrames UDF and a ucGradiantContainer UDF, IsButton UDF and XP_ProgressBar UDF. The rest of the user controls aren't being used and some text is left over from past code. It's just a good example.
08/05/2011 12:12 ClusterSam#270
blinko do you know why nomadmemory.au3 doesn't work with eden eternal?

what program you use for visual basic?