Ok ich hole mal ein stückchen weiter aus.....
Ich habe mir einen Angelbot gescriptet. Dieser ist wie folgt aufgebaut:
-Er macht Köder dran und wirft aus.
-Er geht in eine Endlosschleife.
-Angelblase suchen. Der Script wird erst "fortgesetzt" wenn eine Angelblase gefunden wurde
-rausziehen, suche nach kleinem Fisch, wieder auswerfen.
Das ist mein Angelbot...nix besonderes.
So jetzt zu euren Lösungen. Ich bezihe sie gleich direkt auf meinen Angelbot.
-wirft aus
-Schleife beginnt
-Zählvariable $v wird auf 0 gesetzt
-Angelblase suchen, wenn gefunden
-raus ziehen
-$v + 1
-rausziehen, suche nach kleinem Fisch, wieder auswerfen.
-$v prüfen, wenn bst. Wert überschritten....macht er irgendwas, wenn nich passiert nix
-Angelblase suchen , wenn gefunden
-raus ziehen
-$v + 1
-rausziehen, suche nach kleinem Fisch, wieder auswerfen.
-$v prüfen, wenn bst. Wert überschritten....macht er irgendwas, wenn nich passiert nix
-Angelblase suchen
.
.
.
Das war der Lödungsansatz von MarcoPolo..... das Problem daran ist jetzt, dass wie man sieht egal wo man das $v+1 in der Schleife platziert, es wird immer jeweils nach gefundener Angelblase erhöht. Ich will aber dass wenn nach längerer Zeit keine Angelblase gefunden wird erneut ausgeworfen wird. Um das zu beheben könnte folgende Funktion benutzen:
While 1
Pixelsearch(...)
If not @error Then
Send("{Space}")
$Counter = 0
Else
$Counter +=1
EndIf
If $Counter = 500 Then
Send("{Space}"
$Counter = 0
EndIf
WEnd
Das war der Lösungsansatz von Remus.
Ich beschreibe ihn nochmals eindeutig im Wortlaut und beziehe ihn gleichzeitig wieder speziell auf meinen Bot.
.
.
.
-Angelblase suchen, wenn gefunden
-rausziehen, kleinen Fisch suchen auswerfen
wenn nicht gefunden
-$v+1, (kleinen Fisch suchen auswerfen)
;##An dieser Stelle könnte man nachdem $v+1 ausgeführt wurde die Schleife von vorne beginnen lassen, dann wäre mein Problem gelöst.##
-Angelblase suchen, wenn gefunden
-rausziehen, kleinen Fisch suchen auswerfen
wenn nicht gefunden
-$v+1, (kleinen Fisch suchen auswerfen)
.
.
.
So, und das Hauptproblem an der Sache ist, dass der Script erst weitergeführt wird wenn eine Angelblase gefunden wurde. Das kann ich nicht ändern, weil ich sonst die kleinen Fische nicht mit verwenden kann. (If kleiner Fisch gefunden, dann dran machen, else normalen Köder nehmen).
so ich denke bis hier hin ist alles klar.
Und jetzt suche ich eine Lösung für folgendes Problem:
Es wird keine Angelblase gefunden aufgrund eines Fehlers im Spiel (lagg, Bug, was auch immer). Jetzt will ich dass mein Bot diese Fehler umgeht, indem er die Angel erneut auswirft wenn nach einer gewissen Zeit nichts passiert ist. (Die Zeit kann auch in Form einer Zählvariable eingebaut werden)
Ein Algorithmus im Wortlaut wäre wie folgt:
.
.
.
-$v auf 0 setzten
-mit jedem error welche der pixelsearch vom Suchen der Angelblase zurückgibt wird $v um eins erhöht, und derselbe pixelsearch wird erneut ausgeführt.
-Angelblase suchen, wenn gefunden...sihe oben ...
.
.
.
Oh mein Gott....jetzt bin ich auch noch seklber drauf gekommen ich depp
While 1
While 1
$coord = PixelSearch( x1, y1, x2, y2, Farbhex ) ;Angelblase
If @error Then
$counter += 1
Sleep(100)
If $counter = 25 then
Sleep(100)
Send("{F4 down}")
Sleep("100")
Send("{F4 up}")
Sleep(100)
$counter = 0
Else
EndIf
ExitLoop
Eieieiei....aber danke dass ihr mich zum Ergebnis geführt habt....falls ihr sowas nochmal gebrauchen könnt^^ da steht ne Lösung is sicherlich ganz hilfreich