ich wollte mal fragen, ob sich einer gut mit autoit auskennt.
und zwar hätte ich zwei fregen:
1. gibt es einen befehl bei autoit, de rmerkt, wenn das programm nicht mehr reagiert, also nix mehr macht? Und es dann von vorne neu startet? (Da mein angelbot öfter abbricht, und er natürlich wiieter angeln soll^^)
2. kann man 2 If schleifen zusammenfügen? also BEISPIEL:
Das Programm soll nun erstmal dein erstenpixel finden, dann satrten und nun aufd den zweiten pixel warten bis er erscheint (Angelbot).
Das problem so ist, erstens: so findet er imemr wieder den ersten pixel ($PixelSearch(540,613,540,613, 0xA9796A)) und drückt daraufhin immer wieder f3 und f4... Also bricht in dem fall das angeln wieder ab. Es soll aber erstmal auf den zewiten pixel warten (fischblase) bevor er wieder neu von vorne beginnt und den ersten pixxel sucht...
warum ich es so kompliziert mache hat seine gründe^^ natürlich ginge es leichter, aber dann würde es nicht in meinem Kompletten script funktionieren (relog etc.)
Ich hoffe es kann mir einer meine fragen beantworten
danke schonmal im vorraus Gruß und schönen abend noch Jonske
PS: groß und kleinschreibung und rechtschreibfehler inbegriffen
Hier ist ein Fehler. Dein Script wirft die Angel aus, wartet 1 Sekunde und schaut dann, ob eine Fischblase da ist. Logischer weise ist sie das nicht, also macht sie im Else Teil
PHP Code:
...
Sleep (1000)
$Fischblase = PixelSearch ( 297 , 95 , 468 , 284 , 0xFCF8FC )
If not @error then
...
EndIf
weiter.
Du musst deshalb mit While-Schleifen arbeiten. Genauer gesagt mit einer Endlosschleife ( while 1 ), die so lange nach der Fischblase sucht, bis diese auftaucht. Vorher darf das Script nicht weiterlaufen.
ich habe das Problem bereits schon bhoben, aber trotzdem danke nochmal!
habe jetzt noch eine viel wichtigere frage, ist es möglich, dass ich irgendwie dort reinschreiben kann, das wenn das programm nicht mehr reagiert (für ne gewisse zeit keine tasten/maus aktion mehr aussführt) das programm von anfang neu startet?
Wenn du meinst dass dein Bot an ist, aber ein Fehler im Spiel die Fischblase nicht zeigt.. dann empfehle ich dir ne counter variable^^ ist i.wo im Forum erklärt..
Ja genau da smeinte ich! also das mein bot durch nen Fehler des spieles nicht mehr funktioniert, also die angel nicht mehr raus/rein packt, die fischblase nicht findet....
Im normalfall läuft mein bod wie ne eins, doch öfters pasiert es, dass weenn ich ihn über nacht laufen lasse, dass er dann morgens einfach nciht mehr angelt....
Am besten würde es sein, wenn sich der sript mit einer funktion wieder an anfang setz, also wieder von neuem startet (wenn halt fehler auftreten wie oben benannt).
Kann mir einwer vielleicht sagen, wo ich etwas über die "counter variable" finde? habe über die sufu nix gefunden-.-
wie man mit timern umgeht wird hier relativ verständlich erklärt
sollte in etwa so gehen
Code:
Global $TimerInit
Global $Timer
Global $Rollbacktime = 60000 ;ms = 1min
$TimerInit = TimerInit()
While 1
$Fischblase = PixelSearch ( 297 , 95 , 468 , 284 , 0xFCF8FC )
If not @error then
Sleep ( 2600 )
Send("{F4 down}")
Sleep(500)
Send("{F4 up}")
ExitLoop
EndIf
$Timer = int(TimerDiff($TimerInit))
If $Timer >= $Rollbacktime Then ExitLoop
WEnd
Timer sind eine feine Sache, trotzdem sollte man imo darauf verzichten wenn es einfacher geht.
Das hier im dem Teil angeben wo keine Angelblase gefunden wird; ie = ie+1;
if( ie >= 1000 )
neustart();
Das hier im Script angeben wo die Angelblase gefunden wird; ie = 0;
Sobald die Angelblase nicht gefunden wird, sollte die Variable ie hochzählen und ab einen gewissen Fehler-Wert wird die Funktion neustart() ausgeführt um den bot nochmal zu starten.
Timer sind eine feine Sache, trotzdem sollte man imo darauf verzichten wenn es einfacher geht.
Das hier im dem Teil angeben wo keine Angelblase gefunden wird; ie = ie+1;
if( ie >= 1000 )
neustart();
Das hier im Script angeben wo die Angelblase gefunden wird; ie = 0;
Sobald die Angelblase nicht gefunden wird, sollte die Variable ie hochzählen und ab einen gewissen Fehler-Wert wird die Funktion neustart() ausgeführt um den bot nochmal zu starten.
hab ich am anfang auch so gemacht, aber timer sind einfach viel preziser als so nen simpler Counter,
und du hast vergessen zu erwähnen das der counter resetet werden sollte wenn die angelblase gefunden wurde sonst überspringt der bot das warten auf die angelblase nach nen paar minuten immer
hab ich am anfang auch so gemacht, aber timer sind einfach viel preziser als so nen simpler Counter, und du hast vergessen zu erwähnen das der counter resetet werden sollte wenn die angelblase gefunden wurde sonst überspringt der bot das warten auf die angelblase nach nen paar minuten immer
Ich zitiere mich selbst.. :
Quote:
Das hier im Script angeben wo die Angelblase gefunden wird;
ie = 0;
Natürlich ist ie = 1000 nicht 1000 Sekunden, dafür hast du aber bei der ausführung ein Script welches zur gleichen Laufzeit deine gewünschte Funktion aufruft. Ein Timer dagegen hat vorallem in Autoit eine minimale Abweichung die je nach Länger der Laufzeit Probleme verursachen wird.
Natürlich ist ie = 1000 nicht 1000 Sekunden, dafür hast du aber bei der ausführung ein Script welches zur gleichen Laufzeit deine gewünschte Funktion aufruft. Ein Timer dagegen hat vorallem in Autoit eine minimale Abweichung die je nach Länger der Laufzeit Probleme verursachen wird.
hab ich übersehen sry,
ich hatte noch nie probleme mit timern und ich setzt die aber auch nicht so oft ein
der threadersteller scheint sich ja auch nicht mehr zu melden