So, heute mal etwas AutoIt.
Mein Hintergrund: Cursed Treasure ist, mal abgesehen von den letzten 2 Level nicht sonderlich schwer. In diesen 2 letzten Spielen allerdings wird man praktisch gezwungen sehr schnell zu klicken. Es gibt in dem Spiel 3 Skills aber diese haben keine Tastenkürzel. Man muss tatsächlich immer drauf klicken.
Um das Problem schnell zu beheben habe ich mir eine neue Funktion in AutoIt gesucht:
HotKeySet("[kürzel]", "[funktion]")
Mit dem Code kann man eine Überwachung starten, die auf eine bestimmte Tastenkombination eine bestimmte Funktion startet.
Ein Beispiel:
HotKeySet("!c", "meteor") ; Überwache ALT+C
Func meteor()
$coords = MouseGetPos() ; Speichere aktuelle Position
MouseClick("left",1030,600,1,1) ; Koordinaten des Skills
MouseClick("left",$coords[0],$coords[1],1,1) ; Skill auf der gespeicherten Position nutzen
EndFunc
; Script am Leben halten
while 1
sleep(100000000)
WEnd
Mein WordPress Syntax Highlighting Plugin kennt sogar AutoIt, nicht schlecht.
Jedenfalls reagiert Zeile 1 auf die Tastenkombination ALT+C. Alt wird dabei zu einem „!“, mehr dazu auf der Send() Infoseite von AutoIt.
Beim Drücken dieser Tasten wird die meteor Funktion aufgerufen. Diese speichert die aktuellen Mauskoordinaten, klickt eine feste Stelle des Bildschirms an und klickt danach wieder auf der Stelle, auf der die Maus stand, als die Tastenkombination gedrückt wurde.
Ich stelle also die Koordinaten des Meteor Skills ein, führe die Maus über ein Zielobjekt (jetzt mal rein theoretisch z.B. einen Wave 40 unsichtbaren Ninja Champion aus Level 15) und drücke die Tastenkombination. Die Maus speichert den Ort, klickt auf den Skill und führt diesen an der alten Stelle aus. Das ganze dauert nur wenige Millisekunden 🙂
Zeile 10-12 sorgen dafür, dass das Script endlos lange läuft und man beliebig oft die Tastenkombinationen nutzen kann.
So sähe also ein kleines Cursed Treasure Script aus:
HotKeySet("!{SPACE}", "wave")
HotKeySet("!y", "wood")
HotKeySet("!x", "haste")
HotKeySet("!c", "meteor")
Func wave()
$coords = MouseGetPos()
MouseClick("left",970,450,1,1)
MouseClick("left",$coords[0],$coords[1],1,1)
EndFunc
Func wood()
$coords = MouseGetPos()
MouseClick("left",920,600,1,1) ;
MouseClick("left",$coords[0],$coords[1],1,1)
EndFunc
Func haste()
$coords = MouseGetPos()
MouseClick("left",1135,773,1,1)
MouseClick("left",$coords[0],$coords[1],1,1)
EndFunc
Func meteor()
$coords = MouseGetPos()
MouseClick("left",1030,600,1,1)
MouseClick("left",$coords[0],$coords[1],1,1)
EndFunc
while 1
sleep(100000000)
WEnd
Neue Wave mit Alt+Leertaste, Alt+Y/X/C nutzen die 3 Skills. Koordinaten anpassen ist aber Voraussetzung.
Das ganze ließe sich auf weniger als 10 Zeilen zusammenstampfen und statt Koordinaten vielleicht mit Farberkennung verallgemeinern aber war ja nur so ein kleiner Spaß.