Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- CHANGELOG:
- 2021-10-23
- - removed keys that are used inside barrel menus, to avoid unwanted 2nd clicks in them:
- "q::", "r::", "f::"
- 2021-10-22
- - commented out "q::"
- 2021-10-21
- - added function "UndoActiveToggle()"
- - inserted function "UndoActiveToggle()" to relevant keys
- - minor refactor to toggle off keys
- - changed "k" to "NumpadDiv" (/) to avoid toggle while text-chatting
- 2021-10-18
- - added "Enter::" toggle off when pressing chat
- - added "r::", "LAlt::" toggle off when interacting
- 2021-10-16
- - added "LWin::" toggle off when tabbing out
- 2021-10-10
- - removed #UseHook
- - added extra sprint hotkey "LCtrl::LShift" so that I can sprint with my thumb too
- - "k" has been changed to "toggle := 1", "g" remains as is
- ***************************************************************************************
- This script exists to help people with repetitive strain injuries to their hands.
- It's a better Reduce Hold on Items, essentially.
- Each ingame shortcut has its own keybind below, clearly commented.
- Change these as fits you. See AHK documentation List of Keys for button names:
- https://www.autohotkey.com/docs/KeyList.htm
- Some of these keybinds will toggle Click-to-Hold on, others will not.
- You can customize by changing the "0" and "1" of each "toggle :="
- Sometimes you may wish to cancel the hold for a shortcut that turns it on.
- Both "g" and "NumpadDiv" serve this purpose, with "g" also stowing the item ingame.
- These will both deactivate the toggle and also undo an ongoing hold.
- Remember that you can customize these to be whatever key you want instead.
- While holding with one button, you can click the other button without losing that hold.
- ******************************************************
- MAKE SURE YOU TURN OFF "Reduce Hold on Items" IN GAME!
- ******************************************************
- ***********
- TO INSTALL,
- ***********
- download and install AutoHotkey from https://www.autohotkey.com/
- Then rightclick desktop, create new AHK script, and paste everything into it.
- You can then double click the script, every time you play SoT, or add a shortcut
- to the script into your Startup folder to have it start with Windows.
- *****
- NOTES
- *****
- I use ESDF to move instead of WASD, as this gives me additional keys for shortcuts.
- One problem with using this script is that you can't adjust ingame what keys you want to
- navigate barrels with, and these navigation keys should not be keys used in the script,
- as they may cause unwanted clicks inside those barrels.
- For example, "r" opens barrels, but also shifts single items between the inventories.
- If i bind "r" in the script, then clicking "r" within a barrel will send a second click,
- moving two items instead of one. Not really a major issue, but can be annoying.
- */
- #NoEnv
- SendMode Input
- SetWorkingDir %A_ScriptDir%
- /*
- **********************************************************************************
- */
- ~LWin:: ;tab out - toggle off in called function
- UndoActiveToggle()
- return
- #If WinActive("ahk_exe SoTGame.exe") ;all keys below only work while SoT is focused
- ~Ctrl::LShift ;second sprint keybind for thumb on custom keyboards, can still sprint with LShift
- ~NumpadDiv:: ;unconditional toggle on, active holds not interrupted
- toggle := 1
- return
- ~LAlt:: ;interact - toggle off in called function
- UndoActiveToggle()
- return
- ~Enter:: ;chat - toggle off in called function
- UndoActiveToggle()
- return
- ~g:: ;stow item - toggle off in called function
- UndoActiveToggle()
- return
- ~1:: ;fishing rod
- toggle := 0
- MBStateCheck()
- return
- ~2:: ;shovel
- toggle := 0
- MBStateCheck()
- return
- ~3:: ;instrument
- toggle := 1
- MBStateCheck()
- return
- ~4:: ;compass
- toggle := 1
- MBStateCheck()
- return
- ~5:: ;clock
- toggle := 1
- MBStateCheck()
- return
- ~w:: ;food
- toggle := 0
- MBStateCheck()
- return
- ~t:: ;lantern
- toggle := 1
- MBStateCheck()
- return
- ~a:: ;bucket
- toggle := 0
- MBStateCheck()
- return
- ~z:: ;spy glass
- toggle := 1
- MBStateCheck()
- return
- ~x:: ;plank
- toggle := 0
- MBStateCheck()
- return
- ~v:: ;megaphone
- toggle := 1
- MBStateCheck()
- return
- ~b:: ;tankard
- toggle := 1
- MBStateCheck()
- return
- ~WheelUp:: ;throwables
- toggle := 0
- MBStateCheck()
- return
- ~WheelDown:: ;cannonballs
- toggle := 1
- MBStateCheck()
- return
- ~XButton1:: ;Weapon 1
- toggle := 0
- MBStateCheck()
- return
- ~XButton2:: ;Weapon 2
- toggle := 0
- MBStateCheck()
- return
- /*
- ************************************
- DO NOT MAKE CHANGES BELOW THIS LINE, unless you perfectly understand this macro.
- ************************************
- */
- ;handle toggled behavior for left and right click
- #if toggle && WinActive("ahk_exe SoTGame.exe")
- LButton::
- Send, {LButton Down}
- toggle := 0
- return
- RButton::
- Send, {RButton Down}
- toggle := 0
- return
- #if
- ;if left/right mouse button NOT held physically, macro stop holding now.
- MBStateCheck() {
- if !GetKeyState("LButton", "P")
- Send, {LButton Up}
- if !GetKeyState("RButton", "P")
- Send, {RButton Up}
- return
- }
- ;undo active toggle
- UndoActiveToggle() {
- if toggle
- toggle := 0
- Send, {LButton Up}
- Send, {RButton Up}
- return
- }
Advertisement
Add Comment
Please, Sign In to add comment