Veredlungs bot Autoit Help weis nimmer weiter

10/12/2010 20:03 poloteufelkcity#1
ok seit 2 monaten bin ich weng bei autoit eingestiegen.

so da ich keine verkaufdrohne bei Dark orbit habe habe ich mir so gedacht ich schreibe ein script zum veredeln.

hat eigendlich gut geklappt.
ich hab nur ein problem das Veredlungs Fenster bleibt hin und wieder (ale 5 mal) hängen und ich kann es nicht mehr schliesen. was mitten im gefecht scheise ist

ich habe mal das skript mal als RAR angehängt alle nötigen infos stehen im Archiv
10/16/2010 22:32 poloteufelkcity#2
komisch das sich keiner meldet hier
10/17/2010 09:07 Baaam01#3
ich versteh nicht was dein problem ist
meinst du das es das fenster nicht schließt?
vielleicht falsche koordinaten wenns bei den anderen befehlen funktioniert
und öhm ja vielleicht wäre das mit imagesearsch besser zu lösen (sry bin auch nich so der pro aber ich hätte es so versucht^^)
10/17/2010 12:34 lolomat41#4
Probiers mal mit ControlClick viel zuverlässiger und schneller.
11/22/2010 20:03 poloteufelkcity#5
Quote:
Originally Posted by Baaam01 View Post
ich versteh nicht was dein problem ist
meinst du das es das fenster nicht schließt?
vielleicht falsche koordinaten wenns bei den anderen befehlen funktioniert
und öhm ja vielleicht wäre das mit imagesearsch besser zu lösen (sry bin auch nich so der pro aber ich hätte es so versucht^^)
koordinaten stimmen doch klicken geht nicht mehr

wie meinst du das imagesearch oder meinst du damit pixelsearch?

Quote:
Originally Posted by lolomat41 View Post
Probiers mal mit ControlClick viel zuverlässiger und schneller.
wie geht der den
11/22/2010 20:05 sava#6
Quote:
Originally Posted by poloteufelkcity View Post
koordinaten stimmen doch klicken geht nicht mehr

wie meinst du das imagesearch oder meinst du damit pixelsearch?



wie geht der den

Er meint ImageSearch. Damit kannste du direkt nach nem bestimmten Bild suchen, was zu 100% effektiver ist als pixelsearch!
11/22/2010 20:20 Shadow992#7
Quote:
Originally Posted by poloteufelkcity View Post
koordinaten stimmen doch klicken geht nicht mehr

wie meinst du das imagesearch oder meinst du damit pixelsearch?



wie geht der den
Du darfst bei solchen Sachen keine problemlösende Antwort erwarten.
Click-Bots funktionieren immer von Rechner zu Rechner unterschiedlich gut.
Vondaher kann man dein Skript auch nur schlecht ausprobieren genauso gut kann man auch nur erraten was geht/was nicht und warum nicht...
Clickbots sind ja ganz ok für den Anfang, aber über Kurz oder Lang solltest du dich doch in Richtung Packetbots bewegen. Tutorials dazu gibts auch ein paar.
11/23/2010 13:31 poloteufelkcity#8
Quote:
Originally Posted by sava View Post
Er meint ImageSearch. Damit kannste du direkt nach nem bestimmten Bild suchen, was zu 100% effektiver ist als pixelsearch!
aber wie heist der code für autoit ich find dazu nichts in der hilfe
11/23/2010 13:54 TQG#9
Dann folgt die "problemlösende Antwort" halt an dieser Stelle von mir:

Vorgeschichte:
Ich selbst habe auch keine Verkaufsdrohne und das Veredeln führt bei mir immer wieder zu Fehlern (es wird nicht korrekt veredelt), weshalb ich den Vorgang ständig wiederholen muss. Dies hat mich extrem genervt und aus diesem Grunde habe ich mich vor einigen Wochen in Autohotkey eingearbeitet, um - genau wie du - ein entsprechendes Skript zu erstellen.
Inzwischen ist aus dem einfachen Skript ein fast vollständiges Multi-Tool mit sämtlichen Funktionen geworden. Die Veredelungs-Funktion ist bei mir bereits seit Wochen fertig (anders als bei dir jedoch unabhängig von Fenstergröße und -position).

Dein Fehler:
Ob dein AutoIt oder mein AHK Skript, eine entscheidende Schwachstelle haben beide gemein: sie führen stumpfsinnig Befehle aus, ohne auf tatsächliche Veränderungen im Spiel zu reagieren. Ist ein Fenster nicht geladen oder befindet es sich nicht an der vorgesehenen Position, wird dennoch geklickt, falls dieses im Skript steht. Die Konsequenzen daraus sind schwer absehbar und teilweise fatal!

Du selbst hast direkt zu Beginn ein "Sleep(1000)" in dein Skript gesetzt. Warum? Ganz einfach: dein Skript wartet nicht, bis das Veredelungsfenster geladen ist. Da der Server aber nicht direkt reagiert und das Fenster zudem noch animiert eingeblendet wird, hast du also eine manuelle Wartezeit eingebaut, bis sich das Fenster auf jeden Fall geöffnet hat. Gut so!
Warum aber gibst du dem Server nicht auch beim Veredeln selbst die benötigte Zeit? Ich selbst habe dein Skript nicht laufen lassen, bin mir aber sicher, du hast folgendes bemerken können: alles funktioniert einwandfrei, jedoch "hakt" es ab und an aus irgendeinem Grund und absolut nichts funktioniert mehr.
Dein Skript ist halt einfach zu schnell für den Server! Deine "Clicks" werden in Millisekunden direkt hintereinander ausgeführt! Hast du mal daran gedacht, dass zunächst dein PC diese Clicks verarbeiten und über das Internet senden muss? Auch der Spieleserver brauch dann noch mal Zeit zum reagieren. Gib ihm die Zeit!

Die Lösung:
Wartezeiten einbauen - und zwar folgende:
- Warten auf Öffnen des Fensters: 1000 (richtig)
- Nach (jedem!) Dropdown: 120
- Vor Click auf 2. Rohstoff: 200 (ganz wichtig!!)
- Vor Schließen des Fensters: 200 (ganz wichtig, jedoch sind deine 1000 deutlich übertrieben)


Ich gehe mal davon aus, dass ich dir weiterhelfen konnte und wünsche dir noch viel Spaß beim Skripten!
11/23/2010 14:58 sava#10
Bin nich Lexikon wa...

Dass ist nur ein Beispiel und nicht die perfekte Lösung für dich.
Code:
#include <ImageSearch.au3>

Func _bild_suchen()
		$result = _ImageSearch(@ScriptDir & "dein_bild.bmp",1,$x1,$y1,25)
		if $result = 1 Then
			MouseClick("left", $x1, $y1, 1, 3)
		Else
		        MsgBox(0, "Fehler", "Bild konnte nicht gefunden werden")
		EndIf
	WEnd
EndFunc

Guck in die ImageSearch.au3 datei um zu verstehen was das ganze bedeutet.
Wenn du die nicht hast, such dir die Dateien für ImageSearch per google!
11/26/2010 14:29 poloteufelkcity#11
Quote:
Originally Posted by TQG View Post
Dann folgt die "problemlösende Antwort" halt an dieser Stelle von mir:

Vorgeschichte:
Ich selbst habe auch keine Verkaufsdrohne und das Veredeln führt bei mir immer wieder zu Fehlern (es wird nicht korrekt veredelt), weshalb ich den Vorgang ständig wiederholen muss. Dies hat mich extrem genervt und aus diesem Grunde habe ich mich vor einigen Wochen in Autohotkey eingearbeitet, um - genau wie du - ein entsprechendes Skript zu erstellen.
Inzwischen ist aus dem einfachen Skript ein fast vollständiges Multi-Tool mit sämtlichen Funktionen geworden. Die Veredelungs-Funktion ist bei mir bereits seit Wochen fertig (anders als bei dir jedoch unabhängig von Fenstergröße und -position).

Dein Fehler:
Ob dein AutoIt oder mein AHK Skript, eine entscheidende Schwachstelle haben beide gemein: sie führen stumpfsinnig Befehle aus, ohne auf tatsächliche Veränderungen im Spiel zu reagieren. 1>Ist ein Fenster nicht geladen oder befindet es sich nicht an der vorgesehenen Position, wird dennoch geklickt, falls dieses im Skript steht. Die Konsequenzen daraus sind schwer absehbar und teilweise fatal!

Du selbst hast direkt zu Beginn ein "Sleep(1000)" in dein Skript gesetzt. Warum? Ganz einfach: dein Skript wartet nicht, bis das Veredelungsfenster geladen ist. Da der Server aber nicht direkt reagiert und das Fenster zudem noch animiert eingeblendet wird, hast du also eine manuelle Wartezeit eingebaut, bis sich das Fenster auf jeden Fall geöffnet hat. Gut so!
Warum aber gibst du dem Server nicht auch beim Veredeln selbst die benötigte Zeit? Ich selbst habe dein Skript nicht laufen lassen, bin mir aber sicher, du hast folgendes bemerken können: alles funktioniert einwandfrei, jedoch "hakt" es ab und an aus irgendeinem Grund und absolut nichts funktioniert mehr.
2>Dein Skript ist halt einfach zu schnell für den Server! Deine "Clicks" werden in Millisekunden direkt hintereinander ausgeführt! Hast du mal daran gedacht, dass zunächst dein PC diese Clicks verarbeiten und über das Internet senden muss? Auch der Spieleserver brauch dann noch mal Zeit zum reagieren. Gib ihm die Zeit!

Die Lösung:
Wartezeiten einbauen - und zwar folgende:
- Warten auf Öffnen des Fensters: 1000 (richtig)
- Nach (jedem!) Dropdown: 120
- Vor Click auf 2. Rohstoff: 200 (ganz wichtig!!)
- Vor Schließen des Fensters: 200 (ganz wichtig, jedoch sind deine 1000 deutlich übertrieben)


Ich gehe mal davon aus, dass ich dir weiterhelfen konnte und wünsche dir noch viel Spaß beim Skripten!
1> wen es ein ganz normales windowsfenster wäre könnt man den code verwenden mit dem autoit wartet bis das fenster offen ist(rückmeldung vom Programm an WIN das es bereit ist). aber im spielclient kommt man an diese rückmeldung nicht ran.

2>daran hate ich nicht wircklich gedacht. teilweise auch deswegen weil wir 50k DSL haben(34k effektiv) aber wo du sagst man kann nur so schnell senden wie der andere empfangen kann)
11/27/2010 08:48 TQG#12
Quote:
Originally Posted by poloteufelkcity View Post
1> wen es ein ganz normales windowsfenster wäre könnt man den code verwenden mit dem autoit wartet bis das fenster offen ist(rückmeldung vom Programm an WIN das es bereit ist). aber im spielclient kommt man an diese rückmeldung nicht ran.

2>daran hate ich nicht wircklich gedacht. teilweise auch deswegen weil wir 50k DSL haben(34k effektiv) aber wo du sagst man kann nur so schnell senden wie der andere empfangen kann)

zu 1:
So ist das leider...

zu 2:
Die Internetverbindung ist sogar nur die eine Sache. Ein völlig anderes Problem ist es, wenn (was bei mir gerade auf dem Spieleserver recht häufig passiert) der PC aufgrund des Flashplayers nicht flüssig läuft und sich dadurch alles verzögert.