Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Requires AutoHotkey v2.0
- #SingleInstance
- SetKeyDelay 0, 0
- A_HotkeyInterval := 0
- SendMode "input"
- CoordMode "tooltip", "screen"
- #R::reload
- #UseHook 1
- keys := ["Numpad0", "2", "3", "4", "5"]
- ak := [0,0,0,0,0]
- lastAk := 0
- *Numpad0:: {
- global
- lastAk := 1
- setAk(1)
- KeyWait "Numpad0"
- setAk(5)
- lastAk := 0
- }
- *2:: {
- global
- lastAk := 2
- setAk(2)
- KeyWait "Numpad0"
- setAk(5)
- lastAk := 0
- }
- *3:: {
- global
- lastAk := 3
- setAk(3)
- KeyWait "Numpad0"
- setAk(5)
- lastAk := 0
- }
- *4:: {
- global
- lastAk := 4
- setAk(4)
- KeyWait "Numpad0"
- setAk(5)
- lastAk := 0
- }
- *5:: {
- global
- lastAk := 0
- setAk(5)
- KeyWait "Numpad0"
- setAk(5)
- lastAk := 0
- }
- SetTimer(updateKeys, 1)
- *Left:: {
- global
- Send "{Left down}"
- akCount := 0
- loop ak.length
- akCount += ak[A_Index]
- if (akCount == 2) {
- akPair := getAks()
- if (lastAk != akPair[2])
- setAk(akPair[2])
- } else if (akCount == 1) {
- setAk(getAks()[1], 1)
- }
- }
- updateKeys() {
- global
- akCount := 0
- loop keys.length {
- state := GetKeyState(keys[A_Index], "P")
- ak[A_Index] := state
- akCount += state
- }
- if (getKeyState("Left", "P")) {
- Send "{Left down}"
- aks := getAks()
- if (akCount == 2) {
- if (lastAk != aks[2])
- setAk(aks[2])
- }
- } else {
- aks := getAks()
- if (akCount == 2) {
- if (lastAk != aks[1])
- setAk(aks[1])
- } else {
- Send "{Left up}"
- }
- }
- if (getKeyState("Right", "P")) {
- Send "{Right down}"
- aks := getAks()
- if (akCount == 2) {
- if (lastAk != aks[2])
- setAk(aks[2])
- }
- } else {
- aks := getAks()
- if (akCount == 2) {
- if (lastAk != aks[1])
- setAk(aks[1])
- } else {
- Send "{Right up}"
- }
- }
- }
- getAks() {
- global
- akPair := []
- loop ak.length {
- if (ak[A_Index])
- akPair.push(A_Index)
- }
- return akPair
- }
- press(key) {
- Send "{" key " down}"
- pause 1
- Send "{" key " up}"
- pause 0
- }
- setAk(key, safe := False) {
- global
- lastAk := key
- if (safe)
- press(keys[5])
- press(keys[key])
- }
- ;setTimer(info, 50)
- info() {
- global
- tooltip ak[1] "`n" ak[2] "`n" ak[3] "`n" ak[4] "`n" ak[5], 10, 10
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement