Register for your free account! | Forgot your password?

Go Back   elitepvpers > Aion > Aion Hacks, Bots, Cheats & Exploits
You last visited: Today at 23:21

  • Please register to post and access all features, it's quick, easy and FREE!

 

Aion AutoIt Bot Beta [Open Source]

Reply
 
Old   #526
 
elite*gold: 0
Join Date: Oct 2009
Posts: 4
Received Thanks: 0
Also ich will hier auch mal mein dank aussprechen das teil ist einfach genial und mein respekt vor den leuten die das hier so erarbeitet haben.
Hab jetzt zwar erst ein paar stunden damit rumhantiert aber bin begeistert.

Einzigste problem ist halt wie glaub alle hier haben die neutralen mobs zu finden ich bin nun level 35 mit meinem jäger und find keinen vernüftigen spot daher würd mich das mal intressieren wo ihr so hingeht bzw ob es ne liste gibt wo man wann hingehen kann um die sterbe rate möglichst gering zu halten.



Deface911 is offline  
Old   #527
 
elite*gold: 0
Join Date: Oct 2009
Posts: 3
Received Thanks: 0
Super geil Plany... du bist echt super in ordnung und hängst dich voll rein in dein projekt und hilfst sehr vielen spielern die lust nicht zu verlieren!!! Hut zück!

ich freu mich jeden abend wieder zu lesen das er doch noch ncith perfect ist :-D und du schonwieder was verbessert hast obwohl ich für ein Free share pro das schon mehr als ausreichend finde. .. :-D

Dickes DANKE!!


IllnessXG is offline  
Old   #528
 
elite*gold: 0
Join Date: May 2008
Posts: 33
Received Thanks: 3
einfach nur genial
super arbeit ... ich dachte schon das es bei 0,9 nicht besser geht aber du übertriffst dich immer sleber.
Calcifer is offline  
Old   #529
 
elite*gold: 0
Join Date: Oct 2009
Posts: 2
Received Thanks: 0
hi erstmal wollte ich mich für deine arbeit bedanken.
zudem wollte ich mich aufarbeit wenn ich zeit habe auch ein bissel dranbeteiligen und daher auch meine frage: Ist die add erkennung schon mit drin ?


molin is offline  
Old   #530
 
elite*gold: 0
Join Date: Oct 2009
Posts: 32
Received Thanks: 2
Vielen Dank für die Arbeit bisher!

Folgende Probleme bestehen bei mir beobachtet immer noch:
(getestet mit "Kantor")

I. Adds werden nicht immer erkannt

II. Lootzeit für Nahkämpfer zu lang [evtl könnte man da auch ein Feld einfügen, indem man selbst die "Cast"Zeit einstellt (wenn das nicht durch die Programmierung unterbunden ist), bzw Meele/Range auswählen kann)]
-> beim langen looten hängt ab und zu noch ein mob dran, dessen man sich so auch lange zeit nicht wehrt

III. nachdem Ausruhen/während attackiert zu werden, führte bei mir teils dazu, dass das aktuelle Target (der Aggromob) verlassen wurde und stattdessen ein neues Ziel angegriffen wurde

IV. der Emergency Spell wird bei mir relativ oft ignoriert/übergangen solange es kein instant ist



Ein Vorschlag noch zum Schluss:

Einen reinen Pullspell zur Verfügung zu haben der solange versucht wird zu casten, bis er auch ausgeführt wurde währe gut, kann mir jedoch vorstellen das dies aufgrund fehlender Rückmeldung umzusetzen nicht möglich ist ...
oot3 is offline  
Old   #531
 
elite*gold: 0
Join Date: Oct 2009
Posts: 4
Received Thanks: 0
Auch von meiner Seite vielen Dank für eure Mühen! Hut ab! Das ganze funktioniert richtig gut. Aber auch ich hätte da noch 1-2 Punkte:

I. Ich hatte das gleiche Problem wie mein Vorredner in Punkt 3.
II. Kommt in naher Zukunft noch eine "Selfdead" Erkennung. Also das er merkt wenn man tot ist?
III. Er läuft bei mir noch öfter gegen Mauerrn,Wände ect.

Gruß
Nycon is offline  
Old   #532
 
elite*gold: 180
Join Date: Sep 2007
Posts: 33
Received Thanks: 1
weiss nicht ob es schon jemand angesprochen hat oder es bekannt ist...
ich habe bei mir mal die jump-funktion auskommentiert da es bei mir schon oft vorgekommen ist, dass er beim laufen mehrmals space drückt und plötzlich anfängt unkontrolliert durch die pampa zu fliegen^^

an sonsten tiefste an die bastler
bodo0815 is offline  
Old   #533
 
elite*gold: 0
Join Date: Jul 2006
Posts: 122
Received Thanks: 4
Danke auch von mir mal wieder !! man könnte fast nichts mehr besser machen
Tonyblizza is offline  
Old   #534
 
elite*gold: 0
Join Date: Oct 2009
Posts: 42
Received Thanks: 6
Für das Problem mit der Loot-Zeit, dass nach dem Loot zu lange gewartet wird, hilft das hier:

Code:
Func GetEnemyState()
	Return MemReadDLLEnemyByte("0x020C")
EndFunc
Code:
	Local $counter = 0
	While (GetEnemyState() <> 0) and ($counter < 50); bis mob verschwindet oder nach 5 Sekunden
		Sleep (100)
		$counter += 1
	WEnd

Wenn mit im Gegenzug mal jemand sagen könnte, wie ich z.B. ALT + 1 an AION senden kann wäre ich äußerst dankbar.
P.S.:
mit send ("!1") funktioniert es nicht
mit send ("{ALT}1") funktioniert es nicht
mit send ("{ALT DOWN"}) send ("1") send ("{ALT up}") funktioniert es auch nicht
ShrekIII is offline  
Old   #535
 
elite*gold: 0
Join Date: Oct 2009
Posts: 295
Received Thanks: 103
Quickfix

can someone help beta test this edit?

fixed: bot now checks for an valid target after looting (add recognition)

if found -> it will check for emcast() and then killenemy()

if NOT found -> it will go to postcast()

Theorie:
once you killed and looted your mob your target is reset (empty) ... if you
have agro and a mob keeps hitting you, it autom. sets your target to that
attacking mob ... have a try pls

Quick and dirty fix..

as this is a beta version pls compile your own .exe or run it out of AutoIt

Edits in Code:

Line 15:
Makes sets the bot gui window top most (without focus) .. bot is always visible
Code:
GuiCreate("AutoAion v0.10.2 ", 270,600, -1, -1, -1, $WS_EX_TOPMOST)   ;;;: Quickfix Nr. 3  - Added by Chefes78 - 28.10.2009 (Makes the Gui top most window (without focus ... ) ... like this you can see what the bot is doing (Tooltips... )

Line 739 - 755:
check for Valid target after loot ..
Code:
		_toolTip("start Looting")
		Send($loot)
		Sleep(400)
		Send($loot)
		calcTime($newEp)
		Sleep(4000)

		if(enemyInsgid() ) Then
			F_EmCast()																			;;;: Quickfix Nr. 3  - Added by Chefes78 28.10.2009
			KillEnemy()																			;;;: Quickfix Nr. 3  - Added by Chefes78 28.10.2009
																								;;;: Quickfix Nr. 3  - Added by Chefes78 28.10.2009
		Else

		if $attack7 <> "x" then
			F_PostAttack()
		EndIf
		EndIf

All the code you need:


Code:
#AutoIT3Wrapper_UseUpx=n
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=AutoAion_beta_010.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiConstants.au3>
#Include <file.au3>
#include <NoMadMemory.au3>

GuiCreate("AutoAion v0.10.2 ", 270,600, -1, -1, -1, $WS_EX_TOPMOST)                          	;;;: Quickfix Nr. 3  - Added by Chefes78 - 28.10.2009 (Makes the Gui top most window (without focus ... ) ... like this you can see what the bot is doing (Tooltips... )
GUICtrlCreatePic("logo.jpg", 0, 536, 270, 74)
GUISetBkColor(0xffffff)
GUISetState(@SW_SHOW)
GuiCtrlSetState(-1,$GUI_DISABLE)


HotKeySet("{F5}","stop")
HotKeySet("{NUMPADADD}","_keyboardToWpInterface")
Global $configFile = "AA.conf"
Global $Run = False
Global $enemyKillCount = 07
Global $enemyEpCount = 0
Global $playerEnergy
Global $playerEnergyMax
Global $playerHP
Global $playerHPMax
Global $playerEP
Global $playerEPMax
Global $targetHPpercent
Global $AionRun = False
Global $pid = 0
Global $openmem = 0
Global $baseADDR = 0
Global $finalADDR = 0
Global $wpField[1000]
Global $count =1
Global $countMax=0
global $pi = 3.14159265358979323846264338327950
global $file1 = "data.txt"
global $attack1 = "x"
global $attack2 = "x"
global $attack3 = "x"
global $attack4 = "x"
global $attack5 = "x"
global $attack6 = "x"
global $attack7 = "x"
global $attack8 = "x"
global $loot = "x"
global $reg = "x"
Global $i =0
global $attack1c = "0"
global $attack2c = "0"
global $attack3c = "0"
global $attack4c = "0"
global $attack5c = "0"
global $attack6c = "0"
global $attack7c = "0"
global $attack8c = "0"

global $attack1Cd = "0"
global $attack2Cd = "0"
global $attack3Cd = "0"
global $attack4Cd = "0"
global $attack5Cd = "0"
global $attack6Cd = "0"
global $attack7Cd = "0"
global $attack8Cd = "0"

global $attack1LastCast = "0"
global $attack2LastCast = "0"
global $attack3LastCast = "0"
global $attack4LastCast = "0"
global $attack5LastCast = "0"
global $attack6LastCast = "0"
global $attack7LastCast = "0"
global $attack8LastCast = "0"

global $killCount
global $status
global $TimeCount
global $jumper = 0

global $attack1_da
global $attack2_da
global $attack3_da
global $attack4_da
global $attack5_da
global $attack6_da

global $attack8hp = 20
global $reg_minLife = 40
global $reg_minMana = 10

global $timeDiff = 0;
global $lastTime = 0;
global $newTime = 0;
global $avgTime = 0;

global $rot_down = "a down"
global $rot_up = "a up"

Global $timeToShutdownOutput
Global $sdtimerInput
Global $timeToShutdown = 0
Global $timeCache = 0

Global $combatStartTimer = 0
Global $combatAnimaLibera = 0
Global $goodCombat = 0
Global $combatFlag = 0
Global $lastBlackListEnemy = 0


; THE FUTURE!
Global $confVar1
Global $confVar2
Global $confVar3
Global $confVar4
Global $confVar5
Global $confVar6
Global $confVar7
Global $confVar8
Global $confVar9
Global $confVar10
Global $confVar11
Global $confVar12
Global $confVar13
Global $confVar14
Global $confVar15
Global $confVar16
Global $confVar17
Global $confVar18
Global $confVar19
Global $confVar20
Global $confVar21
Global $confVar22
Global $confVar23
Global $confVar24
Global $confVar25
Global $confVar26
Global $confVar27
Global $confVar28
Global $confVar29
Global $confVar30
Global $confVar31
Global $confVar32
Global $confVar33
Global $confVar34
Global $confVar35
Global $confVar36
Global $confVar37
Global $confVar38
Global $confVar39
Global $confVar40
Global $confVar41

$attack1_da = GUICtrlCreateCheckbox("D.A.", 200, 30, 50, 20)
$attack2_da = GUICtrlCreateCheckbox("D.A.", 200, 60, 50, 20)
$attack3_da = GUICtrlCreateCheckbox("D.A.", 200, 90, 50, 20)
$attack4_da = GUICtrlCreateCheckbox("D.A.", 200, 180, 50, 20)
$attack5_da = GUICtrlCreateCheckbox("D.A.", 200, 120, 50, 20)
$attack6_da = GUICtrlCreateCheckbox("D.A.", 200, 150, 50, 20)

readKeys()

$Label1 = GUICtrlCreateLabel("Key", 65, 10, 60, 17)
$Label1 = GUICtrlCreateLabel("Casttime", 100, 10, 60, 17)
$Label1 = GUICtrlCreateLabel("Cooldown", 150, 10, 60, 17)

$Label1 = GUICtrlCreateLabel("Kill Count:", 150, 270, 60, 17)
$killCount = GUICtrlCreateLabel($enemyKillCount, 200, 270, 100, 17)
$Label1 = GUICtrlCreateLabel("EP Count:", 150, 290, 60, 17)
$epCount = GUICtrlCreateLabel($enemyEpCount, 200, 290, 100, 17)
$Label1 = GUICtrlCreateLabel("Lvl-up in:", 150, 310, 60, 17)
$TimeCount = GUICtrlCreateLabel($avgTime, 200, 310, 100, 17)
$Label1 = GUICtrlCreateLabel("Shutdown:", 150, 330, 60, 17)
$timeToShutdownOutput = GUICtrlCreateLabel("-----", 210, 330, 100, 17)

$Label1 = GUICtrlCreateLabel("Attack 1:", 15, 32, 44, 17)
$attack1Key = GUICtrlCreateInput($attack1, 65, 30, 20, 21)
$attack1Cast = GUICtrlCreateInput($attack1c, 100, 30, 40, 21)
$attack1Cooldown = GUICtrlCreateInput($attack1Cd, 150, 30, 40, 21)

$Label2 = GUICtrlCreateLabel("Attack 2:", 15, 62, 44, 17)
$attack2Key = GUICtrlCreateInput($attack2, 65, 60, 20, 21)
$attack2Cast = GUICtrlCreateInput($attack2c, 100, 60, 40, 21)
$attack2Cooldown = GUICtrlCreateInput($attack2Cd, 150, 60, 40, 21)


$Label3 = GUICtrlCreateLabel("Attack 3:", 15, 92, 44, 17)
$attack3Key = GUICtrlCreateInput($attack3, 65, 90, 20, 21)
$attack3Cast = GUICtrlCreateInput($attack3c, 100, 90, 40, 21)
$attack3Cooldown = GUICtrlCreateInput($attack3Cd, 150, 90, 40, 21)

$Label5 = GUICtrlCreateLabel("Attack 4:", 15, 122, 44, 17)
$attack5Key = GUICtrlCreateInput($attack5, 65, 120, 20, 21)
$attack5Cast = GUICtrlCreateInput($attack5c, 100, 120, 40, 21)
$attack5Cooldown = GUICtrlCreateInput($attack5Cd, 150, 120, 40, 21)

$Label6 = GUICtrlCreateLabel("Attack 5:", 15, 152, 44, 17)
$attack6Key = GUICtrlCreateInput($attack6, 65, 150, 20, 21)
$attack6Cast = GUICtrlCreateInput($attack6c, 100, 150, 40, 21)
$attack6Cooldown = GUICtrlCreateInput($attack6Cd, 150, 150, 40, 21)

$Label4 = GUICtrlCreateLabel("PreCast:", 17, 182, 50, 17)
$attack4Key = GUICtrlCreateInput($attack4, 65, 180, 20, 21)
$attack4Cast = GUICtrlCreateInput($attack4c, 100, 180, 40, 21)
$attack4Cooldown = GUICtrlCreateInput($attack4Cd, 150, 180, 40, 21)

$Label7 = GUICtrlCreateLabel("PostCast:", 14, 212, 50, 17)
$attack7Key = GUICtrlCreateInput($attack7, 65, 210, 20, 21)
$attack7Cast = GUICtrlCreateInput($attack7c, 100, 210, 40, 21)
$attack7Cooldown = GUICtrlCreateInput($attack7Cd, 150, 210, 40, 21)

$Label8 = GUICtrlCreateLabel("Em Cast:", 14, 242, 50, 17)
$attack8Key = GUICtrlCreateInput($attack8, 65, 240, 20, 21)
$attack8Cast = GUICtrlCreateInput($attack8c, 100, 240, 40, 21)
$attack8Cooldown = GUICtrlCreateInput($attack8Cd, 150, 240, 40, 21)
$Label8 = GUICtrlCreateLabel("HP:", 191, 242, 18, 17)
$attack8hitPoint = GUICtrlCreateInput($attack8hp, 210, 240, 20, 21)
$Label8 = GUICtrlCreateLabel("%", 232, 242, 10, 17)


$Label3 = GUICtrlCreateLabel("Loot:", 35, 272, 25, 17)
$lootKey = GUICtrlCreateInput($loot, 65, 270, 20, 21)


$Label3 = GUICtrlCreateLabel("Reg:", 36, 302, 22, 17)
$regKey = GUICtrlCreateInput($reg, 65, 300, 20, 21)
$Label3 = GUICtrlCreateLabel("HP:", 90, 302, 19, 15)
$Label3 = GUICtrlCreateLabel("MA:", 90, 330, 19, 15)
$regMin = GUICtrlCreateInput($reg_minLife, 110, 300, 20, 21)
$regMinMana = GUICtrlCreateInput($reg_minMana, 110, 327, 20, 21)
$Label3 = GUICtrlCreateLabel("%", 130, 302, 10, 17)
$Label3 = GUICtrlCreateLabel("%", 130, 330, 10, 17)



$Label6 = GUICtrlCreateLabel("Filename:", 40,360, 70, 17)
$wpFileInput = GUICtrlCreateInput("", 140, 377, 70, 20)
$Label6 = GUICtrlCreateLabel("Filename:", 150,360, 70, 17)
$wpSaveInput = GUICtrlCreateInput("", 30, 377, 70, 20)
; status field
$status = GUICtrlCreateLabel("Start Bot-Engine... done!"&getCredits(), 5,460, 230, 60)
;buttons
$buttonSave = GuiCtrlCreateButton("Save", 30,430,70,20)
$buttonRun = GuiCtrlCreateButton("Run Bot", 140,430,70,20)
$buttonAddWayPoint = GuiCtrlCreateButton("Add WP", 30,400,70,20)
$buttonOpenWayPoint = GuiCtrlCreateButton("Open WP", 140,400,70,20)


$Label2 = GUICtrlCreateLabel("Timer:", 200, 495, 44, 17)
$sdtimerInput = GUICtrlCreateInput("0", 200, 510, 60, 21)


Func stop()
		Send("{w up}")
		$Run = False
		GUICtrlSetData ($buttonRun,"Start Bot")
	EndFunc


;#################################################
;interface functions
;#################################################
func readKeys()
	if FileExists($file1) Then

	$attack1 = FileReadLine($file1,"1")
	$attack2 = FileReadLine($file1,"2")
	$attack3 = FileReadLine($file1,"3")
	$attack4 = FileReadLine($file1,"14")

	$loot = FileReadLine($file1,"4")
	$reg = FileReadLine($file1,"5")
	$reg_minLife = FileReadLine($file1,"12")
	$reg_minMana = FileReadLine($file1,"13")

	$attack1c = FileReadLine($file1,"6")
	$attack2c = FileReadLine($file1,"7")
	$attack3c = FileReadLine($file1,"8")
	$attack4c = FileReadLine($file1,"15")

	$attack1Cd = FileReadLine($file1,"9")
	$attack2Cd = FileReadLine($file1,"10")
	$attack3Cd = FileReadLine($file1,"11")
	$attack4Cd = FileReadLine($file1,"16")

	if (FileReadLine($file1,"17") == 1) Then
		GUICtrlSetState($attack1_da,$GUI_CHECKED)
	EndIf
	if (FileReadLine($file1,"18") == 1) Then
		GUICtrlSetState($attack2_da,$GUI_CHECKED)
	EndIf
	if (FileReadLine($file1,"19") == 1) Then
		GUICtrlSetState($attack3_da,$GUI_CHECKED)
	EndIf
	if (FileReadLine($file1,"20") == 1) Then
		GUICtrlSetState($attack4_da,$GUI_CHECKED)
	EndIf
	if (FileReadLine($file1,"21") == 1) Then
		GUICtrlSetState($attack5_da,$GUI_CHECKED)
	EndIf
	if (FileReadLine($file1,"22") == 1) Then
		GUICtrlSetState($attack6_da,$GUI_CHECKED)
	EndIf

	$attack5 = FileReadLine($file1,"23")
	$attack5c = FileReadLine($file1,"24")
	$attack5Cd = FileReadLine($file1,"25")
	$attack6 = FileReadLine($file1,"26")
	$attack6c = FileReadLine($file1,"27")
	$attack6Cd = FileReadLine($file1,"28")
	$attack7 = FileReadLine($file1,"29")
	$attack7c = FileReadLine($file1,"30")
	$attack7Cd = FileReadLine($file1,"31")

	$attack8 = FileReadLine($file1,"32")
	$attack8c = FileReadLine($file1,"33")
	$attack8Cd = FileReadLine($file1,"34")
	$attack8hp = FileReadLine($file1,"35")

	GUICtrlSetData($status,"Save and Load new Values")
	EndIf
EndFunc



Func saveKeys()
	$readAttack1 = GuiCtrlRead($attack1Key)
	$readAttack2 = GuiCtrlRead($attack2Key)
	$readAttack3 = GuiCtrlRead($attack3Key)
	$readAttack4 = GuiCtrlRead($attack4Key)
	$readAttack5 = GuiCtrlRead($attack5Key)
	$readAttack6 = GuiCtrlRead($attack6Key)
	$readAttack7 = GuiCtrlRead($attack7Key)
	$readAttack8 = GuiCtrlRead($attack8Key)

	$readAttack1cast = GuiCtrlRead($attack1Cast)
	$readAttack2cast = GuiCtrlRead($attack2Cast)
	$readAttack3cast = GuiCtrlRead($attack3Cast)
	$readAttack4cast = GuiCtrlRead($attack4Cast)
	$readAttack5cast = GuiCtrlRead($attack5Cast)
	$readAttack6cast = GuiCtrlRead($attack6Cast)
	$readAttack7cast = GuiCtrlRead($attack7Cast)
	$readAttack8cast = GuiCtrlRead($attack8Cast)

	$readAttack1cd = GuiCtrlRead($attack1Cooldown)
	$readAttack2cd = GuiCtrlRead($attack2Cooldown)
	$readAttack3cd = GuiCtrlRead($attack3Cooldown)
	$readAttack4cd = GuiCtrlRead($attack4Cooldown)
	$readAttack5cd = GuiCtrlRead($attack5Cooldown)
	$readAttack6cd = GuiCtrlRead($attack6Cooldown)
	$readAttack7cd = GuiCtrlRead($attack7Cooldown)
	$readAttack8cd = GuiCtrlRead($attack8Cooldown)

	$readAttack1da = GuiCtrlRead($attack1_da)
	$readAttack2da = GuiCtrlRead($attack2_da)
	$readAttack3da = GuiCtrlRead($attack3_da)
	$readAttack4da = GuiCtrlRead($attack4_da)
	$readAttack5da = GuiCtrlRead($attack5_da)
	$readAttack6da = GuiCtrlRead($attack6_da)

	$readAttack8hp = GuiCtrlRead($attack8hitPoint)
	$reg_minLife = GuiCtrlRead($regMin)
	$reg_minMana = GuiCtrlRead($regMinMana)

	$readLoot = GuiCtrlRead($lootKey)
	$readReg = GuiCtrlRead($regKey)
	FileDelete("data.txt")
	FileWriteLine($file1,$readAttack1)		;1
	FileWriteLine($file1,$readAttack2)		;2
	FileWriteLine($file1,$readAttack3)		;3
	FileWriteLine($file1,$readLoot)			;4
	FileWriteLine($file1,$readReg)			;5
	FileWriteLine($file1,$readAttack1cast)	;6
	FileWriteLine($file1,$readAttack2cast)	;7
	FileWriteLine($file1,$readAttack3cast)	;8
	FileWriteLine($file1,$readAttack1cd)	;9
	FileWriteLine($file1,$readAttack2cd)	;10
	FileWriteLine($file1,$readAttack3cd)	;11
	FileWriteLine($file1,$reg_minLife)		;12
	FileWriteLine($file1,$reg_minMana)		;13
	FileWriteLine($file1,$readAttack4)		;14
	FileWriteLine($file1,$readAttack4cast)	;15
	FileWriteLine($file1,$readAttack4cd)	;16

	FileWriteLine($file1,$readAttack1da)	;17
	FileWriteLine($file1,$readAttack2da)	;18
	FileWriteLine($file1,$readAttack3da)	;19
	FileWriteLine($file1,$readAttack4da)	;20

	FileWriteLine($file1,$readAttack5da)	;21
	FileWriteLine($file1,$readAttack6da)	;22
	FileWriteLine($file1,$readAttack5)		;23
	FileWriteLine($file1,$readAttack5cast)	;24
	FileWriteLine($file1,$readAttack5cd)	;25
	FileWriteLine($file1,$readAttack6)		;26
	FileWriteLine($file1,$readAttack6cast)	;27
	FileWriteLine($file1,$readAttack6cd)	;28
	FileWriteLine($file1,$readAttack7)		;29
	FileWriteLine($file1,$readAttack7cast)	;30
	FileWriteLine($file1,$readAttack7cd)	;31
	FileWriteLine($file1,$readAttack8)		;32
	FileWriteLine($file1,$readAttack8cast)	;33
	FileWriteLine($file1,$readAttack8cd)	;34
	FileWriteLine($file1,$readAttack8hp)	;35
	readKeys()
EndFunc

; THE FUTURE!
Func loadConfig()
	$confVar1 = FileReadLine($configFile,"1")
	$confVar2 = FileReadLine($configFile,"2")
	$confVar3 = FileReadLine($configFile,"3")
	$confVar4 = FileReadLine($configFile,"4")
	$confVar5 = FileReadLine($configFile,"5")
	$confVar6 = FileReadLine($configFile,"6")
	$confVar7 = FileReadLine($configFile,"7")
	$confVar8 = FileReadLine($configFile,"8")
	$confVar9 = FileReadLine($configFile,"9")
	$confVar10 = FileReadLine($configFile,"10")
	$confVar11 = FileReadLine($configFile,"11")
	$confVar12 = FileReadLine($configFile,"12")
	$confVar13 = FileReadLine($configFile,"13")
	$confVar14 = FileReadLine($configFile,"14")
	$confVar15 = FileReadLine($configFile,"15")
	$confVar16 = FileReadLine($configFile,"16")
	$confVar17 = FileReadLine($configFile,"17")
	$confVar18 = FileReadLine($configFile,"18")
	$confVar19 = FileReadLine($configFile,"19")
	$confVar20 = FileReadLine($configFile,"20")
	$confVar21 = FileReadLine($configFile,"21")
	$confVar22 = FileReadLine($configFile,"22")
	$confVar23 = FileReadLine($configFile,"23")
	$confVar24 = FileReadLine($configFile,"24")
	$confVar25 = FileReadLine($configFile,"25")
	$confVar26 = FileReadLine($configFile,"26")
	$confVar27 = FileReadLine($configFile,"27")
	$confVar28 = FileReadLine($configFile,"28")
	$confVar29 = FileReadLine($configFile,"29")
	$confVar30 = FileReadLine($configFile,"30")
	$confVar31 = FileReadLine($configFile,"31")
	$confVar32 = FileReadLine($configFile,"32")
	$confVar33 = FileReadLine($configFile,"33")
	$confVar34 = FileReadLine($configFile,"34")
	$confVar35 = FileReadLine($configFile,"35")
	$confVar36 = FileReadLine($configFile,"36")
	$confVar37 = FileReadLine($configFile,"37")
	$confVar38 = FileReadLine($configFile,"38")
	$confVar39 = FileReadLine($configFile,"39")
	$confVar40 = FileReadLine($configFile,"40")
	$confVar41 = FileReadLine($configFile,"41")
EndFunc

Func _toolTip($msg)
	GUICtrlSetData($status,$msg)
EndFunc

;#################################################
;Memory Read/write functions
;#################################################


Func OpenAionMemory()
	$pid = ProcessExists("AION.bin")
	If $pid == -1 Then
		Return
	EndIf
	$openmem = _MemoryOpen($pid)
	If @error Then
		Return
	EndIf
	$AionRun = True
EndFunc


Func MemReadDLLEnemyHP($offset)
    $StaticOffset = Dec($offset)
    Global $pid
    Global $CUROffset[1]
    $CUROffset[0] = 0
    $baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
    $finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
    $MemTest = _MemoryRead($finaladdr,$openmem)
	$MemTest = _memoryread(   $MemTest+ 0x1C4,$openmem)
    $MemTest = _memoryread(   $MemTest + 0x0034, $openmem,"byte" )
    Return $MemTest
EndFunc

Func MemReadDLLEnemyLevel($offset)
    $StaticOffset = Dec($offset)
    Global $pid
    Global $CUROffset[1]
    $CUROffset[0] = 0
    $baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
    $finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
    $MemTest = _MemoryRead($finaladdr,$openmem)
	$MemTest = _memoryread(   $MemTest+ 0x1C4,$openmem)
    $MemTest = _memoryread(   $MemTest + 0x0032, $openmem,"byte" )
    Return $MemTest
EndFunc

Func MemReadTargetType($offset)
    $StaticOffset = Dec($offset)
    Global $pid
    Global $CUROffset[1]
    $CUROffset[0] = 0
    $baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
    $finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
    $MemTest = _MemoryRead($finaladdr,$openmem)
	$MemTest = _memoryread(   $MemTest+ 0x1C4,$openmem)
    $MemTest = _memoryread(   $MemTest + 0x0168, $openmem )
    Return $MemTest
EndFunc



Func MemReadDLL($offset)
    $StaticOffset = Dec($offset)
    Global $pid
    Global $CUROffset[1]
    $CUROffset[0] = 0
    $baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
    $finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
    $MemTest = _MemoryRead($finaladdr,$openmem)

    Return $MemTest
EndFunc

Func MemReadDLLFloat($offset)
	$StaticOffset = Dec($offset)
	Global $pid
	Global $CUROffset[1]
	$CUROffset[0] = 0
	$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
	$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
	$MemTest = _MemoryRead($finaladdr,$openmem,"float")
	Return $MemTest
EndFunc

Func MemWriteDLL($offset, $data)
	$StaticOffset = Dec($offset)
	Global $pid
	Global $CUROffset[1]
	$CUROffset[0] = 0
	$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
	$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)

	_MemoryWrite($finalADDR,$openmem,$data,"float")
	Return
EndFunc

Func MemReadEntity($offset)
    $StaticOffset = Dec($offset)
    Global $pid
    Global $CUROffset[1]
    $CUROffset[0] = 0
    $baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
    $finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
    $MemTest = _memoryread($finaladdr,$openmem)
	$MemTest = _memoryread($MemTest+ 0x1C4,$openmem)
    Return $MemTest
EndFunc

Func MemReadTargetName($offset = "4F68FC")
    $StaticOffset = Dec($offset)
    Global $pid
    Global $CUROffset[1]
    $CUROffset[0] = 0
    $baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
    $finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
    $MemTest = _memoryread($finaladdr,$openmem)
	$MemTest = _memoryread($MemTest+ 0x4 ,$openmem)
	;$MemTest = _memoryread(   $MemTest + 0x0036 , $openmem,"byte" )
    Return $MemTest
EndFunc

; the HP of the TargetEnemy
Func CheckEnemyDead()
	return MemReadDLLEnemyHP("4F68FC")
	;Return 0
EndFunc

Func playerCurrectEP()
	return MemReadDLL("8EEEA8")
EndFunc

Func PlayerMaxEP()
	return MemReadDLL("8EEE98")
EndFunc

Func playerCurrectMana()
	return MemReadDLL("8EEEC0")
EndFunc

Func PlayerMaxMana()
	return MemReadDLL("8EEEBC")
EndFunc

Func playerCurrectHp()
	return MemReadDLL("8EEEB8")
EndFunc

Func playerCurrectHpPercent()
	$val = MemReadDLL("8EEEB8")
	$Pval = ($val * 100) / PlayerMaxHp()
	return Round($Pval)
EndFunc

Func PlayerMaxHp()
	return MemReadDLL("8EEEB4")
EndFunc

Func PlayerXPos()
	return MemReadDLLFloat("8E6944")
EndFunc

Func PlayerYPos()
	return MemReadDLLFloat("8E6940")
EndFunc

Func PlayerZPos()
	return MemReadDLLFloat("8E6948")
EndFunc

; Angel of the Player 360° / 2 :)
Func GetPlayerPos()
	Return MemReadDLLFloat("8E40C0")
EndFunc

Func GetEnemyLvl()
	Return MemReadDLLEnemyLevel("4F68FC")
EndFunc

Func getEnityId()
	Return MemReadEntity("4F68FC")
EndFunc

Func getTargetOfTarget()
	Return MemReadTargetName()
EndFunc

Func getEnemyType()
	Return MemReadTargetType("4F68FC")
EndFunc

Func ReadMemValues()
	$playerHP = playerCurrectHp()
	$playerHPMax = PlayerMaxHp()

	$playerEP = playerCurrectEP()
	$playerEPMax = PlayerMaxEP()
	$playerEnergy = playerCurrectMana()
	$playerEnergyMax = PlayerMaxMana()
EndFunc

;#################################################
;fight functions
;#################################################

Func enemyInsgid()
	$enemyhp = CheckEnemyDead()
	if $enemyhp <> 0 And $enemyhp > 99 And getEnemyType() <> 0 then
		if GetEnemyLvl() = 1 Then
			return false
		EndIf
		return true
	EndIf
	return false
EndFunc

Func KillEnemy()

		$combatStartTimer = _TimeGetStamp() + 10
		$combatAnimaLibera = 0
		$goodCombat = 0
		$combatFlag = 0
		$timeDiff = _TimeGetStamp()
		_toolTip("start attacking")
		if $attack4 <> "x" then
			F_buff()
		EndIf
		Sleep(100);
		while CheckEnemyDead() <> 0
			if $attack1 <> "x" then
				if($combatFlag == 2) Then
					return false
				EndIf
				F_arttack1()
				validateAttack()
			EndIf
			if $attack2 <> "x" then
				if($combatFlag == 2) Then
					return false
				EndIf
				F_arttack2()
				validateAttack()
			EndIf
			if $attack3 <> "x" then
				if($combatFlag == 2) Then
					return false
				EndIf
				F_arttack3()
				validateAttack()
			EndIf
			if $attack5 <> "x" then
				if($combatFlag == 2) Then
					return false
				EndIf
				F_arttack5()
				validateAttack()
			EndIf
			if $attack6 <> "x" then
				if($combatFlag == 2) Then
					return false
				EndIf
				F_arttack6()
				validateAttack()
			EndIf
		WEnd
		_toolTip("Mob down")
		; add 1 to the kill counter :)
		$enemyKillCount = $enemyKillCount + 1
		GUICtrlSetData( $killCount, $enemyKillCount)
		Sleep(1800)
		; ep counter
		$newEp = playerCurrectEP() - $playerEP
		$playerEP = playerCurrectEP()
		$enemyEpCount = $enemyEpCount + $newEp
		GUICtrlSetData($epCount , $enemyEpCount)
		; loot

		_toolTip("start Looting")
		Send($loot)
		Sleep(400)
		Send($loot)
		calcTime($newEp)
		Sleep(4000)

		if(enemyInsgid() ) Then
			F_EmCast()																			;;;: Quickfix Nr. 3  - Added by Chefes78 28.10.2009
			KillEnemy()																			;;;: Quickfix Nr. 3  - Added by Chefes78 28.10.2009
																								;;;: Quickfix Nr. 3  - Added by Chefes78 28.10.2009
		Else

		if $attack7 <> "x" then
			F_PostAttack()
		EndIf
		EndIf																					;;;: Quickfix Nr. 3  - Added by Chefes78 28.10.2009

		if ((playerCurrectHp()/$playerHPMax)*100) < $reg_minLife Or ((playerCurrectMana()/$playerEnergyMax)*100) < $reg_minMana Then
			_toolTip("start Reging")
			Send($reg)
			while PlayerMaxHp() <> playerCurrectHp()
				if( CheckEnemyDead() <> 0) Then
					ExitLoop
				EndIf
				Sleep(1000)
			WEnd
			while PlayerMaxMana() <> playerCurrectMana()
				if(CheckEnemyDead() <> 0) Then
					ExitLoop
				EndIf
				Sleep(1000)
			WEnd
			Send("{w down}")
			Sleep(100)
			Send("{w up}")
		EndIf
		$jumper = _getRandomJumpTimer()
		return 1
EndFunc

Func validateAttack()
	if($goodCombat < 1) Then
		if($combatStartTimer < _TimeGetStamp() ) Then
			if(CheckEnemyDead() < 100) Then
				$goodCombat = 1
				$combatFlag = 1
			Elseif($combatAnimaLibera < 2) Then
				if(CheckEnemyDead() < 100) Then
					$goodCombat = 1
					$combatFlag = 1
					return True
				EndIf
				combatFreeMind()
				$combatAnimaLibera = $combatAnimaLibera + 1
			Else
				$combatFlag = 2
				$lastBlackListEnemy = getEnityId()
			EndIf
		EndIf
	EndIf
EndFunc

Func combatFreeMind()
	Send("{s down}")
	Sleep(1000)
	Send("{s up}")
	if($combatAnimaLibera > 0) Then
		Send("{e down}")
		Sleep(1500)
		Send("{e up}")
	Else
		Send("{q down}")
		Sleep(1500)
		Send("{q up}")
	EndIf
	$combatStartTimer = _TimeGetStamp() + 10
EndFunc

Func checkBlackList()
	If getEnityId() == $lastBlackListEnemy And $lastBlackListEnemy <> 0 Then
		Return False
	Else
		Return True
	EndIf
EndFunc

Func checkShutDown()
	if($timeToShutdown > 0) Then
		$sddiff = $timeToShutdown - _TimeGetStamp()
		If $timeToShutdown < _TimeGetStamp() Then
			Send("{w up}")
			$Run = False
			GUICtrlSetData ($buttonRun,"Start Bot")
		Elseif($sddiff <> $timeCache) Then
			$timeCache = $sddiff
			GUICtrlSetData($timeToShutdownOutput ,SecToTime($sddiff))
		EndIf
	EndIf
EndFunc

Func setShutDownTimer()
	if GuiCtrlRead($sdtimerInput) > 0 And GuiCtrlRead($sdtimerInput) <> "" Then
		$timeToShutdown = _TimeGetStamp() + (GuiCtrlRead($sdtimerInput) * 60)
	Else
		$timeToShutdown = 0
		GUICtrlSetData($timeToShutdownOutput ,"-----")
		$Run = false
	EndIf
EndFunc


;################################################
; Action functions
;################################################

Func F_arttack1()
	F_EmCast()
	if(($attack1LastCast + $attack1Cd) < _TimeGetStamp() and CheckEnemyDead() <> 0) Then
		_toolTip("start attack Nr1")
		Send($attack1)
		Sleep($attack1c)
		$attack1LastCast = _TimeGetStamp()
		if(GuiCtrlRead($attack1_da) == 1 And CheckEnemyDead() <> 0) Then
			Send($attack1)
			Sleep(2000)
		EndIf
	EndIf
EndFunc

Func F_arttack2()
	F_EmCast()
	if(($attack2LastCast + $attack2Cd) < _TimeGetStamp() and CheckEnemyDead() <> 0) Then
		_toolTip("start attack Nr2")
		Send($attack2)
		Sleep($attack2c)
		$attack2LastCast = _TimeGetStamp()
		if(GuiCtrlRead($attack2_da) == 1 And CheckEnemyDead() <> 0) Then
			Send($attack2)
			Sleep(2000)
		EndIf
	EndIf
EndFunc

Func F_arttack3()
	F_EmCast()
	if(($attack3LastCast + $attack3Cd) < _TimeGetStamp() and CheckEnemyDead() <> 0) Then
		_toolTip("start attack Nr3")
		Send($attack3)
		Sleep($attack3c)
		$attack3LastCast = _TimeGetStamp()
		if(GuiCtrlRead($attack3_da) == 1 And CheckEnemyDead() <> 0) Then
			Send($attack3)
			Sleep(2000)
		EndIf
	EndIf
EndFunc

Func F_arttack5()
	F_EmCast()
	if(($attack5LastCast + $attack5Cd) < _TimeGetStamp() and CheckEnemyDead() <> 0) Then
		_toolTip("start attack Nr4")
		Send($attack5)
		Sleep($attack5c)
		$attack5LastCast = _TimeGetStamp()
		if(GuiCtrlRead($attack5_da) == 1 And CheckEnemyDead() <> 0) Then
			Send($attack5)
			Sleep(2000)
		EndIf
	EndIf
EndFunc

Func F_arttack6()
	F_EmCast()
	if(($attack6LastCast + $attack6Cd) < _TimeGetStamp() and CheckEnemyDead() <> 0) Then
		_toolTip("start attack Nr5")
		Send($attack6)
		Sleep($attack6c)
		$attack5LastCast = _TimeGetStamp()
		if(GuiCtrlRead($attack6_da) == 1 And CheckEnemyDead() <> 0) Then
			Send($attack6)
			Sleep(2000)
		EndIf
	EndIf
EndFunc

Func F_buff()
	if(($attack4LastCast + $attack4Cd) < _TimeGetStamp()) Then
		_toolTip("starting PreCast")
		Send($attack4)
		Sleep($attack4c)
		$attack4LastCast = _TimeGetStamp()
		if(GuiCtrlRead($attack4_da) == 1) Then
			Send($attack4)
			Sleep(2000)
		EndIf
	EndIf
EndFunc

Func F_PostAttack()
;~ 	sleep(250)																				;;;: Failed Quickfix Nr. 2  - Added by Chefes78 - 28.10.2009 (not triggered if postattack is "x" out ... moving it to end of loot function )
;~ 	if(enemyInsgid() ) Then																	;;;: Failed Quickfix Nr. 2  - Added by Chefes78 - 28.10.2009 (not triggered if postattack is "x" out ... moving it to end of loot function )
;~ 		KillEnemy()																			;;;: Failed Quickfix Nr. 2  - Added by Chefes78 - 28.10.2009 (not triggered if postattack is "x" out ... moving it to end of loot function
;~ 	Else																					;;;: Failed Quickfix Nr. 2  - Added by Chefes78 - 28.10.2009 (not triggered if postattack is "x" out ... moving it to end of loot function
	if(($attack7LastCast + $attack7Cd) < _TimeGetStamp()) Then
		_toolTip("starting PostCast")
		Send($attack7)
		Sleep($attack7c)
;~ 		send("{ESC}")                                                                  		;;;: Failed Quickfix Nr. 1  - Added by Chefes78 - 28.10.2009 (not reliable enough )
		$attack7LastCast = _TimeGetStamp()
	EndIf
;~ 	EndIf																					;;;: Failed Quickfix Nr. 2  - Added by Chefes78 - 28.10.2009 (not triggered if postattack is "x" out ... moving it to end of loot function
EndFunc

Func F_EmCast()
	if ($attack8 <> "x") then
		if(($attack8LastCast + $attack8Cd) < _TimeGetStamp() and playerCurrectHpPercent() <= $attack8hp) Then
			_toolTip("starting Emergency Cast")
			Send($attack8)
			Sleep($attack8c)
			$attack8LastCast = _TimeGetStamp()
		EndIf
	EndIf
EndFunc


;#################################################
;waypoint functions
;#################################################

Func _keyboardToWpInterface()
	OpenAionMemory()
	addWP()
EndFunc

Func addWP()

	$playerX = PlayerXPos()
	$playerY = PlayerYPos()
	$playerZ = PlayerZPos()

	$WPFile = "wp"

	$openFile = GuiCtrlRead($wpSaveInput)
	$wpSave = FileOpen($openFile, 1)

	FileWriteLine($wpSave ,Round($playerX,2))
	FileWriteLine($wpSave ,Round($playerY,2))
	FileWriteLine($wpSave ,Round($playerZ,2))
	FileClose($wpSave)
	_toolTip("WayPoint: "&Round($playerX,0)&" - "&Round($playerY,0)&" - "&Round($playerZ,0)&" added")
EndFunc

Func readWP()
	$countMax=0
	$count = 1
	$openFile = GuiCtrlRead($wpFileInput)
	$readWPfile = FileOpen($openFile, 0)

	While 1
		$x1 = FileReadLine($readWPfile,$count)

		if $x1 = "" Then
			$count = 1
			ExitLoop
		EndIf

		If @error = -1 Then	ExitLoop
		$count = $count +1
		$countMax = $countMax +1
		$x2 = FileReadLine($readWPfile,$count)
		$count = $count +1
		$countMax = $countMax +1
		$x3 = FileReadLine($readWPfile,$count)
		$count = $count +1
		$countMax = $countMax +1


	Wend
	FileClose($readWPfile)


	$openFile = GuiCtrlRead($wpFileInput)
	$readWPfile = FileOpen($openFile, 0)

	While 1

		$x1 = FileReadLine($readWPfile,$count)

		if $x1 = "" Then

			$count = 1
			ExitLoop
		EndIf

		If @error = -1 Then	ExitLoop

		$wpField[$count-1] = $x1

		$count = $count +1

		$x2 = FileReadLine($readWPfile,$count)
		$wpField[$count-1] = $x2

		$count = $count +1

		$x3 = FileReadLine($readWPfile,$count)
		$wpField[$count-1] = $x3

		$count = $count +1




	Wend
	_toolTip("Waypoints loaded ... "&$countMax/3&" found" )
	FileClose($readWPfile)

EndFunc

Func getCredits()
	return @LF&"developed by: Plany, Unknown "&@LF &"Logo by: Blun0r" &@LF & "Edited by Chefes78"
EndFunc

Func calcTime($nep)
	$ntime = _TimeGetStamp() - $timeDiff
	$tmpMep = PlayerMaxEP()
	$tmpCep = playerCurrectEP()
	$timeToLevelUp =(($tmpMep - $tmpCep) / $nep ) * $ntime
	$newTime = Round(($timeToLevelUp/60)/60,2)
	if($lastTime <> 0) Then
		if($newTime > $lastTime) Then
			$difftime = $newTime - $lastTime
			$avgTime = $difftime + $lastTime
		Elseif($lastTime > $newTime) Then
			$difftime = $lastTime - $newTime
			$avgTime = $difftime + $newTime
		EndIf
		$lastTime = $newTime
	Else
		$lastTime = $newTime
		$avgTime = $newTime;
	EndIf
	GUICtrlSetData($TimeCount, timeToHuman($avgTime))
EndFunc

;#################################################
;navigate functions
;#################################################


Func calcDist($xa,$ya)
	$distCalc = sqrt( ($xa-PlayerXPos())^2 + ($ya-PlayerYPos())^2 )
	if($distCalc > 15) Then
		_jumpPlayer()
	EndIf
	return $distCalc
EndFunc

Func _getRandomJumpTimer()
	return _TimeGetStamp() + Random(0,6,1)
EndFunc

Func _jumpPlayer()
	if($jumper < _TimeGetStamp()) Then
		if( $jumper <> 0) Then
			Send("{SPACE down}")
			Sleep(80)
			Send("{SPACE up}")
		EndIf
		$jumper = _getRandomJumpTimer()
	EndIf
EndFunc

Func _switchRotate($target, $now)
	if($target < $now) Then
		If(($now - $target) > 180) Then
			$rot_down = "a down"
			$rot_up = "a up"
		Else
			$rot_down = "d down"
			$rot_up = "d up"
		EndIf
	Else
		If(($target - $now) > 180) Then
			$rot_down = "d down"
			$rot_up = "d up"
		Else
			$rot_down = "a down"
			$rot_up = "a up"
		EndIf
	EndIf
EndFunc

; rechnet 90 zu 360 hoch
Func getAngle($diffX, $diffY)
	$angle = ATan($diffY/$diffX)
	$angle = ($angle * 180.0 )/ $pi
	if $diffX > 0 and $diffY > 0 Then
		return getThreeSixty((180 -$angle),true)
	ElseIf $diffX > 0 and $diffY < 0 Then
		return getThreeSixty((-180 -$angle),true)
	ElseIf $diffX < 0 and $diffY < 0 Then
		return getThreeSixty((0 -$angle),true)
	ElseIf $diffX < 0 and $diffY > 0 Then
		return getThreeSixty((0 -$angle),true)
	EndIf
EndFunc

; Flag = true  - rechne 180 auf 360 hoch
;Flag = false - calc 360er rotate!
Func getThreeSixty($angle, $flag = false)
	If($flag) Then
		If($angle < 0) Then
			$angle = (360 - ($angle * -1))
		EndIf
	Else
		If($angle > 360)Then
			$angle = $angle - 360
		ElseIf($angle < 0)Then
			$angle = $angle + 360
		EndIf
	EndIf
	Return $angle
EndFunc

Func alignRotaion($x, $y, $move = false)
	$playerXcoord = PlayerXPos()
	$playerYcoord = PlayerYPos()
		;$playerZcoord = PlayerZPos()
	$diffY = Round($y - $playerYcoord,2)
	$diffX = Round($x - $playerXcoord,2)
	$angle = getAngle($diffX, $diffY)
	$nowAng = getThreeSixty(GetPlayerPos(), true)
	_switchRotate($angle, $nowAng)
	While ($angle + 5) < $nowAng OR ($angle - 5) > $nowAng
		if $move Then
			Send("{w down}")
		EndIf
		Send("{"&$rot_down&"}")
		$nowAng = getThreeSixty(GetPlayerPos(), true)
	WEnd
	if $move Then
		if(($angle + 5) < $nowAng AND ($angle - 5) > $nowAng) Then
			Send("{w up}")
		EndIf
	EndIf
	Send("{"&$rot_up&"}")
EndFunc

Func walkPoints()
	while $i < ($countMax-1)
		checkShutDown()
		WinActivate("AION Client")
		WinWaitActive("AION Client")
		_toolTip("Move to waypoint "&($i/3)+1)
		$xCoord=$wpField[$i]
		$yCoord=$wpField[$i+1]
		$zCoord=$wpField[$i+2]
		$i=$i+3

		$Distance = calcDist($xCoord,$yCoord)
		while $Distance > 3
			alignRotaion($xCoord, $yCoord, true)
			Send("{Tab}")
			if(enemyInsgid() and checkBlackList()) Then
				Send("{w up}")
				KillEnemy()
				_toolTip("Move to waypoint "&($i/3)+1)
;~
			EndIf
;~ 			Send("{Tab}")
			$Distance = calcDist($xCoord,$yCoord)
			Send("{w down}")
			If $Run = False Then
				Send("{w up}")
				ExitLoop
			EndIf
		WEnd
		If $Run = False Then
			Send("{w up}")
			ExitLoop
		EndIf
		$jumper = _getRandomJumpTimer()
	WEnd
	$i=0
EndFunc

;#################################################
; unix Timestamp / useable Function
;#################################################

Func timeToHuman($time)
	$st = Round($time,0)
	$mi = (Round($time,2) - $st)* 100
	if($mi < 0) Then
		$mi = $mi * -1
	EndIf
	return $st&"H "&Round($mi)&"M"
EndFunc

Func SecToTime($sec)
	$min = $sec / 60
	$hour = $min / 60
	if(Round($min) >= 60)Then
		return Round($hour)&" H"
	ElseIf($sec >= 60) Then
		return Round($min)&" M"
	Else
		return Round($sec)&" S"
	EndIf
EndFunc

Func _TimeGetStamp()
	Local $av_Time
	$av_Time = DllCall('CrtDll.dll', 'long:cdecl', 'time', 'ptr', 0)
	If @error Then
		SetError(99)
		Return False
	EndIf
	Return $av_Time[0]
EndFunc


Func _DecimalToHex($hx_dec, $hx_length = 6)

    If IsInt($hx_dec) = 0 Then
        SetError(1)
        MsgBox(0,"Error","Wrong input, try again ...")
        Return ""
    EndIf
    Local $ret = "", $Ii, $hx_tmp, $hx_max
    If $hx_dec < 4294967296 Then
        If $hx_length < 9 Then Return Hex($hx_dec, $hx_length)
        If $hx_length = 21 Then
            $ret = Hex($hx_dec)
            While StringLeft($ret, 1) = "0"
                $ret = StringMid($ret, 2)
            WEnd
            Return $ret
        EndIf
    EndIf
    For $Ii = $hx_length - 1 To 0 Step -1
        $hx_max = 16 ^ $Ii - 1
        If $ret = "" And $hx_length = 21 And $hx_max > $hx_dec Then ContinueLoop
        $hx_tmp = Int($hx_dec/($hx_max+1))
        If $ret = "" And $hx_length = 21 And $Ii > 0 And $hx_tmp = 0 Then ContinueLoop
        ;$ret &= StringMid($HX_REF, $hx_tmp+1, 1)
        $hx_dec -= $hx_tmp * ($hx_max + 1)
    Next
    $ret=String($ret)
    If $hx_length < 21 And StringLen($ret) < $hx_length Then SetError(1)
    Return $ret
EndFunc  ;==>_DecToHex()



;#################################################
;gui loop
;#################################################


While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $buttonSave
			saveKeys()
		Case $buttonAddWayPoint
			OpenAionMemory()
			addWP()
		Case $buttonOpenWayPoint
			readWP()
		Case $buttonRun
			GUICtrlSetData ($buttonRun,"Bot running")
			setShutDownTimer()
			OpenAionMemory()
			ReadMemValues()
			$Run = True
			while $Run = True
				checkShutDown()
				walkPoints()
			WEnd
	EndSwitch
WEnd

;0 4 8 C hex 4bit jumps
	;For $i = 9361000 To 9369000
	;	GUICtrlSetData($status,"SCAN VAR "&$i)
	;	$var = MemReadDLL(_DecimalToHex($i))
	;	if( Round($var,2) > 1000 And Round($var,2) < 6900000) Then
	;		FileWriteLine("mem.txt",_DecimalToHex($i)&" = "&Round($var,2))
	;	EndIf
	;Next

#cs

THE FUTURE!

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$gui = GUICreate("tabs for page options", 500, 400)
$tab = GUICtrlCreateTab(-10, -22, 520, 430)
$tabpage1 = GUICtrlCreateTabItem("page1")
$tab1Btn1 = GUICtrlCreateButton("go to page 2", 60, 60, 100, 30)
$tab1Btn2 = GUICtrlCreateButton("go to page 3", 60, 120, 100, 30)
GUICtrlCreateLabel("This is page 1", 100, 200)
$tabpage2 = GUICtrlCreateTabItem("page2")
$tab2Btn1 = GUICtrlCreateButton("go to page 1", 60, 60, 100, 30)
$tab2Btn2 = GUICtrlCreateButton("go to page 4", 60, 120, 100, 30)
GUICtrlCreateLabel("This is page 2", 100, 220)
$tabpage3 = GUICtrlCreateTabItem("page3")
$tab3Btn1 = GUICtrlCreateButton("go to page 2", 60, 60, 100, 30)
$tab3Btn2 = GUICtrlCreateButton("go to page 4", 60, 120, 100, 30)
GUICtrlCreateLabel("This is page 3", 100, 240)
$tabpage4 = GUICtrlCreateTabItem("page4")
$tab4Btn1 = GUICtrlCreateButton("go to page 1", 60, 60, 100, 30)
$tab4Btn2 = GUICtrlCreateButton("go to page 3", 60, 120, 100, 30)
GUICtrlCreateLabel("This is page 4", 100, 260)
GUICtrlCreateTabItem("")
GUICtrlSetState($tabpage1, $GUI_SHOW)
GUISetState()

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case - 3
            Exit
        Case $tab1Btn1
            GUICtrlSetState($tabpage2, $GUI_SHOW)
        Case $tab1Btn2
            GUICtrlSetState($tabpage3, $GUI_SHOW)
        Case $tab2Btn1
            GUICtrlSetState($tabpage1, $GUI_SHOW)
        Case $tab2Btn2
            GUICtrlSetState($tabpage4, $GUI_SHOW)
        Case $tab3Btn1
            GUICtrlSetState($tabpage2, $GUI_SHOW)
        Case $tab3Btn2
            GUICtrlSetState($tabpage4, $GUI_SHOW)
        Case $tab4Btn1
            GUICtrlSetState($tabpage1, $GUI_SHOW)
        Case $tab4Btn2
            GUICtrlSetState($tabpage3, $GUI_SHOW)

    EndSwitch

WEnd


#ce
chefes78 is offline  
Old   #536
 
elite*gold: 0
Join Date: Nov 2007
Posts: 126
Received Thanks: 15
Quote:
Originally Posted by oot3 View Post
[SIZE="5"]

III. nachdem Ausruhen/während attackiert zu werden, führte bei mir teils dazu, dass das aktuelle Target (der Aggromob) verlassen wurde und stattdessen ein neues Ziel angegriffen wurde
Das ist wirklich ein schwerwiegender Fehler, und hat bei mir schon oft zum Tot geführt!
Markusschulter is offline  
Old   #537
 
elite*gold: 0
Join Date: Oct 2009
Posts: 295
Received Thanks: 103
...

Quote:
Originally Posted by Markusschulter View Post
Das ist wirklich ein schwerwiegender Fehler, und hat bei mir schon oft zum Tot geführt!
probier doch mal mein fix von oben... das sollte helfen
chefes78 is offline  
Old   #538
 
elite*gold: 0
Join Date: Jan 2009
Posts: 249
Received Thanks: 501
Quote:
Originally Posted by Markusschulter View Post
Das ist wirklich ein schwerwiegender Fehler, und hat bei mir schon oft zum Tot geführt!
das problem ist mir bekannt ... ne freundin von mir nörgelt auch schon deswegen rum -.-

4 uhr morgens: handy klingelt "benny der bot stirbt immer beim ausruhen!
ich: "wtf, bist du bekloppt 0o"

der fix ist denkbar einfach aber es ist eine neue version erforderlich die ich heute raufspiele nix großes nur fixes
plany123 is offline  
Old   #539
 
elite*gold: 0
Join Date: Jul 2006
Posts: 122
Received Thanks: 4
Meine beobachtungen :
Für Nahkämpfer lootzeit zu hoch-
Manchmal hockt er sich zum reggen nicht hin dan braucht es natürlich 10 min bis sich das im stehn regeneriert.
Nach dem looten wird ein anderer mob geaddet obwohl man eh schon aggro hatt.

Der obeknaller wäre :
Aion exe in bot ordner rein , im bot selber n fenster für acc name und pw .
so wen das game abstürzt er die exe startet und acc+pw eingibbt - char aussucht und anfängt botten
Mein aion stürzt fast jede stunde 1 mal ab ...
Ansonsten thx @all 4all
Tonyblizza is offline  
Old   #540
 
elite*gold: 0
Join Date: Jul 2006
Posts: 115
Received Thanks: 14
bot läuft, dickes danke an euch!
2 lvl gemacht und um 300k reicher


russki is offline  
Reply



« Previous Thread | Next Thread »



All times are GMT +2. The time now is 23:21.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy
Copyright ©2017 elitepvpers All Rights Reserved.