diff --git a/bash-dash.ahk b/bash-dash.ahk new file mode 100644 index 0000000..8ab5930 --- /dev/null +++ b/bash-dash.ahk @@ -0,0 +1,94 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; IMPROVED BASH DASH SCRIPT ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; By monorail +; +; Performs inputs for a bash dash when a keyboard key bound to "Menu Click" is pressed +; Holds "Slow Mo" key until that key is released +; Presses "Inventory" key when that key is released +; +; To use: +; - In Heat Signature, bind "Menu Click" to the key you want to use for bash dashing +; - You don't have to unbind left click +; - Chosen because I expect it's not used very much +; - When ready to bash dash, go into throw mode with your melee weapon in slot 1 +; - Press and hold the key you bound to "Menu Click". A bash dash will be performed in slow motion +; - Release the key when the bash dash is complete. Slow motion will end and the inventory menu will pop up again +; +; If you ever change your keybinds, you will have to reload this script + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; The rest of this file is code ; +; If you just want to use the ; +; script then you can stop reading ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; -2 = Not yet found +; -1 = Next keybind definition is for this control +; Else = Keycode found +InventoryKey := -2 +MoveKey := -2 +SlowMoKey := -2 +BashDashKey := -2 + +; Parsing controls directly out of the Heat Sig control config file +Loop, read, %APPDATA%\Heat_Signature\Controls.txt +{ + ; If we reach the name of a control we care about, + ; remember that we reached it, so we can save the + ; keycode next time we see one + If InStr(A_LoopReadLine, "Name = ") + { + ControlName := SubStr(A_LoopReadLine, 8) + If (ControlName == "Inventory") + { + InventoryKey := -1 + } + If (ControlName == "Move Left") + { + MoveKey := -1 + } + If (ControlName == "Slow Mo") + { + SlowMoKey := -1 + } + If (ControlName == "Menu Click") + { + BashDashKey := -1 + } + } + + ; If we reach a keycode, if we just saw the name + ; of a control we care about, save that keycode + If InStr(A_LoopReadLine, "KeyboardButton = ") + { + ControlKey := GetKeyName(Chr(SubStr(A_LoopReadLine, 18))) + If (InventoryKey == -1) { + InventoryKey := ControlKey + } + If (MoveKey == -1) { + MoveKey := ControlKey + } + If (SlowMoKey == -1) { + SlowMoKey := ControlKey + } + If (BashDashKey == -1) { + BashDashKey := ControlKey + } + } +} + +SendMode Input + +#If WinActive("ahk_exe heat_signature.exe") + +Hotkey, %BashDashKey%, BashDashLabel +Return + +BashDashLabel: + Send, {Click}{%MoveKey%} + Send {%SlowMoKey% down} + KeyWait %BashDashKey% + Send {%SlowMoKey% up} + Send {%InventoryKey%} +Return \ No newline at end of file