WallE92 wrote: ↑26 Apr 2021, 12:35
SYnCR wrote: ↑26 Apr 2021, 07:40
WallE92 wrote: ↑26 Apr 2021, 07:07
Hallo
ich bräuchte eure Hilfe und zwar würde ich beim Zocken gerne die Mausbewegung statt den Pfeiltasten verwenden können, also dass die Maus als eine Art Joystick fungiert.
Habt ihr eine Idee, ob bzw. wie man das in AHK umsetzen könnte.
Bin für jeden Tipp dankbar!
Hey - WallE92,
konnte es jetzt nicht testen - aber müsste so in der Art funktionieren.
Code: Select all
repeat(keys, delay := 80) {
send % keys
sleep % delay
}
loop {
mousegetpos _x,_y
wingetpos ,,,_w,_h
while (_x * _y < 1250)
repeat("{left}{up}")
while (_x < 25) && (_y > (_h - 25))
repeat("{left}{down}")
while (_x > (_w - 25)) && (_y < 50)
repeat("{right}{up}")
while (_x > (_w - 25)) && (_y > (_h - 25))
repeat("{right}{down}")
while (_x < 25)
repeat("{left}")
while (_x > (_w - 25))
repeat("{right}")
while (_y < 50)
repeat("{up}")
while (_y > (_h - 25))
repeat("{down}")
sleep 200
}
Erstmal vielen lieben Dank, dass für die Hilfe! Muss gesehen, hab zwar schon paar AHK Scripts geschrieben, aber für mich ist der Code trotzdem chinesisch. Momentan wird bei einem Mausklick eine Endlosschleife ausgelöst und die Taste {down} kriegt solange einen Impuls, bis es nicht weiter runter geht oder man das Script killt.
Allerdings reagiert es leider noch gar nicht auf meine Mausbewegung. Ne Idee woran das liegen könnte?
Danke!
hallo WallE92,
habe gestern das mal kurz mit diablo3 getestet.
Ist jetzt auf Full-HD Rez eingestellt.
Die Maus wird in 4 Bereiche des Monitors getrackt und je nach Bereich wird beim halten der F1-Taste (WASD) repeatet.
Hoffe das hilft dir.
MFG SYnCR
Code: Select all
; get current mouse area and send correspond key
; press F1 and move mouse
CoordMode, Mouse, Screen
CoordMode, ToolTip, Screen
; for debug
SetTimer, tm_get_area, 100
; center position define(memo: my machine is 1920/1080)
pixx := 1920
pixy := 1080
basex := pixx/2
basey := pixy/2
return
tm_get_area:
get_area()
return
get_area() {
Global basex, basey
MouseGetPos, cx, cy
cur_rad := Atan((basey-cy)/(basex-cx)) * 180 / 3.141592653589793
if (cx >= basex) {
cur_rad360 := cur_rad + 90
} else {
cur_rad360 := cur_rad + 270
}
; ToolTip, %cur_rad360%, basex, basey+20, 1
dx := (basex-cx)
dy := (basey-cy)
cur_area := get_area_id(cur_rad360)
ToolTip, Area: %cur_area%, basex, basey, 2
return cur_area
}
get_area_id(rad) {
if (rad < 60) {
return 1
}
if (rad < 120) {
return 2
}
if (rad < 240) {
return 3
}
if (rad < 300) {
return 4
}
return 1
}
F1:: ; <-- fixed
area := get_area()
if (area=1)
key=w
if (area=2)
key=d
if (area=3)
key=s
if (area=4)
key=a
Send, {%key% Down}
; Release key previous pressed
if (prevkey != key) {
Send, {%prevkey% Up}
prevkey := key
}
return
F1 Up::
Send, {%prevkey% Up}
return
[Mod edit: quote tags replaced with [code][/code] tags.]