|
You last visited: Today at 19:08
Advertisement
Monstersuche mit Autoit
Discussion on Monstersuche mit Autoit within the AutoIt forum part of the Coders Den category.
08/11/2013, 11:21
|
#1
|
elite*gold: 0
Join Date: Mar 2010
Posts: 91
Received Thanks: 2
|
Monstersuche mit Autoit
Monstersuche mit Autoit
Hey Freunde,
Ich versuche einer Idee für einen Levelbot hinterherzujagen habe dabei aber Probleme
Ich arbeite mit Autoit und versuche aus der Minimap auszulesen wo die Monster sind und dann den Charakter darauf zulaufen zu lassen
Mein Ansatz:
PHP Code:
Func Suche ()
$Pfeilspitze = PixelSearch (900,15,1000,110, 0xFFFFE7)
If not @error Then
$Monster = PixelSearch (900,15,1000,110, 0xEB1609)
If not @error Then
$M = (68 - $Pfeilspitze[1]) / (955 - $Pfeilspitze[0])
$B = $Pfeilspitze[1] - ($Pfeilspitze[0] * $M)
$Ergebnis = ($M * $Monster[0])+$B
If $Monster[1] = $Ergebnis Then
Send("{W}")
Else
Send("{E}")
EndIf
Else
Suche()
EndIf
Else
Send("{E down}")
Sleep(100)
Send("{E up}")
EndIf
EndFunc
Ich habe 2 Punkte Die Spitze des Pfeiles ($Pfeilspitze[0],$Pfeilspitze[1]) und die Mitte (955,68) daraus rechne ich eine Grade und wenn das Monster auf dieser graden ist soll er sich dahin bewegen
in der Praxis passiert einfach nichts - Warum?
|
|
|
08/11/2013, 12:54
|
#2
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Hast du versucht ob das Spiel überhaupt Send/ControlSend unterstützt?
Eventuell kannst du es mit PostMessage probieren aber die meisten Spiele haben einen Anti-Hack installiert bei denen Send von AutoIt nicht mehr funktioniert.
Desweiteren musst du beachten, das du eine Rekursion in deiner Funktion hat, nach 1899 Aufrufen wird das Script abstürzen, denn du startest Search() in Func Search()
|
|
|
08/12/2013, 08:05
|
#3
|
elite*gold: 0
Join Date: Mar 2010
Posts: 91
Received Thanks: 2
|
aso stimmt habe ich nicht genannt - ich spiele auf einem selbst gemachtem p server von Metin2
send und so funktioniert eigentlich immer sehr gut
wie kann ich die Rekursion verhindern aber noch von vorne anfangen?
Zu meinem eigentlichem Problem hat jemand schonmal mit autoit versucht zu rechnen kann es das überhaupt? ich glaube langsam das für $M eine zu kleine zahl raus kommt und das autoit die nicht benutzen kann oder als 0 wertet - kann das sein?
|
|
|
08/12/2013, 14:51
|
#4
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Um das Rechnen in AutoIt brauchst du dir keinen Kopf zu machen, 15 Nachkommastellen erreichst du bei einer Pixelsuche glaub ich nicht.
Neustarten könntest du das, indem du ExitLoop verwendest.
Versuch die ganze Position in eine While 1 zu packen und bei der Zeile mit Search() schreibst du gar nichts hin und bei den anderen nimmst du ExitLoop damit, die Schleife unterbrochen wird.
Der Code könnte so vielleicht korrekt aussehen, musst du eventuell noch anpassen:
Code:
Func Suche ()
While 1
$Pfeilspitze = PixelSearch (900,15,1000,110, 0xFFFFE7)
If not @error Then
$Monster = PixelSearch (900,15,1000,110, 0xEB1609)
If not @error Then
$M = (68 - $Pfeilspitze[1]) / (955 - $Pfeilspitze[0])
$B = $Pfeilspitze[1] - ($Pfeilspitze[0] * $M)
$Ergebnis = ($M * $Monster[0])+$B
If $Monster[1] = $Ergebnis Then
Send("{W}")
Else
Send("{E}")
EndIf
ExitLoop
Else
Sleep(100) ;Hier war die Rekursion
EndIf
Else
Send("{E down}")
Sleep(100)
Send("{E up}")
ExitLoop
EndIf
WEnd
EndFunc
|
|
|
08/14/2013, 09:42
|
#5
|
elite*gold: 0
Join Date: Mar 2010
Posts: 91
Received Thanks: 2
|
besten dank
nur hat sich leider an meinem eigentlichem Problem nichts verändert
angenommen die komplette rechnung sei falsch dan müsste doch mehr oder weniger dauerhaft ein E gesendet werden aber ingame passiert einfach garnichts
wo könnte das programm sonst noch probleme haben oder hängen?
|
|
|
08/14/2013, 12:45
|
#6
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Stürzt das Script denn ab oder hängt es sich nur irgendwie auf?
Wenn es nicht abstürzt dann müssen wir den restlichen Source sehen, weil dort wahrscheinlich der Fehler liegen wird.
Du kannst ab und zu MsgBoxen einbauen die Zahlen ausgeben und an bestimmten Positionen stehen, wie z.B. der If / Send um zu gucken, ob das Script überhaupt so weit kommt.
|
|
|
08/18/2013, 17:18
|
#7
|
elite*gold: 0
Join Date: Mar 2010
Posts: 91
Received Thanks: 2
|
Super idee und du hast promt recht er kommt garnicht weit genug
is kein zitat aber ich kenne die cods nicht auswendig^^
PHP Code:
HotKeySet ( "{F8}" , "Leveln" )
HotKeySet ( "{F9}" , "Pause" ) HotKeySet ( "{F10}" , "Ende" )
while 1 sleep(1) wend
Func Suche () Send("{Enter}") Send("Ich lvl jetzt :)") Send("{Enter}") While 1 $Pfeilspitze = PixelSearch (900,15,1000,110, 0xFFFFE7) If not @error Then $Monster = PixelSearch (900,15,1000,110, 0xEB1609) If not @error Then $M = (68 - $Pfeilspitze[1]) / (955 - $Pfeilspitze[0]) $B = $Pfeilspitze[1] - ($Pfeilspitze[0] * $M) $Ergebnis = ($M * $Monster[0])+$B If $Monster[1] = $Ergebnis Then Send("{W}") Else Send("{E down}") Sleep(500) Send("{E up}") EndIf ExitLoop Else Sleep(100) ;Hier war die Rekursion EndIf Else Send("{E down}") Sleep(100) Send("{E up}") ExitLoop EndIf WEnd EndFunc
Func Ende () Exit EndFunc func Pause() while (1) sleep(100) Wend EndFunc
€dit -.- jetzt seh ichs oh man bin ich blöd trotzdem danke für eure hilfe
|
|
|
08/18/2013, 17:56
|
#8
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Funktioniert jetzt alles, es könnten ja Fehler auftreten, weil die Rekursion nicht mehr da ist.
Hat sich alles geklärt?
|
|
|
08/22/2013, 09:38
|
#9
|
elite*gold: 0
Join Date: Mar 2010
Posts: 91
Received Thanks: 2
|
jo an sich funktioniert jetzt alles 
Besten Dank
|
|
|
Similar Threads
|
Monstersuche mit Autoit
08/11/2013 - Metin2 Private Server - 3 Replies
Hey Freunde,
Ich versuche einer Idee für einen Levelbot hinterherzujagen habe dabei aber Probleme
Ich arbeite mit Autoit und versuche aus der Minimap auszulesen wo die Monster sind und dann den Charakter darauf zulaufen zu lassen
Mein Ansatz:
Func Suche ()
$Pfeilspitze = PixelSearch (900,15,1000,110, 0xFFFFE7)
If not @error Then
|
All times are GMT +1. The time now is 19:09.
|
|