Last active
February 23, 2024 12:31
-
-
Save fabd/9dc65babcd3cfccc99eb21b785ea8cb0 to your computer and use it in GitHub Desktop.
Better Mouse Look Toggle functionality for EverQuest II (EQ2) than the one built in the game. The main difference is you can press the Interact key when facing an NPC or door or chest etc. without having to toggle off MouseLook first. Simply face an NPC or object and press the Interact key to start a dialogue or grab your loot - it works well. T…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;==================================================================== | |
; | |
; EverQuest II ( EQ2 ) Better Mouse Look Toggle | |
; | |
; | |
; INSTALL (do this once) | |
; 1. launch game, go to Options > Performance | |
; - UNCHECK "fullscreen" (we want "windowed" mode) | |
; - SELECT the desktop resolution | |
; 2. Exit game | |
; | |
; RUNNING GAME (each time you launch the game) | |
; 1. Run the script | |
; 2. Launch the game, wait for main window to be open | |
; 3. Right click the AHK icon in tray bar, select "ACTIVATE Fullscreen Borderless" | |
; (game window should move briefly, then it should be "on top" of the Windows task bar) | |
; | |
; KEYBINDS (ingame) | |
; | |
; To make use of the features, you have to rebind some keys: | |
; - Unbind TAB from "Select Next NPC" and "Select Previous NPC" (suggestion use 'x' and 'shift x') | |
; (unless you can be comfortable using another key for Mouse Look, then you can leave TAB | |
; for the Targetting, but whatever you bind to Toggle Mouse Look (in this script), will be | |
; unusable while typing in chat!) | |
; | |
; | |
; FEATURES | |
; Mouse Look: | |
; - Press TAB to toggle mouse look (relievs from holding down the right mouse button) | |
; - While Mouse Look, use Interract key to activate anything in the center of view | |
; (convenient to start a NPC dialog, or open a door, and exit Mouse Look at the same time) | |
; | |
; Use Ctrl-Tab in chat window to complete commands: | |
; - If we use Tab to mouse look, we lose ability to auto-complete commands in chat, to | |
; alleviate this problem, the script maps "Ctrl Tab" to the original TAB key behaviour. | |
; (eg. type /channell in chat, then press Ctrl-Tab, it should autocomplete to "/channellist") | |
; | |
; Press Ctrl Shift V to paste a /waypoint: | |
; - after copying a waypoint from eg. eq2.fandom.com, press Ctrl Shift V to activate it ingame. | |
; | |
; | |
; GOTCHAS | |
; - Watchout for "Color Correction" in game options. Any non-default values here will change | |
; the desktop's color settings when using windowed mode. In game "Color Correction" default | |
; values: 1, 1, 0, 1, 1, 1. | |
; | |
; | |
; KNOWN ISSUES | |
; - If Mouse Look is on, after Alt-tabbing the left mouse button doesn't work | |
; (solution: exit Mouse Look before alt-tab) | |
; | |
; | |
; | |
; IDEAS | |
; - Vim style command where you press Ctrl-D (example) and then the following | |
; letter to actiavte any shortcut. Eg "ctrl d" > "a", "ctrl d" > "b" | |
; (ideally, to do more things with the left hand, and not have to use keys | |
; on the right end of the keyboard) | |
; | |
; | |
;==================================================================== | |
#Persistent | |
#SingleInstance force | |
;==================================================================== | |
; CONFIGURABLE OPTIONS below: | |
;==================================================================== | |
; Mouse Look Toggle key (default: Tab) | |
Toggle_key = Tab | |
; The "Trigger default action" key in EverQuest 2 (Options > Controls > Command Keys) | |
Interract_Key = f | |
; The "Begin command" key ingame (Options > Controls > Chat Keys) | |
Chat_Slash_Command_Key = : | |
;==================================================================== | |
; END of configurable options. | |
;==================================================================== | |
; auto borderless, but do it just once | |
Borderless = 0 | |
; Misc initialization (don't change these) | |
mouselook = 0 | |
Hotkey,IfWinActive,ahk_class EQ2ApplicationClass | |
Hotkey,%Toggle_key%,ToggleMouseLook, UseErrorLevel 2 | |
Hotkey,%Interract_Key%,InterractKey, UseErrorLevel 2 | |
Hotkey,%Chat_Slash_Command_Key%,ActivateChatKey, UseErrorLevel 2 | |
;Menu, TRAY, NoStandard | |
Menu, Tray, Icon, %A_ScriptDir%/EQII.ico | |
Menu, TRAY, Add, "ACTIVATE Fullscreen Borderless", Yayfullscreen | |
Menu, TRAY, Add, "Exit", Quit | |
Return | |
Yayfullscreen: | |
if WinExist("ahk_class EQ2ApplicationClass") | |
{ | |
Borderless = 1 | |
GameWin = ahk_class EQ2ApplicationClass | |
WinActivate, %GameWin% | |
WinSet, AlwaysOnTop, On, %GameWin% | |
WinSet, AlwaysOnTop, Off, %GameWin% | |
if (!ErrorLevel) | |
{ | |
; -0xC00000 to remove title bar | |
; -0xC40000 to remove resize borders | |
WinMove, %GameWin%, , 0, 0 | |
WinSet, Style, -0xC40000, %GameWin% | |
WinMove, %GameWin%, , 0, 0, A_ScreenWidth, A_ScreenHeight | |
} | |
} | |
return | |
Quit: | |
ExitApp | |
Return | |
#IfWinActive ahk_class EQ2ApplicationClass | |
; '@' small key left of number 1 key & above Tab key ("tilde" on Qwerty keyboards) | |
; (add modifiers Shift & Alt because sometimes I meant to type "Shift 1" and press tilde key, | |
; which enables chat window and messes up combat) | |
$SC029:: | |
$+SC029:: | |
; Activate Interrupt skill | |
Send !& | |
Return | |
; Ctrl Shift V to quickly paste and activate a /waypoint copied from EQ2 wikis | |
$^+v:: | |
Send {Enter} | |
Sleep 10 | |
Send ^v | |
Send {Enter} | |
Soundbeep 350,100 | |
Return | |
; | |
$^Tab:: | |
Send {Tab} | |
Return | |
; While Mouse Look is active, allow LMB to "Interract" with anything at center of view, | |
; briefly, then re-activate Mouse Look (handy to open doors without leaving mouselook) | |
; $LButton:: | |
; if (mouselook == 1) | |
; { | |
; ReleaseMlook() | |
; Sleep, 10 | |
; ; Send {%Interract_Key%} | |
; Click left | |
; Sleep 10 | |
; Gosub ToggleMouseLook | |
; Return | |
; } | |
; Click down left | |
; KeyWait, LButton | |
; Click up left | |
; Return | |
ToggleMouseLook: | |
if (mouselook == 0) | |
{ | |
mouselook := 1 | |
DllCall("SetCursorPos", int, (A_ScreenWidth/2-4) , int, (A_ScreenHeight/2)) | |
Send {RButton down} | |
Sleep, 10 | |
Return | |
} | |
ReleaseMlook() | |
return | |
; The Interract hotkey allows us to send a left click in the middle of the view, | |
; without having to remember to turn off mouselook each time. | |
; | |
; We have to release the right mouse button (free look), otherwise RMB + LMB makes character walk forward. | |
; | |
InterractKey: | |
if (mouselook == 1) | |
{ | |
ReleaseMlook() | |
; Handy, but sometimes annoying behaviour | |
Sleep, 10 | |
Click left | |
Sleep, 10 | |
; We REPLACE the "interract" with a "left click in the center of the view" | |
Return | |
} | |
; If not using mouselook, let the key through -- otherwise can't use that key in chat... | |
Send {%Interract_Key%} | |
Return | |
; Release mouselook when activating chat window, because TAB can be used to complete /commands | |
ActivateChatKey: | |
ReleaseMlook() | |
Send {%Chat_Slash_Command_Key%} | |
Return | |
ReleaseMlook() | |
{ | |
global mouselook | |
if (mouselook == 1) | |
{ | |
; SoundBeep,,50 | |
mouselook := 0 | |
Send, {RButton UP} | |
} | |
} | |
; Release the Right Mouse Button when switching focus away from the game window | |
; (otherwise the left mouse button somehow doesn't register outside of the game) | |
~!TAB:: | |
~^!DEL:: | |
ReleaseMlook() | |
Return | |
~LWin:: | |
ReleaseMlook() | |
Send, {LWin} | |
Return | |
~RWin:: | |
ReleaseMlook() | |
Send, {RWin} | |
Return |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment