once you killed and looted your mob your target is reset (empty) ... if you
have agro and a mob keeps hitting you, it autom. sets your target to that
attacking mob ... have a try pls :bandit:
Quick and dirty fix..
as this is a beta version pls compile your own .exe or run it out of AutoIt
Makes sets the bot gui window top most (without focus) .. bot is always visible
Code:
#AutoIT3Wrapper_UseUpx=n
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=AutoAion_beta_010.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiConstants.au3>
#Include <file.au3>
#include <NoMadMemory.au3>
GuiCreate("AutoAion v0.10.2 ", 270,600, -1, -1, -1, $WS_EX_TOPMOST) ;;;: Quickfix Nr. 3 - Added by Chefes78 - 28.10.2009 (Makes the Gui top most window (without focus ... ) ... like this you can see what the bot is doing (Tooltips... )
GUICtrlCreatePic("logo.jpg", 0, 536, 270, 74)
GUISetBkColor(0xffffff)
GUISetState(@SW_SHOW)
GuiCtrlSetState(-1,$GUI_DISABLE)
HotKeySet("{F5}","stop")
HotKeySet("{NUMPADADD}","_keyboardToWpInterface")
Global $configFile = "AA.conf"
Global $Run = False
Global $enemyKillCount = 07
Global $enemyEpCount = 0
Global $playerEnergy
Global $playerEnergyMax
Global $playerHP
Global $playerHPMax
Global $playerEP
Global $playerEPMax
Global $targetHPpercent
Global $AionRun = False
Global $pid = 0
Global $openmem = 0
Global $baseADDR = 0
Global $finalADDR = 0
Global $wpField[1000]
Global $count =1
Global $countMax=0
global $pi = 3.14159265358979323846264338327950
global $file1 = "data.txt"
global $attack1 = "x"
global $attack2 = "x"
global $attack3 = "x"
global $attack4 = "x"
global $attack5 = "x"
global $attack6 = "x"
global $attack7 = "x"
global $attack8 = "x"
global $loot = "x"
global $reg = "x"
Global $i =0
global $attack1c = "0"
global $attack2c = "0"
global $attack3c = "0"
global $attack4c = "0"
global $attack5c = "0"
global $attack6c = "0"
global $attack7c = "0"
global $attack8c = "0"
global $attack1Cd = "0"
global $attack2Cd = "0"
global $attack3Cd = "0"
global $attack4Cd = "0"
global $attack5Cd = "0"
global $attack6Cd = "0"
global $attack7Cd = "0"
global $attack8Cd = "0"
global $attack1LastCast = "0"
global $attack2LastCast = "0"
global $attack3LastCast = "0"
global $attack4LastCast = "0"
global $attack5LastCast = "0"
global $attack6LastCast = "0"
global $attack7LastCast = "0"
global $attack8LastCast = "0"
global $killCount
global $status
global $TimeCount
global $jumper = 0
global $attack1_da
global $attack2_da
global $attack3_da
global $attack4_da
global $attack5_da
global $attack6_da
global $attack8hp = 20
global $reg_minLife = 40
global $reg_minMana = 10
global $timeDiff = 0;
global $lastTime = 0;
global $newTime = 0;
global $avgTime = 0;
global $rot_down = "a down"
global $rot_up = "a up"
Global $timeToShutdownOutput
Global $sdtimerInput
Global $timeToShutdown = 0
Global $timeCache = 0
Global $combatStartTimer = 0
Global $combatAnimaLibera = 0
Global $goodCombat = 0
Global $combatFlag = 0
Global $lastBlackListEnemy = 0
; THE FUTURE!
Global $confVar1
Global $confVar2
Global $confVar3
Global $confVar4
Global $confVar5
Global $confVar6
Global $confVar7
Global $confVar8
Global $confVar9
Global $confVar10
Global $confVar11
Global $confVar12
Global $confVar13
Global $confVar14
Global $confVar15
Global $confVar16
Global $confVar17
Global $confVar18
Global $confVar19
Global $confVar20
Global $confVar21
Global $confVar22
Global $confVar23
Global $confVar24
Global $confVar25
Global $confVar26
Global $confVar27
Global $confVar28
Global $confVar29
Global $confVar30
Global $confVar31
Global $confVar32
Global $confVar33
Global $confVar34
Global $confVar35
Global $confVar36
Global $confVar37
Global $confVar38
Global $confVar39
Global $confVar40
Global $confVar41
$attack1_da = GUICtrlCreateCheckbox("D.A.", 200, 30, 50, 20)
$attack2_da = GUICtrlCreateCheckbox("D.A.", 200, 60, 50, 20)
$attack3_da = GUICtrlCreateCheckbox("D.A.", 200, 90, 50, 20)
$attack4_da = GUICtrlCreateCheckbox("D.A.", 200, 180, 50, 20)
$attack5_da = GUICtrlCreateCheckbox("D.A.", 200, 120, 50, 20)
$attack6_da = GUICtrlCreateCheckbox("D.A.", 200, 150, 50, 20)
readKeys()
$Label1 = GUICtrlCreateLabel("Key", 65, 10, 60, 17)
$Label1 = GUICtrlCreateLabel("Casttime", 100, 10, 60, 17)
$Label1 = GUICtrlCreateLabel("Cooldown", 150, 10, 60, 17)
$Label1 = GUICtrlCreateLabel("Kill Count:", 150, 270, 60, 17)
$killCount = GUICtrlCreateLabel($enemyKillCount, 200, 270, 100, 17)
$Label1 = GUICtrlCreateLabel("EP Count:", 150, 290, 60, 17)
$epCount = GUICtrlCreateLabel($enemyEpCount, 200, 290, 100, 17)
$Label1 = GUICtrlCreateLabel("Lvl-up in:", 150, 310, 60, 17)
$TimeCount = GUICtrlCreateLabel($avgTime, 200, 310, 100, 17)
$Label1 = GUICtrlCreateLabel("Shutdown:", 150, 330, 60, 17)
$timeToShutdownOutput = GUICtrlCreateLabel("-----", 210, 330, 100, 17)
$Label1 = GUICtrlCreateLabel("Attack 1:", 15, 32, 44, 17)
$attack1Key = GUICtrlCreateInput($attack1, 65, 30, 20, 21)
$attack1Cast = GUICtrlCreateInput($attack1c, 100, 30, 40, 21)
$attack1Cooldown = GUICtrlCreateInput($attack1Cd, 150, 30, 40, 21)
$Label2 = GUICtrlCreateLabel("Attack 2:", 15, 62, 44, 17)
$attack2Key = GUICtrlCreateInput($attack2, 65, 60, 20, 21)
$attack2Cast = GUICtrlCreateInput($attack2c, 100, 60, 40, 21)
$attack2Cooldown = GUICtrlCreateInput($attack2Cd, 150, 60, 40, 21)
$Label3 = GUICtrlCreateLabel("Attack 3:", 15, 92, 44, 17)
$attack3Key = GUICtrlCreateInput($attack3, 65, 90, 20, 21)
$attack3Cast = GUICtrlCreateInput($attack3c, 100, 90, 40, 21)
$attack3Cooldown = GUICtrlCreateInput($attack3Cd, 150, 90, 40, 21)
$Label5 = GUICtrlCreateLabel("Attack 4:", 15, 122, 44, 17)
$attack5Key = GUICtrlCreateInput($attack5, 65, 120, 20, 21)
$attack5Cast = GUICtrlCreateInput($attack5c, 100, 120, 40, 21)
$attack5Cooldown = GUICtrlCreateInput($attack5Cd, 150, 120, 40, 21)
$Label6 = GUICtrlCreateLabel("Attack 5:", 15, 152, 44, 17)
$attack6Key = GUICtrlCreateInput($attack6, 65, 150, 20, 21)
$attack6Cast = GUICtrlCreateInput($attack6c, 100, 150, 40, 21)
$attack6Cooldown = GUICtrlCreateInput($attack6Cd, 150, 150, 40, 21)
$Label4 = GUICtrlCreateLabel("PreCast:", 17, 182, 50, 17)
$attack4Key = GUICtrlCreateInput($attack4, 65, 180, 20, 21)
$attack4Cast = GUICtrlCreateInput($attack4c, 100, 180, 40, 21)
$attack4Cooldown = GUICtrlCreateInput($attack4Cd, 150, 180, 40, 21)
$Label7 = GUICtrlCreateLabel("PostCast:", 14, 212, 50, 17)
$attack7Key = GUICtrlCreateInput($attack7, 65, 210, 20, 21)
$attack7Cast = GUICtrlCreateInput($attack7c, 100, 210, 40, 21)
$attack7Cooldown = GUICtrlCreateInput($attack7Cd, 150, 210, 40, 21)
$Label8 = GUICtrlCreateLabel("Em Cast:", 14, 242, 50, 17)
$attack8Key = GUICtrlCreateInput($attack8, 65, 240, 20, 21)
$attack8Cast = GUICtrlCreateInput($attack8c, 100, 240, 40, 21)
$attack8Cooldown = GUICtrlCreateInput($attack8Cd, 150, 240, 40, 21)
$Label8 = GUICtrlCreateLabel("HP:", 191, 242, 18, 17)
$attack8hitPoint = GUICtrlCreateInput($attack8hp, 210, 240, 20, 21)
$Label8 = GUICtrlCreateLabel("%", 232, 242, 10, 17)
$Label3 = GUICtrlCreateLabel("Loot:", 35, 272, 25, 17)
$lootKey = GUICtrlCreateInput($loot, 65, 270, 20, 21)
$Label3 = GUICtrlCreateLabel("Reg:", 36, 302, 22, 17)
$regKey = GUICtrlCreateInput($reg, 65, 300, 20, 21)
$Label3 = GUICtrlCreateLabel("HP:", 90, 302, 19, 15)
$Label3 = GUICtrlCreateLabel("MA:", 90, 330, 19, 15)
$regMin = GUICtrlCreateInput($reg_minLife, 110, 300, 20, 21)
$regMinMana = GUICtrlCreateInput($reg_minMana, 110, 327, 20, 21)
$Label3 = GUICtrlCreateLabel("%", 130, 302, 10, 17)
$Label3 = GUICtrlCreateLabel("%", 130, 330, 10, 17)
$Label6 = GUICtrlCreateLabel("Filename:", 40,360, 70, 17)
$wpFileInput = GUICtrlCreateInput("", 140, 377, 70, 20)
$Label6 = GUICtrlCreateLabel("Filename:", 150,360, 70, 17)
$wpSaveInput = GUICtrlCreateInput("", 30, 377, 70, 20)
; status field
$status = GUICtrlCreateLabel("Start Bot-Engine... done!"&getCredits(), 5,460, 230, 60)
;buttons
$buttonSave = GuiCtrlCreateButton("Save", 30,430,70,20)
$buttonRun = GuiCtrlCreateButton("Run Bot", 140,430,70,20)
$buttonAddWayPoint = GuiCtrlCreateButton("Add WP", 30,400,70,20)
$buttonOpenWayPoint = GuiCtrlCreateButton("Open WP", 140,400,70,20)
$Label2 = GUICtrlCreateLabel("Timer:", 200, 495, 44, 17)
$sdtimerInput = GUICtrlCreateInput("0", 200, 510, 60, 21)
Func stop()
Send("{w up}")
$Run = False
GUICtrlSetData ($buttonRun,"Start Bot")
EndFunc
;#################################################
;interface functions
;#################################################
func readKeys()
if FileExists($file1) Then
$attack1 = FileReadLine($file1,"1")
$attack2 = FileReadLine($file1,"2")
$attack3 = FileReadLine($file1,"3")
$attack4 = FileReadLine($file1,"14")
$loot = FileReadLine($file1,"4")
$reg = FileReadLine($file1,"5")
$reg_minLife = FileReadLine($file1,"12")
$reg_minMana = FileReadLine($file1,"13")
$attack1c = FileReadLine($file1,"6")
$attack2c = FileReadLine($file1,"7")
$attack3c = FileReadLine($file1,"8")
$attack4c = FileReadLine($file1,"15")
$attack1Cd = FileReadLine($file1,"9")
$attack2Cd = FileReadLine($file1,"10")
$attack3Cd = FileReadLine($file1,"11")
$attack4Cd = FileReadLine($file1,"16")
if (FileReadLine($file1,"17") == 1) Then
GUICtrlSetState($attack1_da,$GUI_CHECKED)
EndIf
if (FileReadLine($file1,"18") == 1) Then
GUICtrlSetState($attack2_da,$GUI_CHECKED)
EndIf
if (FileReadLine($file1,"19") == 1) Then
GUICtrlSetState($attack3_da,$GUI_CHECKED)
EndIf
if (FileReadLine($file1,"20") == 1) Then
GUICtrlSetState($attack4_da,$GUI_CHECKED)
EndIf
if (FileReadLine($file1,"21") == 1) Then
GUICtrlSetState($attack5_da,$GUI_CHECKED)
EndIf
if (FileReadLine($file1,"22") == 1) Then
GUICtrlSetState($attack6_da,$GUI_CHECKED)
EndIf
$attack5 = FileReadLine($file1,"23")
$attack5c = FileReadLine($file1,"24")
$attack5Cd = FileReadLine($file1,"25")
$attack6 = FileReadLine($file1,"26")
$attack6c = FileReadLine($file1,"27")
$attack6Cd = FileReadLine($file1,"28")
$attack7 = FileReadLine($file1,"29")
$attack7c = FileReadLine($file1,"30")
$attack7Cd = FileReadLine($file1,"31")
$attack8 = FileReadLine($file1,"32")
$attack8c = FileReadLine($file1,"33")
$attack8Cd = FileReadLine($file1,"34")
$attack8hp = FileReadLine($file1,"35")
GUICtrlSetData($status,"Save and Load new Values")
EndIf
EndFunc
Func saveKeys()
$readAttack1 = GuiCtrlRead($attack1Key)
$readAttack2 = GuiCtrlRead($attack2Key)
$readAttack3 = GuiCtrlRead($attack3Key)
$readAttack4 = GuiCtrlRead($attack4Key)
$readAttack5 = GuiCtrlRead($attack5Key)
$readAttack6 = GuiCtrlRead($attack6Key)
$readAttack7 = GuiCtrlRead($attack7Key)
$readAttack8 = GuiCtrlRead($attack8Key)
$readAttack1cast = GuiCtrlRead($attack1Cast)
$readAttack2cast = GuiCtrlRead($attack2Cast)
$readAttack3cast = GuiCtrlRead($attack3Cast)
$readAttack4cast = GuiCtrlRead($attack4Cast)
$readAttack5cast = GuiCtrlRead($attack5Cast)
$readAttack6cast = GuiCtrlRead($attack6Cast)
$readAttack7cast = GuiCtrlRead($attack7Cast)
$readAttack8cast = GuiCtrlRead($attack8Cast)
$readAttack1cd = GuiCtrlRead($attack1Cooldown)
$readAttack2cd = GuiCtrlRead($attack2Cooldown)
$readAttack3cd = GuiCtrlRead($attack3Cooldown)
$readAttack4cd = GuiCtrlRead($attack4Cooldown)
$readAttack5cd = GuiCtrlRead($attack5Cooldown)
$readAttack6cd = GuiCtrlRead($attack6Cooldown)
$readAttack7cd = GuiCtrlRead($attack7Cooldown)
$readAttack8cd = GuiCtrlRead($attack8Cooldown)
$readAttack1da = GuiCtrlRead($attack1_da)
$readAttack2da = GuiCtrlRead($attack2_da)
$readAttack3da = GuiCtrlRead($attack3_da)
$readAttack4da = GuiCtrlRead($attack4_da)
$readAttack5da = GuiCtrlRead($attack5_da)
$readAttack6da = GuiCtrlRead($attack6_da)
$readAttack8hp = GuiCtrlRead($attack8hitPoint)
$reg_minLife = GuiCtrlRead($regMin)
$reg_minMana = GuiCtrlRead($regMinMana)
$readLoot = GuiCtrlRead($lootKey)
$readReg = GuiCtrlRead($regKey)
FileDelete("data.txt")
FileWriteLine($file1,$readAttack1) ;1
FileWriteLine($file1,$readAttack2) ;2
FileWriteLine($file1,$readAttack3) ;3
FileWriteLine($file1,$readLoot) ;4
FileWriteLine($file1,$readReg) ;5
FileWriteLine($file1,$readAttack1cast) ;6
FileWriteLine($file1,$readAttack2cast) ;7
FileWriteLine($file1,$readAttack3cast) ;8
FileWriteLine($file1,$readAttack1cd) ;9
FileWriteLine($file1,$readAttack2cd) ;10
FileWriteLine($file1,$readAttack3cd) ;11
FileWriteLine($file1,$reg_minLife) ;12
FileWriteLine($file1,$reg_minMana) ;13
FileWriteLine($file1,$readAttack4) ;14
FileWriteLine($file1,$readAttack4cast) ;15
FileWriteLine($file1,$readAttack4cd) ;16
FileWriteLine($file1,$readAttack1da) ;17
FileWriteLine($file1,$readAttack2da) ;18
FileWriteLine($file1,$readAttack3da) ;19
FileWriteLine($file1,$readAttack4da) ;20
FileWriteLine($file1,$readAttack5da) ;21
FileWriteLine($file1,$readAttack6da) ;22
FileWriteLine($file1,$readAttack5) ;23
FileWriteLine($file1,$readAttack5cast) ;24
FileWriteLine($file1,$readAttack5cd) ;25
FileWriteLine($file1,$readAttack6) ;26
FileWriteLine($file1,$readAttack6cast) ;27
FileWriteLine($file1,$readAttack6cd) ;28
FileWriteLine($file1,$readAttack7) ;29
FileWriteLine($file1,$readAttack7cast) ;30
FileWriteLine($file1,$readAttack7cd) ;31
FileWriteLine($file1,$readAttack8) ;32
FileWriteLine($file1,$readAttack8cast) ;33
FileWriteLine($file1,$readAttack8cd) ;34
FileWriteLine($file1,$readAttack8hp) ;35
readKeys()
EndFunc
; THE FUTURE!
Func loadConfig()
$confVar1 = FileReadLine($configFile,"1")
$confVar2 = FileReadLine($configFile,"2")
$confVar3 = FileReadLine($configFile,"3")
$confVar4 = FileReadLine($configFile,"4")
$confVar5 = FileReadLine($configFile,"5")
$confVar6 = FileReadLine($configFile,"6")
$confVar7 = FileReadLine($configFile,"7")
$confVar8 = FileReadLine($configFile,"8")
$confVar9 = FileReadLine($configFile,"9")
$confVar10 = FileReadLine($configFile,"10")
$confVar11 = FileReadLine($configFile,"11")
$confVar12 = FileReadLine($configFile,"12")
$confVar13 = FileReadLine($configFile,"13")
$confVar14 = FileReadLine($configFile,"14")
$confVar15 = FileReadLine($configFile,"15")
$confVar16 = FileReadLine($configFile,"16")
$confVar17 = FileReadLine($configFile,"17")
$confVar18 = FileReadLine($configFile,"18")
$confVar19 = FileReadLine($configFile,"19")
$confVar20 = FileReadLine($configFile,"20")
$confVar21 = FileReadLine($configFile,"21")
$confVar22 = FileReadLine($configFile,"22")
$confVar23 = FileReadLine($configFile,"23")
$confVar24 = FileReadLine($configFile,"24")
$confVar25 = FileReadLine($configFile,"25")
$confVar26 = FileReadLine($configFile,"26")
$confVar27 = FileReadLine($configFile,"27")
$confVar28 = FileReadLine($configFile,"28")
$confVar29 = FileReadLine($configFile,"29")
$confVar30 = FileReadLine($configFile,"30")
$confVar31 = FileReadLine($configFile,"31")
$confVar32 = FileReadLine($configFile,"32")
$confVar33 = FileReadLine($configFile,"33")
$confVar34 = FileReadLine($configFile,"34")
$confVar35 = FileReadLine($configFile,"35")
$confVar36 = FileReadLine($configFile,"36")
$confVar37 = FileReadLine($configFile,"37")
$confVar38 = FileReadLine($configFile,"38")
$confVar39 = FileReadLine($configFile,"39")
$confVar40 = FileReadLine($configFile,"40")
$confVar41 = FileReadLine($configFile,"41")
EndFunc
Func _toolTip($msg)
GUICtrlSetData($status,$msg)
EndFunc
;#################################################
;Memory Read/write functions
;#################################################
Func OpenAionMemory()
$pid = ProcessExists("AION.bin")
If $pid == -1 Then
Return
EndIf
$openmem = _MemoryOpen($pid)
If @error Then
Return
EndIf
$AionRun = True
EndFunc
Func MemReadDLLEnemyHP($offset)
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _MemoryRead($finaladdr,$openmem)
$MemTest = _memoryread( $MemTest+ 0x1C4,$openmem)
$MemTest = _memoryread( $MemTest + 0x0034, $openmem,"byte" )
Return $MemTest
EndFunc
Func MemReadDLLEnemyLevel($offset)
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _MemoryRead($finaladdr,$openmem)
$MemTest = _memoryread( $MemTest+ 0x1C4,$openmem)
$MemTest = _memoryread( $MemTest + 0x0032, $openmem,"byte" )
Return $MemTest
EndFunc
Func MemReadTargetType($offset)
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _MemoryRead($finaladdr,$openmem)
$MemTest = _memoryread( $MemTest+ 0x1C4,$openmem)
$MemTest = _memoryread( $MemTest + 0x0168, $openmem )
Return $MemTest
EndFunc
Func MemReadDLL($offset)
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _MemoryRead($finaladdr,$openmem)
Return $MemTest
EndFunc
Func MemReadDLLFloat($offset)
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _MemoryRead($finaladdr,$openmem,"float")
Return $MemTest
EndFunc
Func MemWriteDLL($offset, $data)
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
_MemoryWrite($finalADDR,$openmem,$data,"float")
Return
EndFunc
Func MemReadEntity($offset)
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _memoryread($finaladdr,$openmem)
$MemTest = _memoryread($MemTest+ 0x1C4,$openmem)
Return $MemTest
EndFunc
Func MemReadTargetName($offset = "4F68FC")
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _memoryread($finaladdr,$openmem)
$MemTest = _memoryread($MemTest+ 0x4 ,$openmem)
;$MemTest = _memoryread( $MemTest + 0x0036 , $openmem,"byte" )
Return $MemTest
EndFunc
; the HP of the TargetEnemy
Func CheckEnemyDead()
return MemReadDLLEnemyHP("4F68FC")
;Return 0
EndFunc
Func playerCurrectEP()
return MemReadDLL("8EEEA8")
EndFunc
Func PlayerMaxEP()
return MemReadDLL("8EEE98")
EndFunc
Func playerCurrectMana()
return MemReadDLL("8EEEC0")
EndFunc
Func PlayerMaxMana()
return MemReadDLL("8EEEBC")
EndFunc
Func playerCurrectHp()
return MemReadDLL("8EEEB8")
EndFunc
Func playerCurrectHpPercent()
$val = MemReadDLL("8EEEB8")
$Pval = ($val * 100) / PlayerMaxHp()
return Round($Pval)
EndFunc
Func PlayerMaxHp()
return MemReadDLL("8EEEB4")
EndFunc
Func PlayerXPos()
return MemReadDLLFloat("8E6944")
EndFunc
Func PlayerYPos()
return MemReadDLLFloat("8E6940")
EndFunc
Func PlayerZPos()
return MemReadDLLFloat("8E6948")
EndFunc
; Angel of the Player 360° / 2 :)
Func GetPlayerPos()
Return MemReadDLLFloat("8E40C0")
EndFunc
Func GetEnemyLvl()
Return MemReadDLLEnemyLevel("4F68FC")
EndFunc
Func getEnityId()
Return MemReadEntity("4F68FC")
EndFunc
Func getTargetOfTarget()
Return MemReadTargetName()
EndFunc
Func getEnemyType()
Return MemReadTargetType("4F68FC")
EndFunc
Func ReadMemValues()
$playerHP = playerCurrectHp()
$playerHPMax = PlayerMaxHp()
$playerEP = playerCurrectEP()
$playerEPMax = PlayerMaxEP()
$playerEnergy = playerCurrectMana()
$playerEnergyMax = PlayerMaxMana()
EndFunc
;#################################################
;fight functions
;#################################################
Func enemyInsgid()
$enemyhp = CheckEnemyDead()
if $enemyhp <> 0 And $enemyhp > 99 And getEnemyType() <> 0 then
if GetEnemyLvl() = 1 Then
return false
EndIf
return true
EndIf
return false
EndFunc
Func KillEnemy()
$combatStartTimer = _TimeGetStamp() + 10
$combatAnimaLibera = 0
$goodCombat = 0
$combatFlag = 0
$timeDiff = _TimeGetStamp()
_toolTip("start attacking")
if $attack4 <> "x" then
F_buff()
EndIf
Sleep(100);
while CheckEnemyDead() <> 0
if $attack1 <> "x" then
if($combatFlag == 2) Then
return false
EndIf
F_arttack1()
validateAttack()
EndIf
if $attack2 <> "x" then
if($combatFlag == 2) Then
return false
EndIf
F_arttack2()
validateAttack()
EndIf
if $attack3 <> "x" then
if($combatFlag == 2) Then
return false
EndIf
F_arttack3()
validateAttack()
EndIf
if $attack5 <> "x" then
if($combatFlag == 2) Then
return false
EndIf
F_arttack5()
validateAttack()
EndIf
if $attack6 <> "x" then
if($combatFlag == 2) Then
return false
EndIf
F_arttack6()
validateAttack()
EndIf
WEnd
_toolTip("Mob down")
; add 1 to the kill counter :)
$enemyKillCount = $enemyKillCount + 1
GUICtrlSetData( $killCount, $enemyKillCount)
Sleep(1800)
; ep counter
$newEp = playerCurrectEP() - $playerEP
$playerEP = playerCurrectEP()
$enemyEpCount = $enemyEpCount + $newEp
GUICtrlSetData($epCount , $enemyEpCount)
; loot
_toolTip("start Looting")
Send($loot)
Sleep(400)
Send($loot)
calcTime($newEp)
Sleep(4000)
if(enemyInsgid() ) Then
F_EmCast() ;;;: Quickfix Nr. 3 - Added by Chefes78 28.10.2009
KillEnemy() ;;;: Quickfix Nr. 3 - Added by Chefes78 28.10.2009
;;;: Quickfix Nr. 3 - Added by Chefes78 28.10.2009
Else
if $attack7 <> "x" then
F_PostAttack()
EndIf
EndIf ;;;: Quickfix Nr. 3 - Added by Chefes78 28.10.2009
if ((playerCurrectHp()/$playerHPMax)*100) < $reg_minLife Or ((playerCurrectMana()/$playerEnergyMax)*100) < $reg_minMana Then
_toolTip("start Reging")
Send($reg)
while PlayerMaxHp() <> playerCurrectHp()
if( CheckEnemyDead() <> 0) Then
ExitLoop
EndIf
Sleep(1000)
WEnd
while PlayerMaxMana() <> playerCurrectMana()
if(CheckEnemyDead() <> 0) Then
ExitLoop
EndIf
Sleep(1000)
WEnd
Send("{w down}")
Sleep(100)
Send("{w up}")
EndIf
$jumper = _getRandomJumpTimer()
return 1
EndFunc
Func validateAttack()
if($goodCombat < 1) Then
if($combatStartTimer < _TimeGetStamp() ) Then
if(CheckEnemyDead() < 100) Then
$goodCombat = 1
$combatFlag = 1
Elseif($combatAnimaLibera < 2) Then
if(CheckEnemyDead() < 100) Then
$goodCombat = 1
$combatFlag = 1
return True
EndIf
combatFreeMind()
$combatAnimaLibera = $combatAnimaLibera + 1
Else
$combatFlag = 2
$lastBlackListEnemy = getEnityId()
EndIf
EndIf
EndIf
EndFunc
Func combatFreeMind()
Send("{s down}")
Sleep(1000)
Send("{s up}")
if($combatAnimaLibera > 0) Then
Send("{e down}")
Sleep(1500)
Send("{e up}")
Else
Send("{q down}")
Sleep(1500)
Send("{q up}")
EndIf
$combatStartTimer = _TimeGetStamp() + 10
EndFunc
Func checkBlackList()
If getEnityId() == $lastBlackListEnemy And $lastBlackListEnemy <> 0 Then
Return False
Else
Return True
EndIf
EndFunc
Func checkShutDown()
if($timeToShutdown > 0) Then
$sddiff = $timeToShutdown - _TimeGetStamp()
If $timeToShutdown < _TimeGetStamp() Then
Send("{w up}")
$Run = False
GUICtrlSetData ($buttonRun,"Start Bot")
Elseif($sddiff <> $timeCache) Then
$timeCache = $sddiff
GUICtrlSetData($timeToShutdownOutput ,SecToTime($sddiff))
EndIf
EndIf
EndFunc
Func setShutDownTimer()
if GuiCtrlRead($sdtimerInput) > 0 And GuiCtrlRead($sdtimerInput) <> "" Then
$timeToShutdown = _TimeGetStamp() + (GuiCtrlRead($sdtimerInput) * 60)
Else
$timeToShutdown = 0
GUICtrlSetData($timeToShutdownOutput ,"-----")
$Run = false
EndIf
EndFunc
;################################################
; Action functions
;################################################
Func F_arttack1()
F_EmCast()
if(($attack1LastCast + $attack1Cd) < _TimeGetStamp() and CheckEnemyDead() <> 0) Then
_toolTip("start attack Nr1")
Send($attack1)
Sleep($attack1c)
$attack1LastCast = _TimeGetStamp()
if(GuiCtrlRead($attack1_da) == 1 And CheckEnemyDead() <> 0) Then
Send($attack1)
Sleep(2000)
EndIf
EndIf
EndFunc
Func F_arttack2()
F_EmCast()
if(($attack2LastCast + $attack2Cd) < _TimeGetStamp() and CheckEnemyDead() <> 0) Then
_toolTip("start attack Nr2")
Send($attack2)
Sleep($attack2c)
$attack2LastCast = _TimeGetStamp()
if(GuiCtrlRead($attack2_da) == 1 And CheckEnemyDead() <> 0) Then
Send($attack2)
Sleep(2000)
EndIf
EndIf
EndFunc
Func F_arttack3()
F_EmCast()
if(($attack3LastCast + $attack3Cd) < _TimeGetStamp() and CheckEnemyDead() <> 0) Then
_toolTip("start attack Nr3")
Send($attack3)
Sleep($attack3c)
$attack3LastCast = _TimeGetStamp()
if(GuiCtrlRead($attack3_da) == 1 And CheckEnemyDead() <> 0) Then
Send($attack3)
Sleep(2000)
EndIf
EndIf
EndFunc
Func F_arttack5()
F_EmCast()
if(($attack5LastCast + $attack5Cd) < _TimeGetStamp() and CheckEnemyDead() <> 0) Then
_toolTip("start attack Nr4")
Send($attack5)
Sleep($attack5c)
$attack5LastCast = _TimeGetStamp()
if(GuiCtrlRead($attack5_da) == 1 And CheckEnemyDead() <> 0) Then
Send($attack5)
Sleep(2000)
EndIf
EndIf
EndFunc
Func F_arttack6()
F_EmCast()
if(($attack6LastCast + $attack6Cd) < _TimeGetStamp() and CheckEnemyDead() <> 0) Then
_toolTip("start attack Nr5")
Send($attack6)
Sleep($attack6c)
$attack5LastCast = _TimeGetStamp()
if(GuiCtrlRead($attack6_da) == 1 And CheckEnemyDead() <> 0) Then
Send($attack6)
Sleep(2000)
EndIf
EndIf
EndFunc
Func F_buff()
if(($attack4LastCast + $attack4Cd) < _TimeGetStamp()) Then
_toolTip("starting PreCast")
Send($attack4)
Sleep($attack4c)
$attack4LastCast = _TimeGetStamp()
if(GuiCtrlRead($attack4_da) == 1) Then
Send($attack4)
Sleep(2000)
EndIf
EndIf
EndFunc
Func F_PostAttack()
;~ sleep(250) ;;;: Failed Quickfix Nr. 2 - Added by Chefes78 - 28.10.2009 (not triggered if postattack is "x" out ... moving it to end of loot function )
;~ if(enemyInsgid() ) Then ;;;: Failed Quickfix Nr. 2 - Added by Chefes78 - 28.10.2009 (not triggered if postattack is "x" out ... moving it to end of loot function )
;~ KillEnemy() ;;;: Failed Quickfix Nr. 2 - Added by Chefes78 - 28.10.2009 (not triggered if postattack is "x" out ... moving it to end of loot function
;~ Else ;;;: Failed Quickfix Nr. 2 - Added by Chefes78 - 28.10.2009 (not triggered if postattack is "x" out ... moving it to end of loot function
if(($attack7LastCast + $attack7Cd) < _TimeGetStamp()) Then
_toolTip("starting PostCast")
Send($attack7)
Sleep($attack7c)
;~ send("{ESC}") ;;;: Failed Quickfix Nr. 1 - Added by Chefes78 - 28.10.2009 (not reliable enough )
$attack7LastCast = _TimeGetStamp()
EndIf
;~ EndIf ;;;: Failed Quickfix Nr. 2 - Added by Chefes78 - 28.10.2009 (not triggered if postattack is "x" out ... moving it to end of loot function
EndFunc
Func F_EmCast()
if ($attack8 <> "x") then
if(($attack8LastCast + $attack8Cd) < _TimeGetStamp() and playerCurrectHpPercent() <= $attack8hp) Then
_toolTip("starting Emergency Cast")
Send($attack8)
Sleep($attack8c)
$attack8LastCast = _TimeGetStamp()
EndIf
EndIf
EndFunc
;#################################################
;waypoint functions
;#################################################
Func _keyboardToWpInterface()
OpenAionMemory()
addWP()
EndFunc
Func addWP()
$playerX = PlayerXPos()
$playerY = PlayerYPos()
$playerZ = PlayerZPos()
$WPFile = "wp"
$openFile = GuiCtrlRead($wpSaveInput)
$wpSave = FileOpen($openFile, 1)
FileWriteLine($wpSave ,Round($playerX,2))
FileWriteLine($wpSave ,Round($playerY,2))
FileWriteLine($wpSave ,Round($playerZ,2))
FileClose($wpSave)
_toolTip("WayPoint: "&Round($playerX,0)&" - "&Round($playerY,0)&" - "&Round($playerZ,0)&" added")
EndFunc
Func readWP()
$countMax=0
$count = 1
$openFile = GuiCtrlRead($wpFileInput)
$readWPfile = FileOpen($openFile, 0)
While 1
$x1 = FileReadLine($readWPfile,$count)
if $x1 = "" Then
$count = 1
ExitLoop
EndIf
If @error = -1 Then ExitLoop
$count = $count +1
$countMax = $countMax +1
$x2 = FileReadLine($readWPfile,$count)
$count = $count +1
$countMax = $countMax +1
$x3 = FileReadLine($readWPfile,$count)
$count = $count +1
$countMax = $countMax +1
Wend
FileClose($readWPfile)
$openFile = GuiCtrlRead($wpFileInput)
$readWPfile = FileOpen($openFile, 0)
While 1
$x1 = FileReadLine($readWPfile,$count)
if $x1 = "" Then
$count = 1
ExitLoop
EndIf
If @error = -1 Then ExitLoop
$wpField[$count-1] = $x1
$count = $count +1
$x2 = FileReadLine($readWPfile,$count)
$wpField[$count-1] = $x2
$count = $count +1
$x3 = FileReadLine($readWPfile,$count)
$wpField[$count-1] = $x3
$count = $count +1
Wend
_toolTip("Waypoints loaded ... "&$countMax/3&" found" )
FileClose($readWPfile)
EndFunc
Func getCredits()
return @LF&"developed by: Plany, Unknown "&@LF &"Logo by: Blun0r" &@LF & "Edited by Chefes78"
EndFunc
Func calcTime($nep)
$ntime = _TimeGetStamp() - $timeDiff
$tmpMep = PlayerMaxEP()
$tmpCep = playerCurrectEP()
$timeToLevelUp =(($tmpMep - $tmpCep) / $nep ) * $ntime
$newTime = Round(($timeToLevelUp/60)/60,2)
if($lastTime <> 0) Then
if($newTime > $lastTime) Then
$difftime = $newTime - $lastTime
$avgTime = $difftime + $lastTime
Elseif($lastTime > $newTime) Then
$difftime = $lastTime - $newTime
$avgTime = $difftime + $newTime
EndIf
$lastTime = $newTime
Else
$lastTime = $newTime
$avgTime = $newTime;
EndIf
GUICtrlSetData($TimeCount, timeToHuman($avgTime))
EndFunc
;#################################################
;navigate functions
;#################################################
Func calcDist($xa,$ya)
$distCalc = sqrt( ($xa-PlayerXPos())^2 + ($ya-PlayerYPos())^2 )
if($distCalc > 15) Then
_jumpPlayer()
EndIf
return $distCalc
EndFunc
Func _getRandomJumpTimer()
return _TimeGetStamp() + Random(0,6,1)
EndFunc
Func _jumpPlayer()
if($jumper < _TimeGetStamp()) Then
if( $jumper <> 0) Then
Send("{SPACE down}")
Sleep(80)
Send("{SPACE up}")
EndIf
$jumper = _getRandomJumpTimer()
EndIf
EndFunc
Func _switchRotate($target, $now)
if($target < $now) Then
If(($now - $target) > 180) Then
$rot_down = "a down"
$rot_up = "a up"
Else
$rot_down = "d down"
$rot_up = "d up"
EndIf
Else
If(($target - $now) > 180) Then
$rot_down = "d down"
$rot_up = "d up"
Else
$rot_down = "a down"
$rot_up = "a up"
EndIf
EndIf
EndFunc
; rechnet 90 zu 360 hoch
Func getAngle($diffX, $diffY)
$angle = ATan($diffY/$diffX)
$angle = ($angle * 180.0 )/ $pi
if $diffX > 0 and $diffY > 0 Then
return getThreeSixty((180 -$angle),true)
ElseIf $diffX > 0 and $diffY < 0 Then
return getThreeSixty((-180 -$angle),true)
ElseIf $diffX < 0 and $diffY < 0 Then
return getThreeSixty((0 -$angle),true)
ElseIf $diffX < 0 and $diffY > 0 Then
return getThreeSixty((0 -$angle),true)
EndIf
EndFunc
; Flag = true - rechne 180 auf 360 hoch
;Flag = false - calc 360er rotate!
Func getThreeSixty($angle, $flag = false)
If($flag) Then
If($angle < 0) Then
$angle = (360 - ($angle * -1))
EndIf
Else
If($angle > 360)Then
$angle = $angle - 360
ElseIf($angle < 0)Then
$angle = $angle + 360
EndIf
EndIf
Return $angle
EndFunc
Func alignRotaion($x, $y, $move = false)
$playerXcoord = PlayerXPos()
$playerYcoord = PlayerYPos()
;$playerZcoord = PlayerZPos()
$diffY = Round($y - $playerYcoord,2)
$diffX = Round($x - $playerXcoord,2)
$angle = getAngle($diffX, $diffY)
$nowAng = getThreeSixty(GetPlayerPos(), true)
_switchRotate($angle, $nowAng)
While ($angle + 5) < $nowAng OR ($angle - 5) > $nowAng
if $move Then
Send("{w down}")
EndIf
Send("{"&$rot_down&"}")
$nowAng = getThreeSixty(GetPlayerPos(), true)
WEnd
if $move Then
if(($angle + 5) < $nowAng AND ($angle - 5) > $nowAng) Then
Send("{w up}")
EndIf
EndIf
Send("{"&$rot_up&"}")
EndFunc
Func walkPoints()
while $i < ($countMax-1)
checkShutDown()
WinActivate("AION Client")
WinWaitActive("AION Client")
_toolTip("Move to waypoint "&($i/3)+1)
$xCoord=$wpField[$i]
$yCoord=$wpField[$i+1]
$zCoord=$wpField[$i+2]
$i=$i+3
$Distance = calcDist($xCoord,$yCoord)
while $Distance > 3
alignRotaion($xCoord, $yCoord, true)
Send("{Tab}")
if(enemyInsgid() and checkBlackList()) Then
Send("{w up}")
KillEnemy()
_toolTip("Move to waypoint "&($i/3)+1)
;~
EndIf
;~ Send("{Tab}")
$Distance = calcDist($xCoord,$yCoord)
Send("{w down}")
If $Run = False Then
Send("{w up}")
ExitLoop
EndIf
WEnd
If $Run = False Then
Send("{w up}")
ExitLoop
EndIf
$jumper = _getRandomJumpTimer()
WEnd
$i=0
EndFunc
;#################################################
; unix Timestamp / useable Function
;#################################################
Func timeToHuman($time)
$st = Round($time,0)
$mi = (Round($time,2) - $st)* 100
if($mi < 0) Then
$mi = $mi * -1
EndIf
return $st&"H "&Round($mi)&"M"
EndFunc
Func SecToTime($sec)
$min = $sec / 60
$hour = $min / 60
if(Round($min) >= 60)Then
return Round($hour)&" H"
ElseIf($sec >= 60) Then
return Round($min)&" M"
Else
return Round($sec)&" S"
EndIf
EndFunc
Func _TimeGetStamp()
Local $av_Time
$av_Time = DllCall('CrtDll.dll', 'long:cdecl', 'time', 'ptr', 0)
If @error Then
SetError(99)
Return False
EndIf
Return $av_Time[0]
EndFunc
Func _DecimalToHex($hx_dec, $hx_length = 6)
If IsInt($hx_dec) = 0 Then
SetError(1)
MsgBox(0,"Error","Wrong input, try again ...")
Return ""
EndIf
Local $ret = "", $Ii, $hx_tmp, $hx_max
If $hx_dec < 4294967296 Then
If $hx_length < 9 Then Return Hex($hx_dec, $hx_length)
If $hx_length = 21 Then
$ret = Hex($hx_dec)
While StringLeft($ret, 1) = "0"
$ret = StringMid($ret, 2)
WEnd
Return $ret
EndIf
EndIf
For $Ii = $hx_length - 1 To 0 Step -1
$hx_max = 16 ^ $Ii - 1
If $ret = "" And $hx_length = 21 And $hx_max > $hx_dec Then ContinueLoop
$hx_tmp = Int($hx_dec/($hx_max+1))
If $ret = "" And $hx_length = 21 And $Ii > 0 And $hx_tmp = 0 Then ContinueLoop
;$ret &= StringMid($HX_REF, $hx_tmp+1, 1)
$hx_dec -= $hx_tmp * ($hx_max + 1)
Next
$ret=String($ret)
If $hx_length < 21 And StringLen($ret) < $hx_length Then SetError(1)
Return $ret
EndFunc ;==>_DecToHex()
;#################################################
;gui loop
;#################################################
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $buttonSave
saveKeys()
Case $buttonAddWayPoint
OpenAionMemory()
addWP()
Case $buttonOpenWayPoint
readWP()
Case $buttonRun
GUICtrlSetData ($buttonRun,"Bot running")
setShutDownTimer()
OpenAionMemory()
ReadMemValues()
$Run = True
while $Run = True
checkShutDown()
walkPoints()
WEnd
EndSwitch
WEnd
;0 4 8 C hex 4bit jumps
;For $i = 9361000 To 9369000
; GUICtrlSetData($status,"SCAN VAR "&$i)
; $var = MemReadDLL(_DecimalToHex($i))
; if( Round($var,2) > 1000 And Round($var,2) < 6900000) Then
; FileWriteLine("mem.txt",_DecimalToHex($i)&" = "&Round($var,2))
; EndIf
;Next
#cs
THE FUTURE!
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$gui = GUICreate("tabs for page options", 500, 400)
$tab = GUICtrlCreateTab(-10, -22, 520, 430)
$tabpage1 = GUICtrlCreateTabItem("page1")
$tab1Btn1 = GUICtrlCreateButton("go to page 2", 60, 60, 100, 30)
$tab1Btn2 = GUICtrlCreateButton("go to page 3", 60, 120, 100, 30)
GUICtrlCreateLabel("This is page 1", 100, 200)
$tabpage2 = GUICtrlCreateTabItem("page2")
$tab2Btn1 = GUICtrlCreateButton("go to page 1", 60, 60, 100, 30)
$tab2Btn2 = GUICtrlCreateButton("go to page 4", 60, 120, 100, 30)
GUICtrlCreateLabel("This is page 2", 100, 220)
$tabpage3 = GUICtrlCreateTabItem("page3")
$tab3Btn1 = GUICtrlCreateButton("go to page 2", 60, 60, 100, 30)
$tab3Btn2 = GUICtrlCreateButton("go to page 4", 60, 120, 100, 30)
GUICtrlCreateLabel("This is page 3", 100, 240)
$tabpage4 = GUICtrlCreateTabItem("page4")
$tab4Btn1 = GUICtrlCreateButton("go to page 1", 60, 60, 100, 30)
$tab4Btn2 = GUICtrlCreateButton("go to page 3", 60, 120, 100, 30)
GUICtrlCreateLabel("This is page 4", 100, 260)
GUICtrlCreateTabItem("")
GUICtrlSetState($tabpage1, $GUI_SHOW)
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case - 3
Exit
Case $tab1Btn1
GUICtrlSetState($tabpage2, $GUI_SHOW)
Case $tab1Btn2
GUICtrlSetState($tabpage3, $GUI_SHOW)
Case $tab2Btn1
GUICtrlSetState($tabpage1, $GUI_SHOW)
Case $tab2Btn2
GUICtrlSetState($tabpage4, $GUI_SHOW)
Case $tab3Btn1
GUICtrlSetState($tabpage2, $GUI_SHOW)
Case $tab3Btn2
GUICtrlSetState($tabpage4, $GUI_SHOW)
Case $tab4Btn1
GUICtrlSetState($tabpage1, $GUI_SHOW)
Case $tab4Btn2
GUICtrlSetState($tabpage3, $GUI_SHOW)
EndSwitch
WEnd
#ce