There is a zoom hack already posted earlier within this thread, I think page 27 maybe if not its page 28..one of them !
Quote:
Originally Posted by Verlo
when u hit vl 45! Gold Farming is CAKE! =] i got over 3k Gold. im vl 50. Just Do Veninfang (Bard) Runs & Take a person with you for 5g a run. =] that way they get exp too..
And I've offered to pay a guy to run me but he told me I must be lvl45 to even pay for a run...but if I am bringing someone..I must be a bard? This confused me a bit.
Well, you have to be lvl 45 to enter the dungeon that everyone farms gold in. If you're trading runs, the you have to be a bard that is able to do a venin run. Otherwise, you can be any class and just pay someone to power lvl you.
Its a very simple project! I need to learn more, to do great things...
Thanks...
CODE, OverEE v1.3:
Code:
#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=icon.ico
GUISetIcon("icon.ico")
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Obfuscator_Off
#include <File.au3>
#include <GuiEdit.au3>
#include <GuiStatusBar.au3>
#include <GuiConstantsEx.au3>
#include <GUIButton.au3>
#include <GUIToolbar.au3>
#include <ProgressConstants.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <NomadMemory.au3>
#include <Array.au3>
#Obfuscator_On
;********************************************************************************
;* Options *
;********************************************************************************
Opt("GUICloseOnESC", 0)
Opt("GUIOnEventMode", 1)
Opt("TrayAutoPause", 0)
Opt("TrayMenuMode", 1)
;********************************************************************************
;* Global Software Control Information *
;********************************************************************************
; Declare Process Variables
Global $APP_BASE_ADDRESS = 0x00C62E70, $TARGET_BASE_ADDRESS = 0x005CF71F
Global $APP_TITLE = "Eden Eternal", $KERNEL32 = DllOpen('kernel32.dll')
Global $PROCESS_ID = WinGetProcess($APP_TITLE)
Global $PROCESS_INFORMATION = _MemoryOpen($PROCESS_ID)
Global $APP_PATH = _ProcessIdPath($PROCESS_ID)
Global $ANSWER = ""
While (@error)
$ANSWER = InputBox("Não foi possível encontrar o EE!", "Não foi possível encontrar o EE! Digite o titulo de seu EE no campo abaixo e clique em Ok.", "Eden Eternal", "", -1, -1, 0, 0)
If $ANSWER = "" Then
Exit
EndIf
Global $APP_TITLE = $ANSWER
Global $PROCESS_ID = WinGetProcess($APP_TITLE), $PROCESS_INFORMATION = _MemoryOpen($PROCESS_ID), $APP_PATH = _ProcessIdPath($PROCESS_ID)
WEnd
; Declare Menu Bar Variables
$OVERBOT = GUICreate("OverEE v1.3", 230, 255, 0, 0)
$LABEL_HP_STATUS = GUICtrlCreateLabel("", 15, 14, 130, 15)
GUICtrlSetColor(-1, 0x000000)
GUICtrlCreateLabel("Use at: ", 110, 14, 35, 15)
GUICtrlSetColor(-1, 0x000000)
GUICtrlCreateLabel("Simple bot developed by Lyax @ EE", 30, 230, 240, 15)
GUICtrlSetColor(-1, 0x000000)
$LABEL_MP_STATUS = GUICtrlCreateLabel("", 15, 48, 130, 15)
GUICtrlSetColor(-1, 0x000000)
GUICtrlCreateLabel("Use at: ", 110, 48, 35, 15)
GUICtrlSetColor(-1, 0x000000)
$bt_close = GUICtrlCreateButton("Exit", 130, 195)
GUICtrlSetOnEvent($bt_close, "bt_close_Click")
Global $close = 1
$bt_battle = GUICtrlCreateButton("Battle Start", 50, 195)
GUICtrlSetOnEvent($bt_battle, "bt_battle_Click")
GUICtrlCreateLabel("HP Key: ", 15, 78, 40, 15)
GUICtrlSetColor(-1, 0x000000)
GUICtrlCreateLabel("MP Key: ", 110, 78, 40, 15)
GUICtrlSetColor(-1, 0x000000)
GUICtrlCreateLabel("Skill Key: ", 105, 108, 45, 15)
GUICtrlSetColor(-1, 0x000000)
GUICtrlCreateLabel("Skill Key: ", 105, 138, 45, 15)
GUICtrlSetColor(-1, 0x000000)
GUICtrlCreateLabel("Skill Key: ", 105, 168, 45, 15)
GUICtrlSetColor(-1, 0x000000)
Global $SKILL_CT = 3, $IPT_KEY_SKILL[$SKILL_CT]
$IPT_KEY_SKILL[0] = GUICtrlCreateInput("", 161, 108, 30, 15)
GUICtrlSetData($IPT_KEY_SKILL[0], "1")
$IPT_KEY_SKILL[1] = GUICtrlCreateInput("", 161, 138, 30, 15)
GUICtrlSetData($IPT_KEY_SKILL[1], "1")
$IPT_KEY_SKILL[2] = GUICtrlCreateInput("", 161, 168, 30, 15)
GUICtrlSetData($IPT_KEY_SKILL[2], "1")
$LABEL_TARGET_STATUS = GUICtrlCreateLabel("Stopped", 15, 108, 80, 15)
GUICtrlSetColor(-1, 0x000000)
$IPT_KEY_HP = GUICtrlCreateInput("", 66, 78, 30, 15)
GUICtrlSetData($IPT_KEY_HP, "2")
$IPT_KEY_MP = GUICtrlCreateInput("", 161, 78, 30, 15)
GUICtrlSetData($IPT_KEY_MP, "3")
$IPT_HP = GUICtrlCreateInput("", 150, 14, 60, 15)
GUICtrlSetData($IPT_HP, "0")
$IPT_MP = GUICtrlCreateInput("", 150, 48, 60, 15)
GUICtrlSetData($IPT_MP, "0")
GuiSetState(@SW_SHOW)
Global $OFFSET_HP[3]
$OFFSET_HP[0] = 0
$OFFSET_HP[1] = 0x04
$OFFSET_HP[2] = 0x0C
Global $OFFSET_MP[3]
$OFFSET_MP[0] = 0
$OFFSET_MP[1] = 0x08
$OFFSET_MP[2] = 0x0C
Global $OFFSET_TARGET[2]
$OFFSET_TARGET[0] = 0
$OFFSET_TARGET[1] = 0x08
Global $baseADDR = _MemoryRead($APP_BASE_ADDRESS, $PROCESS_INFORMATION)
Global $HANDLE = WinGetHandle("Eden Eternal")
Global $HANDLE = ControlGetHandle($APP_TITLE, "", "")
$LVL1 = '0x' & Hex($baseADDR + $OFFSET_HP[2])
$baseADDR = _MemoryRead($LVL1, $PROCESS_INFORMATION);
;CHAR INFO
Global $ADDR_HP = '0x' & Hex($baseADDR + $OFFSET_HP[1])
Global $ADDR_MP = '0x' & Hex($baseADDR + $OFFSET_MP[1])
;TARGET
$baseADDR = _MemoryRead($TARGET_BASE_ADDRESS, $PROCESS_INFORMATION)
$LVL1 = '0x' & Hex($baseADDR + $OFFSET_TARGET[1])
Global $ADDR_TARGETED = '0x' & Hex($LVL1)
Global $BATTLE_STARTED = 0, $TARGETED = 0, $ATK_TIME = 0, $ATK_MAX_TIME = 15000
;sgBox(0, "ae", ":" & _MemoryRead($ADDR_TARGETED, $PROCESS_INFORMATION))
;Exit
Global $HEAL_HP = 0, $HEAL_MP = 0
Global $HP, $MP
GUICtrlSetData($IPT_HP, Int(_MemoryRead($ADDR_HP, $PROCESS_INFORMATION)/2))
;********************************************************************************
;* Main Loop *
;********************************************************************************
;WinActivate($APP_TITLE)
While ($close) ;==>Main Loop
checkStatus()
;_SendMessage($HANDLE, 256, 112);
;_SendMessage($HANDLE, 0x4d, 0);
;_PostMessage($HANDLE, 256, 49, 0x20001);
;_PostMessage($HANDLE, 257, 49, 0x20001);
;_SendMessage($HANDLE, 256, KEYCODE("{1}"))
;sControlSend($HANDLE, "", "", "{1}")
if($BATTLE_STARTED = 1) Then
controlBattle()
EndIf
Sleep(200)
WEnd ;==>Main Loop
Func controlBattle()
selectTarget()
attackTarget()
EndFunc
Func attackTarget()
GUICtrlSetData($LABEL_TARGET_STATUS, "Attacking target")
$ATK_TIME = 0
$SKILL = 0
$SKILL_TIME = 0
while($TARGETED > 0 And $BATTLE_STARTED = 1 And $ATK_TIME <= $ATK_MAX_TIME)
$ATK_TIME += 200
$SKILL_TIME += 200
Send("{" & GUICtrlRead($IPT_KEY_SKILL[$SKILL]) & "}")
checkStatus()
Sleep(100)
if($SKILL_TIME >= 400) Then
$SKILL += 1
if($SKILL_CT = $SKILL) Then
$SKILL = 0
EndIf
EndIf
Sleep(100)
$TARGETED = _MemoryRead($ADDR_TARGETED, $PROCESS_INFORMATION)
WEnd
$TARGETED = 0
EndFunc
Func selectTarget()
GUICtrlSetData($LABEL_TARGET_STATUS, "Looking target")
while($TARGETED = 0 And $BATTLE_STARTED = 1)
checkStatus()
Send("{TAB}")
Sleep(150)
$TARGETED = _MemoryRead($ADDR_TARGETED, $PROCESS_INFORMATION)
WEnd
EndFunc
Func checkStatus()
checkHP()
Sleep(50)
checkMP()
GUICtrlSetData($LABEL_HP_STATUS, "Current HP: " & $HP)
GUICtrlSetData($LABEL_MP_STATUS, "Current MP: " & $MP)
EndFunc
Func checkHP()
$HEAL_HP = GUICtrlRead($IPT_HP)
$HP = _MemoryRead($ADDR_HP, $PROCESS_INFORMATION)
if ($HP < $HEAL_HP) Then
Send("{" & GUICtrlRead($IPT_KEY_HP) & "}")
EndIf
EndFunc
Func checkMP()
$HEAL_MP = GUICtrlRead($IPT_MP)
$MP = _MemoryRead($ADDR_MP, $PROCESS_INFORMATION)
if ($MP < $HEAL_MP) Then
Send("{" & GUICtrlRead($IPT_KEY_MP) & "}")
EndIf
EndFunc
Func bt_close_Click()
$close = 0
EndFunc
Func bt_battle_Click()
if($BATTLE_STARTED = 1) Then
GUICtrlSetData($bt_battle, "Battle Start")
$BATTLE_STARTED = 0
Else
GUICtrlSetData($bt_battle, "Battle Stop")
$BATTLE_STARTED = 1
EndIf
EndFunc
Func _ProcessIdPath ( $vPID )
Local $objWMIService, $oColItems
Local $sNoExePath = ''
Local Const $wbemFlagReturnImmediately = 0x10
Local Const $wbemFlagForwardOnly = 0x20
Local $RetErr_ProcessDoesntExist = 1
Local $RetErr_ProcessPathUnknown = 2
Local $RetErr_ProcessNotFound = 3
Local $RetErr_ObjCreateErr = 4
Local $RetErr_UnknownErr = 5
If Not ProcessExists ( $vPID ) Then
SetError ( $RetErr_ProcessDoesntExist )
Return $sNoExepath
EndIf
$objWMIService = ObjGet ( 'winmgmts:\\localhost\root\CIMV2' )
$oColItems = $objWMIService.ExecQuery ( 'SELECT * FROM Win32_Process', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly )
If IsObj ( $oColItems ) Then
For $objItem In $oColItems
If $vPID = $objItem.ProcessId Then
If $objItem.ExecutablePath = '0' Then
If FileExists ( @SystemDir & '\' & $objItem.Caption ) Then
Return @SystemDir & '\' & $objItem.Caption
Else
SetError ( $RetErr_ProcessPathUnknown )
Return $sNoExepath
EndIf
Else
Return $objItem.Executablepath
EndIf
EndIf
Next
SetError ( $RetErr_ProcessNotFound )
Return $sNoExepath
Else
SetError ( $RetErr_ObjCreateErr )
Return $sNoExepath
EndIf
SetError ( $RetErr_UnknownErr )
Return $sNoExepath
EndFunc ;==>_ProcessIdPath
Func Keycode($key)
If $key == "{F1}" Then
Return 112
ElseIf $key == "{F2}" Then
Return 113
ElseIf $key == "{F3}" Then
Return 114
ElseIf $key == "{F4}" Then
Return 115
ElseIf $key == "{F5}" Then
Return 116
ElseIf $key == "{F6}" Then
Return 117
ElseIf $key == "{F7}" Then
Return 118
ElseIf $key == "{F8}" Then
Return 119
ElseIf $key == "{0}" Then
Return 48
ElseIf $key == "{1}" Then
Return 49
ElseIf $key == "{2}" Then
Return 50
ElseIf $key == "{3}" Then
Return 51
ElseIf $key == "{4}" Then
Return 52
ElseIf $key == "{5}" Then
Return 53
ElseIf $key == "{6}" Then
Return 54
ElseIf $key == "{7}" Then
Return 55
ElseIf $key == "{8}" Then
Return 56
ElseIf $key == "{9}" Then
Return 57
ElseIf $key == "{TAB}" Then
Return 9
ElseIf $key == "{LMB}" Then
Return 1
ElseIf $key == "{RMB}" Then
Return 2
ElseIf $key == "{SHIFT}" Then
Return 160
ElseIf $key == "{CTRL}" Then
Return 162
ElseIf $key == "{ALT}" Then
Return 18
ElseIf $key == "{SPACE}" Then
Return 32
ElseIf $key == "{ESC}" Then
Return 27
ElseIf $key == "{+}" Then
Return 107
ElseIf $key == "{-}" Then
Return 109
Else
Return "none"
EndIf
EndFunc ;==>
Func _PostMessage($hWnd, $msgID, $wParam, $lParam)
Local $ret = DllCall("user32.dll", "int", "PostMessage", "hwnd", $hWnd, "int", $msgID, "int", $wParam, "int", $lParam)
If IsArray($ret) Then
Return $ret[0]
Else
SetError(-1)
Return False
EndIf
EndFunc
Quote:
Originally Posted by ClusterSam
to see what problem is on windows vista, i need you to go to cheat engine and atach it to eden eternal. the process is named _Launcher.exe, and then add adress manually then put it there "_Launcher.exe"+00871E98, then click ok, and tell me the resultant adress. the adress showed should be 00C71E98.
keep me informed, i hope i have helped
if you at least read a few pages back, you would find the link on page 22
EEBot_v1.1 doesn't work anymore because Eden Eternal Updated just now please make na new link for the new bot thanks for EEBot_v1.1 anyway its a good bot
It seems there is a new update ! NEver fear I've already got ya covered.
Here is the new updated sources to the EEBot_v1.1.au3
New required files are EEAutoPilot.settings file (can be edited in notepad to your liking) although this is only used for the EEMem.au3to detect the launcher.exe without declaring to do so from the EEMemOpen() function.
All Memory functions slightly altered to perform more as I please. The memory open function can just now be used as $handle = _EEMemRead($pid) <--$pid is found inside the settings file ! However only the _EEMemRead() function uses the _EEMemOpen(). The _EEMemRead() will open the process stored in the settings file, and then read the BaseAddress + the offset (GetBaseAddress() for that), and then close the process using _EEMemClose(). All in one go so it's much less code to work with. I've made the EEMem.au3 separate from a new EEData.au3 file which stores the memory offsets, and addresses (soon to be edited to use the settings file) Then of course the GUI and bot are the EEBot_v1.1.au3.
Attached Below !!
Or for those who prefer to copy and paste. The code isn't very cleaned up yet. Still some tester things in there like the F7 hotkey which displays all the addresses and offsets I've currently got stored in the EEData.au3..Was a way for me to test multiple stats at once. So it's a bit cluttered, but easily worked with. An extra memory address added for Player Name, one is a static client address, the other is an offset of 1B8 at the new Memory Base Address 0x00C7AED8. Zoom Address has been fixed as well can now continue zooming out :O !
EEMem.au3
Code:
#include-once
Func _EEMemOpen($DWACCESS = 0x1F0FFF, $DWINHERITHANDLE = 1)
$DWPROCID = ProcessExists(IniRead(@WorkingDir & "\EEAutoPilot.settings","main","exe",""))
If $DWPROCID = 0 then
MsgBox(0,"","Process Doesn't Exist!" & @crlf & "If however it DOES, then something is terribly wrong !")
exit 0
EndIf
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 _EEMemClose($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
Func _EEMemRead($DWADDRESS, $DWTYPE = "dword")
$DWHANDLES = _EEMemOpen()
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)
_EEMemClose($DWHANDLES)
Return $DWVALUE
Else
SetError(6)
Return 0
EndIf
EndFunc
Func _EEMemWrite($DWADDRESS, $DWDATA, $DWTYPE = "dword")
$DWHANDLES = _EEMemOpen()
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
_EEMemClose($DWHANDLES)
EndFunc
EEData.au3
Code:
;EEBot - Data Source
#include 'EEMem.au3'
#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===========================================================================================================================
;~ local $app_base = 0x00C71E98
local $app_base = 0x00C7AED8
local $app_base_offset = 0xC
;~ local $Zoom_ADDR = 0x00C7157C
local $Zoom_ADDR = 0x00C7A5BC
local $pname = 0x00C7ADC4 ;static name
;~ local $ptarget = 0x00C71EAC
local $ptarget = 0x00C7AEEC
local $ZOOM_OFFSET1 = 0x54
local $OFFSET_CurHP = 0x4
local $OFFSET_MaxHP = 0x4C
local $OFFSET_CurMP = 0x8
local $OFFSET_MaxMP = 0x50
local $OFFSET_TARGET = 0x08
local $OFFSET_EXP = 0x18
local $OFFSET_CEXP = 0x20
local $OFFSET_CLASSLVL = 0x24
local $OFFSET_BASELVL = 0x1C
local $OFFSET_PDEF = 0x64
local $OFFSET_PCRIT = 0x11C
local $OFFSET_PACC = 0x118
local $OFFSET_PSTR = 0x144
local $OFFSET_PAGI = 0x150
local $OFFSET_PINT = 0x14C
local $OFFSET_PWIS = 0x154
local $OFFSET_PLCK = 0x158
local $OFFSET_GUILDTITLE = 0x1F0
local $OFFSET_PNAME = 0x1B8 ;offset for player name from app base address
func GetBaseAddress()
local $base = _EEMemRead($app_base)
local $ptr = '0x' & Hex($base + $app_base_offset)
local $base_address = _EEMemRead($ptr)
return $base_address
EndFunc
local $CurHP = '0x' & Hex(GetBaseAddress() + $OFFSET_CurHP)
local $MaxHP = '0x' & Hex(GetBaseAddress() + $OFFSET_MaxHP)
local $CurMP = '0x' & Hex(GetBaseAddress() + $OFFSET_CurMP)
local $MaxMP = '0x' & Hex(GetBaseAddress() + $OFFSET_MaxMP)
local $CurEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_EXP)
local $CurCEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_CEXP)
local $ClassLVL = '0x' & Hex(GetBaseAddress() + $OFFSET_CLASSLVL)
local $BaseLVL = '0x' & Hex(GetBaseAddress() + $OFFSET_BASELVL)
local $PlayerDEF = '0x' & Hex(GetBaseAddress() + $OFFSET_PDEF)
local $PlayerPCRIT = '0x' & Hex(GetBaseAddress() + $OFFSET_PCRIT)
local $PlayerPSTR = '0x' & Hex(GetBaseAddress() + $OFFSET_PSTR)
local $PlayerPAGI = '0x' & Hex(GetBaseAddress() + $OFFSET_PAGI)
local $PlayerPINT = '0x' & Hex(GetBaseAddress() + $OFFSET_PINT)
local $PlayerPWIS = '0x' & Hex(GetBaseAddress() + $OFFSET_PWIS)
local $PlayerPLCK = '0x' & Hex(GetBaseAddress() + $OFFSET_PLCK)
local $PlayerPACC = '0x' & Hex(GetBaseAddress() + $OFFSET_PACC)
local $PlayerGuildTitle = '0x' & Hex(GetBaseAddress() + $OFFSET_GUILDTITLE)
local $PlayerPNAME = '0x' & Hex(GetBaseAddress() + $OFFSET_PNAME)
func ReadEE($type)
switch $type
Case "player_name"
$p_name = _EEMemRead($PlayerPNAME, "char[16]")
return String($p_name)
Case "player_guild_title"
$p_guildt = _EEMemRead($PlayerGuildTitle, "char[16]")
return String($p_guildt)
Case "player_str"
$p_str = _EEMemRead($PlayerPSTR, "dword")
return Int($p_str)
Case "player_agi"
$p_agi = _EEMemRead($PlayerPAGI, "dword")
return Int($p_agi)
Case "player_int"
$p_int = _EEMemRead($PlayerPINT, "dword")
return Int($p_int)
Case "player_acc"
$p_acc = _EEMemRead($PlayerPACC, "float")
return Int($p_acc)
Case "player_crit"
$p_crit = _EEMemRead($PlayerPCRIT, "float")
return Int($p_crit)
Case "player_def"
$p_def = _EEMemRead($PlayerDEF, "dword")
return Int($p_def)
case "base_lvl"
$base_lvl = _EEMemRead($BaseLVL, "dword")
return Int($base_lvl)
case "class_lvl"
$class_lvl = _EEMemRead($ClassLVL, "dword")
return Int($class_lvl)
case "current_cexp"
$cur_cexp = _EEMemRead($CurCEXP, "dword")
return Int($cur_cexp)
case "current_exp"
$cur_exp = _EEMemRead($CurEXP, "dword")
return Int($cur_exp)
case "player_target"
$targetbaseADDR = _EEMemRead($ptarget,"dword")
$target = '0x' & Hex($targetbaseADDR + $OFFSET_TARGET)
$targeted = '0x' & Hex($target)
$target = _EEMemRead($targeted, "dword")
Return Int($target)
case "name"
$name = _EEMemRead($pname, "char[16]")
return String($name)
case "current_hp"
$cur_hp = _EEMemRead($CurHP, "dword")
return Int($cur_hp)
case "max_hp"
$max_hp = _EEMemRead($MaxHP)
return Int($max_hp)
case "current_mp"
$cur_mp = _EEMemRead($CurMP)
return Int($cur_mp)
case "max_mp"
$max_mp = _EEMemRead($MaxMP)
return Int($max_mp)
EndSwitch
EndFunc
func WriteEE($address,$offset,$value)
;"1198383360" zoom hack value
;1098383360 normal value
$1 = _EEMemRead($address, "dword")
_EEMemWrite($1 + $offset, $value, "dword")
EndFunc
Func ZoomHack()
WriteEE($Zoom_ADDR,$ZOOM_OFFSET1,"1198383360")
EndFunc
It seems there is a new update ! NEver fear I've already got ya covered.
Here is the new updated sources to the EEBot_v1.1.au3
New required files are EEAutoPilot.settings file (can be edited in notepad to your liking) although this is only used for the EEMem.au3to detect the launcher.exe without declaring to do so from the EEMemOpen() function.
All Memory functions slightly altered to perform more as I please. The memory open function can just now be used as $handle = _EEMemRead($pid) <--$pid is found inside the settings file ! However only the _EEMemRead() function uses the _EEMemOpen(). The _EEMemRead() will open the process stored in the settings file, and then read the BaseAddress + the offset (GetBaseAddress() for that), and then close the process using _EEMemClose(). All in one go so it's much less code to work with. I've made the EEMem.au3 separate from a new EEData.au3 file which stores the memory offsets, and addresses (soon to be edited to use the settings file) Then of course the GUI and bot are the EEBot_v1.1.au3.
Attached Below !!
Or for those who prefer to copy and paste. The code isn't very cleaned up yet. Still some tester things in there like the F7 hotkey which displays all the addresses and offsets I've currently got stored in the EEData.au3..Was a way for me to test multiple stats at once. So it's a bit cluttered, but easily worked with. An extra memory address added for Player Name, one is a static client address, the other is an offset of 1B8 at the new Memory Base Address 0x00C7AED8. Zoom Address has been fixed as well can now continue zooming out :O !
EEMem.au3
Code:
#include-once
Func _EEMemOpen($DWACCESS = 0x1F0FFF, $DWINHERITHANDLE = 1)
$DWPROCID = ProcessExists(IniRead(@WorkingDir & "\EEAutoPilot.settings","main","exe",""))
If $DWPROCID = 0 then
MsgBox(0,"","Process Doesn't Exist!" & @crlf & "If however it DOES, then something is terribly wrong !")
exit 0
EndIf
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 _EEMemClose($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
Func _EEMemRead($DWADDRESS, $DWTYPE = "dword")
$DWHANDLES = _EEMemOpen()
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)
_EEMemClose($DWHANDLES)
Return $DWVALUE
Else
SetError(6)
Return 0
EndIf
EndFunc
Func _EEMemWrite($DWADDRESS, $DWDATA, $DWTYPE = "dword")
$DWHANDLES = _EEMemOpen()
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
_EEMemClose($DWHANDLES)
EndFunc
EEData.au3
Code:
;EEBot - Data Source
#include 'EEMem.au3'
#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===========================================================================================================================
;~ local $app_base = 0x00C71E98
local $app_base = 0x00C7AED8
local $app_base_offset = 0xC
;~ local $Zoom_ADDR = 0x00C7157C
local $Zoom_ADDR = 0x00C7A5BC
local $pname = 0x00C7ADC4 ;static name
;~ local $ptarget = 0x00C71EAC
local $ptarget = 0x00C7AEEC
local $ZOOM_OFFSET1 = 0x54
local $OFFSET_CurHP = 0x4
local $OFFSET_MaxHP = 0x4C
local $OFFSET_CurMP = 0x8
local $OFFSET_MaxMP = 0x50
local $OFFSET_TARGET = 0x08
local $OFFSET_EXP = 0x18
local $OFFSET_CEXP = 0x20
local $OFFSET_CLASSLVL = 0x24
local $OFFSET_BASELVL = 0x1C
local $OFFSET_PDEF = 0x64
local $OFFSET_PCRIT = 0x11C
local $OFFSET_PACC = 0x118
local $OFFSET_PSTR = 0x144
local $OFFSET_PAGI = 0x150
local $OFFSET_PINT = 0x14C
local $OFFSET_PWIS = 0x154
local $OFFSET_PLCK = 0x158
local $OFFSET_GUILDTITLE = 0x1F0
local $OFFSET_PNAME = 0x1B8 ;offset for player name from app base address
func GetBaseAddress()
local $base = _EEMemRead($app_base)
local $ptr = '0x' & Hex($base + $app_base_offset)
local $base_address = _EEMemRead($ptr)
return $base_address
EndFunc
local $CurHP = '0x' & Hex(GetBaseAddress() + $OFFSET_CurHP)
local $MaxHP = '0x' & Hex(GetBaseAddress() + $OFFSET_MaxHP)
local $CurMP = '0x' & Hex(GetBaseAddress() + $OFFSET_CurMP)
local $MaxMP = '0x' & Hex(GetBaseAddress() + $OFFSET_MaxMP)
local $CurEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_EXP)
local $CurCEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_CEXP)
local $ClassLVL = '0x' & Hex(GetBaseAddress() + $OFFSET_CLASSLVL)
local $BaseLVL = '0x' & Hex(GetBaseAddress() + $OFFSET_BASELVL)
local $PlayerDEF = '0x' & Hex(GetBaseAddress() + $OFFSET_PDEF)
local $PlayerPCRIT = '0x' & Hex(GetBaseAddress() + $OFFSET_PCRIT)
local $PlayerPSTR = '0x' & Hex(GetBaseAddress() + $OFFSET_PSTR)
local $PlayerPAGI = '0x' & Hex(GetBaseAddress() + $OFFSET_PAGI)
local $PlayerPINT = '0x' & Hex(GetBaseAddress() + $OFFSET_PINT)
local $PlayerPWIS = '0x' & Hex(GetBaseAddress() + $OFFSET_PWIS)
local $PlayerPLCK = '0x' & Hex(GetBaseAddress() + $OFFSET_PLCK)
local $PlayerPACC = '0x' & Hex(GetBaseAddress() + $OFFSET_PACC)
local $PlayerGuildTitle = '0x' & Hex(GetBaseAddress() + $OFFSET_GUILDTITLE)
local $PlayerPNAME = '0x' & Hex(GetBaseAddress() + $OFFSET_PNAME)
func ReadEE($type)
switch $type
Case "player_name"
$p_name = _EEMemRead($PlayerPNAME, "char[16]")
return String($p_name)
Case "player_guild_title"
$p_guildt = _EEMemRead($PlayerGuildTitle, "char[16]")
return String($p_guildt)
Case "player_str"
$p_str = _EEMemRead($PlayerPSTR, "dword")
return Int($p_str)
Case "player_agi"
$p_agi = _EEMemRead($PlayerPAGI, "dword")
return Int($p_agi)
Case "player_int"
$p_int = _EEMemRead($PlayerPINT, "dword")
return Int($p_int)
Case "player_acc"
$p_acc = _EEMemRead($PlayerPACC, "float")
return Int($p_acc)
Case "player_crit"
$p_crit = _EEMemRead($PlayerPCRIT, "float")
return Int($p_crit)
Case "player_def"
$p_def = _EEMemRead($PlayerDEF, "dword")
return Int($p_def)
case "base_lvl"
$base_lvl = _EEMemRead($BaseLVL, "dword")
return Int($base_lvl)
case "class_lvl"
$class_lvl = _EEMemRead($ClassLVL, "dword")
return Int($class_lvl)
case "current_cexp"
$cur_cexp = _EEMemRead($CurCEXP, "dword")
return Int($cur_cexp)
case "current_exp"
$cur_exp = _EEMemRead($CurEXP, "dword")
return Int($cur_exp)
case "player_target"
$targetbaseADDR = _EEMemRead($ptarget,"dword")
$target = '0x' & Hex($targetbaseADDR + $OFFSET_TARGET)
$targeted = '0x' & Hex($target)
$target = _EEMemRead($targeted, "dword")
Return Int($target)
case "name"
$name = _EEMemRead($pname, "char[16]")
return String($name)
case "current_hp"
$cur_hp = _EEMemRead($CurHP, "dword")
return Int($cur_hp)
case "max_hp"
$max_hp = _EEMemRead($MaxHP)
return Int($max_hp)
case "current_mp"
$cur_mp = _EEMemRead($CurMP)
return Int($cur_mp)
case "max_mp"
$max_mp = _EEMemRead($MaxMP)
return Int($max_mp)
EndSwitch
EndFunc
func WriteEE($address,$offset,$value)
;"1198383360" zoom hack value
;1098383360 normal value
$1 = _EEMemRead($address, "dword")
_EEMemWrite($1 + $offset, $value, "dword")
EndFunc
Func ZoomHack()
WriteEE($Zoom_ADDR,$ZOOM_OFFSET1,"1198383360")
EndFunc
People are posting a pointer value for the zoom hack and i dunno why.. Been awhile since i have even bothered with Aeria games since they kept threatening to sue me for my hacks on shaiya so i guess it is time to startup again..
Ill go ahead and post the REAL way to zoom hack..
Add 0b5ef3c as a float value in cheat engine, it should be 0.85 and a bunch of other numbers that are not really important..
Increase .85 to be able to scroll wheel out further, do it in increments so you can get an idea of how far to do.. Such as .95
I would not suggest modifying the 0. part unless you want an extreme zoom out to the point your client is screwed until you reload.
This simply increases the distance you can scroll out and isnt a stupid pointer that is difficult to update.. Just use AoB next patch.
People keep saying this game is unhackable yet i see no problems with modifying alot of things in-game.. Your runspeed (desyncs on extreme levels), how your blocked by terrain ( clipping ) and if people remember my No Limits in Shaiya being able to run up past the terrain barrier and up/over mountains.
I also know people have problems with the camera shifting around while your doing runs with a bard, that can also be found.. Seeing if a special boss is spawned on the map..
Attack speed can be modified, i assume.. But im not sure if the client desyncs you or not. I have not gotten further enough along to really see.
You can also obtain quests while not even in the town, the repeatable ones, access your bank ( thank you to aeria games for making a mobile bank an allowing me to dismantle how it works ).
So thus, either people who have invested in this game are not sharing there findings and are being greedy ( i believe in freeware ) or people really have not taken time to sit and dismantle how the client works.. And though they run a file check on the client, people should see that just a simple JMP will skip the file check and go right to the game..
I will post more as i see fit to do so.. I'am still leveling my character up, without the use of a bot, think botting is stupid and hacking levels away is more fun, as you learn more of how the client works and to get ideas to manipulate it.
Affects your speed while using a llama in-game. It will desync on high increments, but is amusing none-the-less.. Low increments will allow you to run quite fast ( players do notice because you skip along while going.. )
It seems there is a new update ! NEver fear I've already got ya covered.
Here is the new updated sources to the EEBot_v1.1.au3
New required files are EEAutoPilot.settings file (can be edited in notepad to your liking) although this is only used for the EEMem.au3to detect the launcher.exe without declaring to do so from the EEMemOpen() function.
All Memory functions slightly altered to perform more as I please. The memory open function can just now be used as $handle = _EEMemRead($pid) <--$pid is found inside the settings file ! However only the _EEMemRead() function uses the _EEMemOpen(). The _EEMemRead() will open the process stored in the settings file, and then read the BaseAddress + the offset (GetBaseAddress() for that), and then close the process using _EEMemClose(). All in one go so it's much less code to work with. I've made the EEMem.au3 separate from a new EEData.au3 file which stores the memory offsets, and addresses (soon to be edited to use the settings file) Then of course the GUI and bot are the EEBot_v1.1.au3.
Attached Below !!
Or for those who prefer to copy and paste. The code isn't very cleaned up yet. Still some tester things in there like the F7 hotkey which displays all the addresses and offsets I've currently got stored in the EEData.au3..Was a way for me to test multiple stats at once. So it's a bit cluttered, but easily worked with. An extra memory address added for Player Name, one is a static client address, the other is an offset of 1B8 at the new Memory Base Address 0x00C7AED8. Zoom Address has been fixed as well can now continue zooming out :O !
EEMem.au3
Code:
#include-once
Func _EEMemOpen($DWACCESS = 0x1F0FFF, $DWINHERITHANDLE = 1)
$DWPROCID = ProcessExists(IniRead(@WorkingDir & "\EEAutoPilot.settings","main","exe",""))
If $DWPROCID = 0 then
MsgBox(0,"","Process Doesn't Exist!" & @crlf & "If however it DOES, then something is terribly wrong !")
exit 0
EndIf
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 _EEMemClose($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
Func _EEMemRead($DWADDRESS, $DWTYPE = "dword")
$DWHANDLES = _EEMemOpen()
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)
_EEMemClose($DWHANDLES)
Return $DWVALUE
Else
SetError(6)
Return 0
EndIf
EndFunc
Func _EEMemWrite($DWADDRESS, $DWDATA, $DWTYPE = "dword")
$DWHANDLES = _EEMemOpen()
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
_EEMemClose($DWHANDLES)
EndFunc
EEData.au3
Code:
;EEBot - Data Source
#include 'EEMem.au3'
#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===========================================================================================================================
;~ local $app_base = 0x00C71E98
local $app_base = 0x00C7AED8
local $app_base_offset = 0xC
;~ local $Zoom_ADDR = 0x00C7157C
local $Zoom_ADDR = 0x00C7A5BC
local $pname = 0x00C7ADC4 ;static name
;~ local $ptarget = 0x00C71EAC
local $ptarget = 0x00C7AEEC
local $ZOOM_OFFSET1 = 0x54
local $OFFSET_CurHP = 0x4
local $OFFSET_MaxHP = 0x4C
local $OFFSET_CurMP = 0x8
local $OFFSET_MaxMP = 0x50
local $OFFSET_TARGET = 0x08
local $OFFSET_EXP = 0x18
local $OFFSET_CEXP = 0x20
local $OFFSET_CLASSLVL = 0x24
local $OFFSET_BASELVL = 0x1C
local $OFFSET_PDEF = 0x64
local $OFFSET_PCRIT = 0x11C
local $OFFSET_PACC = 0x118
local $OFFSET_PSTR = 0x144
local $OFFSET_PAGI = 0x150
local $OFFSET_PINT = 0x14C
local $OFFSET_PWIS = 0x154
local $OFFSET_PLCK = 0x158
local $OFFSET_GUILDTITLE = 0x1F0
local $OFFSET_PNAME = 0x1B8 ;offset for player name from app base address
func GetBaseAddress()
local $base = _EEMemRead($app_base)
local $ptr = '0x' & Hex($base + $app_base_offset)
local $base_address = _EEMemRead($ptr)
return $base_address
EndFunc
local $CurHP = '0x' & Hex(GetBaseAddress() + $OFFSET_CurHP)
local $MaxHP = '0x' & Hex(GetBaseAddress() + $OFFSET_MaxHP)
local $CurMP = '0x' & Hex(GetBaseAddress() + $OFFSET_CurMP)
local $MaxMP = '0x' & Hex(GetBaseAddress() + $OFFSET_MaxMP)
local $CurEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_EXP)
local $CurCEXP = '0x' & Hex(GetBaseAddress() + $OFFSET_CEXP)
local $ClassLVL = '0x' & Hex(GetBaseAddress() + $OFFSET_CLASSLVL)
local $BaseLVL = '0x' & Hex(GetBaseAddress() + $OFFSET_BASELVL)
local $PlayerDEF = '0x' & Hex(GetBaseAddress() + $OFFSET_PDEF)
local $PlayerPCRIT = '0x' & Hex(GetBaseAddress() + $OFFSET_PCRIT)
local $PlayerPSTR = '0x' & Hex(GetBaseAddress() + $OFFSET_PSTR)
local $PlayerPAGI = '0x' & Hex(GetBaseAddress() + $OFFSET_PAGI)
local $PlayerPINT = '0x' & Hex(GetBaseAddress() + $OFFSET_PINT)
local $PlayerPWIS = '0x' & Hex(GetBaseAddress() + $OFFSET_PWIS)
local $PlayerPLCK = '0x' & Hex(GetBaseAddress() + $OFFSET_PLCK)
local $PlayerPACC = '0x' & Hex(GetBaseAddress() + $OFFSET_PACC)
local $PlayerGuildTitle = '0x' & Hex(GetBaseAddress() + $OFFSET_GUILDTITLE)
local $PlayerPNAME = '0x' & Hex(GetBaseAddress() + $OFFSET_PNAME)
func ReadEE($type)
switch $type
Case "player_name"
$p_name = _EEMemRead($PlayerPNAME, "char[16]")
return String($p_name)
Case "player_guild_title"
$p_guildt = _EEMemRead($PlayerGuildTitle, "char[16]")
return String($p_guildt)
Case "player_str"
$p_str = _EEMemRead($PlayerPSTR, "dword")
return Int($p_str)
Case "player_agi"
$p_agi = _EEMemRead($PlayerPAGI, "dword")
return Int($p_agi)
Case "player_int"
$p_int = _EEMemRead($PlayerPINT, "dword")
return Int($p_int)
Case "player_acc"
$p_acc = _EEMemRead($PlayerPACC, "float")
return Int($p_acc)
Case "player_crit"
$p_crit = _EEMemRead($PlayerPCRIT, "float")
return Int($p_crit)
Case "player_def"
$p_def = _EEMemRead($PlayerDEF, "dword")
return Int($p_def)
case "base_lvl"
$base_lvl = _EEMemRead($BaseLVL, "dword")
return Int($base_lvl)
case "class_lvl"
$class_lvl = _EEMemRead($ClassLVL, "dword")
return Int($class_lvl)
case "current_cexp"
$cur_cexp = _EEMemRead($CurCEXP, "dword")
return Int($cur_cexp)
case "current_exp"
$cur_exp = _EEMemRead($CurEXP, "dword")
return Int($cur_exp)
case "player_target"
$targetbaseADDR = _EEMemRead($ptarget,"dword")
$target = '0x' & Hex($targetbaseADDR + $OFFSET_TARGET)
$targeted = '0x' & Hex($target)
$target = _EEMemRead($targeted, "dword")
Return Int($target)
case "name"
$name = _EEMemRead($pname, "char[16]")
return String($name)
case "current_hp"
$cur_hp = _EEMemRead($CurHP, "dword")
return Int($cur_hp)
case "max_hp"
$max_hp = _EEMemRead($MaxHP)
return Int($max_hp)
case "current_mp"
$cur_mp = _EEMemRead($CurMP)
return Int($cur_mp)
case "max_mp"
$max_mp = _EEMemRead($MaxMP)
return Int($max_mp)
EndSwitch
EndFunc
func WriteEE($address,$offset,$value)
;"1198383360" zoom hack value
;1098383360 normal value
$1 = _EEMemRead($address, "dword")
_EEMemWrite($1 + $offset, $value, "dword")
EndFunc
Func ZoomHack()
WriteEE($Zoom_ADDR,$ZOOM_OFFSET1,"1198383360")
EndFunc
Eden Eternal bot issue 08/21/2011 - AutoIt - 7 Replies Im trying to use my own bot in the game Eden Eternal. But I'm not getting to use the _SendMessage and _PostMessage functons, i tried a lot to make it work but i didn't obtain success... just the Send function worked...
Code, doesnt work (the $HANDLER is working, i think. It just write into the chat):
;_SendMessage($HANDLE, 256, 112);
;_SendMessage($HANDLE, 0x4d, 0);
;_PostMessage($HANDLE, 256, 49, 0x20001);
;_PostMessage($HANDLE, 257, 49, 0x20001);
;ControlSend($HANDLE, "", "",...
Eden Eternal 08/16/2011 - General Gaming Discussion - 2 Replies Hallo Leute.
Ich wollte fragen ob ihr bei
der CB von Eden Eternal dabei wart,
was ihr davon haltet und ob es eventuell
Server files oder Language patches für die
Japanische version gibt.
Danke im vorraus.
Kexxi
WTS Eden Eternal Account. 07/11/2011 - Trading - 17 Replies Hello! Selling my Eden Eternal account from this site here:
Eden Eternal - Eden Eternal - A free MMORPG from Aeria Games
Game is open to ANYONE and EVERYONE. Meaning you can play from anywhere. Germany, Europe, Australia, Hawaii, United States, Canada, etc.
Server:
Aquamarine
Details:
Maverick Trait (10% AGI, 5% ATK Speed)
eden eternal hacks needed 07/01/2011 - General Coding - 3 Replies any1 gonna make hacks for eden eternal ?
Eternal Eden OB! 06/16/2011 - General Gaming Discussion - 0 Replies Eden Eternal - Eden Eternal - A free MMORPG from Aeria Games
signup here! ^
OB starts today
experience the fun!