ich nutze immer noch die alte Version von AutoAion 010.
Hat sich bisher bei mir bestens bewährt und ich habe damit irgendwie den besten Killspeed.
Falls jemand Ahnung von diesem Offsetzeugs hat (ich hab keinen Schimmer) und gerade nichts zu tun hat wäre ich sehr dankbar wenn ihr euch den Code mal anschauen könntet und falls es nicht so viel Aufwand ist ihn auf die neueste Version bringen. Wäre sehr nice. Die neuen Offsets sind ja glaube ich schon gepostet worden.
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.1", 270,600, -1, -1, -1)
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 = 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
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, 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
; 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(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("{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()
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&"developed by: Plany, Unknown"&@LF &"Logo by: Blun0r"
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
$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