Register for your free account! | Forgot your password?

You last visited: Today at 18:39

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

Advertisement



HitBox

Discussion on HitBox within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2013
Posts: 6
Received Thanks: 0
HitBox

Hallo an alle,

bin neu hier, begrüße alle und lasse mich begrüßen ;-) .



Bin derzeit auf der Suche nach einer sogenannten Hitbox, also das nicht eine Koordinate als Auslöser dient sondern, ich geb vier Koordinaten an, die jeweils immer parallel zueinander liegen.
Ergibt dann entweder ein Quadrat oder ein Rechteck und wenn sich die gewählte Farbe in diesem Bereich befindet, dann klicke. Habe selbst schon einmal versucht aber es gelingt mir nicht.
Und nach langem suchen auch da keinen Erfolg.

Gibt es da einen einfachen Lösungsweg oder geht das schon wieder ins kompliziertere?



Mit einer Koordinate bekomme ich es hin, nur die Box ist für mich nicht lösbar.



Ich bedanke mich im voraus für eure Hilfe,

lG
Serester is offline  
Old 01/20/2013, 19:48   #2
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
Deine beschreibung passt irgendwie auf die
oder meinst du was anderes?


kleines beispiel:
PHP Code:
$pSearch PixelSearch(00191910790xFFFFFF)
If 
IsArray($pSearchThen
    MouseClick
("left"$pSearch[0], $pSearch[1])
EndIf 
omer36 is offline  
Thanks
1 User
Old 01/20/2013, 23:46   #3
 
elite*gold: 0
Join Date: Jan 2013
Posts: 6
Received Thanks: 0
Dankeschön, so etwas habe ich gesucht.
Gibt es noch eine Möglichkeit, wenn Farbe in Box, dann klicke aber mache Rechteck kleiner und warte, bis Farbe wieder in Box und mache dann wieder kleiner usw.?
Hört sich jetz zwar etwas kompliziert an aber möglich wäre es doch bestimmt, auf
Irgendeine Art.
Serester is offline  
Old 01/21/2013, 11:05   #4
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
Einfache abfragen erstellen..



PHP Code:
HotKeySet("{ESC}","end")


While 
Sleep(100)
    
$bereich1 PixelSearch(0010237670xFFFFFF)
    
$bereich2 PixelSearch(2011597755740xFFFFFF)
    
$bereich3 PixelSearch(4253675394490xFFFFFF)

    If 
IsArray($bereich1Then
        
If IsArray($bereich2Then
            
If IsArray($bereich3Then
                MsgBox
("Info""Pixel gefunden""Gesuchte Farbe gefunden:" & @CR "X: " $bereich3[0] & @CR "Y: " &  $bereich3[1])
                
MouseClick("left"$bereich3[0], $bereich3[1])
            EndIf
        EndIf
    EndIf
WEnd

Func end
()
    Exit
EndFunc 
omer36 is offline  
Thanks
1 User
Old 01/21/2013, 12:08   #5
 
elite*gold: 0
Join Date: Jan 2013
Posts: 6
Received Thanks: 0
Auch dafür ein dickes Lob.
Hab mir das ganze jetz etwas schwieriger vorgestellt. Ich kann aber ganz normal auch ein then für den Mausklick in Suche 1u2 einbauen, ohne eine weitere Suche, falls ich schon in Suche 3 bin, einbüßen zu müssen, oder?

Also z.b. grünes Quadrat wandert in Suchfeld 1, Maus klickt.

In Suchfeld 2 erscheint aber wieder so ein grünes Quadrat doch das erste grüne befindet sich immer noch im ersten SFenster. Wird jetzt hier auch auf das erste reagiert oder spielt in dem Moment nur die zweite Suche seine Rolle?

Hoffe man versteht es und Danke im voraus!
Serester is offline  
Old 01/21/2013, 13:24   #6
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403




MfG
Achat is offline  
Old 01/21/2013, 16:06   #7
 
elite*gold: 0
Join Date: Jan 2013
Posts: 6
Received Thanks: 0
Ist der else Operator nicht dafür da, wenn Anweisung nicht eintrifft, dann springe zur nächsten. Ist ja ein sonst.
Ist Farbe grün in Suchfeld 1, führe aus, sonst warte bis dato und dann fahre fort zur 2.Suche.
Kann ich die Else's einfach dazu quetschen?
Serester is offline  
Old 01/21/2013, 20:45   #8
 
Croco™'s Avatar
 
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
Ich habe ein großes Tutorial über AutoIT gemacht dort sollte deine Frage beantwortet werden:
Croco™ is offline  
Old 01/21/2013, 21:16   #9
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
PHP Code:

While Sleep(100)
    
$bereich1 PixelSearch(0010237670xFFFFFF)
    
$bereich2 PixelSearch(2011597755740xFFFFFF)

    If 
IsArray($bereich1Then ;wenn farbe im 1. bereich gefunden wird
        MsgBox
("","","Farbe innerhalb des ersten bereichs gefunden")
        ;
führe das aus
        
;und das
        
;und das
        
If IsArray($bereich2Then ;und diese abfrage auch.
            
MsgBox("","","auch im 2. bereich wurde deine farbe gefunden")
            ;
tuhe dies
        
Else ;bereich 1 wurde gefunden, die msg ausgegeben und die 3 zeilen dadrunter ausgeführtaber die abfrage ist fehlgeschlagen
            
;also führe nun das aus
            MsgBox
("","","farbe im 2. bereich nicht gefunden")
        EndIf
    Else;
wenn die farbe im 1. bereich nicht gefunden wurde
        
;führe irgendwas anderes aus
        Sleep
(100);zBnichtsbis halt die farbe im 1. bereich gefunden wurde (eigüberflüssig..)
    EndIf
WEnd 
ist das so verständlich?
am besten die links oben anschauen, wird auch schön erklärt..



oder noch besser, was willst du denn machen?
vllt. gibts bessere/einfachere wege dies zu lösen.
omer36 is offline  
Old 01/22/2013, 09:53   #10
 
elite*gold: 0
Join Date: Jan 2013
Posts: 6
Received Thanks: 0
Ich brauche diesen, ich nenne es mal Bot zur Hilfe, zum programmieren eines Flash-Games.
Ich habe es vorher mit Java developed, dennoch werden, durch ein transparent jFrame die Farben ziemlich verfälscht.
Also habe ich mir gedacht, probier ich mal Autoit.

Was ich nun brauche sind ca. 15-20 Abfragen, von wegen, ist im ersten Kasten die Farbe grün, wenn ja, dann schalte erste Abfrage auf Standby(um hier keine weitere Ausführung zu tätigen), führe Aktion aus und gehe über zur zweiten Abfrage. Diesmal ist der Kasten kleiner und wartet auch darauf ein grünes Quadrat zu verschlingen un so geht das bis alle Abfragen positiv sind.

Nun wird es doch aber mit so vielen if's und else's ziemlich unübersichtlich, kann dafür auf irgendeine Art und Weise auch switch case verwendet werden?
Serester is offline  
Old 01/23/2013, 21:59   #11
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Quote:
Originally Posted by Serester View Post
Was ich nun brauche sind ca. 15-20 Abfragen, von wegen, ist im ersten Kasten die Farbe grün, wenn ja, dann schalte erste Abfrage auf Standby(um hier keine weitere Ausführung zu tätigen), führe Aktion aus und gehe über zur zweiten Abfrage. Diesmal ist der Kasten kleiner und wartet auch darauf ein grünes Quadrat zu verschlingen un so geht das bis alle Abfragen positiv sind.
kann dafür auf irgendeine Art und Weise auch switch case verwendet
Switch case führt alles aus. Ifs kannst du verschachteln

Code:
If $arg1 Then
	_1()
	If $arg2 Then
		_2()
		If $arg3 Then
			_3()
			If $arg4 Then
				_4()
				If $arg5 Then
					_5()
					If $arg6 Then
						_6()
						If $arg7 Then
							_7()
						EndIf
					EndIf
				EndIf
			EndIf
		EndIf
	EndIf
EndIf
€dit: Würde dazu aber eine Funktion mit Parametern benutzen, sonst wird das unübersichtlich.
€dit2: Zeig mal deinen Code.

MfG
Achat is offline  
Old 01/24/2013, 09:06   #12
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by Achat View Post
Switch case führt alles aus. Ifs kannst du verschachteln

Code:
If $arg1 Then
	_1()
	If $arg2 Then
		_2()
		If $arg3 Then
			_3()
			If $arg4 Then
				_4()
				If $arg5 Then
					_5()
					If $arg6 Then
						_6()
						If $arg7 Then
							_7()
						EndIf
					EndIf
				EndIf
			EndIf
		EndIf
	EndIf
EndIf
€dit: Würde dazu aber eine Funktion mit Parametern benutzen, sonst wird das unübersichtlich.
€dit2: Zeig mal deinen Code.

MfG
dieser sachverhalt lässt sich auch recht einfach in einer funktion abarbeiten:
Code:
Dim $dataArray[10] = [0,1,2,3,4,5,6,7,8,9]
Dim $conditionArray[10] = [1,1,1,1,1,1,1,1,1,1]

RecursiveWay($dataArray, $conditionArray)
IterativeWay($dataArray, $conditionArray)

Func RecursiveWay($dataArray, $conditionArray, $i=0)
	If $i>=UBound($dataArray) Or Not $conditionArray[$i] Then Return True
	ConsoleWrite($dataArray[$i]&@CRLF)
	Return RecursiveWay($dataArray, $conditionArray, $i+1)
EndFunc

Func IterativeWay($dataArray, $conditionArray)
	For $i=0 To UBound($dataArray)-1
		If $conditionArray[$i] Then
			ConsoleWrite($dataArray[$i]&@CRLF)
		Else
			ExitLoop
		EndIf
	Next
EndFunc
lolkop is offline  
Old 01/24/2013, 13:19   #13
 
elite*gold: 0
Join Date: Jan 2013
Posts: 6
Received Thanks: 0
Also, dass mit der Funktion verstehe ich Null .
Und richtig verschachteln lassen sich die if´s auch nicht.

Das Programm führt Suche 3, wenn sich das Quadrat darin befindet dauerhaft aus. Befindet sich das Quadrat jedoch in Suchbox 1, dann werden alle 3 Bereiche chronologisch und dauerhaft ausgeführt.

Hier, der Code

Code:
HotKeySet("{ESC}","end")

While (100)
    $box1 = PixelSearch(360, 90, 1000, 620, 0x80FF00)
    $box2 = PixelSearch(390, 120, 810, 530, 0x80FF00)
    $box3 = PixelSearch(430, 300, 600, 430, 0x80FF00)

    If IsArray($box1) Then
	   MouseClick("left",1260,100)
	   
        If IsArray($box2) Then
		   MouseClick("left",1230,200)
		   
            If IsArray($box3) Then
                MouseClick("left",1200,300)
            EndIf
        EndIf
    EndIf
WEnd
Func end()
    Exit
EndFunc
Wahrscheinlich versteh ich das ganze nicht richtig.
Habe auch schon versucht umzucoden und alles mögliche versucht aber ohne Erfolg.
Serester is offline  
Old 01/24/2013, 13:41   #14
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by Serester View Post
Also, dass mit der Funktion verstehe ich Null .
Und richtig verschachteln lassen sich die if´s auch nicht.

Das Programm führt Suche 3, wenn sich das Quadrat darin befindet dauerhaft aus. Befindet sich das Quadrat jedoch in Suchbox 1, dann werden alle 3 Bereiche chronologisch und dauerhaft ausgeführt.

Hier, der Code

Code:
HotKeySet("{ESC}","end")

While (100)
    $box1 = PixelSearch(360, 90, 1000, 620, 0x80FF00)
    $box2 = PixelSearch(390, 120, 810, 530, 0x80FF00)
    $box3 = PixelSearch(430, 300, 600, 430, 0x80FF00)

    If IsArray($box1) Then
	   MouseClick("left",1260,100)
	   
        If IsArray($box2) Then
		   MouseClick("left",1230,200)
		   
            If IsArray($box3) Then
                MouseClick("left",1200,300)
            EndIf
        EndIf
    EndIf
WEnd
Func end()
    Exit
EndFunc
Wahrscheinlich versteh ich das ganze nicht richtig.
Habe auch schon versucht umzucoden und alles mögliche versucht aber ohne Erfolg.
so könnte das ganze mit der iterativen variante mit deinem code aussehen:

Code:
HotKeySet("{ESC}","end")
Dim $box[3], $coors[UBound($box)][2] = [[1260,100],[1230,200],[1200,300]]
While 1
	$box[0] = PixelSearch(360, 90, 1000, 620, 0x80FF00)
	$box[1] = PixelSearch(390, 120, 810, 530, 0x80FF00)
	$box[2] = PixelSearch(430, 300, 600, 430, 0x80FF00)
	
	For $i=0 To UBound($coors)-1
		If IsArray($box[$i]) Then
			MouseClick("left",$coors[$i][0],$coors[$i][1])
		Else
			ExitLoop
		EndIf
	Next
WEnd
Func end()
    Exit
EndFunc
lolkop is offline  
Reply


Similar Threads Similar Threads
GTA sa hitbox marker
04/07/2015 - Grand Theft Auto - 2 Replies
Hallo ich würde gerne wissen wie man den Hitboxmarker Instaliert HitBoX MarKeR 0.3e ~ RELEASED!!! - YouTube :confused::confused::confused:
MTA HitBox
06/16/2013 - Grand Theft Auto - 26 Replies
Gibt es ein Serverseitiges Script für die Hitbox, so dass Kirby Mod etc nichts nutzen?
[S]SA-MP Hitbox mod o.ä [B]Psc
08/25/2012 - Grand Theft Auto - 3 Replies
Hey, ich spiele seit längere Zeit SA-MP. Nun suche ich eine Skin/Mod/exe was auch immer, um die Hitbox der anderen Spieler einzublenden. Ich hoffe ihr versteht was ich meine & bitte dont flame, das ist ein Hackerforum. addet mich bitte in Skype. skype: whitesza1
CSS Hitbox Problem
12/22/2010 - Counter-Strike - 3 Replies
Hallo zusammen, Ich wollte das ich im Spiel die Hitboxen sehe, also in CSS. Hab als erstes sv_cheats 1 eingebebn , das hat geklappt. ( Hab das alles in einem eigenen server gemacht.)Dann hab ich sv_showhitboxes 2 in die console eingegeben dann stand da: "Unknown command: sv_showhitboxes". Kann mir jemand weiterhelfen? Ich bedanke mich im vorraus :D
Hitbox
04/07/2010 - General Gaming Discussion - 16 Replies
Hallöchen. Kann mir wer sagen wie man die Größe der Hitboxn ändert? Vom Gefühl her müsste es die models.ini sein aber sicher bin ich mir nicht und wenn doch welche(n) Wert(e) muss man ändern? Bitte um Hilfe Thx



All times are GMT +1. The time now is 18:44.


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.