Тема: AHK: зависает отправление текстовых сообщений в GTA5 RP
Игра GTA5 RP RAGE Multiplayer 1.1
Есть простой скрипт для отправки сообщений в игровой чат. Запускаю игру и скрипт. Играю в игру, и когда надо по геймплею, нажимаю горячие клавиши скрипта. Скрипт нажимает клавишу F6, которая открывает игровой чат, и затем отправляет сообщение, но через несколько минут игры скрипт зависает и не работает.
В процессе игры в основном нажимаются клавиши W, A, S, D, LShift, E, R, I, M, Esc. Когда скрипт зависает то, по нажатию горячей клавиши, в игре ничего не происходит, либо открывается игровой чат, но сообщения не печатаются.
Если открыть игровой чат руками, то тоже нельзя напечатать сообщение. Если нажать Alt+Tab и перейти в другое приложение, например ScITE4AutoHotkey или веб-браузер, или любое другое то, приложение будет работать некорректно пока не закроется скрипт.
Другие скрипты, связанные с нажатием игровых клавиш, движений мыши, кликов ЛКМ/ПКМ, например на стрельбу, или на выполнение игровых заданий работают без сбоев. Но не скрипт на отправку сообщений.
Может, вы сталкивались с такой проблемой, в этой конкретной игре, или в подобных играх?
В скрипте два десятка горячих клавиш отправляющих сообщения, и столько же строк автозамены.
SendInput, {F6}^{V}{Enter} для игры слишком быстро,
но принимает:
SetKeyDelay, 100
Send, {F6}{LCtrl Down}{V}{LCtrl Up}{Enter}
между сообщениями просит задержку минимум в 1 секунду:
Sleep, 1000
Запуск скрипта от имени администратора не решает проблему.
#NoEnv
#SingleInstance, Force
#IfWinActive, ahk_exe GTA5.exe
SetKeyDelay, 100
;================
^F5::Reload
F4::Pause, Toggle
F3::Suspend, Toggle
^Esc::ExitApp
;================
Left & Numpad1::
Clipboard = /do Сработали ремни безопасности, водитель получил травмы.
Send, {F6}{LCtrl Down}{V}{LCtrl Up}{Enter}
Sleep, 1000
Clipboard = /do Водителю требуется срочная медицинская помощь.
Send, {F6}{LCtrl Down}{V}{LCtrl Up}{Enter}
Sleep, 1000
Clipboard = /do Транспортное средство повреждено и требует ремонта.
Send, {F6}{LCtrl Down}{V}{LCtrl Up}{Enter}
Return
;================
::вызмед::Я вызвал скорую помощь, ожидайте... машина уже в пути{!}{Enter}