Da ich bisher nur den 0.91 verwendet habe, kann ich dir auch nur den anbieten.
Thx to d3xyna for the PosAddr. :-D
Code:
#AutoIT3Wrapper_UseUpx=n
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=AutoAion_beta_09.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.91 ", 270,600, 0, 0, -1, $WS_EX_TOPMOST)
;GUICtrlCreatePic("pic.jpg", 0, 500, 270, 100)
GUISetState(@SW_SHOW)
GuiCtrlSetState(-1,$GUI_DISABLE)
HotKeySet("{F5}","stop")
HotKeySet("{NUMPADADD}","_keyboardToWpInterface")
Global $Run = False
Global $AddrPlayerAoP = "A1C8C8"
Global $AddrPlayerYPos = "A1F158"
Global $AddrPlayerXPos = "A1F15C"
Global $AddrPlayerZPos = "A1F160"
Global $AddrPlayerMaxEp = "A27700"
Global $AddrPlayerCurEp = "A27710"
Global $AddrPlayerMaxHp = "A2771C"
Global $AddrPlayerCurHp = "A27720"
Global $AddrPlayerMaxMana = "A27724"
Global $AddrPlayerCurMana = "A27728"
Global $AddrEnemy = "62EB7C"
Global $enemyKillCount = 0
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
$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)
;x,y,breite,höhe
$LabelTot = GUICtrlCreateLabel("---", 15, 535, 200, 17)
$wpSaveInput = GUICtrlCreateInput("", 30, 377, 70, 20)
; status field
$status = GUICtrlCreateLabel("Start Bot-Engine... done!"&getCredits(), 5,460, 230, 40)
;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:", 15, 510, 44, 17)
$sdtimerInput = GUICtrlCreateInput("0", 65, 508, 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
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)
$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 playerCurrectEP()
return MemReadDLL($AddrPlayerCurEp)
EndFunc
Func PlayerMaxEP()
return MemReadDLL($AddrPlayerMaxEp)
EndFunc
Func playerCurrectMana()
return MemReadDLL($AddrPlayerCurMana)
EndFunc
Func PlayerMaxMana()
return MemReadDLL($AddrPlayerMaxMana)
EndFunc
Func playerCurrectHp()
return MemReadDLL($AddrPlayerCurHp)
EndFunc
Func playerCurrectHpPercent()
$val = MemReadDLL($AddrPlayerCurHp)
$Pval = ($val * 100) / PlayerMaxHp()
return Round($Pval)
EndFunc
Func PlayerMaxHp()
return MemReadDLL($AddrPlayerMaxHp)
EndFunc
Func PlayerXPos()
return MemReadDLLFloat($AddrPlayerXPos)
EndFunc
Func PlayerYPos()
return MemReadDLLFloat($AddrPlayerYPos)
EndFunc
Func PlayerZPos()
return MemReadDLLFloat($AddrPlayerZPos)
EndFunc
; Angel of the Player 360° / 2 :)
Func GetPlayerPos()
Return MemReadDLLFloat($AddrPlayerAoP)
EndFunc
Func CheckEnemyDead()
return MemReadDLLEnemyHP($AddrEnemy)
;Return 0
EndFunc
Func GetEnemyLvl()
Return MemReadDLLEnemyLevel($AddrEnemy)
EndFunc
Func getEnityId()
Return MemReadEntity($AddrEnemy)
EndFunc
Func getTargetOfTarget()
Return MemReadTargetName($AddrEnemy)
EndFunc
Func getEnemyType()
Return MemReadTargetType($AddrEnemy)
EndFunc
;*****************************************************************************************************
Func ReadMemValues()
$playerHP = playerCurrectHp()
gUICtrlSetData( $LabelTot, $playerHP)
$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() < 5 Then
return false
EndIf
return true
EndIf
return false
EndFunc
Func KillEnemy()
$timeDiff = _TimeGetStamp()
_toolTip("start attacking")
if $attack4 <> "x" then
F_buff()
EndIf
Sleep(100);
while CheckEnemyDead() <> 0
if ($Run = False) then
ExitLoop
EndIf
if playerCurrectHp() < 200 Then
$Run = False
GUICtrlSetData ($buttonRun,"Start Bot")
endIf
gUICtrlSetData($LabelTot, playerCurrectHp() & " / " & PlayerMaxHp())
if $attack1 <> "x" then
F_arttack1()
EndIf
if $attack2 <> "x" then
F_arttack2()
EndIf
if $attack3 <> "x" then
F_arttack3()
EndIf
if $attack5 <> "x" then
F_arttack5()
EndIf
if $attack6 <> "x" then
F_arttack6()
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(600)
Send($loot)
calcTime($newEp)
Sleep(3000)
if $attack7 <> "x" then
F_PostAttack()
EndIf
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($reg)
EndIf
$jumper = _getRandomJumpTimer()
return 1
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()
if(($attack7LastCast + $attack7Cd) < _TimeGetStamp()) Then
_toolTip("starting PostCast")
Send($attack7)
Sleep($attack7c)
$attack7LastCast = _TimeGetStamp()
EndIf
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&""&@LF &"developed by: Plany, Unknown"
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()) Then
Send("{w up}")
KillEnemy()
_toolTip("Move to waypoint "&($i/3)+1)
EndIf
$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