Quote:
Originally Posted by kumpel100
gibt es einen Speicherauslesenden Loot Bot der die Taste F drückt sobald "Durchsuchen" erscheint?
Habe es selbst mit IMG und Pixelsearch versucht, beides ist zu langsam.
wäre um Antworten dankbar.
|
Stellt sich die Frage warum es "zu langsam" ist.
Im Prinzip ist Pixelsearch schnell genug für deine zwecke, wir reden von wenigen Milisekunden, das merkst du garnicht.
da du aber meinst es ist zu langsam, wirst du wahrscheinlich schlichtweg den kompletten Bildschirm gescannt haben, nach einen viel zu großen Muster und mit absoluter Genauigkeit.
Das ist klar, das ist quark, das willst du garnicht und brauchst du gar nicht.
Beispiel in AutoIT mit PixelChecksum:
Code:
AutoItSetOption("PixelCoordMode", 2) ;relative to client
HotKeySet("{End}", "_exit")
Func _exit()
Exit 1
EndFunc
HotKeySet("{PAUSE}", "_pause")
Global $isPaused = false
Func _pause()
$isPaused = NOT $isPaused
if ($isPaused == true) Then
ToolTip("paused",0,0) ;display paused tooltip
While $isPaused == true
;paused loop
WEnd
ToolTip("") ;remove tooltip if no longer paused
EndIf
EndFunc
Global $title = "Guild Wars 2"
Global $hwnd = WinGetHandle($title)
if (NOT $hwnd) Then
MsgBox("", "Error", "No window found with title " & $title)
Exit 2
EndIf
Func _checkForLoot()
;~ Scans for the Loot Icon for direct match
local $checkSumForLoot = "1848261822"
local $pixelCheckSum = PixelChecksum(1238, 689, 1253, 709, 1, $hwnd)
;~ ToolTip("CheckSum = " & $pixelCheckSum, 0, 0)
if ($pixelCheckSum = $checkSumForLoot) Then
_loot()
EndIf
EndFunc
Global $lootKey = "f"
Func _loot()
ControlSend($hwnd, "", "", $lootKey)
EndFunc
While True
_checkForLoot()
WEnd
Das CheckForLoot muss man eben entsprechend anpassen, je nach Auflösung das man das Icon bekommt für den Loot wenn man eben F drücken will.
Die Geschwindigkeit ist wie gesagt im Millisekunden bereich.
Damit es wirklich funktioniert muss man etwas aufpassen das man keine Checksum erzeugt mit durchsichtigen teilen, die sind natürlich nicht immer identisch.
Die Checksum muss aber auch nur einen kleinen bereich abdecken.
Es geht natürlich auch mit Pixelsearch, aber auch hier sollte man die Suche auf einen kleinen bereich beschränken, den kompletten Bildschirm zu scannen ist zeitaufwendiger und schlichtweg unnötig.