auto it item suche

05/21/2013 11:42 gametom50#1
hey leute ,

ich wollte mal ein wenig mit auto it anfangen, weiß aber noch sogut wie garnichts darüber.
nach ein paar tutorials wollte ich mir einen bot erstellen der metin2 in der taskleiste sucht und öffnet (funktioniert), ein item sucht und sogar auf die 2te inventar seite geht um dieses item zu finden (funktioniert teilweise).
es ist noch nicht ganz fertig geschrieben, denn das problem besteht darin, dass er nachdem er metin2 gesucht und geöffnet hat nicht mehr die anderen befehle durchgeht.
hier mein script:
$coord = PixelSearch( 0, 729, 1365, 767, 0xAA9FAA )
If IsArray($coord) = True Then
MouseMove($coord [0], $coord [1], 10)
EndIf
If IsArray($coord) = True Then
MouseClick("left", $coord [0], $coord [1], 10)
EndIf
If IsArray($coord) = True Then

$item = PixelSearch( 0, 0, 1365, 767, 0x8F755F )
EndIf
If IsArray($item) = True Then
MouseMove($item [0], $item [1], 10)
EndIf
If IsArray($item) = False Then
$site = PixelSearch( 0, 0, 1365, 767, 0x54473C )
EndIf

If IsArray($site) = True Then
MouseMove($site [0], $site [1], 10)
EndIf

MouseClick("left", 10)
-----------------------------------------------------
wenn ihr den fehler oder die fehler seht, könnt ihr das script dann einfach nochmal richtig posten und mir meinen fehler oder meine fehler erklären?
wäre super nett, danke !

LG Tom
05/21/2013 13:02 WJNeeson#2
PHP Code:
$coord PixelSearch072913657670xAA9FAA )
If 
IsArray($coord) = True Then
    MouseMove
($coord [0], $coord [1], 10)
EndIf

If 
IsArray($coord) = True Then
    MouseClick
("left"$coord [0], $coord [1], 10)
EndIf

If 
IsArray($coord) = True Then
    $item 
PixelSearch0013657670x8F755F )
EndIf

If 
IsArray($item) = True Then
    MouseMove
($item [0], $item [1], 10)
EndIf

If 
IsArray($item) = False Then
    $site 
PixelSearch0013657670x54473C )
EndIf

If 
IsArray($site) = True Then
    MouseMove
($site [0], $site [1], 10)
EndIf

MouseClick("left"10
wieso benutzt du so viele if abfragen?
du sagst wenn der pixel gefunden wurde, dann soll er die maus dahin bewegen. dann sagst du nochmal wenn er den pixel gefunden hat soll er bei den gleichen koordinaten linksklicken. da du bei dem mouseclick befehl koordinaten angibst wird das mousemove sowieso überflüssig.
hier einmal verschiede möglichkeiten das mit mousemove und mouseclick umzusetzen:
Die bessere methode wäre allerdings, das fenster per winexists und winactivate zu öffnen:
PHP Code:
$window "fenstername"

If WinExists($windowThen WinActivate($window)
If 
Not WinExists($windowThen
    MsgBox
(16"""fenster nicht gefunden")
    Exit
EndIf

If 
IsArray($itemThen MouseMove($item [0], $item [1], 10)
If 
IsArray($item) = False Then $site PixelSearch0013657670x54473C )

If 
IsArray($siteThen MouseClick("left"$site [0], $site [1], 2
05/21/2013 13:13 gametom50#3
ich prober sie alle gleich mal aus :D,

danke erstmal für die tipps ! :)

okey, klappt alles super, das problem ist nur, dass mouse move und vieles anderes nicht mehr in metin2 funktioniert, warum auch immer, kannst du mir da bitte noch erklären warum das so ist und wie ich es trotzdem ermöglichen kann?

LG Tom
05/21/2013 15:03 WJNeeson#4
Entweder ist die Bildschirmauflösung von Metin2 eine andere, sodass er die Farbe nicht findet oder Metin2 blockiert deinen Script.
05/21/2013 15:57 gametom50#5
ja und wie kann ich das umgehen? :D

okey hab alles gelöst bis auf das hier:
$window = "METIN2"

If WinExists($window) Then WinActivate($window)
If Not WinExists($window) Then
MsgBox(16, "", "Metin2 wurde nicht gefunden.")
Exit
EndIf
Sleep (0)

$item = PixelSearch( 0, 0, 1365, 767, 0x726155 )
$invswitch = PixelSearch( 0, 0, 1365, 767, 0x54473C )

If IsArray($item) = True Then
MouseMove($item [0], $item [1], 5)
sleep (5)
MouseClick("left")
EndIf

Sleep (500)

If IsArray($item) = False Then
MouseMove($invswitch [0], $invswitch [1], 5)
EndIf
---------------------------------------------------
C:\Users\Tom\Desktop\auto it file\winmove.au3 (14) : ==> Subscript used with non-Array variable
wo liegt hier der fehler, ich versteh bei der /|\ Fehlermeldung nur Bahnhof. ._.
05/21/2013 17:49 WJNeeson#6
Die Variable in Zeile 14 ist kein Array
05/21/2013 18:15 gametom50#7
und was muss ich ändern damit es klappt?