AutoHotKey

Материал из RSRL-Wiki - Справочник польлзователя RSRL
Перейти к: навигация, поиск


Создание AutoHotKey скрипта для облегчения игрового процесса

AutoHotKey - Программа для облегчения ввода команд и выполнения действий в играх и другом софте. В этой статье будут описаны принцип действия и часто используемые командыСкачать AutoHotKey.

ВНИМАНИЕ! Важно помнить, что при создании скрипта на операционной системе Windows XP используется "SendPlay", а на ОС Windows 7, Vista
используется "SendInput".

Список клавиш на которые можно сделать ввод серверных команд

Далее в статье будет упоминаться понятие бинд - это значит установка быстрого ввода команды на какую-либо клавишу. Перечисленные ниже клавиши позволяют создать бинд самостоятельно или при сочетании с буквами, цифрами и другими клавишами.

ctrl (или ^)
shift (или +)
Alt (или !)
Space 
Tab
Enter
Escape(или Esc)
Backspace(или BS)
Delete(или Del)
Insert(или Ins)
Home
PgUp
PgDn
Up
Down
Left
Right


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

Numlock ON Numlock OFF
Numpad0 NumpadIns
Numpad1 NumpadEnd
Numpad2 NumpadDown
Numpad3 NumpadPgDn
Numpad4 NumpadLeft
Numpad5 NumpadClear
Numpad6 NumpadRight
Numpad7 NumpadHome
Numpad8 NumpadUp
Numpad9 NumpadPgUp
NumpadDot (.) NumpadDel
NumpadDiv (/) NumpadDiv (/)
NumpadMult (*) NumpadMult (*)
NumpadAdd (+) NumpadAdd (+)
NumpadSub (-) NumpadSub (-)
NumpadEnter NumpadEnter

Все клавиши F1-F24 так же могут быть модифицированы. Ввод можно осуществить как при нажатии одной клавиши, так и задать сочетанием с другими клавишами.
В наиболее новой версии AutoHotKey есть возможность установки биндов на медиа клавиши. Медиа клавиши могут отсутствовать на вашей клавиатуре, но если всё же они есть, то ниже указан способ записи в скипт.

Browser_Back - клавиша выхода с браузера
Browser_Forward - клавиша управления браузером "Вперёд"
Browser_Refresh - клавиша управления браузера "Обновить"
Browser_Stop - клавиша управления браузера "Остановить"
Browser_Search - клавиша управления браузера "Поиск"
Browser_Favorites - клавиша управления браузера "Закладки"
Browser_Home - клавиша управления браузера "Домашняя страница"
Volume_Mute - медиа клавиша "Выключить звук"
Volume_Down - медиа клавиша "Понизить звука"
Volume_Up - медиа клавиша "Повысить звук"
Media_Next - медиа клавиша "Следующий трек"
Media_Prev - медиа клавиша "Предыдущий трек"
Media_Stop - медиа клавиша "Стоп"
Media_Play_Pause - медиа клавиша "Стоп трек"

Бинд можно сделать и на кнопки мыши, список ниже.

mbutton - колесо прокрутки на мыши
lbutton - левая кнопка мыши
rbotton - правая кнопка мыши
xbutton1 - если на мыши есть дополнительные кнопки, то на них так же можно сделать бинд. 
(Eсли более одной кнопки, то в конце нужно менять число, то есть xbutton1, xbutton2, .... xbutton#).

Пример записи простого бинда для быстрого ввода команды

ВНИМАНИЕ! Если Вы применяете скрипт для SA-MP, то стоит перед созданием скрипта в самом начале вписать код #IfWinActive GTA:SA:MP,
он указывает на то, чтоб скрипт работал лишь тогда, когда Вы находитесь в игре. Данный код полезен когда Вы используете циклы и во
время работы его сворачиваете игру, цикл не останавливается, а начинает работать в других активных программах вашего компьютера.
F1::SendPlay {F6}/fill{enter}

1.) F1 - клавишу на которую задан бинд.
2.) :: - обязательный синтаксис для создания бинда.
3.) SendPlay - код скрипта задающая ввод текста.
4.) {F6} - код скрипта задающий автонажатие клавиши F6 (в SA-MP это открытие консоли для вписывания команды).
5.) /fill - вводимый текст или команда.
6.) {enter} - код скрипта задающая автонажатие клавиши Enter для автоматического ввода написанной команды.
На месте F1 может быть любая клавиша из списка перечисленных вначале, синтаксис написанный во втором пункте должен присутствовать обязательно. Код скрипта "SendPlay" может быть заменена на "SendInput" если вы используете ОС Windows Vista или Seven.
В противном случае скрипт не будет работать.
Имитация нажатия кнопки F6 так же должна присутствовать в скрипте если Вы пишите его специально для SA-MP. Hиже будут перечислены все коды имитации нажатия клавиш.

Последовательный ввод команд сервера с биндом на одну клавишу

F1::
{
SendPlay {F6}/s Раз{!}{enter}
Sleep 1000
SendPlay {F6}/s Два{!}{enter}
Sleep 1000
SendPlay {F6}/s Три{!}{enter}
Sleep 1000
SendPlay {F6}/s Go Go Go{!}{enter}
}
return

В данном скрипте показан код для установки бинда с вводом нескольких команд с интервалом по времени. Команда скрипта "Sleep 1000" означает, что ввод следующей команды будет осуществляться с паузой в 1 секунду. Исчисление производится в доле секундах следовательно одна секунда ровна тысячи доле секундам. Если в водимом тексте Вашего скрипта присутствует восклицательный знак, нужно его заключить в фигурные скобки как обозначено в примере. Так как без заключения в скобки восклицательный знак скрипта будет опознаваться как команда скрипта и при выводе текста в чат, восклицательного знака не будет. Команда "return" возвращает цикл для последующего его использования. Так же обязательна к написанию.

Скриптовые коды имитирования нажатия клавиш

Код имитации нажатия клавиши Название клавиши
{F1}-{F24} Клавиши от F1 до F24
{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{Enter} Клавиша Enter
{Escape} Клавиша Escape
{Space} Клавиша пробел
{Tab} Кнопка TAB (табуляция)
{Backspace} клавиша Backspace
{Delete} или {Del} клавиша Delete
{Insert} или {Ins} клавиша Insert
{Up} клавиша "Вверх"
{Down} клавиша "Вниз"
{Left} клавиша "Вправо"
{Right} клавиша "Влево"
{Home} клавиша Home
{End} клавиша End
{PgUp} клавиша Page UP
{PgDn} клавиша Page Down
{CapsLock} клавиша CapsLock
{ScrollLock} клавиша ScrollLock
{NumLock} клавиша NumLock
{Control} или {Ctrl} клавиша ctrl (как левая так и правая)
{LControl} или {LCtrl} левый ctrl
{RControl} или {RCtrl} правый ctrl
{Alt} клавиша Alt (как левая так и правая)
{LAlt} левый Alt
{RAlt} правый Alt
{Shift} клавиша Shift (как левая так и правая)
{LShift} левый Shift
{RShift} правый Shift
{Win} клавиша windows (как левая так и правая)
{LWin} левый windows
{RWin} правый windows

Все вышеперечисленные коды имитации клавишь пишутся после "SendPlay" или "SendInput".

Пример использования кода имитации нажатия клавиши {left}

 F1::SendPlay {F6}/sellgun  deagle 10000{left 13}

Данный код помогает сделать удобным ввод команд таких как представлены в примере. При нажатии бинда ввод начинается уже с того места, где нужно ввести ID игрока. Число в коде {left} означает количество нажатий на клавишу left(влево). Тем самым имитируем перевод курсора через слова "deagle 10000" и начинаем непосредственно вводить ID игрока, тем самым нам не нужно будет лишний раз вводить цену и тип оружия при продаже бинда.

Наглядные примеры для создания скрипта

Теперь когда Вы получили небольшой опыт создания AutoHotKey скрипта, можно просмотреть наглядный пример скриптов для SA-MP.

numpad9::SendPlay {F6}/lights{enter}{F6}/en{enter} 
- Включение фар и двигателя одновременно.
:: { SendPlay {F6}/c Один Deagle продам за 10000$ Берешь?{enter} Sleep 1000 SendPlay {F6}/sellgun deagle 10000{left 13} } return - Предложить в /c - чат покупку оружия и через 1 секунду ввести команду продажи. (ВНИМАНИЕ! Если Вы используете сочетании клавиш
с буквами, то убедитесь какой язык раскладки у Вас главный. Если это русский, то при сочетании, нужно вводить русские буквы)
.
mbutton:: { SendPlay {F6}/me подкурил сигарету{enter} Sleep 100 SendPlay {F6}/smo{enter}{F6}/smo{enter} Sleep 100 SendPlay {F6}/ansm{enter}{F6}/ansm{enter} } return - Закурить сигарету с выводом в /me - чате и использованием анимации курения.
^2:: SendPlay {F6}/c{space} - По нажатию клавиши писать в /c - чат. :: { SendPlay {F6}/buygun{enter} Sleep 1000 SendPlay {down 5}{enter} Sleep 100 SendPlay {down 6}{enter} Sleep 100 SendPlay {down 7}{enter} Sleep 100 SendPlay {down 9}{enter} } return - Покупка оружия в аммуниции по нажатию одной клавиши (для меню).
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты