Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; rebind TAB to Fire / Pod Fire, leaving LShift unbound in the game
- #UseHook
- SendMode Input
- ; precise delays
- global keypressDelay, doubletapDelay, sequenceDelay, dodgeTime, fireToggle
- keypressDelay := 50 ; delay between keydown/keyup
- doubletapDelay := 150 ; wait time between keypresses to perform doubletap
- sequenceDelay := 50 ; wait time between various sequences
- dodgeTime := 300 ; cooldown while dodge animation plays, setting it too small will cause derps when holding SHIFT+WSAD.
- fireToggle := 0
- press(key) {
- Send {Blind}{%key% down}
- Sleep keypressDelay
- Send {Blind}{%key% up}
- }
- ; it's a dodge into run, it sends additional keydown after doubletap, so you can smoothly shift into running state after dodge is finished
- dodge(key) {
- Send {Blind}{%key% up} ; stop running first in case we were
- Sleep sequenceDelay
- press(key)
- Sleep doubletapDelay
- press(key)
- Sleep sequenceDelay
- Send {Blind}{%key% down}
- }
- ; the complexity of this script is mostly to handle continuous SHIFT+WSAD. It's easy to handle just a single SHIFT tap, but less easy when you hold it down.
- handleDodge(dir) {
- BlockInput Send
- if (dir = "fwd") {
- dodge("w")
- } else if (dir = "back") {
- dodge("s")
- } else if (dir = "left") {
- dodge("a")
- } else if (dir = "right") {
- dodge("d")
- }
- Sleep dodgeTime
- if (GetKeyState("w") && !GetKeyState("w", "P")) {
- Send {w up}
- }
- if (GetKeyState("s") && !GetKeyState("s", "P")) {
- Send {s up}
- }
- if (GetKeyState("a") && !GetKeyState("a", "P")) {
- Send {a up}
- }
- if (GetKeyState("d") && !GetKeyState("d", "P")) {
- Send {d up}
- }
- BlockInput Default
- }
- #IfWinActive, NieR:Automata
- ; fire toggle
- $Tab::
- if (GetKeyState("Tab")) {
- Send {Tab up}
- } else {
- Send {Tab down}
- }
- fireToggle := GetKeyState("Tab") ; var is used in other places
- Return
- ; script behaves better when standard shift+WSAD output is blocked
- +w::
- +s::
- +a::
- +d::
- Return
- ; dodges, work when you press/hold LShift while already holding WSAD
- ~*LShift::
- while (GetKeyState("LShift", "P")) {
- if (GetKeyState("w", "P")) {
- handleDodge("fwd")
- } else if (GetKeyState("s", "P")) {
- handleDodge("back")
- } else if (GetKeyState("a", "P")) {
- handleDodge("left")
- } else if (GetKeyState("d", "P")) {
- handleDodge("right")
- }
- Sleep, 10
- }
- Return
- ; air slide, normally executed with pod fire + jump
- *z::
- BlockInput Send
- if (GetKeyState("Space")) {
- Send {Space up}
- }
- if (fireToggle) {
- Send {Tab up} ; release pod fire button before doing the stuff
- }
- Sleep sequenceDelay
- Send {Tab down}
- Send {Space down}
- Sleep keypressDelay
- Send {Space up}
- Send {Tab up}
- Sleep sequenceDelay
- ; press back what we released
- if (fireToggle) {
- Send {Tab down}
- }
- if (GetKeyState("Space", "P")) {
- Send {Space down}
- }
- BlockInput Default
- Return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement