Register for your free account! | Forgot your password?

You last visited: Today at 21:48

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



AutoIt

Discussion on AutoIt within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
Jonskelib's Avatar
 
elite*gold: 0
Join Date: Oct 2007
Posts: 18
Received Thanks: 4
AutoIt

Nabend zusammen,

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:



PHP Code:
        $PixelSearch(540,613,540,6130xA9796A)
            
Sleep(500
        
Sleep (5000)
        
Send "{F3 down}" 
        
Sleep (500)
        
Send "{F3 up}" 
        
Sleep (1000
        
Send "{F4 down}" )
        
Sleep (500)
        
Send "{F4 up}" )
        
Sleep (1000)
        
$Fischblase PixelSearch 297 95 468 284 0xFCF8FC )
        If 
not @error then
        Sleep 
2600 )
        
Send("{F4 down}")
        
Sleep(500)
        
Send("{F4 up}")
        
ExitLoop
        
EndIf 
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
Jonskelib is offline  
Old 11/17/2008, 23:27   #2
 
elite*gold: 0
Join Date: Nov 2008
Posts: 28
Received Thanks: 3
mhh also so wie du das da schreibst kann das nicht klappen, weil das Script nicht wartet bis es die Fischblase gefunden hat.

ich mach jetzt nur die grobe, logischen Verbesserungen, da ich nicht mit AutoIT programmiere (also fast nie jedenfalls ).

PHP Code:
  $PixelSearch(540,613,540,6130xA9796A)
            
Sleep(500
        
Sleep (5000)
        
Send "{F3 down}" 
        
Sleep (500)
        
Send "{F3 up}" 
        
Sleep (1000
        
Send "{F4 down}" )
        
Sleep (500)
        
Send "{F4 up}" 
soweit in Ordnung

PHP Code:
...
        
Send "{F4 up}" )
        
Sleep (1000)
        
$Fischblase PixelSearch 297 95 468 284 0xFCF8FC )
... 
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.

Schau dir doch mal diesen Guide hier an:

MFG MaToBe
MaToBe is offline  
Old 11/18/2008, 06:48   #3
 
Jonskelib's Avatar
 
elite*gold: 0
Join Date: Oct 2007
Posts: 18
Received Thanks: 4
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?
Jonskelib is offline  
Old 11/18/2008, 08:18   #4
 
Quade's Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 496
Received Thanks: 171
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..
Quade is offline  
Old 11/18/2008, 11:55   #5
 
Jonskelib's Avatar
 
elite*gold: 0
Join Date: Oct 2007
Posts: 18
Received Thanks: 4
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-.-

Danke Gruß Jonaske
Jonskelib is offline  
Old 11/18/2008, 14:42   #6

 
elite*gold: 0
Join Date: Feb 2008
Posts: 2,754
Received Thanks: 1,748
Wie er schon richtig gesagt hat, mach nen Counter mit Rollback-Funktion rein, müsste iwo beschribeen sein.
Computerfreek is offline  
Old 11/18/2008, 16:51   #7

 
°Remus°'s Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 8,541
Received Thanks: 4,539
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
°Remus° is offline  
Old 11/18/2008, 17:59   #8
 
banjo1's Avatar
 
elite*gold: 1371
Join Date: Dec 2007
Posts: 14,903
Received Thanks: 19,354
Achte nächstes mal auf die richtige Kategorie
*moved

Mfg
banjo1
banjo1 is offline  
Old 11/19/2008, 14:27   #9
 
Atheuz's Avatar
 
elite*gold: 81
Join Date: Jul 2005
Posts: 1,921
Received Thanks: 2,239
Quote:
Originally Posted by °Remus° View Post
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.
Atheuz is offline  
Old 11/19/2008, 21:42   #10

 
°Remus°'s Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 8,541
Received Thanks: 4,539
Quote:
Originally Posted by Atheuz View Post
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
°Remus° is offline  
Old 11/20/2008, 15:30   #11
 
Atheuz's Avatar
 
elite*gold: 81
Join Date: Jul 2005
Posts: 1,921
Received Thanks: 2,239
Quote:
Originally Posted by °Remus° View Post
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.
Atheuz is offline  
Old 11/20/2008, 17:36   #12

 
°Remus°'s Avatar
 
elite*gold: 2
Join Date: Mar 2008
Posts: 8,541
Received Thanks: 4,539
Quote:
Originally Posted by Atheuz View Post
Ich zitiere mich selbst.. :





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
°Remus° is offline  
Reply




All times are GMT +1. The time now is 21:50.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.