1

Тема: 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}

2

Re: AHK: зависает отправление текстовых сообщений в GTA5 RP

Замените кнопку "v" на вк код.У вас скорее всего из-за раскладки не срабатывает вставка.

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

3

Re: AHK: зависает отправление текстовых сообщений в GTA5 RP

Phoenixxx_Czar, заменил “v” на “vk56” – скрипт все равно зависает через какое-то время игры.

Вот например, этот скрипт нормально отработал в течении 15 минут,

#NoEnv
#SingleInstance, Force
#IfWinActive, ahk_exe GTA5.exe
Numpad0::
Loop, 15
{
	SendInput, {F6}
	Sleep, 500
	SendInput, Что не так с этой игрой?
	Sleep, 500
	SendInput, {Enter}
	Sleep, 60000
}
Return

но большую часть времени персонаж стоял неподвижно и лишь иногда ходил вперед-назад, вправо-влево. После того как скрипт отработал, я сел в машину и проехал по карте, а когда через 5 минут я снова попробовал запустить скрипт, то скрипт завис наглухо…

4

Re: AHK: зависает отправление текстовых сообщений в GTA5 RP

Возможно в игре защита есть, которая блокирует процесс программ, которые пытаются эмулировать нажатия в игре.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

5

Re: AHK: зависает отправление текстовых сообщений в GTA5 RP

__Михаил__, система Anti-cheat безусловно есть, но насколько я осведомлен, она не блокирует скрипты, а лишь сообщает администрации о подозрительной активности от игрока. Затем администратор прилетает к игроку, наблюдает за ним, и если он решит, что используется запрещенная программа – игрока наказывают.

Игроки сплошь и рядом используют макросы, но за них наказывают единицы. А биндеры для отправки сообщений в чат, вообще являются частью геймплея, и я ни разу не видел, чтобы игрока наказали за такой скрипт.

Вернусь к моей теме. Опытным путем я определил, что скрипт «забивается» постоянным спамом игровых клавиш, особенно клавишей W, которая нажимается чаще всего или вообще долгое время является зажатой. Тогда я предположил, что скрипт не должен оставаться в “режиме ожидания”, а нужно заставить его работать вместе с игровыми клавишами.

Вот этот «костыль» отработал более четырех часов. Все это время я ездил на машине с зажатой клавишей W, в сочетании с нажатием других клавиш (A, S, D, E, F, M, Esc), а также с зажатой иногда ПКМ. С разными интервалами времени, от 3 до 10 минут, я отправлял сообщения в чат. Скрипт отработал до конца теста и не завис.


~W::
	Loop
	{		
		GetKeyState, wkey, W, P
		if wkey = U
		{
			break
		}
	}
	return

Вопрос к опытным пользователям. Какими еще способами можно заставить скрипт постоянно выполнять какую-нибудь задачу, чтобы скрипт не был в “режиме ожидания”?

6

Re: AHK: зависает отправление текстовых сообщений в GTA5 RP

Black пишет:

Какими еще способами можно заставить скрипт постоянно выполнять какую-нибудь задачу

SetTimer?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder