Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 12:03

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

Advertisement



Funktionslimitierung auf Maximal vorgegebene Anzahl?

Discussion on Funktionslimitierung auf Maximal vorgegebene Anzahl? within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jul 2005
Posts: 71
Received Thanks: 4
Funktionslimitierung auf Maximal vorgegebene Anzahl?

Kurze Vorgeschichte was ich "bewältigen" will:
Ich habe ein Script für ein Browsergame bei dem ich seit Jahren immermal wieder was dazupacke oder rausnehme um mir eben das immense geklicke zu sparen (Alles Simple ControlClick und MouseClick befehle, dennoch is das komplette Script wsl. etwas verwirrend für aussenstehende, da eben nicht sonderlich sortiert)
und aktuell will ich was hinzufügen dass eine Art Rohstoffsuche via Buttonklick ausführt.

Diese Suche ist abhängig von den Suchern. Sind diese bereits auf der Suche, hat deren Icon im Menü eine andere Farbe als wenn sie verfügbar sind (hab ich prinzipiell schon mit "PixelGetColor" gelöst).
Nun Soll mein script das Menü Öffnen und via PixelGetColor Scan überprüfen welche gerade verfügbar sind und diese dann via ner bestimmten Func auf suche schicken soll.

Es sind 21 Sucher gegeben, die je nach Art verschiedene Farben haben wenn sie Aktiv sind(gibt Verbesserte und Normale), da ich aber nicht alle auf die gleiche Suche schicken will, bräuchte ich eine Limitierung auf die jeweils gewünschte Menge, und hier beissts bei mir grade aus.

Die folgende Funktion ist 21x mal verhanden, wobei sich jeweils das "Slotx" auf den ensprechenden Slot des Suchers ändert (Slot1, Slot2 etc, ebenso die PixelGetColor Coordinaten), die Farbvorgaben in der Funktion stehen für die Farbvariationen der Aktiven Sucher auf der jeweiligen Koordinate.
"_Menu()" und "_Rohstoffsuche()" sind vorher natürlich definiert.

Code:
Func _RohstoffSucheSlotx()
   if(0xE69A63 = PixelGetColor($Slot20x, $Slot20y)) Then 
	   _Menu() ; Öffnet das Menü
	   _Rohstoffsuche() ;Funktion für die Rohstoffsuche
   ElseIf(0xF6A275 = PixelGetColor($Slot20x, $Slot20y)) Then
	   _Menu()
	   _Rohstoffsuche()
   ElseIf(0x30120A = PixelGetColor($Slot20x, $Slot20y)) Then
	   _Menu()
	   _Rohstoffsuche()
   ElseIf(0xB95E42 = PixelGetColor($Slot20x, $Slot20y)) Then
	   _Menu()
	   _Rohstoffsuche()
   EndIf
EndFunc
Ich habe vier Farbchecks eingebaut, da die Position der Sucher im Menü variiert und sich daher die Farbe an der gegebenen Koordinate ändert.

Diese einzelnen Funktionen sind wiederrum in eine "Finale" Funktion gepackt, die dann auf einen Button gelegt wird.

Code:
Func _Finde9Gestein()
	_Menu(); Muss geöffnet werden da sonst Falsche Farben gelesen werden
	_RohstoffsucheSlot1()
	_RohstoffsucheSlot2()
	_RohstoffsucheSlot3()
	_RohstoffsucheSlot4()
	_RohstoffsucheSlot5()
	_RohstoffsucheSlot6()
	_RohstoffsucheSlot7()
	_RohstoffsucheSlot8()
	_RohstoffsucheSlot9()
	_RohstoffsucheSlot10()
	_RohstoffsucheSlot11()
	_RohstoffsucheSlot12()
	_RohstoffsucheSlot13()
	_RohstoffsucheSlot14()
	_RohstoffsucheSlot15()
	_RohstoffsucheSlot16()
	_RohstoffsucheSlot17()
	_RohstoffsucheSlot18()
	_RohstoffsucheSlot19()
	_RohstoffsucheSlot20()
	_RohstoffsucheSlot21()
EndFunc
Mit dieser Funktion schickt das Script aber alle 21 Sucher auf die Gleiche Suche (Sofern alle verfügbar sind), der Grundgedanke ist es aber nur Maximal 9 Sucher auf die Bestimmte Suche zu schicken.

Sprich:
Code:
Eine der Vier Farben an Pos1? -> Ja, dann Suche starten
                              -> Nein, dann Pos2 nach Farbe checken
Eine der Vier Farben an Pos2? -> Ja, dann Suche starten
                              -> Nein, dann Pos3 nach Farbe checken
usw. usw. Jedoch eben Maximal 9 mal Suche Starten
Dass das so nicht funktionieren kann ist mir auch bewusst, ich weiss nur leider nicht wie ich das hinkriege und bin hier seit paar tagen kurz davor in meinen Tisch zu beissen ;D

Könnt ihr mir dabei vielleicht weiterhelfen? Braucht ihr dabei noch weitere infos oder reicht das soweit? Ist das ding von Grund auf Falsch aufgebaut? Ist das überhaupt möglich?
Soviele Fragen grade... ^^
-=MistaBlista=- is offline  
Old 01/27/2017, 21:49   #2


 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
Also.. die Funktion _RohstoffsucheSlotX() musst du natürlich nicht 21x schreiben, sondern nur ein mal. Sagen dir Array und Parameter was?
Zu deinem Problem: wenn du max. 9 Leute wegschicken willst, dann zähl doch in einer Variable mit, wie viele du schon geschickt hast und führ die Funktion(en) nicht mehr aus, sobald die Variable >= 9 ist.
Moneypulation is offline  
Old 01/27/2017, 21:53   #3
 
elite*gold: 0
Join Date: Jul 2005
Posts: 71
Received Thanks: 4
Sagen mir grob was, hab aber noch nie damit gearbeitet!
Wenn du mir sagen kannst wie das mitzählen funktioniert ^^

Mir reicht meistens ein kleines beispiel, dann kann ich das entsprechend umwandeln wie ich es brauch
-=MistaBlista=- is offline  
Old 01/27/2017, 22:59   #4


 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
PHP Code:
Global $SlotX[21] = [ $Slot1x $Slot2x $Slot3x usw.. ] ; Hier kommen all deine Slotx Werte rein
Global $SlotY[21] = [ $Slot1y $Slot2y $Slot3y usw.. ] ; Hier die Y Werte
Global $counter Zählervariable am Anfang auf 0 setzen

Func _Finde9Gestein
()
    
_Menu()
    For 
$i 0 To UBound($SlotX)-1 Step 1 ; For-Schleife geht durch das ganze Array
        If 
$counter >= 9 Then
            ConsoleWrite
("9 Truppen bereits geschickt. Stoppe.." &  @CRLF)
            
$counter Zählervariable wieder auf 0 setzen für das nächste malwenn die Funktion aufgerufen wird
            ExitLoop 
ExitLoop bricht die Schleife ab
        
EndIf
        
RohstoffsucheSlotX($SlotX[$i],$SlotY[$i]) ; Wenn die If-Bedingung nicht erüfllt wurdeheißt dasdass du noch Truppen schicken kannst
    Next
EndFunc

Func RohstoffsucheSlotX
($x,$y)
    
$color PixelGetColor($x,$y) ; PixelGetColor brauchst du nur 1x aufrufen
    
; Die Else-If Pfade kannst du dir mit der Or Verknüpfung sparen
    
If (0xE69A63 $color) Or (0xF6A275 $color) Or (0x30120A $color) Or (0xB95E42  $colorThen
       _Menu
() ; Öffnet das Menü
       _Rohstoffsuche
() ;Funktion für die Rohstoffsuche
       $counter 
+= Immer wenn du Truppen schickst, die Zählervariable um 1 erhöhen
   
EndIf
EndFunc 
Moneypulation is offline  
Thanks
2 Users
Reply


Similar Threads Similar Threads
Anzahl Hacker
10/10/2014 - CrossFire - 1 Replies
Huhu Habe das Spiel sicherlich seit 4-5 Jahren nicht mehr gespielt und habe mich gewundert, ob es immer noch "viele" Hackers gibt (im Vergleich zu anderen MMOFPS wie Warrock ja nicht wirklich viel) oder ob Patches gegen die Hacker unternommen wurden?
Anzahl der Erweckungen
10/03/2013 - Flyff Private Server - 3 Replies
Wie kann man die Anzahl der Erweckungen ändern? Beim Blessing of Godness werden zufallsbedingt pro Erweckung 1-3 Erweckungen gemacht.(Bsp. INT, STA, INT) Aber wie kann man das ändern, sodass nur noch maximal und minimal 1 Erweckung darauf statt findet?
Download-Anzahl
08/04/2013 - Web Development - 22 Replies
Hallo, ich habe zwar "gegoogled", aber da das eher für fortgeschrittener Anwender ist, frage ich einfach mal hier. Und zwar möchte ich, dass wenn man auf *Download* klickt, es die Spalte Anzahl der Downloads: um eins erhöht. Um es einfach zu schreiben: Ich suche einen Download-Zähler! Wenn es geht vielleicht noch mit ajax, damit es direkt erhöht. Wenn es nicht geht, natürlich auch ohne.
Download-Anzahl
08/03/2013 - Web Development - 6 Replies
Hallo, ich habe zwar "gegoogled", aber da das eher für fortgeschrittener Anwender ist, frage ich einfach mal hier. Und zwar möchte ich, dass wenn man auf *Download* klickt, es die Spalte Anzahl der Downloads: um eins erhöht. Um es einfach zu schreiben: Ich suche einen Download-Zähler! :cool: Wenn es geht vielleicht noch mit ajax, damit es direkt erhöht. Wenn es nicht geht, natürlich auch ohne.
Online Anzahl!!
01/23/2010 - Metin2 Private Server - 4 Replies
Hallo, Wie und Wo kann ich kuken wieviele Member auf meinem server gerade Zoggen (Online sind ingame)



All times are GMT +2. The time now is 12:03.


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