Aion AutoIt Bot Beta [Open Source]

10/08/2009 14:33 krauli#16
Quote:
Originally Posted by unknown661 View Post
do you have the current aion version? or try to run it as admin
Im not running the latest verion of aion.. that is the problem.. im tryng it on aprivate server.. the offsets r the older ones do u have the older ones? or someone has it?
10/08/2009 15:30 Mulgore#17
Schöner einfacher Bot. Leider gibt es zuwenig Quests und das ewige Grinden ist ein Wahnsinn. Dauert Ewigkeiten³.
10/08/2009 15:49 Mulgore#18
Bei mir greift der Bot nicht an? Hab die Attacken ausgefüllt .. Er rennt am Waypoints nimmt ein Mop ins Target greift es aber dann nicht an .. Was da los?
10/08/2009 16:10 unknown661#19
hast du auf save gedrückt nachdem du die attacken eingegeben hast?
10/08/2009 22:30 plany123#20
New Version (Planys version) 0.1
Orginal from: unknown661

[Only registered and activated users can see links. Click Here To Register...]

Fix: rest bug (will angreifen aber er sitzt noch :)
Add: Kill counter
Add: Prozent angabe ab wann er reggen soll (bei zauberer lohnt sich 60% -.- scheiß stoffys ^^)
change: rotation from A to D ... ich erstell meine waypoints immer in uhrzeigersinn da dreht er sich immer erst 370% bis er den neuen waypoint findet ^^ ... kann man sehr leicht ändern indem man bei den globals die sachen ein und auskommentiert

Todo:
- Mana reg
- hat das ziel schon ein target (wenn ja ist es ein anders als man selbst oder das target (target selftarget ^^))
- hotkey button um waypoints zu setzen
- schon gewonne EXP anzeigen / EXP pro stunde anzeigen
... and many more ^^

edit: is ja ansich voll esay autoit zu schreiben hab 10min dein code angeguckt dann selber drauf losgeschrieben ... mit google ging das auch recht gut ... nur die api find ich schrott auf der seite von autoit ^^
10/09/2009 11:37 plany123#21
I coding each evening, from 19 until 0 clock ... (must also work^^)
will now upload this evening a new version:)
10/09/2009 11:43 unknown661#22
vielen dank, finds gut wenn das jetzt so ein gemeinsames community project wird hier :-)

werd aber bis montag nicht daran weiterarbeiten können und deshalb auch nicht für fragen usw. erreichbar sein.
______
english:
______

i am not availble till monday
10/09/2009 11:49 sengen#23
I've added a hard coded MP check for my caster class.
I've added it under the HP check.
"8" being rest ... I'll tie it to a GUI field later.

Code:
if ((MemReadDLL("8EEEC8")/$playerMPMax)*100) < 10 Then   
				Send("8")					
				while MemReadDLL("8EEEC8") <> MemReadDLL("8EEEC4") 
				WEnd
				Send("8")
					EndIf
I also added..
Code:
$PlayerMP = MemReadDLL("8EEEC8")
	$playerMPMax = MemReadDLL("8EEEC4")
I've also added the following to handle loot, still work in progess when have a major breakthrough I'll post the entire code. Still hoping ot find a way to walk without being active window.

Code:
If (MemReadDLL("4F68FC")="7") then Send($loot)
10/09/2009 12:10 plany123#24
Ich werde es heute abend einbauen und gleich dazu nen ausgabefeld basteln
danke :)

ansich finde ich botten kacke aber es geht numal net anders bei mir ... außerdem macht es riesen spass das ding weiter zu schreiben ^^

ich habe atm 4 Projekte an laufen von Kunden (Der bot ist nr 5) und arbeite Nebenbei noch 0o von 9-19 uhr jeden tag aber will dennoch aion spielen 0o geht schwer nur mitn bot machbar ^^ ich werde das wochenende wieso die nächte durchmachen und botten / arbeiten .. denke gameguard wird bald wieder reaktiviert dann is vorerst schluss mit den meisten bots ... *goggle GG killer* ^^

hier nen kleines Homemovie von meiner "workstation" ^^
[Only registered and activated users can see links. Click Here To Register...]
------------------------------
I'll include this code into my own tonight ... and build an output field
thanks :)

your 8 is the var $reg :)

my version: [Only registered and activated users can see links. Click Here To Register...]
10/09/2009 15:15 sengen#25
No I use the var $reg for bandage or HP pots "8" is just to sit and rest and recover mana.
It could be used as a mana pot location, I plan to have both setup so if the area is clear sit and rest if in a fight use pot.
10/09/2009 23:46 plany123#26
New Version 0.2 (Planys version)
orginal: unknown661
Developer: Plany, unknown661, sengen

[Only registered and activated users can see links. Click Here To Register...]

ADD: mana reg Option
ADD: EP Counter
ADD: preAttack Buff Option

------------ German --------
mana Reg Option: um sie zu deaktivieren einfach den wert auf 0 setzen :)
EP Counter: zeigt an wieviel Ep aktuell dazugewonnen wurde
preAttack Buff: Bufft vor jeden angriff diesen Buff (x wenn unerwünscht)
------------ English ----------
mana Reg Option: disable, set the value to 0 :)
EP Counter: show die Currently EP at startup
preAttack Buff: buff this spell befor attack ... always
10/09/2009 23:51 plany123#27
DEVELOPER NODE:

ich hab die Ep adressen gefunden ... die sind anders als in offset post >.< hab lange gesucht (bin adresse für adresse durchgegangen ... hatte aber glück ^^)


Code:
Func ReadMemValues()
	;0 4 8 C hex 4bit jumps
	$playerHP = MemReadDLL("8EEEC0")
	$playerHPMax = MemReadDLL("8EEEBC")

	$playerEP = MemReadDLL("8EEEB0")
	$playerEPMax = MemReadDLL("8EEEA0")

	$playerEnergy = MemReadDLL("8EEEC8")
	$playerEnergyMax = MemReadDLL("8EEEC4")

	; MAX EP = 8EEEA0
	; CUR EP = 8EEEB0
EndFunc
hier sind die Counter:
Code:
; add 1 to the kill counter :)
		$enemyKillCount = $enemyKillCount + 1
		GUICtrlSetData( $killCount, $enemyKillCount)
		; ep counter
		$newEp = MemReadDLL("8EEEB0") - $playerEP
		$playerEP = MemReadDLL("8EEEB0")
		$enemyEpCount = $enemyEpCount + $newEp
		GUICtrlSetData($epCount , $enemyEpCount)
und hier die Reg abfrage :
Code:
if ((MemReadDLL("8EEEC0")/$playerHPMax)*100) < $reg_minLife Or ((MemReadDLL("8EEEC8")/$playerEnergyMax)*100) < $reg_minMana Then
			Send($reg)
			while MemReadDLL("8EEEC0") <> MemReadDLL("8EEEBC")
				Sleep(2000)
			WEnd
			while MemReadDLL("8EEEC8") <> MemReadDLL("8EEEC4")
				Sleep(2000)
			WEnd
			; fix bug rest and enemy in range
			Send($reg)
-----------------
edit:

i have the cast time and cooldown time included ... i need only a delay field ... np ^^
t3h c0d3!:
Code:
Func F_arttack1()
	if(($attack1LastCast + $attack1Cd) < _TimeGetStamp()) Then
		GUICtrlSetData($status,"start attack Nr2")
		Send($attack1)
		Sleep($attack1c)
		$attack1LastCast = _TimeGetStamp()
	EndIf
EndFunc

Func F_arttack2()
	if(($attack2LastCast + $attack2Cd) < _TimeGetStamp()) Then
		GUICtrlSetData($status,"start attack Nr2")
		Send($attack2)
		Sleep($attack2c)
		$attack2LastCast = _TimeGetStamp()
	EndIf
EndFunc

Func F_arttack3()
	if(($attack3LastCast + $attack3Cd) < _TimeGetStamp()) Then
		GUICtrlSetData($status,"start attack Nr3")
		Send($attack3)
		Sleep($attack3c)
		$attack3LastCast = _TimeGetStamp()
	EndIf
EndFunc

Func F_buff()
	if(($attack4LastCast + $attack4Cd) < _TimeGetStamp()) Then
		Send($attack4)
		Sleep($attack4c)
		$attack4LastCast = _TimeGetStamp()
	EndIf
EndFunc
teh attacking code:
Code:
GUICtrlSetData($status,"start attacking")
    if CheckEnemyDead() <> 0 then
		Sleep(500);
		while CheckEnemyDead() <> 0
			if $attack1 <> "x" then
				F_arttack1()
			EndIf
			if $attack2 <> "x" then
				F_arttack2()
			EndIf
			if $attack3 <> "x" then
				F_arttack3()
			EndIf
		WEnd
teh time funktion (unix tmsp):
Code:
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
10/10/2009 18:19 starsearch#28
also mich würde mal interessieren wie ihr das mit den offsets/pointer gemacht habt? bei mir stürzt ce immer ab :/
10/10/2009 19:06 plany123#29
New version ( Planys Version ) Beta 3
Developer: Plany, unknown661, sengen

[Only registered and activated users can see links. Click Here To Register...]

Deutsch:
Add: status Field (unten links)
Add D.A. box: Dubble Attack box subspell attacked
Fixed: cooldown and Casttime now worked
Fixed: cast 1 first ... then 2 ..
------------------
Casttime = Milliseconds (+1500 - 2000 "delay")
Attack1 = casttime 2sec = casttime + delay = 4000
Cooldown in seconds
10/10/2009 19:11 plany123#30
Quote:
Originally Posted by starsearch View Post
also mich würde mal interessieren wie ihr das mit den offsets/pointer gemacht habt? bei mir stürzt ce immer ab :/
ich hab den teil nicht entwickelt aber kann dir glaubisch darauf antworten ^^

Code:
$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
der offset für die aktuellen EP = 8EEEB0
die offsets sind in ein 4 byte shema angeordnet die nächste mögliche stelle währe also 8EEEB4 die stelle davor 8EEEAC :)

die funktion MemoryModuleGetBaseAddress befindet sich in download package von mir dazu auch den gesammte source code :) wir arbeiten open source an den bot

GANZ wichtig ist unter 64 bit systemen immer in 32 bit mode ausführen weil er sonst die base adresse nicht erkennt