Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 06:24

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

Advertisement



Schleife erstellen und schließen

Discussion on Schleife erstellen und schließen within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2008
Posts: 467
Received Thanks: 30
Schleife erstellen und schließen

Hallo,
ich arbeite derzeit an einem Bot für ****** und will Banner suchen.

Das mach ich ja mit _IEimgClick().

Ich will jetzt eine Schleife öffnen und dann soll er immer auf die Startseite gehen und sobald ein Banner auftaucht,soll er drauf klicken.
Das muss man ja 10 mal machen,danach soll sich die Schleife schließen.
Wie kann man das schreiben?

WICHTIG IST: Wenn man die Seite öffnet und es erscheint kein Banner,dann muss man die Seite neuladen,bis irgendwann der Banner erscheint.

Kurz:
1. Bot per Button starten. (Kann ich)
2. Dann die Schleife starten (Kann ich nicht)
3. Die Schleife soll geschlossen werden,sobald 10 mal der Banner gefunden und angeklickt wurde. (Kann ich nicht)

Wie geht das?

BTW: Für jede Antwort die mir weiterhilft,gebe ich nen Thanks also bitte antworten. ^^
armin555 is offline  
Old 11/29/2011, 21:41   #2
 
elite*gold: 0
Join Date: Mar 2011
Posts: 8,645
Received Thanks: 3,454
Schick mal dein Script oder machs so

Beispiel:
PHP Code:
For $i 1 To 10 Step 1
    
;Codeblabla
Next 
Freddy​ is offline  
Thanks
1 User
Old 11/29/2011, 21:44   #3
 
elite*gold: 1
Join Date: Nov 2010
Posts: 68
Received Thanks: 10
Wie oben schon beschrieben löst du das am besten in einer "For-Schleife" bei der du die Abruchsbedingung auf 10 setzt. Dann bricht er ja logischerweise automatisch ab.

EDIT(in Pseudosprache):

PHP Code:
if BannerDa then
  
for 1 to 10
    click
();
  
next
else
  
loop();
end if 
_P0w_ is offline  
Thanks
1 User
Old 11/29/2011, 21:46   #4
 
elite*gold: 0
Join Date: Aug 2008
Posts: 467
Received Thanks: 30
Quote:
Originally Posted by Snivel View Post
Schick mal dein Script oder machs so

Beispiel:
PHP Code:
For $i 1 To 10 Step 1
    
;Codeblabla
Next 
Den Code mag ich nicht so gerne hier reinzuschreiben. sry.

Aber die Variable $i , kann ich die so lassen oder muss ich die ändern?
Dann geb ich meinen Code ein und dann steht da Next,was mach ich da?

Quote:
Originally Posted by _P0w_ View Post
Wie oben schon beschrieben löst du das am besten in einer "For-Schleife" bei der du die Abruchsbedingung auf 10 setzt. Dann bricht er ja logischerweise automatisch ab.
Aber selbst wenn der Banner nicht auf der Seite angezeigt wurde und auch nicht angeklickt wurde,geht er eine Zahl hoch.
Wie kann ich das machen,dass er SOBALD er den Banner angeklickt hat erst weiter hoch geht und WENN kein Banner da ist,dass er die Seite neulädt,ohne dass eine Zahl hoch geht.
armin555 is offline  
Old 11/29/2011, 21:51   #5
 
elite*gold: 1
Join Date: Nov 2010
Posts: 68
Received Thanks: 10
Moment, überarbeite es nochmal
_P0w_ is offline  
Old 11/29/2011, 21:53   #6
 
elite*gold: 0
Join Date: Mar 2011
Posts: 8,645
Received Thanks: 3,454
Quote:
Originally Posted by armin555 View Post
Den Code mag ich nicht so gerne hier reinzuschreiben. sry.

Aber die Variable $i , kann ich die so lassen oder muss ich die ändern?
Dann geb ich meinen Code ein und dann steht da Next,was mach ich da?
Kommt auf das script an.
Nach dem Next geht der Code dann halt weiter
Freddy​ is offline  
Thanks
1 User
Old 11/29/2011, 21:54   #7
 
elite*gold: 1
Join Date: Nov 2010
Posts: 68
Received Thanks: 10
Hier nochmal:

PHP Code:
if BannerDa then
  
for 1 to 10
    click
();
  
next
else
  
loop();
end if 
In diesem Beispiel kommt er garnicht in die Schliefe rein wenn dieser bestimmte Banner nicht vorhanden ist. BannerDa muss auf true sein damit er die Schleife durchläuft.


PHP Code:
dim zahl
zahl 
1

if BannerDa true then
  
for zahl to 10
    
if err.level 0 then
      clickBanner
()
      
zahl zahl 1
    
else
      
zahl zahl 1
      reload
();
    
end if
  
next
else
  
loop()
end if 
Dieshier sollte genau dem entsprechen was du suchst hoffe ich.
_P0w_ is offline  
Thanks
1 User
Old 11/29/2011, 22:03   #8
 
elite*gold: 0
Join Date: Aug 2008
Posts: 467
Received Thanks: 30
Quote:
Originally Posted by _P0w_ View Post
Hier nochmal:

PHP Code:
if BannerDa then
  
for 1 to 10
    click
();
  
next
else
  
loop();
end if 
In diesem Beispiel kommt er garnicht in die Schliefe rein wenn dieser bestimmte Banner nicht vorhanden ist. BannerDa muss auf true sein damit er die Schleife durchläuft.
BannerDa ist ja die Variable,aber wie soll ich das schreiben,wenn der Banner da ist.
hmm
Keine Ahnung ob du ****** kennst,aber die Banner heißen zum Beispiel : "logo-02.png" und davon gibt es auch noch "logo-01.png" und paar mehr.
Wie kann ich das jetzt schreiben?

Irgendwie

$BannerDa = ???????

Sorry tu mich noch schwer darin,arbeite erst seit gestern mit Autoit
armin555 is offline  
Old 11/29/2011, 22:08   #9
 
elite*gold: 1
Join Date: Nov 2010
Posts: 68
Received Thanks: 10
Quote:
Originally Posted by armin555 View Post
BannerDa ist ja die Variable,aber wie soll ich das schreiben,wenn der Banner da ist.
hmm
Keine Ahnung ob du ****** kennst,aber die Banner heißen zum Beispiel : "logo-02.png" und davon gibt es auch noch "logo-01.png" und paar mehr.
Wie kann ich das jetzt schreiben?

Irgendwie

$BannerDa = ???????

Sorry tu mich noch schwer darin,arbeite erst seit gestern mit Autoit
"BannerDa" ist hier eher eine Prozedur die aufgerufen wird und prüft ob das banner da ist. wenn ja soll er den unteren Code ausführen, wenn nein soll er nochmal abfragen. Wenn du Namen hast kannst du eine verknüpfte Bedingung machen oder mehrere Bedingungen hintereinander.
_P0w_ is offline  
Old 11/29/2011, 22:12   #10
 
elite*gold: 0
Join Date: Aug 2008
Posts: 467
Received Thanks: 30
Quote:
Originally Posted by _P0w_ View Post
"BannerDa" ist hier eher eine Prozedur die aufgerufen wird und prüft ob das banner da ist. wenn ja soll er den unteren Code ausführen, wenn nein soll er nochmal abfragen. Wenn du Namen hast kannst du eine verknüpfte Bedingung machen oder mehrere Bedingungen hintereinander.
Ich verstehe gerade nicht so ganz was du meinst und wie ich es dann aufschreiben soll.
Ich geh aber erstmal schlafen und Kopf freimachen,morgen schau ich dann nochmal.

Wünsche mir freuen,wenn du mir vllt morgen weiterhilfst.

Gut NAcht
armin555 is offline  
Old 11/29/2011, 22:15   #11
 
!NOTFALL!'s Avatar
 
elite*gold: 43
Join Date: Jan 2010
Posts: 506
Received Thanks: 113
Für das suchen des Banners könnte man doch ImageSearch benutzen?
!NOTFALL! is offline  
Old 11/29/2011, 22:21   #12
 
elite*gold: 1
Join Date: Nov 2010
Posts: 68
Received Thanks: 10
Alles in sogenannter Pseudosprache, hoffentlich verständlich. Falls nicht stehe ich, denke ich, morgen auch noch zur verfügung
PHP Code:
function BannerDa 'Funktion erstellen
  dim a '
irgendein variablenname in der der spätere Wert gespeichert wird
  
if logo-01.png vorhanden then 'Fragen nach einem banner
    a = logo-01.png '
wenn vorhanden Wert in "a" schreiben
  end 
if
end function


dim zahl
zahl 
1

BannerDa
() 'Funktion "BannerDa" aufrufen
if a <> "" then '
wenn a kein Leerstring ist...
  for 
zahl to 10 '...durchlaufen der schleife
    if err.level = 0 then '
kein Fehler daweitermachen...
      
clickBanner(a)
      
zahl zahl 1
    
else '...sonst refreshen
      zahl = zahl - 1
      reload();
    end if
  next
else
  loop()
end if 
_P0w_ is offline  
Old 11/29/2011, 22:29   #13
 
!NOTFALL!'s Avatar
 
elite*gold: 43
Join Date: Jan 2010
Posts: 506
Received Thanks: 113
Quote:
Originally Posted by _P0w_ View Post
Alles in sogenannter Pseudosprache, hoffentlich verständlich. Falls nicht stehe ich, denke ich, morgen auch noch zur verfügung
PHP Code:
function BannerDa 'Funktion erstellen
  dim a '
irgendein variablenname in der der spätere Wert gespeichert wird
  
if logo-01.png vorhanden then 'Fragen nach einem banner
    a = logo-01.png '
wenn vorhanden Wert in "a" schreiben
  end 
if
end function


dim zahl
zahl 
1

BannerDa
() 'Funktion "BannerDa" aufrufen
if a <> "" then '
wenn a kein Leerstring ist...
  for 
zahl to 10 '...durchlaufen der schleife
    if err.level = 0 then '
kein Fehler daweitermachen...
      
clickBanner(a)
      
zahl zahl 1
    
else '...sonst refreshen
      zahl = zahl - 1
      reload();
    end if
  next
else
  loop()
end if 
Die Frage ist halt, ob der Link auch Banner-01 ist. Meines Wissens nach ist der Link ja bei jedem User verschieden. Man sollte es evtl irgendwie so abändern:
PHP Code:
Func BannderDa
  
if IsArray(_ImageSearch(Parameterthen
    $a 
"url_name"
EndIf
EndFunc

$zahl 
1

BannerDa
()
if 
<> ""
  
for zahl to 10
    
if @error then
         zahl 
zahl -1
    
else
      
_IEClickImage($a)
      
zahl zahl 1
    end 
if
  
next
else
  
loop()
end if 
irgendwie so sollte es passen, es müssen aber vermutlich noch einige Sachen korrigiert werden da ich eine Weile nicht it ImageSearch und IE gearbeitet habe.

*edit* ImageSearch war ja garnicht background mist... gibt es eine art ImageSearch für den Bg?
!NOTFALL! is offline  
Old 11/30/2011, 05:11   #14


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,973
Mal kurz vor dem Schlafengehen. Quick & Dirty:

Code:
#Include <String.au3>
#include <IE.au3>

Global $found = 0

$oIE = _IECreate("http://www.******.net/de/user/start", 0, 1, 0)
_IELoadWait($oIE)
Sleep (5000)

While $found < 10
	$sHtmlcode = _IEDocReadHTML($oIE)
	$aFilter = _StringBetween($sHtmlcode, "http://www.******.net/de/game/found/banner/", "'")

	If IsArray($aFilter) Then
		$found += 1
		_IENavigate ($oIE, "http://www.******.net/de/game/found/banner/" & $aFilter[0])
		Sleep (2000)

		ConsoleWrite($found & ': ' &$aFilter[0] & @CRLF)

		_IENavigate ($oIE, "http://www.******.net/de/user/start")
	Else
		_IEAction($oIE, "refresh")
		Sleep (5000)
	EndIf
WEnd

_IEQuit ($oIE)
Exit
Whoknowsit is offline  
Old 11/30/2011, 13:50   #15
 
elite*gold: 1
Join Date: Nov 2010
Posts: 68
Received Thanks: 10
@Whoknowsit
jetzt hast du ihm eigentlich schon alles vorgeschrieben xD
_P0w_ is offline  
Reply


Similar Threads Similar Threads
While Schleife
07/03/2011 - AutoIt - 9 Replies
Hallo Leute, Ich hoffe das dieser Thread nicht unnötigen Spam erzeugt. Ich bin ein absoluter Anfänger in Sachen AI. Ich würde gerne wissen wie ich eine While Schleife mit der Leertaste erstelle, das der Bot durchgehend die Leertaste drückt. Danke euch schon mal :) Mfg Daarmy
[Schleife]Problem
10/24/2010 - AutoIt - 19 Replies
Hi Leute, ich amch gerade nen Hack für Metin2. So ich hab folgendes Problem: Wenn ich den hack starten will, drücke ich auf $button1 dann schreibt er in den pointer mit
For-Schleife einer GUI untebrechen und mit Schließen einer andern GUI wiederaufnehmen
10/13/2010 - AutoIt - 7 Replies
Hi, ich hab folgendes AutoIT Problemchen und komm einfach nicht weiter. Zur Veranschauung des Problems hab ich mein eigentliches Programm mal auf einen Minimalcode reduziert. Das Programm macht so natürlich grad keinen großen Sinn, aber ich kann euch zeigen, wo's Hakt. Es geht darum: Ich hab ein Haupt-GUI von dem aus ich eine FOR-Schleife starte. Nun soll pro abgearbeiteten STEP der For-Schleife die Unter-GUI gestartet und aus der For-Schleife der Wert übergeben werden. Die...
while-schleife cast x | schleife ende cast y
07/26/2010 - Diablo 2 Programming - 6 Replies
ich kann nicht einschlafen und versuche gerade halbwach herauszufinden, wie ich den bot etwas casten lassen kann, um ihn anschließend nach 10-15 casts etwas anderes casten zu lassen. if(NTA_GetResistance(target, NTA_DAMAGE_PHYSICAL) >= 100) { if((target.name == "Pindleskin") && NTA_GetResistance(target, NTA_DAMAGE_PHYSICAL) >= 100) { var i =0; while(i<15) { return NTC_CastSkill(106, NTC_HAND_LEFT, target); i++;
For-Schleife
01/29/2007 - General Coding - 14 Replies
Also wir haben ( um uns an die For-Schleife zu gewöhnen) ne eigentlich relativ einfache Aufgabe bekommen. Ich hoffe ich kann mich richtig dran errinern wie sie hieß^^ Wir sollten mit der FOR-Schleife herrausfinden wie viele Zahlen zwischen zwei Zahlen die man eingeben kann vorhanden sind. So ODER so ähnlich. Is ja auch nich viel Schreibtext aber mir fehlt das entscheidene Zwischenteil : procedure TForm1.Button1Click&#40;Sender&#58; TObject&#41;; var zahl1,zahl2,a&#58;integer; begin



All times are GMT +2. The time now is 06:24.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.