|
You last visited: Today at 02:24
Advertisement
If - ElseIf / Imagesearch Hilfe
Discussion on If - ElseIf / Imagesearch Hilfe within the AutoIt forum part of the Coders Den category.
01/09/2014, 12:43
|
#1
|
elite*gold: 50
Join Date: Feb 2009
Posts: 765
Received Thanks: 927
|
If - ElseIf / Imagesearch Hilfe
Hallo Community,
Ich brauch mal wieder eure Hilfe, weil ich nach langen Suchen und rumprobieren nicht weiter komme.
Code:
Func step2()
If _WaitForImageSearch("data/munze.bmp",60000,1,$x,$y,10) > 0 Then ;sucht die Münze und findet sie *funktioniert
MouseClick("left", $x ,$y, 1, 1)
Sleep(500)
MouseClick("left", 686 ,374, 1, 10) ;spielt die Karte
ElseIf _WaitForImageSearch("data/munze.bmp",60000,1,$x,$y,10) > 0 Then ;findet er die Münze nicht *funktioniert
_WaitForImageSearch("data/morlok1.bmp",60000,1,$x,$y,10) Or _WaitForImageSearch("data/morlok1.bmp",60000,1,$x,$y,10) Or _WaitForImageSearch("data/arkane1.bmp",60000,1,$x,$y,10) ;soll er nach den 3 Möglichkeiten suchen *funktioniert nicht!
MouseClick("left", $x ,$y, 1, 1)
Sleep(500)
MouseClick("left", 686 ,374, 1, 10)
EndIf ;entweder er spielt die Karten, oder halt nicht.
If _WaitForImageSearch("data/fertig1.bmp",60000,1,$x,$y,10) or _WaitForImageSearch("data/fertig2.bmp",60000,1,$x,$y,10) > 0 Then
MouseClick("left", $x ,$y, 1, 1)
EndIf ;nach dem er ja spielte oder nicht, solll er hier nun die Runde beenden *funktioniert
EndFunc
Problem ist, so wie ich das suchen nach den 3 Möglichkeiten geschrieben habe, funktioniert es nicht, Autoit bringt eine Fehlermeldung.
Ich finde leider nicht heraus wie es richtig sein sollte.
Ich möchte gerne das so hinbekommen,
suche münze = true
-> münze klicken und spielen
suche münze = false
-> nach 3 anderen suchen = 1 davon true
-> klicken und spielen
wenn das true ist
runde beenden
suche nach den 3 aber = false
runde beenden
Ich hoffe mal das man mich versteht was ich meine und der eine oder andere mir schreiben könnte wie es richtig funktioniert.
|
|
|
01/09/2014, 13:53
|
#2
|
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
|
Du hast nach dem ElseIf das nächste If vergessen !?
Quote:
|
_WaitForImageSearch("data/morlok1.bmp",60000,1,$x,$y,10) Or _WaitForImageSearch("data/morlok1.bmp",60000,1,$x,$y,10) Or _WaitForImageSearch("data/arkane1.bmp",60000,1,$x,$y,10)
|
Oder ist diese Zeile so beabsichtigt ?
|
|
|
01/09/2014, 15:52
|
#3
|
elite*gold: 50
Join Date: Feb 2009
Posts: 765
Received Thanks: 927
|
Ich habe mich nur an die Hilfe gehalten,
Code:
If <expression> Then
statements
...
[ElseIf expression-n Then
[elseif statements ... ]]
...
[Else
[else statements]
...
EndIf
Hier würde doch nach ElseIf dann EndIf folgen ?
Oder wo müsste deiner Meinung nach das If hin ?
|
|
|
01/09/2014, 16:14
|
#4
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
_WaitForImage wartet glaube ich 1 Minute bei 60.000ms, warum scannst du nicht einfach nach dem Bild und wenns nicht da ist ElseIf statt 1 Minute für jedes zu warten?
_WaitForImage ist unnötig, benutz es nicht.
|
|
|
01/09/2014, 20:16
|
#5
|
elite*gold: 50
Join Date: Feb 2009
Posts: 765
Received Thanks: 927
|
beim hin und her probieren gar nicht beobachtet, nun gut es liegt nicht an der Zeit.
Ich brauch _WaitForImageSearch, weil ich darauf Warten muss etwas zu finden um denen Rundenstart zu signalisieren.
Mein größeres Problem liegt in der Schreibweise.
Ich glaube hier hab ich es besser beschrieben.
Code:
If Image > 0 Then ;Zeigt mir das meine Runde startet ;hier streickt AutoIt wegen 2x Then ?
Image > 0 Then ;erste Karte gefunden ;hier streickt AutoIt wegen 2x Then ?
Karte spielen
ElseIf Image < 0 Then ;erste Karte nicht gefunden
If Image Or Image Or Image > 0 Then ;3 anderen Karten ;hier streickt AutoIt wegen If-Then, ohne würde es gehen, aber ich brauche ja If-Then
Karte spielen
;ein Else brauch ich ja nicht, weil wenn bei den 3 Karten = false danach eh Runde beenden kommt
Endif
Runde beenden
btw. er Arbeitet ja in der If von oben nach unten
Image = true Then ;Runde startet
Image = true Then
Karte spielen
und das lässt Autoit irgendwie leider nicht zu ... das ich zwei mal so suche
Schreibe ich,
If ImageStart = true Then
EndIf
If ImageErsteKarte = true Then
Karte spielen
EndIf
If ImageErsteKarte = false Then
3 Karten suchen ; erlaubt Autoit wieder nicht
EndIf
Würde alles bis auf die 3 Karten funktionieren, aber die anderen Sachen hätten nichts mit einander zu tun.
|
|
|
01/10/2014, 14:52
|
#6
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Quote:
Originally Posted by flumio
beim hin und her probieren gar nicht beobachtet, nun gut es liegt nicht an der Zeit.
Ich brauch _WaitForImageSearch, weil ich darauf Warten muss etwas zu finden um denen Rundenstart zu signalisieren.
|
Do
Until ImageSearch = 1 ?
|
|
|
01/10/2014, 17:52
|
#7
|
elite*gold: 50
Join Date: Feb 2009
Posts: 765
Received Thanks: 927
|
Es ist ja schön und nett, aber ihr versucht mir dort zu helfen wo ich gar nicht nach Hilfe frage.
z.B. habe ich nie was zum Thema der Zeit/Timing gefragt, auch hat das nichts mit meinem Problem zu tun.
Ich hoffe ihr versteht mich nicht falsch, es soll nicht böse oder beleidigend klingen.
Schon paar mal erwähnt das es an der Richtigkeit der Schreibweise des Codes scheitert. Doch hier konnte mir leider keiner der Profis bis lang helfen.
Nach langem hinein steigern, hab ich mir die richtige Vorgehensweise erlernt und konnte somit den Code auch Fehlerfrei schreiben.
Ja, es lag nur daran, alles andere war richtig.
Ich kann mit guten gewissen sagen, ein Profi, hätte das auf den ersten blick erkennen müssen. Weil ich nun weiß wie einfach es eigentlich war.
Nichts-desto-trotz bedanke ich mich bei jeden der sich die Mühe gemacht hat, mein Problem zu lösen. Nämlich niemanden xD
Versteht es bitte nicht falsch, ich habe mich nur geärgert weil es total einfach war, aber mich einige Stunden gekostet hat es zu beheben. Nun bin ich aber auch selber wieder schlauer geworden.
Der Lern-Effekt war da.
|
|
|
 |
Similar Threads
|
Hilfe mit ImageSearch
08/25/2013 - AutoIt - 1 Replies
Jo, wollte so 'nen simplen Cookieclicker-Bot machen und hab das Problem, dass er nicht anfängt iwas zu machen, bzw. er hovert nichtmal mit der Maus auf das Keks.bmp.
Code:
#include <ImageSearch.au3> Hotkeyset("{F2}","Ende") Func Ende () While 1 - Pastebin.com
Keks.bmp und ImageSearch dll sind natürlich im Ordner.
|
ImageSearch bitte um Hilfe
01/21/2011 - AutoIt - 4 Replies
Tag allerseits ich bin noch ein zimlicher Anfänger was AuoIt betrifft meine einzige Erfahrung die ich bisher gemacht habe ist, habe mir einen Bot für Millionaire City gecoded welcher aber nur aus MouseMove und Mouse Click besteht...
Deshalb wollte ich das ganze mit ImageSearch verbessern, weil soviel ich weiss kann man damit bestimmte Bilder suchen und bekommt dann diese Koordinaten des Bildes zurück.
In meinem Fall wären das halt Häuser von welchen es auch mehrere der gleichen Sorte...
|
Frage zu If-ElseIf Befehl
11/07/2010 - AutoIt - 10 Replies
Hi,
ich habe diesen simplen Bot für Warrock geschrieben und wollte mit einem If-ElseIf befehl eine beendigung des scripts bei schließung von warrock erreichen, aber irgendwie klappt das nicht. Hier ist der Code:
HotKeySet("{f6}", "_Exit")
While 1
MouseClick("left",451,77,1,0)
MouseClick("left",889,615,1,0)
MouseClick("left",889,640,1,0)
$PID=ProcessExists("WarRock.exe")
If $PID > 0 Then
|
Hilfe bei einem AUtoIT imagesearch script
08/24/2010 - AutoIt - 2 Replies
Nun,
Ich will ein Script, dass solange den Bildschirm SCHNELL nach dem Pixel 0x267042 sucht und immer wieder draufklickt, bis das Bild "gewonnen.PNG" sichtbar wird,dann da drauf klickt und wieder von vorne anfängt mit Pixelsearch.
Danke
|
dringen hilfe zu imagesearch
07/29/2010 - AutoIt - 8 Replies
Hi ich habe mir auch die imagesearch demo angesehen werde aber nicht schlau^^.
Also ich habe diesen code:
#include <ImageSearch.au3>
;
; Demo on the functions of ImageSearch
; Assumes that you have a Recycle Bin icon at the top left of your screen
; Assumes that you have IE6 or 7 icon visible
; Please make the icon visible or we won't be able to find it
|
All times are GMT +1. The time now is 02:25.
|
|