Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 19:08

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

Advertisement



Monstersuche mit Autoit

Discussion on Monstersuche mit Autoit within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Megawurrrm's Avatar
 
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,1100xFFFFE7)  
If 
not @error Then    
$Monster 
PixelSearch (900,15,1000,1100xEB1609)  
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?
Megawurrrm is offline  
Old 08/11/2013, 12:54   #2
 
alpines's Avatar
 
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()
alpines is offline  
Thanks
1 User
Old 08/12/2013, 08:05   #3
 
Megawurrrm's Avatar
 
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?
Megawurrrm is offline  
Old 08/12/2013, 14:51   #4
 
alpines's Avatar
 
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
alpines is offline  
Thanks
1 User
Old 08/14/2013, 09:42   #5
 
Megawurrrm's Avatar
 
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?
Megawurrrm is offline  
Old 08/14/2013, 12:45   #6
 
alpines's Avatar
 
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.
alpines is offline  
Thanks
1 User
Old 08/18/2013, 17:18   #7
 
Megawurrrm's Avatar
 
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,1100xFFFFE7)
        If 
not @error Then
            $Monster 
PixelSearch (900,15,1000,1100xEB1609)
            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
Megawurrrm is offline  
Old 08/18/2013, 17:56   #8
 
alpines's Avatar
 
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?
alpines is offline  
Old 08/22/2013, 09:38   #9
 
Megawurrrm's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 91
Received Thanks: 2
jo an sich funktioniert jetzt alles
Besten Dank
Megawurrrm is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.