1

Тема: AHK: Скрипт для быстрого нажатия клавиши в игре.

Здравствуйте! В GTA SA(MP), быстро нажимая клавишу быстрого бега, можно бежать еще быстрей. Я тут написал скрипт, но если я бегу и например чуть повернул персонажа, нажав на клавишу, придется отпустить и снова зажать клавишу быстрого бега, ибо сбивается. Как сделать так, чтобы можно было спокойно управлять персонажем WASD, зажимая "заскриптованную" клавишу и не сбивая скрипт?
Вот код:

~LShift::
Send, {LShift}
return

2

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

FireAHKwHuK
Никак, я сам мучаюсь с такой проблемой.
Можно только немного улучшить твой исходный код.


*$~LShift::
SendInput,{LShift}
return

3 (изменено: FireAHKwHuK, 2019-04-02 03:26:40)

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

Murka, что дают эти два символа?
Кстати SendInput не работает, чтобы быстрее бегать, там нужно не "вставлять" текст за миллисекунды, а печатать его, поэтому я и поставил Send.

4

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

Лучше использовать все же sendinput. Что значит "печатать клавишу"?

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

5

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

belyankin12, Нет, для того, чего мне нужно - работает именно Send.
Send - как бы печатает текст, когда sendinput "вставляет" его мгновенно.

6

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

А при чем тут это? Вы же пытаетесь флудить клавишей а не печатать что-то. За несколько лет работы не встречал ни разу ситуации когда sendinput проигрывал какой-либо команде кроме sendplay. Впрочем работает и то хорошо. Для вашей задачи я бы воспользовался либо циклом while с условием пока зажата нужная вам клавиша либо таймерами (в таком случае я бы сделал активацию/дезактивацию зажатия по кнопке).

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

7 (изменено: Murka, 2019-04-02 22:29:21)

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

FireAHKwHuK
Вот
http://www.script-coding.com/AutoHotkey/Hotkeys.html

8

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

Murka, Спасибо.

9

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

belyankin12, Я не знаю, как еще объяснить, что в игре именно то, что мне нужно - не работает с sendinput.
А вот насчет while - можете привести какой-нибудь пример использования этого цикла? Я не очень люблю циклы и не редко их использую, поэтому в них не очень разбираюсь..

10

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

Ошибся. While не захотел работать в секции автовыполнения, только если ХК назначать или метку, но в этом тогда нет смысла, вот пример с обычным loop.

Loop {
	if GetKeyState("LShift", "P") {
		ToolTip, Сейчас вы удерживаете кнопку LShift
	} else {
		ToolTip
	}
}
Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

11

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

~LShift::
while(GetKeyState("LShift", "P"))
{
	ToolTip, Сейчас вы удерживаете кнопку LShift
}
ToolTip
return
Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

12

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

В этом нет смысла. Если пользователь будет держать шифт тултип будет постоянно вылезать и без while.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

13

Re: AHK: Скрипт для быстрого нажатия клавиши в игре.

belyankin12, Phoenixxx_Czar, Спасибо за примеры.
Всем спасибо за помощь - тему можно закрывать.