Auotit Angelbot Hilfe

11/29/2009 18:43 prustel#1
Ich hoffe mal ich bin hier richtig.

Ich habe das folgende Problem:
Mein AngelBot soll erst dann anfangen, wenn das Metin Fenster aktiviert ist.
Aber wenn es aktiviert ist passiert nichts.
Bin ziemlich neu in Autoit und kenn mich noch nicht so gut damit aus.

Das ist mein Code:
Code:
HotKeySet("{ESC}", "Terminate")
WinWaitActive("METIN2","",3)  ; warten bis Metin2 ausgewählt ist
mouseClick("right",748,380,1,5) ; ersten Köder auswählen

While 1 ;schleife beginnt
Send("{space}") ;Angel auswerfen
Sleep(1000 )      

 PixelSearch(378, 228, 440,271, 0xcFFFFF,1,2) ; Suche nach einer weißen farbe in dem Feld 

   If Not @error Then ; falls kein error ist
	   sleep(2150)  ; Warte 2,15 sek bis zum rausziehen
        Send("{space}") ; rausziehen
	  Sleep(7000) 
	  mouseClick("right",748,380,1,5) ; neunen Köder benutzen
	  sleep(500)
    EndIf
WEnd

 
Func Terminate()
    Exit 0
EndFunc
Kann mir jemand sagen wo mein/e Fehler ist/sind?
Der Bot ist schlecht geschrieben und nur auf meinen Character angepasst.
Bin dankbar für jede Hilfe :)
11/29/2009 19:05 AllesVergeben#2
Schreibnur"Winwaitactive("METIN2")"rein
11/30/2009 15:59 prustel#3
Passiert leider trotzdem nichts und wenn ich wieder Auoit anklicke drückt er tausendmal Leertaste.
Ich versteh das Problem einfach nicht, mich interessiert es echt, aber irgendwie häng ich grad fest, besonders beid er Fenster auswahl.
Achja es handelt sich hier um Metin35, nicht Original Metin.
11/30/2009 16:08 °Jumping_Freak°#4
ehm ich würde mal so sagen, falscher Bereich ?
11/30/2009 16:13 prustel#5
Hab mittlerweile auch den richtigen Bereich gefunden, falls ein Mod netterweise diesen Thread verschieben könnte, wäre dies echt nett ;)
Btw:
Hab den Code mittlerweile umgeschrieben, aber das Problem besteht immer noch, das er das Metin35 Fenster nicht erkennt. Zb bei Paint geht es.
Laut AuotiIT Info steht beim Title:METIN2 , aber dennoch geht es nicht.
Weiss jemand eine Lösung?
11/30/2009 16:18 MrCrackR#6
Code:
HotKeySet("{ESC}", "Terminate")
WinWaitActive("METIN2","",3)  ; warten bis Metin2 ausgewählt ist
mouseClick("right",748,380,1,5) ; ersten Köder auswählen

While 1 ;schleife beginnt
[COLOR="Red"]Send("{space}")[/COLOR] ;Angel auswerfen
[COLOR="Red"]Sleep(1000 ) [/COLOR]     

 PixelSearch(378, 228, 440,271, 0xcFFFFF,1,2) ; Suche nach einer weißen farbe in dem Feld 

   If Not @error Then ; falls kein error ist
	   sleep(2150)  ; Warte 2,15 sek bis zum rausziehen
        Send("{space}") ; rausziehen
	  Sleep(7000) 
	  mouseClick("right",748,380,1,5) ; neunen Köder benutzen
	  sleep(500)
    EndIf
WEnd

 
Func Terminate()
    Exit 0
EndFunc
dein problem ist, dass das rot markierte außerhalb der while-schleife stehen
muss, die nach den pixeln sucht.
also ungefähr so:

Code:
HotKeySet("{ESC}", "Terminate")
WinWaitActive("METIN2","",3)  ; warten bis Metin2 ausgewählt ist
mouseClick("right",748,380,1,5) ; ersten Köder auswählen
Send("{space}") ;Angel auswerfen
Sleep(1000 )  

While 1 ;schleife beginnt

 PixelSearch(378, 228, 440,271, 0xcFFFFF,1,2) ; Suche nach einer weißen farbe in dem Feld 

   If Not @error Then ; falls kein error ist
	   sleep(2150)  ; Warte 2,15 sek bis zum rausziehen
        Send("{space}") ; rausziehen
	  Sleep(7000) 
	  mouseClick("right",748,380,1,5) ; neunen Köder benutzen
	  sleep(500)
          Send("{space}") ; auswerfen
    EndIf
WEnd

 
Func Terminate()
    Exit 0
EndFunc

hab leider grad kein autoit installiert, um zu prüfen, ob's jetzt richtig ist
11/30/2009 16:49 prustel#7
So sah meiner auch jetzt in etwa aus, aber erkennt einfach nicht das Metin2 Fenster, was wie gesagt vom Pserver Metin35 ist.
(In der Taskleiste steht auch METIN2)
Kennt da wer neh Lösung?

Code:
HotKeySet("{ESC}", "Terminate")
WinWaitActive("METIN2","",3)  ; warten bis Metin2 ausgewählt ist
Send("{F4}") ; ersten Köder auswählen
Sleep(1000)
Send("{space}") ;Angel auswerfen
Sleep(1000 )  

While 1 ;schleife beginnt

 PixelSearch(378, 228, 440,271, 0xcFFFFF,1,2) ; Suche nach einer weißen farbe in dem Feld 

   If Not @error Then ; falls kein error ist
	   sleep(2150)  ; Warte 2,15 sek bis zum rausziehen
        Send("{space}") ; rausziehen
	  Sleep(7000) 
	  Send("{F4}") ; neunen Köder benutzen
	  sleep(500)
	  Send("{space}") ; auswerfen
    EndIf
WEnd

 
Func Terminate()
    Exit 0
EndFunc
2. Falls jemand eine bessere Lösung kennt, um zu erkennen, wann die Blase erscheint bitte melden. Meine Lösung momentan ist echt schlecht und man muss immer richtig stehn & so.
11/30/2009 17:00 MrCrackR#8
wenn du dich mit CE auskennst, kannst du über pointer die fischblase suchen.
ich hatte das mal gemacht, aber meine pointer sind veraltet und funktionieren
nicht mehr.

in CE einfach nach dem wert 1 suchen, wenn die blase erscheint, und 0, wenn
sie weg ist. natürlich muss vorher eingestellt sein "freeze game while scanning"
oder so was in der art. wenn du die adresse gefunden hast, einfach den pointer
dazu ermitteln. bei mir hatte da die eingebaute "pointer-search"-funktion
geklappt.

das kann aber für einen anfänger ein bissl zu schwer sein.
11/30/2009 17:07 prustel#9
Hab ewig nichts mehr mit CE gemacht und Pointer sagen mir nicht viel, aber sowas findet man bestimmt als Tut im Internet.
Zuerst muss ich mein größeres Problem erledigen, nämlich das er endlich das Sche** Fenster erkennt.

Irgendjemand hat doch sicherlich schon einen Bot für Metin35 geschrieben und kann mir sagen wo der fehler leigt?!:) Wäre echt nett.