Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 07:10

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

Advertisement



Hilfe bei meinem Knastvoegelbot

Discussion on Hilfe bei meinem Knastvoegelbot within the AutoIt forum part of the Coders Den category.

Reply
 
Old 09/11/2011, 02:12   #16

 
FichteFoll's Avatar
 
elite*gold: 237
Join Date: Sep 2008
Posts: 4,476
Received Thanks: 4,587
Um die Geschwindigkeit beim Laden von IE etwas zu optimieren, könntest du dir mal die IE.au3 UDF ansehen. _IELoadWait heißt das Zauberwort, oder du kombinierst es mit dem Aufruf der Seite und nimmst gleich _IECreate("http://www.knastvoegel.de/freetime/looting.html"), denn dabei wird gewartet, bis die Seite fertig geladen hat. Vergiss auch das "#include <IE.au3>" nicht.

"pixelgetcolor 13682622" würde dir einen Syntaxfehler liefern, da du die Funktion nicht aufrufst. Die Syntax der Funktion ist "PixelGetColor ( x , y [, hwnd] )". Den zurückgelieferten Wert kannst du anschließend mit einem Farbwert vergleichen, z.B. 0x7F7F7F (für ein grau).
Außerdem fehlt auch ein "Then" dahinter.

Dein Array, dem du danach Werte zuweist, ist nicht initialisiert (oder deklariert, wie man es nennen würde). Damit AutoIt weiß, dass du einen Array erstellen willst und wie groß dieser sein soll, benötigst du die Zeile "Dim $array[3][2]" (das 0. Element wird bei der Definition mitgezählt).

In der Schleife erstellst du einen Zähler $z, der bis auf 6 erhöht wird. Anschließend nutzt du einen Wert des Arrays an der Position $z und 0 bzw. 1. Allerdings hast du den Array vorher mit einer Größe von 3 definiert (= 0, 1 und 2). Also würdest du einen "Out of Bounds" oder auch "Außerhalb des Definitionsbereichs" (o.ä.) Fehler erhalten. Du darfst die Werte eines Arrays nur abfragen, wenn dieser groß genug dafür ist. Ändere also die maximale Zählzahl auf 2 um.


Ich hoffe, das hast du verstanden. Ich habe selten mit (blutigen) Anfängern zu tun.
FichteFoll is offline  
Thanks
1 User
Old 09/11/2011, 02:13   #17
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
du verwendest pixelgetcolour noch falsch, hast du richtig erkannt^^
so ist es richtig: PixelGetColor ( x-Position des gesuchten pixels, y-position de pixels)

also PixelGetColor (200,123) als bsp. dann kommt da sowas wie 237132 raus.

richtig wäre es dann:
If PixelGetColor ( 123,456) ="237132" then
koordinaten einlesen für ohne werbung
else
koords mit werbung
endif

du musst vorher gucken was für eine farbe der punkt hat um die "richtige" farbe erstmal herrauszufinden.

starte mal
$var = PixelGetColor( x , y )
MsgBox(0,"The decimal color is", $var)

anstatt x und y gibst du den punkt ein der sich verändert wenn werbung angezeigt wird und nimmst die farbe auf wenn keine werbung da ist. die farbe und koordinaten kannste dann in dein skript einsetzen

sonst sehe ich erstmal keine fehler^^

edit: ach mist, fichtefoll hat recht wir haben vergessen autoit zu sagen, dass er ein neues array erstellen soll, dass wir dann füllen können.
butter123 is offline  
Old 09/11/2011, 02:18   #18
 
elite*gold: 0
Join Date: Jan 2011
Posts: 14
Received Thanks: 0
Ui, das war aber eine ganze Menge, werde ich morgen gleich mal anwenden. Ich bedanke mich schonmal bei Dir, eventuell werde ich ja auch mal ein Profi, ich glaube alle hatten mal meinen Wissensstand und haben sich dann weitergebildet. Und ich muss Dir sagen, es hört sich für mich nicht nach Fachchinesisch an, sondern ich glaube ich habe erstmal alles verstanden, mal sehen, wie es ist, wenn ich das ins script einbau. Ich gehe jetzt erstmal schlafen und wünsche eine Gute Nacht.
------------------------------------------------------------------------------------------------

Habe die Tips jetzt erstmal folgendermaßen angepasst, zeigt keine Fehler an, aber der Cursor klickt ohne mir ersichtlichen Grund immer an den äußersten rechten Rand. Könnte da nochmal jemand drüber gucken? Ich probiere ja gerne aus, dadurch lerne ich ja auch die Auswirkungen auf verschiedene Einstellungen.
Habe auch noch folgendes abgewandelt, musste die arrayabfrage fürs Klicken nach dem Sammeln wieder rausnehmen, weil der Bot 10 Minuten warten muss, bis er wieder Klicken darf.

PHP Code:
If $msg $BrkTest Then
$B_oIE3
.navigate ("http://www.knastvoegel.de/freetime/looting.html")
Sleep(10000) ; warten bis die Seite geladen ist.
Dim $array[2][2] ; abgeändertda ich 2 arrays entfernt habefür die 10 Minuten abfrage.
If 
PixelGetColor 405 420) ="657671" thenjetzt sieht diese Zeile ganz gut aus...
  
$array[0][0] = 11000 ;ins leere klicken x
  $array
[0][1] = 700 ;ins leere klicken y
  $array
[1][0] = 630 ohne Bild x
  $array
[1][1] = 774 ohne Bild y
  
;$array[2][0] = 698 sammeln starten 10 Minuten x Wie bekomme ich die Zeit jetzt da reinsleep ist ja jetzt für alles 2000.
  
;$array[2][1] = 639 sammeln starten 10 Minuten y

else
 
$array[0][0] = 11000 ;ins leere klicken x
  $array
[0][1] = 700 ;ins leere klicken y
  $array
[1][0] = 630 mit Bild x
  $array
[1][1] = 799 mit Bild y
  
;$array[2][0] = 698 sammeln starten 10 Minuten x
  
;$array[2][1] = 639 sammeln starten 10 Minuten y
endif

For 
$i 0 to 47
  
For $z 0 to 2
    Mouseclick
("left",$array[$z][0],$array[$z][1],1)
    
Sleep(2000)

Sleep(660000)
MouseClick("left"1100,7001) ;ins Leere klicken
Sleep
(2000)
MouseWheel "down" )
Sleep(2000)
MouseClick("left"878,7951);Steuern bezahlen
Sleep
(2000
  
Next
Next  
EndIf

Wend 
Würde auch weiterprobieren, aber ich finden den jetzigen Fehler einfach nicht.
Und ich bin auch gleich außer Haus, meine Sister zieht um und braucht meine Hilfe, ich finde es gut, auch mal jemanden helfen zu können.
kamikatzeauspolen is offline  
Old 09/11/2011, 16:34   #19
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
im array[0][0] steht 11000. ich glaub so groß sind nur wenige bildschirme^^

tipp: sortier das skript. immer wenn eine neue schleife geöffnet wird geh einen tab weiter nach rechts (also verschieb das von Sleep(660000)bis das vor dem ersten next nach rechts. so kann man immer sehen, was alles in der shcleife drin ist. ich vermute nähmlich dass da zu viel drin ist, aber ich weiß nciht was ma bei knastvögel machen muss, also kann ich auch falsch liegen^^
butter123 is offline  
Old 09/11/2011, 17:17   #20

 
FichteFoll's Avatar
 
elite*gold: 237
Join Date: Sep 2008
Posts: 4,476
Received Thanks: 4,587
So würde ich es in etwa machen:
PHP Code:
#include <IE.au3>

If $msg $BrkTest Then
    _IENavigate
($B_oIE3"http://www.knastvoegel.de/freetime/looting.html") ; wartet automatischbis die seite geladen wurde


    
Definition des Arrays mit allen 3 Koordinaten und Sleep-Parameter
    Dim $array
[3][3] = [ ;[  x  ,  ,sleep]
                            [
110007002000], ins Leere klicken was auch immer das bringt
                            
[630  ,   02000], irgendetwas mit oder ohne Bildy leer weil sie nacher definiert wird
                            
[878  7952000]  Steuern bezahlen
                        
]

    ; 
Ist das Bild da?
    If 
PixelGetColor(405420) = 657671 Then das Vergleichen von Zahlen ist schneller als von Zeichenketten
        $array
[1][1] = 774 ohne Bild y
    
Else
        
$array[1][1] = 799 mit Bild y
    
EndIf

    For 
$i 0 To 47
        
For $z 0 To UBound($array) - Größe des Arrays 1da das 0. Element auch gezählt wurde
            MouseClick
("left"$array[$z][0], $array[$z][1], 1)
            
Sleep($array[$z][2])
        
Next
    Next
EndIf 
FichteFoll is offline  
Old 09/11/2011, 17:31   #21
 
elite*gold: 0
Join Date: Jan 2011
Posts: 14
Received Thanks: 0
Na toll, jetzt hat sich auch noch ein Flüchtigkeitsfehler eingeschlichen.
Stimmt, natürlich kann ich nicht vorraussetzen, das jeder Knastvoegel kennt, ich umschreibe mal kurz:
Ich sitze im Knast und habe unter anderem die Möglichkeit Items zu sammeln, je nachdem, wie lange man diese Suche einstellt, hat man dementsprechend viel Items zusammen, der Unterschied ist aber riesig, Man kann bis zu 12 Stunden sammeln. Ich bekomme für 10 Minuten sammeln 4 Items und für 12 Stunden 44 Items, da sieht man schon wie lukrativ das 10 Minütige sammeln ist.
In meinem Bot lasse ich mich erstmal anmelden, dann habe ich die Auswahl von ca. 40 Buttons, die mir alle Bereiche zum sammeln anbieten. Man kann in jedem Bereich nämlich andere wichtige Utensilien finden.
Wenn ich einen Kopf drücke um 10 Minuten zu sammeln, müßte folgendes
passieren:
- Erstmal habe ich eine Routine eingebaut, um sicherzustellen, das der Bot 48 x 10 Minuten sammelt.
- Dann wird die Seite geladen, auf der alle Bereiche zu erkennen sind, worin man sammeln kann. "http://www.knastvoegel.de/freetime/looting.html"
- nun muss der Cursor auf den gewünschten Bereich drücken, manchmal muss auch einmal runtergescrollt werden, weil die Karte nicht auf einen Bildschirm passt.
- Dann muss auf einem okay Button bestätigt werden.
- Dann muss 10 Minuten Wartezeit drin sein, weil es erst dann weitergeht.
- Dann müssen ab und zu Steuern bezahlt werden, durch die Koordinaten, die ich habe, drückt der Cursor ins schwarze, wenn keine Steuern fällig sind.
- Das gleiche gibt es mit Wärter bestechen, wenn man von denen erwischt wird.
- Dann soll das Sammeln abgeschlossen werden. Mit Knopfdruck.
- Und wieder von vorne, bis er seine 48x durchlaufen hat.

Ich habe meinen Flüchtigkeitsfehler jetzt korrigiert, und er drückt wirklich einmal auf die Pos. 1100 x 700, dann macht er aber nichts mehr.

Ich habe schon ein kleines schlechtes Gewissen, mein Problem hier so breit zu treten.

Nachtrag:
#FichteFoll: Das sieht aber schon richtig professionell aus, und übersichtlich.
Habe meinen Flüchtigkeitsfehler abgeändert (110000) und es scheint schonmal zu laufen, muss nochmal sehen, das ich noch irgendwo die 10 Minuten Wratezeit einbaue, wo sie hingehört, aber ich habe schon wieder etwas, wo ich mich weiterentwickeln kann, obwohl ich wikrlich das Gefühl habe, das ich ein (blutiger) aber netter Anfänger bin.

Noch ein Nachtrag:


Habe das Script von FichteFoll ein bischen ausprobiert und umgebaut, (bei der Bildabfrage sind neue Koordinaten, weil ich mal einen anderen Bereich ausprobieren will.) Das einzige was ich jetzt nicht verstehe ist, ich muss ab und zu je nach Bereich, das Bild runterscrollen, um auf den Bereich zum Sammeln zu kommen. Dafür habe ich die 1100 x 700 als Fixpunkt, sonst hat es mit dem runterscrollen nicht funktioniert (auch ausgetüftelt)
Außerdem muss ich immer die Möglichkeit in Betracht ziehen, Steuern an eine Gang zu zahlen, wenn ich von der erwischt werde, und wenn mich Wärter erwischen, muss ich einmal runterscrollen, um meine Möglichkeit auszuwählen, diese zu bezahlen, weil es sonst nicht weitergeht. Ich füge nocheinmal das geänderte Script ein.

PHP Code:
If $msg $BrkTest Then
    _IENavigate
($B_oIE3"http://www.knastvoegel.de/freetime/looting.html") ; wartet automatischbis die seite geladen wurde Gefällt mir richtig gut


    
Definition des Arrays mit allen 3 Koordinaten und Sleep-Parameter 
    Dim $array
[3][3] = [ ;[  x  ,  ,sleep]
                            [
1100 7002000], ins Leere klicken was auch immer das bringtBenötige ich um manchmal einmal runterzuscrollen.
                            [
630  ,   02000], irgendetwas mit oder ohne Bildy leer weil sie nacher definiert wird
                            
[698  775660000]  okay fürs Plunder sammeln und ca10 Minuten Wartezeit
                        
]

    ; 
Ist das Bild da?
    If 
PixelGetColor(405420) = 657671 Then das Vergleichen von Zahlen ist schneller als von Zeichenketten
        $array
[1][1] = 740 ohne Bild y
    
Else
        
$array[1][1] = 875 mit Bild y
    
EndIf

    For 
$i 0 To 47
        
For $z 0 To UBound($array) - Größe des Arrays 1da das 0. Element auch gezählt wurde
            MouseClick
("left"$array[$z][0], $array[$z][1], 1)
            
Sleep($array[$z][2])
        
Next
    Next
EndIf 
Nachtrag 11.09.2011 22.33 Uhr
Ich versuche die ganze Zeit, eine 4. Koordinate einzustellen, doch irgendwo baue ich dafür etwas falsch um, außerdem müßte ich noch wissen, wo ich in diesem Script, was im Moment ja gut läuft, bis auf ein paar kleine Wünsche, 1 x Mousewheel down machen kann. (müßte eigentlich bei Bedarf direkt nach der Koordinate 1100 x 700 kommen.)
kamikatzeauspolen is offline  
Old 09/12/2011, 21:18   #22
 
elite*gold: 0
Join Date: Jan 2011
Posts: 14
Received Thanks: 0
Ich möchte mich schonmal bedanken

Liest das überhaupt noch jemand? Im Autoitforum wird nicht angezeigt, das ich noch einiges nachgetragen habe. Auf jeden Fall möchte ich ich schonmal bedanken für die Mithilfe, mein Problem ist zwar noch nicht ganz gelöst, aber ich habe einige nue Denkanstöße bekommen, auch einiges gelernt und bin wirklich nett aufgenommen worden.
kamikatzeauspolen is offline  
Old 09/12/2011, 22:29   #23
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
ja ich lese noch, aber wenn keine neue nachicht hier sit, sondern nur ein nachtrag, dann wird das in der übersicht leider niht angezeigt...

also um mouswheel einzufügen: das problem sit ja, dass in der schleife nur mouseclick geamcht wird, mousewheel ist also ein anderer befehl. du könntest sowas wie
if $i = (hier die stelle an der das gemacht werden soll) then
mosuwheel(.....)
Sleep($array[$z][2])
else
MouseClick("left", $array[$z][0], $array[$z][1], 1)
Sleep($array[$z][2])
endif

in der for schleife machen
dann macht er nach dem x-ten mal klicken das mousewheel
butter123 is offline  
Old 09/12/2011, 23:00   #24
 
elite*gold: 0
Join Date: Jan 2011
Posts: 14
Received Thanks: 0
Butter, ich muss sagen, ich freue mich, wieder von Dir zu lesen.
Ich dachte diese variable $i sorgt dafür, das die arrays wenn sie komplett einmal durchgeklickt sind, 47 x durchlaufen werden.
Habe auch schon versucht den Bildschirmrauszuzöömen, damit mousewheel nicht gebraucht wird, aber das scheint eine größere BAustelle zu werden, darum habe ich es gelassen. habe nämlich kein extra IE FEnster, sondern das wird alles in meinem Bot angezeigt, und dort funktionieren dann solche Lösungen wohl nicht.
Was ich auch nicht ganz verstehe ist, ich wollte die, moment ich poste mal den Code:
PHP Code:
Dim $array[3][3] = [ ;[  x  ,  ,sleep]
                            [
1100 7002000], ins Leere klicken was auch immer das bringtBenötige ich um manchmal einmal runterzuscrollen.
                            [
630  ,   02000], irgendetwas mit oder ohne Bildy leer weil sie nacher definiert wird
                            
[698  775660000]  okay fürs Plunder sammeln und ca10 Minuten Wartezeit
                        

um eine Variable erweitern, und habe natürlich auch die erste 3 auf 4 erhöht
PHP Code:
Dim $array[3][3] = [ ;[  x  ,  ,sleep]
                            [
1100 7002000], ins Leere klicken was auch immer das bringtBenötige ich um manchmal einmal runterzuscrollen.
                            [
630  ,   02000], irgendetwas mit oder ohne Bildy leer weil sie nacher definiert wird
                            
[698  775660000]  okay fürs Plunder sammeln und ca10 Minuten Wartezeit
                        
]

    ; 
Ist das Bild da?
    If 
PixelGetColor(405420) = 657671 Then das Vergleichen von Zahlen ist schneller als von Zeichenketten
        $array
[1][1] = 740 ohne Bild y
    
Else
        
$array[1][1] = 875 mit Bild y
    
EndIf

    For 
$i 0 To 47
        
For $z 0 To UBound($array) - Größe des Arrays 1da das 0. Element auch gezählt wurde
            MouseClick
("left"$array[$z][0], $array[$z][1], 1)
            
Sleep($array[$z][2])
        
Next
    Next
EndIf 
kamikatzeauspolen is offline  
Old 09/12/2011, 23:07   #25
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Schonmal ein TCP Tut durchgelesen?
Würde einiges erleichtern und auch noch im Hintergrund ohne einen Browser laufen.
Ich würde sagen von Klick bots kann man nicht wirklich an wissen dazu gewinnen
BlackHybrid is offline  
Old 09/12/2011, 23:11   #26
 
butter123's Avatar
 
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
doch am anfang wenn es nur um die strukturen usw geht ist es einfacher, weil man nciht so viel wissen muss^^

bin grad zu müde, ich schreib spätestesn übermorgen was
butter123 is offline  
Old 09/12/2011, 23:18   #27
 
elite*gold: 0
Join Date: Jan 2011
Posts: 14
Received Thanks: 0
ist okay, ich habe es wirklich nicht eilig, für mich geht es im Moment eigentlich nur darum zu erkennen, wie ich dieses Kernproblem lösen kann, werde mich auch paralell noch in dieses TCP Tut reinlesen, der erste Teil hört sich an, als wenn ich das mit meinem Wissenslevel hinbekomme, sehr verständlich geschrieben.
Ich sag dann mal Danke Butter und Blackhybrid und Gute Nacht
kamikatzeauspolen is offline  
Old 09/13/2011, 10:28   #28

 
FichteFoll's Avatar
 
elite*gold: 237
Join Date: Sep 2008
Posts: 4,476
Received Thanks: 4,587
Code:
If $msg = $BrkTest Then
	_IENavigate($B_oIE3, "http://www.knastvoegel.de/freetime/looting.html") ; wartet automatisch, bis die seite geladen wurde


	; Definition des Arrays mit allen 3 Koordinaten und Sleep-Parameter
	Dim $array[[COLOR="Red"]4[/COLOR]][3] = [ _ ;[  x ,  y ,sleep]
							[1100, 700, 2000], _ ; ins Leere klicken - was auch immer das bringt
							[630 ,   0, 2000], _ ; irgendetwas mit oder ohne Bild, y leer weil sie nacher definiert wird
							[878 , 795, 1000 * (10*60 + 20)][COLOR="Red"],[/COLOR] _ ; Steuern bezahlen ; 10 Minuten + 20 Sekunden (in Millisekunden)
							[COLOR="Red"][999 , 999, 2000]  _ ; Ein neuer Eintrag[/COLOR]
						]

	; Ist das Bild da?
	If PixelGetColor(405, 420) = 657671 Then ; das Vergleichen von Zahlen ist schneller als von Zeichenketten
		$array[1][1] = 774 ; ohne Bild y
	Else
		$array[1][1] = 799 ; mit Bild y
	EndIf

	For $i = 0 To 47
		For $z = 0 To UBound($array) - 1 ; Größe des Arrays - 1, da das 0. Element auch gezählt wurde
			MouseClick("left", $array[$z][0], $array[$z][1], 1)
			[COLOR="Red"]If $z = 0 Then MouseWheel("down", 1)[/COLOR]
			Sleep($array[$z][2])
		Next
	Next
EndIf
Habe deine oben erwähnten Probleme mal eingebaut und rot markiert (deswegen musste ich den [code]-Block benutzen, auch wenn die Tabstops 8 Zeichen lang sind). Zudem habe ich die 66000 durch eine Rechnung ersetzt, wodurch mal leichter zurückverfolgen kann, was diese Zahl nun darstellt (und sie leichter zu bearbeiten ist).

Der Punkt bei dem Array ist, dass du mit einem Unterstrich "_" eine Zeile in der nächsten fortführen kannst. Das funktioniert nicht in allen Fällen, aber in den meisten. Ich mache auch regelmäßig Gebrauch davon, um zB solche zweidimensionalen Arrays geordneter darzustellen. Zusätzlich musst du die erste Zahl (die erste Dimension) des Arrays um eins erhöhen, da du ja ein neues Element hinzugefügt hast.

Für das Mausrad habe ich einfach eine If-Abfrage hinter dem besagten Klick im ersten Element des Arrays hinzugefügt, sodass dieser Aufruf nur einmal geschieht und nicht bei jedem Klick.
FichteFoll is offline  
Old 09/13/2011, 17:49   #29
 
elite*gold: 0
Join Date: Jan 2011
Posts: 14
Received Thanks: 0
Das Script sieht ja immer besser aus, und läuft auch viel besser, kein Wunder bei der professionellen Hilfe, es macht auch richtig Spaß, sich damit auseinanderzusetzen. Die Probleme werden auch immer weniger, mein nächstes Problem ist folgendes, wo oder wie kann ich noch gezielt ein bis zwei Mousewheel down Befehle einsetzen? Manchmal werde ich von den Gangs erwischt, die das Revier besetzt haben, ebenso wie es später Wärter geben wird, die alle Geld haben wollen, damit man weitersammeln kann. Dann geht es erst weiter, wenn man diesen bezahlknopfgedrückt hat, der leider auch nicht auf den ersten Blick zu sehen ist, sondern einmal runtergescrollt werden muss.
Habe schon versucht ein bischen zu basteln und zu testen, doch werde ich im Moment (leider) nicht oft erwischt, um es zu testen, ich poste mal den von mir veränderten Code mit den Kommentaren, vielleicht bekomme ich noch einen Gedankenanstoss von euch.
PHP Code:
If $msg $BrkTest Then Button Sammeln Speisesaal Wärter
    _IENavigate
($B_oIE3"http://www.knastvoegel.de/freetime/looting.html") ; wartet automatischbis die Seite geladen wurde


    
Definition des Arrays mit allen 4 Koordinaten und Sleep-Parameter
    Dim $array
[4][3] = [ ;[  ,  ,sleep]
                            [
11007002000], ins Leere klicken hiernach kommt der Mousewheel Down 1 Befehl Funktioniert
                            
[681 ,   02000], Bereich zum Sammeln auswählenmit oder ohne Bildy leer weil sie nacher definiert wird
                            
[693 6431000 * (10*60 60)], Sammeln Starten danach Wartezeit10 Minuten 60 Sekunden (in Millisekunden)
                            [
646 7752000]  Hier werden die Steuern bezahlt und abgefragt hier muss auch einmal Mousewheel down 1 abgefragt werden
                        
]

    ; 
Ist das Bild da?
    If 
PixelGetColor(405420) = 657671 Then das Vergleichen von Zahlen ist schneller als von Zeichenketten
        $array
[1][1] = 667 ohne Bild y (mal wieder geändertweil neuer Bereich fällig istdann fallen die Test gleich produktiv aus)Klappt super
    
Else
        
$array[1][1] = 805 mit Bild y (mal wieder geändertweil neuer Bereich fällig istdann fallen die Test gleich produktiv aus)
    EndIf

    For 
$i 0 To 47
        
For $z 0 To UBound($array) - Größe des Arrays 1da das 0. Element auch gezählt wurde
            MouseClick
("left"$array[$z][0], $array[$z][1], 1)
            If 
$z 3 Then MouseWheel("down"1) ; wird hier auch bei den Steuern abgefragthabe einfach mal ein 3 eingefügt.abgefragt?            
            
Sleep($array[$z][2])
        
Next
    Next
EndIf 
If $z = 0 + 3 Then MouseWheel("down", 1) habe ich schon wieder geändert, damit ging es garnicht.
Eins habe ich gerade zusätzlich festgestellt, das Bild war nicht da, trotzdem hat er die Koordinaten 681x805 genommen, die eigentlich für den Fall sind, wenn das Bild eingeblendet wird. Der Bot ist dann natürlich im falschen Bereich gelandet. Im Moment blendet er das Bild gar nicht ein, um zu analysieren, was passiert wenn es da ist.
Spontane Idee, eine Variable ist ja nach unten hinzugekommen, kann mann eventuell auch Mousewheel down als variable einbauen? ideal wäre ja als 4. hinter der Sleep variable. Aber sowas kann wahrscheinlich nur ein Anfänger fragen, oder?

Wenn ich die Koordinaten für Bild, oder ohne tausche, funktionierts schonmal ohne Bild, habe ich eventuell einen Denkfehler, oder was falsch gemacht? Der Hintergrund in dem Spiel, den ich ohne Bild abfrage ist fast schwarz, und dieser Werbebanner, der ab und zu eingeblendet wird hat an der abgefragten Stelle einen fast Weißton.

mal eine ganz andere Idee, die Koordinate 1100x700 ist immer frei und es wäre scheinbar kein Problem vor jeden Mouseclick ein Mousewheel down 1 zu setzen, die Koordinaten würden sich zwar ändern, aber das ist für mich als Lehrling ja kein Problem. Oder ist das wieder ein Schritt zurück?
kamikatzeauspolen is offline  
Old 09/13/2011, 18:48   #30

 
FichteFoll's Avatar
 
elite*gold: 237
Join Date: Sep 2008
Posts: 4,476
Received Thanks: 4,587
So vermute ich?
PHP Code:
If $msg $BrkTest Then Button Sammeln Speisesaal Wärter
    _IENavigate
($B_oIE3"http://www.knastvoegel.de/freetime/looting.html") ; wartet automatischbis die Seite geladen wurde


    
Definition des Arrays mit allen 4 Koordinaten und Sleep-Parameter
    Dim $array
[4][4] = [ ;[   x,   y,    s,    w] ; sleep wheel
                            
[11007002000,    0], ins Leere klicken
                            
[681 8052000,    1], Bereich zum Sammeln auswähleny für "kein Bild" 1x nach unten Scrollen
                            
[693 6431000 * (10*60 60), 0], Sammeln Starten danach Wartezeit10 Minuten 60 Sekunden (in Millisekunden)
                            [
646 7752000,    1]  Steuern bezahlen 1x nach unten Scrollen
                        
]


    For 
$i 1 To 48
        
For $z 0 To UBound($array) - "Größe des Arrays - 1"da das 0. Element auch gezählt wurde
            
If $array[$z][3] <> 0 Then _MouseWheel($array[$z][3]) ; Nur scrollenwenn ein Wert ungleich 0 angegeben ist
            Sleep
(500) ; Sicherheits-Sleepje nach demwie lange das Scrollen dauert

            
Ist das Bild da?
            If 
$i 1 Then Nur beim Index 1 prüfen
                
If And PixelGetColor(405420) = 657671 Then Stimmen die Farben überein?
                    
$array[$i][1] = 667 mit Bild
                
Else
                    
$array[$i][1] = 805 ohne Bild
                
EndIf
            EndIf

            
MouseClick("left"$array[$z][0], $array[$z][1], 1)
            
Sleep($array[$z][2])
        
Next
    Next
EndIf


Func _MouseWheel($clicks)
    
Local $direction "down"
    
If $clicks 0 Then $direction "up" "up"wenn $clicks negativ ist
    
Return MouseWheel($directionAbs($clicks)) ; Nur positive Werte
EndFunc 
Eine weitere Spalte hinzuzufügen ist natürlich kein Problem. Allerdings habe ich es jetzt so gemacht, dass das Mausrad VOR dem Klick und auch VOR dem anschließenden (lol) Sleep ausgeführt wird. Falls das nicht passt, musst du ggf. die Variablen ändern.
Außerdem habe ich eine Funktion hinzugefügt, die zwischen positiven und negativen Werten unterscheidet und dann MouseWheel mit den richtigen Parametern aufruft (>0 = "down", <0 = "up").

Das mit dem Bild kann ich nicht überprüfen, du musst selbst gucken, ob die Zahl bei PixelGetColor(405, 420) = 657671 korrekt ist. Dies sollte die Pixelfarbe des Pixels [405,420] sein, wenn das Bild zu sehen ist. Das Problem vorher war, dass die Farbe nur am Anfang vor der Schleife geprüft wurde. Ich habe es so umgebaut, dass es jedes Mal, wenn das Bild auftauchen kann, geprüft wird - nach dem Scrollen.
FichteFoll is offline  
Reply

Tags
bot, knastvögel


Similar Threads Similar Threads
[HILFE] brauche hilfe bei meinem clienten
04/08/2011 - Metin2 PServer Guides & Strategies - 1 Replies
hallo liebes epvp, ich habe einen eigenen p-server gemacht alles funtzt perfekt doch ich kann mich nicht einloggen suche hilfe kann nicht connecten also nicht einloggen über skype zu erreichen unter :djbab4 und hier einfach reinschreiben
[HILFE] Brauche Hilfe bei meinem Metin2 Sever
03/20/2011 - Metin2 Private Server - 6 Replies
Hallo, mein Server startet nicht.. Ich habe keine Ahnung... kann mir wer per TeamViewer helfen? bekommt gaaaanz viele thx ;) lg
[Hilfe] Brauche Hilfe bei meinem Hamachi Server alles Fertig ausser Navicat und co.
08/07/2010 - Metin2 Private Server - 2 Replies
Guten Tag, Also ich habe heute mein Hamachi P-Server erstellt doch habe Paar Fragen. Kann ich nachdem ich Server erstellt habe VPC schließen also da wo Operation timed out steht. Wie kann ich das mit Navicat machen (wäre schön wenn einer alles einzeln beschreiben könnte). Wie funktionert das mit der Datenbank? Und wie erstelle ich Accounts?
[HILFE?]Brauche Hilfe mit meinem Hamachi Server
02/16/2010 - Metin2 Private Server - 12 Replies
Hallo Leute, Ich habe ein Problem. Ich habe mir Heute einen Hamachi Server gebastelt. Mein Problem: Nur ich kann auf den Server rauf, wenn Leute versuchen einzuloggen kommt "Fehler beim Verbinden zum Server". Wenn sie versuchen bei Hamachi den Ping nachzugucken kommt auch nur Zeitüberschreitung. Hatte vllt jemande das gleiche Problem?, muss ich vllt irgendwelche Ports öffnen?



All times are GMT +2. The time now is 07:10.


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.