AutoHotkey scripts
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

93 lines
1.8 KiB

; Script can be directly run by or compiled into an .exe by the open-source software AutoHotkey
; https://www.autohotkey.com
;
; Front Matter
;
; Include general library
#Include ../lib/Prelude.ahk
#Include ../lib/Stopwatch.ahk
; Include ViGEm library
#Include ../thirdparty/AHK-ViGEm-Bus/AHK-ViGEm-Bus.ahk
; Create a new Xbox 360 controller
MyXbox := new ViGEmXb360()
; Make this a wrapper script
WrapperPath:="steam://rungameid/753640"
WrapperWindow:="Outer Wilds"
#Include ../lib/Wrapper.ahk
; Set percent to deflect by for fine controls
Defl := 40
; Create Gui for timer
Gui, +AlwaysOnTop -Caption +ToolWindow
Gui, Margin, 0, 0
Gui, Font, s20 CWhite
Gui, Color, Black
Gui, Add, Text, vStopwatchText +Center, 00:00
Gui, Show, NoActivate x0 y0, StopwatchGui
WinSet, TransColor, Black 100, StopwatchGui
StopwatchHide()
;
; Hotkeys
;
;
; Stopwatch
;
; Alt+F1: Show/Hide stopwatch
!F1::StopwatchToggleHidden()
#If not StopwatchHidden
; F1: Reset stopwatch
F1::StopwatchReset()
; F2: Start/stop stopwatch
F2::StopwatchToggle()
; F3: Rewind stopwatch 5 sec
F3::StopwatchRewind(5)
; F4: Fastforward stopwatch 5 sec
F4::StopwatchFastforward(5)
;
; Fine Controls
;
#If 1
; Reset all axes when capslock is pressed
~CapsLock::
MyXbox.Axes.LY.SetState(50)
MyXbox.Axes.LX.SetState(50)
MyXbox.Axes.RT.SetState(0)
MyXbox.Axes.LT.SetState(0)
return
; Fine control is active when caps lock is on
#If GetKeyState("CapsLock","T")
W::MyXbox.Axes.LY.SetState(50+Defl*.5)
W UP::MyXbox.Axes.LY.SetState(50)
S::MyXbox.Axes.LY.SetState(50-Defl*.5)
S UP::MyXbox.Axes.LY.SetState(50)
D::MyXbox.Axes.LX.SetState(50+Defl*.5)
D UP::MyXbox.Axes.LX.SetState(50)
A::MyXbox.Axes.LX.SetState(50-Defl*.5)
A UP::MyXbox.Axes.LX.SetState(50)
Space::MyXbox.Axes.RT.SetState(Defl*.16)
Space UP::MyXbox.Axes.RT.SetState(0)
Shift::MyXbox.Axes.LT.SetState(Defl*.16)
Shift UP::MyXbox.Axes.LT.SetState(0)