Erzabbaubot?

06/01/2014 20:10 greenryder#16
Sorry xD Musste den Satz relativ schnell auf dem Handy tippen da ich am Fahren war. Aber trotzdem verstehe ich nicht weshalb die 0 bei der Kamera Drehung steht. Es wird doch in diesem Moment nichts weiter gemacht außer das die Kamera gedreht wird. Bei der Funktion Farmen würde es mir plausibler erscheinen.
06/02/2014 07:53 pachen123321#17
wenn noch was liegt wird es dann noch aufgehoben ^^ kannst das aber auch weg lassen
taste 4 ist noch nen überbleibsel :)
war in nem anderem testbot das aufsammeln
also kann 0 und 4 zum aufsammeln angepasst werden.

zum thema fokus:
wenn der bot bei mir arbeitet, ist fiesta im vollbild an und im vordergrund
zum testen einfach mal das chatfenster öfffnen und schauen ob er die tasten vom send drückt. dann mal bei laufendem fiesta wordpad öffnen und in den vordergrund, dann sollten die ausgaben dort sein.
es werden IMMER die ausgaben im aktiven fenster gesetzt.

@iKasu stimmt nicht unbedingt so :)

Code:
$iPID = ProcessExists ("Fiesta.bin")


$hOpen = _MemoryOpen($iPID)
$iBase = _MemoryModuleGetBaseAddress($iPID, "Fiesta.bin")

$base_zoom1 = $iBase + 0x0064903c
$base_zoom2 = _Memoryread($base_zoom1, $hOpen)+0x589
$base_zoomFinal = _MemoryWrite ($base_zoom2, $hOpen,0x01,"byte")
schickt auch an den process wenn der im hg ist :)
(die labels sind von meinem superzoom :P)



gruss

btw: wenn antworten mal länger als 12h dauern :D ich hab auch reallife
06/02/2014 16:19 Stahllegierung#18
Quote:
Originally Posted by pachen123321 View Post
zum thema fokus:
wenn der bot bei mir arbeitet, ist fiesta im vollbild an und im vordergrund
zum testen einfach mal das chatfenster öfffnen und schauen ob er die tasten vom send drückt. dann mal bei laufendem fiesta wordpad öffnen und in den vordergrund, dann sollten die ausgaben dort sein.
es werden IMMER die ausgaben im aktiven fenster gesetzt.
hab es im vollbild-modus probiert. leider zeigt sich absolut keine änderung. das fenster wird nichtmal richtig fokussiert. (im chat erscheinen keine ausgaben)
06/02/2014 20:15 PluSOne#19
moin moin :D

danke erstmal der bot ist nice und funktioniert auch soweit

allerdings frage ich mich ob es gewollt ist das er ab und an zu nem erz rennt und dann aufeinmal ein anderes in den log nimmt und dann zu diesem rennt ?

es ist also ein ziemliches wir war :o ist das so gewollt oder hab ich da irgendwo nen fehler ?

oder ist es eigentlich so gedacht das er nen erz ins log nimmt, hinläuft, abbaut , kammera dreht und stop, sieht erz, läuft hin baut ab und dreht wieder die kamera ? bei mir dreht er die permanent :o

bitte um antwort :) danke schonmal
06/02/2014 21:14 『  』#20
Quote:
Originally Posted by pachen123321 View Post

@iKasu stimmt nicht unbedingt so :)

Code:
$iPID = ProcessExists ("Fiesta.bin")

$hOpen = _MemoryOpen($iPID)
$iBase = _MemoryModuleGetBaseAddress($iPID, "Fiesta.bin")

$base_zoom1 = $iBase + 0x0064903c
$base_zoom2 = _Memoryread($base_zoom1, $hOpen)+0x589
$base_zoomFinal = _MemoryWrite ($base_zoom2, $hOpen,0x01,"byte")
Du vergisst das du dort nen Byte im Speicher änderst, somit sendest du keine Tastenanschläge
an das "Fenster". Klar sind die Tasten auch nur einzelne Bytes die entweder 0 oder 1 sind, jedoch
wirst du weder mit Send, noch mit SendMessage, Postmessage, keybd_input oder anderweitiges
manipulieren der Windows Message Queue Tasten an Fiesta senden können, da Fiesta DirectInput benutzt.
Der einzige weg führt über nen Hook, womit du dann zur Laufzeit den Buffer von GetDeviceData/GetDeviceState
änderst um somit die Tasten/Mausklicks zu "emulieren".

Quote:
Originally Posted by Stahllegierung View Post
hab es im vollbild-modus probiert. leider zeigt sich absolut keine änderung. das fenster wird nichtmal richtig fokussiert. (im chat erscheinen keine ausgaben)
UAC Aktiviert? Startet Fiesta als Admin und der Bot als normaler User? Ist dem so dann
solltest du entweder UAC Deaktivieren oder den Bot ebenfals mal als Admin starten.
Was du ebenfals mal probieren kannst wäre, Fiesta selbst in den Vordergrund zu holen und einfach
mal mit der Maus nen Linksklick machen (wärend der Bot läuft).

Quote:
Originally Posted by PluSOne View Post
allerdings frage ich mich ob es gewollt ist das er ab und an zu nem erz rennt und dann aufeinmal ein anderes in den log nimmt und dann zu diesem rennt ?
Dadurch das der Bot nur einen Bereich von 1280x1024 absucht, kann es, denke ich zumindest, vorkommen,
dass das Erz auserhalb des Suchbereiches ist und er deswegen weitersucht.
Such die Zeile "$poslila = PixelSearch(1, 1, 1279, 1023,0x8c7dff,2)" und ändere dort die Roten werte zu deiner Desktopauflösung.

LG
06/02/2014 22:05 PluSOne#21
das hab ich ja getan ^-^ er läuft ja auch soweit das ist ja nichtd as problem aber sagenw ir er steht neben einem erz dreht er trotzdem weiter und suchts ich ein anderes läuft da hin, ist fast da dreht sich und nimmt wieder ein anderes :rolleyes::o
06/03/2014 08:58 pachen123321#22
Quote:
Dadurch das der Bot nur einen Bereich von 1280x1024 absucht, kann es, denke ich zumindest, vorkommen,
dass das Erz auserhalb des Suchbereiches ist und er deswegen weitersucht.
Such die Zeile "$poslila = PixelSearch(1, 1, 1279, 1023,0x8c7dff,2)" und ändere dort die Roten werte zu deiner Desktopauflösung.
schon richtig erkannt, nur sollte nicht die komplette Auflösung genommen werden. der obere bereich bis unterkannte mini-map sollten raus bleiben.
es besteht die möglichkeit, das der gesuchte farbcode im icon, minimap,... auftaucht und dann is schluss :P

bei den farbcodes muss man schon selber mal auf dem rechner schauen, welche farbe das genau ist. das kann minimal abweichen je nach rechner.
ich empfehle die erze die ich hier irgendwo gepostet hab, da sind eingefärbte erze die das suchen massiv erleichtern :)

das loslaufen zum nächsten erz passiert, wenn das erz zu weit liegt und dadurch die laufzeit zu lang ist. da uberholt der code dann den char :P kann man aber anpassen
06/03/2014 15:25 Stahllegierung#23
als erstes danke an kasu, ich weiß nicht, obs an admin oder an uac lag, aber es klappt jetzt.

das script hatte ich ein wenig umgeschrieben, hat auch ein mal funktioniert, aber es mussten ein paar anpassungen gemacht werden. hab jetzt alles geändert, aber der bot beendet sich sofort wieder. logischerweise muss ich einen fehler gemacht haben, aber ich finde ihn einfach nicht.
hier mal mein script:

Code:
WinActivate("FiestaOnline")
HotKeySet("{F11}", "exitkill")
HotKeySet("{F8}", "pause")
HotKeySet("{F7}", "goon")

Dim $posora[2], $posgruen[2], $poslila[2]
$target=""
$i=0
$aufheben="0"

Func goon()
   While 1
	   Sleep(1)
	   Call ("movcamera")
	   call ("ZielSuchen") 		; Prozedur aufrufen
	   Sleep (150)
   WEnd
EndFunc

func exitkill()				; Programm beenden
	Exit					; Exit
EndFunc						; Funktion beenden

func pause()				; Funktion mit Endlosschleife (wartet auf aufruf von "exit" oder "goon")
	While 1
	WEnd
EndFunc						; funktion beenden

Func movcamera()			; Kamera drehen
     MouseMove(100,120,1)	; Maus auf diese Position
	 sleep(100)
     MouseDown("right")		; Rechte Maustaste gedrückt halten
	 sleep(100)				;
     MouseMove(120,120)		; Maus bewegen
	 sleep(100)				;
     MouseUp("right")		; Rechte Maustaste loslassen
     Sleep(100)
 EndFunc   					; Ende der Funktion


 Func ZielSuchen()										; Ziel suchen
	$poslila = PixelSearch(1, 1, 1919, 1079,0x10ddf7,2)	; Farbe des Erz | Farbe des Erzes & Auflösung anpassen (Interface kann abgeschaltet werden)
	$errlila = @error									; Errorlevel übergeben
	If $errlila = 0 Then								; Farbe gefunden
		MouseMove ($poslila[0],$poslila[1],1)			; Maus bewegeb
		sleep(300)
		MouseClick("left")								; Mausklick
		sleep(300)
		MouseClick("left")								; Mausklick
		sleep(300)
		call ("Farmen")
	EndIf
EndFunc   												; Ende der Funktion

func Farmen ()
	While $i <= 1
		$target = PixelGetColor( 777  , 35 )			; auslesen - Gegner vorhanden ?
		if $target = "F70000" then						; Rot im Target
			$i=0
		Else
			$i=2
		endif
	 WEnd
sleep(300)												; kurze totzeit, damit fiesta hinterher kommt
send("0")												; aufsammeln mit taste "0"
sleep(300)												;
send("0")												;
sleep(300)												;
send("0")												;
EndFunc

Func BalkenSuchen ()
;	$posora = PixelSearch(913, 753, 1004, 753, 0xF78a00,1)
	$posora = PixelSearch(594, 716, 684, 716, 0xFF8A00,1)
	$errora = @error
	If $errora = 0 Then
		;$posgruen = PixelSearch(684, 716, 594, 716,0x21CF52,3)		$posgruen = PixelSearch(1004, 754, 913, 757,0x21CE5A,2)
		$posgruen = PixelSearch(684, 716, 594, 716,0x21CF52,3)
		$errgruen = @error
		If $errgruen = 0 Then
			$dif = ($posora[0] - $posgruen[0])
			If $dif < 3 and $dif > -3 Then
 				MouseClick("left", $posora[0], $posora[1], 1,1 )
			EndIf
		EndIf
	EndIf
EndFunc
06/03/2014 15:39 『  』#24
Füg bei Zeile 5 folgendes ein:
Code:
While 1

WEnd
Er beendet sich deswegen, da er keine schleife hat die "aktiv" läuft.
Die funktionen würden erst aufgerufen werden, wenn du die Tasten drückst,
daher läuft das script von oben nach unten ohne eine unterbrechnung -> Geht
wieder aus.
06/03/2014 16:49 Stahllegierung#25
aber vor meiner anpassung (,waren nur die totzeiten beim einsammeln,) lief das reibungslos. er is von allein in die goon funktion reingegangen und setzte sich dort in die schleife.
ich versuchs trotzdem mal ^^ danke dir

EDIT:
so, der compiler meint jetzt, dass am ende das WEnd fehlt xD

Code:
While 1
    Func goon()
             Sleep(1)
             Call ("movcamera")
	     call ("ZielSuchen") 		; Prozedur aufrufen
	     Sleep (150)
    EndFunc
WEnd
... der rest muss ja nicht mehr in die schleife, da er auch so aufgerufen wird, oder?

ich versuche heute abend mal, die goon funktion mit call aufzurufen, wenn das nicht geht, weiß ich nicht mehr weiter.
melde mich dann zurück
06/03/2014 16:55 『  』#26
Code:
WinActivate("FiestaOnline")
HotKeySet("!e", "exitkill")

Dim $posora[2], $posgruen[2], $poslila[2]
$target=""
$i=0
$aufheben="0"

While 1
	Sleep(1)
;	Call ("movcamera")
	call ("ZielSuchen") 		; Prozedur aufrufen
	send("4")
	Sleep (150)
WEnd
Die Schleife ganz oben im Code, führte dazu, dass der Bot direkt
angefangen hat und nicht direkt wieder aus ging.
Eine andere möglichkeit gibt es in AutoIt leider nicht.

LG
06/03/2014 17:31 greenryder#27
Ich benutze als Pause Funktion eigentlich immer das hier


Code:
WinActivate("FiestaOnline")
HotKeySet("{F5}", "exitkill")
HotKeySet("{F6}", "pause")

Global $paused
Dim $posora[2], $posgruen[2], $poslila[2]
$target=""
$i=0
$aufheben="0"


Func goon()
   While 1
	   Sleep(1)
	   Call ("movcamera")
	   call ("ZielSuchen") 		; Prozedur aufrufen
	   Sleep (150)
   WEnd
EndFunc

func exitkill()				; Programm beenden
	Exit					; Exit
EndFunc						; Funktion beenden

func pause()				; Funktion mit Endlosschleife (wartet auf aufruf von "exit" oder "goon")
	$paused = NOT $paused
		While $paused
			Sleep(100)
			ToolTip("SCRIPT PAUSIERT F6 = WEITER F5 EXIT", 0, 0)
		WEnd
			ToolTip("")
EndFunc
06/03/2014 20:00 Stahllegierung#28
Quote:
Originally Posted by ıKasu™ View Post
Code:
WinActivate("FiestaOnline")
HotKeySet("!e", "exitkill")

Dim $posora[2], $posgruen[2], $poslila[2]
$target=""
$i=0
$aufheben="0"

While 1
	Sleep(1)
;	Call ("movcamera")
	call ("ZielSuchen") 		; Prozedur aufrufen
	send("4")
	Sleep (150)
WEnd
Die Schleife ganz oben im Code, führte dazu, dass der Bot direkt
angefangen hat und nicht direkt wieder aus ging.
Eine andere möglichkeit gibt es in AutoIt leider nicht.

LG
ich verstehe nicht ganz, im grunde hatte ich es doch so. nur, dass ich das in eine funktion gesteckt hab

hätte der bot nach dem, was du sagst, nicht mindestens ein mal die kamera drehen und ein pixel suchen müssen?
(hat er nicht, hätte ich vielleicht dazu sagen können, sry dafür ^^)
06/03/2014 23:28 pachen123321#29
schau mal dein deine funktion an :P

func ist nicht gleich Func

*grins
06/04/2014 00:07 greenryder#30
Ich habe versucht $i abzufragen aber es will nicht wirklich funktionieren... Wenn ich den Bot so starte sucht er ein Erz aus und visiert es an danach hängt sich der Bot allerdings auf und macht gar nichts mehr. Ich kann ihn pausieren und auch beenden aber er "greift nicht an" und dreht auch die Kamera nicht weiter.

Kann mir vielleicht wer dabei helfen ? :/