You last visited: Today at 01:39
Advertisement
Aion AutoIt Bot Beta [Open Source]
Discussion on Aion AutoIt Bot Beta [Open Source] within the Aion Hacks, Bots, Cheats & Exploits forum part of the Aion category.
11/20/2009, 00:06
#841
elite*gold: 0
Join Date: Jun 2009
Posts: 7
Received Thanks: 0
bot =_=
verdamt mein bot rogi sagt alls way ponts 00.00.00.00 seit update das ist **** weis wer welcher jetzt nochgeht oder wann ein neuer kommt danke schon mall
11/20/2009, 08:06
#842
elite*gold: 0
Join Date: Oct 2009
Posts: 4
Received Thanks: 2
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
11/20/2009, 15:20
#843
elite*gold: 0
Join Date: Jun 2009
Posts: 7
Received Thanks: 0
mhhh
den hab ich glaub auch ürgentwo rum flaggen aber die haben seit update die kordinaten weg gelöshd dadurch allso kein bot
und jetzt meine frage wie mach ich das das er trotzdem rum rent oder wan es ein neuen gibt thx
11/20/2009, 19:26
#844
elite*gold: 0
Join Date: Oct 2009
Posts: 4
Received Thanks: 2
Quote:
Originally Posted by
wartze
den hab ich glaub auch ürgentwo rum flaggen aber die haben seit update die kordinaten weg gelöshd dadurch allso kein bot
und jetzt meine frage wie mach ich das das er trotzdem rum rent oder wan es ein neuen gibt thx
Hab doch oben den Quellcode gepostet, lade
runter und compilier den Code, dann hast die neue Exe.
11/20/2009, 22:11
#845
elite*gold: 0
Join Date: Oct 2009
Posts: 295
Received Thanks: 103
MiniMax3
Updated: Works with the new Patch...
F7 to kill the bot and get back control
F5 to kill mob first
New: Blacklist Button for 1 mob
Tell me if you dont like the break and check for mobs
at each waypoint...
Attached Files
MiniMax3.0.rar
(311.4 KB, 90 views)
11/22/2009, 03:55
#846
elite*gold: 0
Join Date: Oct 2009
Posts: 295
Received Thanks: 103
MiniMax4
Someone please test if the MouseClicks hit the OK button
to release your corps once dead... works fine on my resolution
New:
- Added Ghost Waypoint feature...
if you start with the GPs first fill out the input fields for WP FileNames...
this way you will get a GP Backupfiles with the name of the camp
The GP file is the
active Ghost Waypoints you last used...
if you switch Camp go to the bot folder and delete the current
GP file first ... then make a copy of your GP Backupfile and name
it GP
If you die and dont have a File called GP in the bot folder the
programm will exit after releasing corps... else you will walk
back to camp and start hunting again (with agro detection
on the way etc...
)
Clicking Add GP Button adds the new GP to the File and
creats the Backupfile
Delete GP Button only wipes the GP file... not your Backupfiles
- Walk back to Camp feature
If you have a GP file in your bot folder and hit the Walk to Camp
button the bot will bring you save to camp and once there
you will begin hunting on your last used WP route
- While running from WP to WP
You will only attack stuff that is in Max Range (Best is you set your
max range to your pulling range... meles should work with a pull spell as
precast )
- Most Bugs removed (tell me if you find one !! )
Tested with Sorc. on Max range settings
-To Do:
Code cleanup ...
Pic:
Attached Files
MiniMax4.rar
(314.6 KB, 82 views)
11/22/2009, 14:21
#847
elite*gold: 0
Join Date: Oct 2009
Posts: 295
Received Thanks: 103
as its a pain to record the the GP Waypoints we can share them...
just create a new .txt file with the Numbers and save it as GP
(without the .txt at the end... )
Here im sharing the path to the Pond with the Sanga Ribbits in
Gribade Canyon... lvl 15-20 camp ..
Code:
715.72
1810.1
262.85
721.61
1823.77
261.74
725.77
1839.21
260.55
722.94
1852.7
259.43
709.23
1880.68
260.26
696.52
1883.53
259.63
664.57
1863.2
251.25
629.85
1886.22
250.88
612.22
1912.36
252.92
615.43
1938.37
260.1
626.81
1968.26
266.39
633.15
1984.21
267.28
615.22
2004.09
269.5
591.69
2007.22
267.68
534.78
1990.27
265.63
514.82
2013.6
271.07
504.26
2044.27
280.83
504.46
2067.5
286.85
523.7
2088.27
296.73
539.21
2091.7
296.41
565.31
2099.23
298.68
588.59
2116.68
302.44
609.54
2140.13
305.19
597.88
2160.69
305.25
570.85
2190.69
305.69
546.62
2216.28
306.58
523.83
2247.1
311.88
500.99
2253.48
315.46
444.96
2261.15
314.5
Stuff im doing atm:
- Pimping the Blacklist function... make it persistent for several mobs
- Tuning the recover at GP function (needs to wait longer till weaknes wears off)
- soon you dont need to open GP/WPs anymore... it will pick the closest GP/WP point
and continue from there (no need to be at starting point anymore )
Peace Chefes78
11/22/2009, 15:56
#848
elite*gold: 0
Join Date: Apr 2009
Posts: 3
Received Thanks: 0
bot funktioniert gut. als assa richtige einstellungen zu machen is schwierig könnte mir jemand da mal helfen thx schonmal
greetz
11/22/2009, 21:47
#849
elite*gold: 0
Join Date: Oct 2009
Posts: 295
Received Thanks: 103
Quote:
Originally Posted by
wayne5345
bot funktioniert gut. als assa richtige einstellungen zu machen is schwierig könnte mir jemand da mal helfen thx schonmal
greetz
kannst mir ein bild posten vom bot mit deinen einstellungen?
dazu muss ich wissen wie die timer von deinen Abilities sind
und ob du ranged hast?
sorry ich hab nie als assa gespielt :S
Sneak a peak at the new version comming soon...
11/23/2009, 01:15
#850
elite*gold: 0
Join Date: Apr 2009
Posts: 3
Received Thanks: 0
joa hier haste mal meine einstellungen
11/23/2009, 17:34
#851
elite*gold: 0
Join Date: Oct 2009
Posts: 295
Received Thanks: 103
Quote:
Originally Posted by
wayne5345
joa hier haste mal meine einstellungen
erstmals sorry das ich erst heute antworte... war recht busy (siehe pic ;D )
ok Big Mistak !! daher in English und Deutsch:
-Do not use casttime 0 ...
input like 800ms for Instant cast abilities
-Verwende niemals casttime 0 ...
Für Zauber/Fähigkeiten mit sofortiger wirkung nehmt 800ms als Casttime
beta preview:
- wp list is working... today i finish Keyset save list ;D
- no need to open wp before start anymore
- Todo > Multimob Blacklist & better antistuck
- As its really hard to set timers i will make a function to convert real ingame timers (casttime and cooldown ) to the optimal values for the bot... big work here -.- prolly not in next version yet...
... then i will bring the next release ;D ...
11/23/2009, 17:46
#852
elite*gold: 0
Join Date: Oct 2009
Posts: 295
Received Thanks: 103
Quote:
Originally Posted by
wayne5345
joa hier haste mal meine einstellungen
dein Precast ist auf 1 gemappt...
ist es ein buff oder ranged pull ?
falls es ranged pull ist gib bei casttime
die zeit ein die der mob ca braucht
bis er bei dir ist... so 2-3 sec...
je nach mob halt ;D ...
Casttime ist die Zeit die der bot wartet bis er
die nächste Attacke ausführt..
der spell ist dan schon lange fertig aber er wartet
noch bis er die erste ability macht...
Min distance is dein Reichweite für den Dagger/Schwert etc... Min Dist. ev. auch
auf 3 Meter runter schrauben..
Max distance ist deine Reichweite.. der bot
greift nur Sachen an die in Reichweite sind
(auf dem direkten weg von WP zu WP)
Falls du Precast als Pulling Fähigkeit einsetzt
dann Setze Max Dist. auf die Reichweite dieser
Fähigkeit...
DA tick = Tripple Attack...
Hier werde ich noch ein bischen rumschrauben... falls DA ticked ist
castet er den Angriff und wartet die Casttime ab .. dann spammt
er alle ( Casttime / 4 ) ms den Angriff ( ca 8 mal... für die Combo ) .. .
mit dem timer spielen bis es optimal passt...
Man ich brauch Google Translate: Autoit Code >> Deutsch ;D
11/23/2009, 22:53
#853
elite*gold: 0
Join Date: Jan 2008
Posts: 154
Received Thanks: 7
arbeitet der botcoder noch an diesem bot?
ich nehme mal an ja?
wär es vieleicht möglich ihn mal zu fragen, ob er sone art unstuck mechanismus einbauen kann? wie in dem anderen autoaion bot da... wo der bot dann nachdem er das mob nicht erreichen kann stück zureckt geht und dann nen guten bogen macht um das problematische objekt?
das wäre echt ne coole sache für diesen bot, da mein char ständig an sonem baum hängt wohinter ein mob spawnt... und der bot stuckt da solange bis er ein aggromob zieht, welches ihn dann von hinten erschlägt und er wehrt sich nicht...
is halt schade weil man so nie afk gehen kann... und das würde ich gern.
so läuft der bot vieleicht für ne gute stunde ganz gut und dann kommt der baum und stuck ^^ - und wenns nicht der baum wäre, wärs ein anderer baum ^^
also wär cool wenn man sone automatische unstuck funktion hier hätte, da ich diesen bot hier favoriesiere - weil er ordentlich die skills durchhaut und auch sonst recht gut laufen könnte, wenn er nicht ab und zu stucken würde.
ansonsten wär cool wenn er die agros zuerst killt oderso - aber naja man kann ja nich alles haben ^^
also mit unstuck fähigkeit wärs echt super der botto
11/24/2009, 18:23
#854
elite*gold: 0
Join Date: Oct 2009
Posts: 295
Received Thanks: 103
MiniMax4
Attached Files
MiniMax4 RC.zip
(477.6 KB, 45 views)
11/25/2009, 00:17
#855
elite*gold: 0
Join Date: Oct 2009
Posts: 295
Received Thanks: 103
> was running 24hours till i got kicked from server... i was not banned ;D
> 1600 kills in a row without flaws ...
> New combolist box needs to be tested... should work
All times are GMT +1. The time now is 01:39 .