Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 09:46

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

Advertisement



Pixelsearch bot, frage zu case´s

Discussion on Pixelsearch bot, frage zu case´s within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: May 2013
Posts: 85
Received Thanks: 0
Pixelsearch bot, frage zu case´s

Hallo,
versuche derzeit einen Bot für ein Spiel zu machen und komme auch ganz gut voran.
Mein Bot läuft selbstständig zum Zielort und wartet dann.


Allerdings hab ich folgendes Problem:


Code:
Func Start()
While 1
	$PixelPosMapMark0 = PixelSearch(742 ,116 ,896 ,172 ,0x0710CF , 0)
	$PixelPosMapMark1 = PixelSearch(728 ,123 ,791 ,280 ,0x0710CF , 0)
	$PixelPosMapMark2 = PixelSearch(854 ,130 ,899 ,283 ,0x0710CF , 0)
	$PixelPosMapMark3 = PixelSearch(741 ,234 ,885 ,290 ,0x0710CF , 0)




	Select
	Case	IsArray($PixelPosMapMark0)
			MouseClick("left", $PixelPosMapMark0[0], $PixelPosMapMark0[1], 1, 0)
			Sleep(5)
	Case	IsArray($PixelPosMapMark1)
			MouseClick("left", $PixelPosMapMark1[0], $PixelPosMapMark1[1], 1, 0)
			Sleep(5)
	Case	IsArray($PixelPosMapMark2)
			MouseClick("left", $PixelPosMapMark2[0], $PixelPosMapMark2[1], 1, 0)
			Sleep(5)
	Case	IsArray($PixelPosMapMark3)
			MouseClick("left", $PixelPosMapMark3[0], $PixelPosMapMark3[1], 1, 0)
			Sleep(5)

	Case	@error
			MouseClick("left", 843, 396, 1, 0)


	EndSelect
Ich möchte, dass, wenn er keine passenden Pixel findet, (dann ist er am Ziel) mit dem Script fortfährt, in diesem fall mit "Mouseclick...."

Nur wartet mein Bot momentan einfach bis er die entsprechende Farbe wieder findet.

Ich weiss jedoch nicht wie ich ihm sagen kann, dass er wenn er keine entsprechende Farbe findet aufhören soll und mit dem Script weitermachen soll.

Könntet ihr mir da helfen?
RF1T2 is offline  
Old 05/30/2013, 18:56   #2
 
Croco™'s Avatar
 
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
Du sagt dem Script einfach, dass es die schleife verlassen soll, sobald das Array kein Array ist.

Croco™ is offline  
Thanks
1 User
Old 05/30/2013, 21:10   #3
 
elite*gold: 0
Join Date: May 2013
Posts: 85
Received Thanks: 0
Code:
	Select
	Case	IsArray($PixelPosMapMark0)
			MouseClick("left", $PixelPosMapMark0[0], $PixelPosMapMark0[1], 1, 0)
			Sleep(5)
	Case	IsArray($PixelPosMapMark1)
			MouseClick("left", $PixelPosMapMark1[0], $PixelPosMapMark1[1], 1, 0)
			Sleep(5)
	Case	IsArray($PixelPosMapMark2)
			MouseClick("left", $PixelPosMapMark2[0], $PixelPosMapMark2[1], 1, 0)
			Sleep(5)
	Case	IsArray($PixelPosMapMark3)
			MouseClick("left", $PixelPosMapMark3[0], $PixelPosMapMark3[1], 1, 0)
			Sleep(5)

	If	Not	IsArray Then
			ExitLoop
			EndIf

	EndSelect




WEnd
EndFunc


			MouseClick("left", 786, 371, 1, 0)
ich weiss es ist falsch aber ich komme nicht darauf wie ich
"wenn kein array, dann..." sagen kann
RF1T2 is offline  
Old 05/30/2013, 21:27   #4
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
If Not IsArray($PixelPosMapMark3)
omer36 is offline  
Thanks
1 User
Old 05/30/2013, 21:29   #5
 
Croco™'s Avatar
 
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
Du hast richtig Gedacht, aber in diesem Fall ist es anders.
Da keine anderes "Case" erfüllt wird gibst du ein weiteres Case an, das "else Case".
D.h. dieses Case wird nur dann aufgerufen wenn kein Pixel gefunden wurde.
In diesem wird dann der ganze ExitLoop code geschrieben:

Code:
Func Start()
While 1
	$PixelPosMapMark0 = PixelSearch(742 ,116 ,896 ,172 ,0x0710CF , 0)
	$PixelPosMapMark1 = PixelSearch(728 ,123 ,791 ,280 ,0x0710CF , 0)
	$PixelPosMapMark2 = PixelSearch(854 ,130 ,899 ,283 ,0x0710CF , 0)
	$PixelPosMapMark3 = PixelSearch(741 ,234 ,885 ,290 ,0x0710CF , 0)




	Select
	Case	IsArray($PixelPosMapMark0)
			MouseClick("left", $PixelPosMapMark0[0], $PixelPosMapMark0[1], 1, 0)
			Sleep(5)
	Case	IsArray($PixelPosMapMark1)
			MouseClick("left", $PixelPosMapMark1[0], $PixelPosMapMark1[1], 1, 0)
			Sleep(5)
	Case	IsArray($PixelPosMapMark2)
			MouseClick("left", $PixelPosMapMark2[0], $PixelPosMapMark2[1], 1, 0)
			Sleep(5)
	Case	IsArray($PixelPosMapMark3)
			MouseClick("left", $PixelPosMapMark3[0], $PixelPosMapMark3[1], 1, 0)
			Sleep(5)

	[B]Case	Else
	         MouseClick("left", 843, 396, 1, 0)
                 Return 1; Ist besser als ExitLoop ;) ist mir aber auch erst gerade aufgefallen [/B]



	EndSelect
WEnd
EndFunc


			MouseClick("left", 786, 371, 1, 0)
Croco™ is offline  
Thanks
1 User
Old 05/30/2013, 22:02   #6
 
elite*gold: 0
Join Date: May 2013
Posts: 85
Received Thanks: 0
ty,
und danach kann ich auch etwas machen das eine neue func startet sobald ich return 1 habe? danach wieder das selbe also mit return 2 z.B. wieder zur ersten func zurück und so eine schleife erzeugen?
RF1T2 is offline  
Old 05/30/2013, 22:58   #7
 
Croco™'s Avatar
 
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
Nein, "return 1" bedeutet das die Funktion die Zahl 1 zurück gibt. Sobald eine Funktion aber etwas zurück gibt ist sie beendet.
Croco™ is offline  
Thanks
2 Users
Old 05/30/2013, 23:58   #8
 
elite*gold: 0
Join Date: May 2013
Posts: 85
Received Thanks: 0
achso!
vielen dank
hast mir sehr geholfen

hm entschuldigt dass ich nochmal nerve aber ich bekomms noch nicht so ganz hin

Code:
Func Start()
While 1
	$PixelPosMapMark0 = PixelSearch(742 ,116 ,896 ,172 ,0x0710CF , 0)
	$PixelPosMapMark1 = PixelSearch(728 ,123 ,791 ,280 ,0x0710CF , 0)
	$PixelPosMapMark2 = PixelSearch(854 ,130 ,899 ,283 ,0x0710CF , 0)
	$PixelPosMapMark3 = PixelSearch(741 ,234 ,885 ,290 ,0x0710CF , 0)

	$PixelPosPortalAusgang0 = PixelSearch(0 ,0 ,@DesktopWidth, @DesktopHeight, 0x95936A, 0)

	$PixelPosPortalEingang0 = PixelSearch(0 ,0 ,@DesktopWidth, @DesktopHeight, 0x7CB7EF, 0)



	Select
	Case	IsArray($PixelPosMapMark0)
			MouseClick("left", $PixelPosMapMark0[0], $PixelPosMapMark0[1], 1, 0)
			Sleep(5000)
	Case	IsArray($PixelPosMapMark1)
			MouseClick("left", $PixelPosMapMark1[0], $PixelPosMapMark1[1], 1, 0)
			Sleep(5000)
	Case	IsArray($PixelPosMapMark2)
			MouseClick("left", $PixelPosMapMark2[0], $PixelPosMapMark2[1], 1, 0)
			Sleep(5000)
	Case	IsArray($PixelPosMapMark3)
			MouseClick("left", $PixelPosMapMark3[0], $PixelPosMapMark3[1], 1, 0)
			Sleep(5000)

	Case	Else
			;kommt noch
			;kommt noch
			;kommt noch
			;kommt noch
			Return 1

	EndSelect

WEnd
EndFunc

	Select
	Case	IsArray($PixelPosPortalEingang0)
			MouseClick("left", $PixelPosPortalEingang0[0], $PixelPosPortalEingang0[1], 1, 0)
			Sleep(5000)
	EndSelect
zwar wird (glaube ich) aufgehört nach $pixelposmapmark1 -3 zu suchen aber danach passiert nichts mehr.
hab jetzt rumprobiert aber es nicht rausgefunden bitte nich sauer sein^^
RF1T2 is offline  
Reply


Similar Threads Similar Threads
PixelSearch frage
03/04/2013 - AutoIt - 2 Replies
Hallo , Ich weiss wie PS funktioniert... Nun will ich aber dass wenn er nicht die Besagte Farbe findet immer abwechselnd Nord Süd Ost West wenn er keine mehr Findet. LG
Pixelsearch Frage
05/29/2011 - AutoIt - 1 Replies
Hallo Leute Wie kann ich bei Autoit 3 , Pixelsearch, die Scanrichtung ändern ? MfG MG4all
[Frage]Pixelsearch
09/25/2010 - AutoIt - 2 Replies
kann man die pixelsearch funktion : PixelSearch ( left, top, right, bottom, color ]] ) irgendwie beschleunigen ? das er schneller sucht + findet hat sich schon erledigt, die step funktion übersehen -_-
Frage zu Pixelsearch!
08/21/2010 - AutoIt - 5 Replies
Hallo :P Ich habe eine Frage zu Pixelsearch. Ich bin in folgender Situation. Ich schreibe gerade einen Aimbot für Teeworlds (Um mich mit Pixelsearch auseinander zu setzen) Ich habe AutoIT gesagt, du sollst den ganzen bildschirm nach einer Bestimmten Farbe suchen. Die Farbe findet es, Zieht auch die Maus dahin. Doch leider ist es eine Ungewollte stelle! Es zielt nähmlich auf die Anzeige der getöteten und denen Die Getötet haben:facepalm: Nun möchte ich euch fragen, ob man diese Stelle...
Pixelsearch frage
07/30/2010 - AutoIt - 5 Replies
Hi habe mal ne frage zu pixelsearc kann ich es auch machen stamm top,left right und bottom einzugeben das er sich auch einfach auf ein aktives fenster einfach konzentriert? Z.b ich habe paint offen das er dann nur in paint sucht (angenommen ich habe paint nicht im vollbildmodus^^)



All times are GMT +1. The time now is 09:46.


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.