AutoHotkey — свободно распространяемый язык для автоматизации выполнения задач в Microsoft Windows.
Данная утилита позволяет посредством назначения горячих клавиш и/или ввода определенных команд воспроизводить заранее записанный макрос.
Но у новых пользователей программы могут появиться затруднения с использованием нового программного обеспечения, которое поначалу считается невозможным в освоении. На самом деле все довольно просто, и я более чем уверен, что после прочтения данного руководства Вы сможете самостоятельно писать скрипты для автоматизации действий в игровом мире Amazing RolePlay.Данная утилита позволяет посредством назначения горячих клавиш и/или ввода определенных команд воспроизводить заранее записанный макрос.
Код:
Numpad1::
SendMessage, 0x50,, 0x4190419,, A
SendInput, {F6}/me аккуратно вытащил водительское удостоверение из правого кармана джинс, после чего протянул его сотруднику ГИБДД.{Enter}
Sleep 1000
SendInput, {F6}/do Процесс передачи...{Enter}
Sleep 1000
SendInput, {F6}/lic{Space}
Return
— 0. Вступление
Скачать биндер можно на оффициальном сайте: https://www.autohotkey.com/
После полной установки программы, нажмите ПКМ по свободному месту в папке/на рабочем столе и в разделе "Создать" выберите "AutoHotKey Script".
После этого нажмите ПКМ по созданному файлу и выберите пункт "Edit Script". В открывшемся окне можете стереть примечание от автора и начать писать свой шедевр.
— 1. Назначение горячей клавиши.
В начале написания скрипта нам необходимо задать горячую клавишу, по нажатии которой будут воспроизводиться заданные команды. Задействовать можно в буквальном смысле любую рабочую часть клавиатуры, мыши, джойстика, кейпада, графического планшета, ... Но мы, как православные игроки GTA, будем задействовать только клавиатуру и, возможно, компьютерную мышь.
В строке нам нужно задать название клавиши (список представлен ниже), после чего поставить два двоеточия ( :: ) и перейти на следующую строку.
LButton - левая кнопка мыши
RButton - правая кнопка мыши
MButton - нажатие колеса мыши
WheelDown - поворот колеса мыши "вниз"
WheelUp - поворот колеса мыши "вверх"
XButton1 - четвертая кнопка мыши, боковая
XButton2 - пятая кнопка мыши, боковая
RButton - правая кнопка мыши
MButton - нажатие колеса мыши
WheelDown - поворот колеса мыши "вниз"
WheelUp - поворот колеса мыши "вверх"
XButton1 - четвертая кнопка мыши, боковая
XButton2 - пятая кнопка мыши, боковая
Space - пробел
Tab
Enter (или Return)
Escape (или Esc)
Backspace (или BS)
Delete (или Del)
Insert (или Ins)
Home
End
PgUp
PgDn
Up
Down
Left
Right
F1 - F12
ScrollLock
CapsLock
Tab
Enter (или Return)
Escape (или Esc)
Backspace (или BS)
Delete (или Del)
Insert (или Ins)
Home
End
PgUp
PgDn
Up
Down
Left
Right
F1 - F12
ScrollLock
CapsLock
NumLock
NumpadDiv - слэш "/"
NumpadMult - звездочка "*"
NumpadAdd - плюс "+"
NumpadSub - минус "-"
NumpadEnter - клавиша "Enter"
Следующие клавиши имеют два обозначения - первое, когда Num клавиатура включена, второе - когда она выключена.
Numpad0 - NumpadIns
Numpad1 - NumpadEnd
Numpad2 - NumpadDown
Numpad3 - NumpadPgDn
Numpad4 - NumpadLeft
Numpad5 - NumpadClear
Numpad6 - NumpadRight
Numpad7 - NumpadHome
Numpad8 - NumpadUp
Numpad9 - NumpadPgUp
NumpadDot - NumpadDel - точка
NumpadDiv - слэш "/"
NumpadMult - звездочка "*"
NumpadAdd - плюс "+"
NumpadSub - минус "-"
NumpadEnter - клавиша "Enter"
Следующие клавиши имеют два обозначения - первое, когда Num клавиатура включена, второе - когда она выключена.
Numpad0 - NumpadIns
Numpad1 - NumpadEnd
Numpad2 - NumpadDown
Numpad3 - NumpadPgDn
Numpad4 - NumpadLeft
Numpad5 - NumpadClear
Numpad6 - NumpadRight
Numpad7 - NumpadHome
Numpad8 - NumpadUp
Numpad9 - NumpadPgUp
NumpadDot - NumpadDel - точка
# – Win
! – Alt
^ – Control
+ – Shift
< – Использует левую клавишу пары (например - <! - использование левого Alt)
> – Использует правую клавишу пары (например - >! - использование правого Alt)
! – Alt
^ – Control
+ – Shift
< – Использует левую клавишу пары (например - <! - использование левого Alt)
> – Использует правую клавишу пары (например - >! - использование правого Alt)
Код:
:?:!р::
SendMessage, 0x50,, 0x4190419,, A
SendInput, {F6}/r [ППСП]{Space}
Return
Данный шаг Вы можете пропустить, но тогда при неправильной раскладке клавиатуры вместо красивого текста, который вы расписывали несколько десятков минут, в чат будут отправляться сплошные вопросительные знаки, так как скрипт не будет видеть на вашей текущей раскладке бо'льшую часть нужных для набора текста символов. Во избежание этих проблем, настоятельно Вам рекомендую на следующей строке, после назначение горячей клавиши, прописать следующее:
SendMessage, 0x50,, 0x4190419,, A
— 3. Написание команд.
Теперь мы можем, наконец, приступить к написанию команд для автоматической отправки сообщений.
Существует два вида команд для отправки текста:
Send - имитирует написание текста в реальном времени, пропечатывая каждый символ отдельно. (В игре нередко используется лидерами/заместителями в тех отраслях, где запрещены AHK, так как использование скриптов с таким способом печати отследить немного сложнее)
SendInput - мгновенно пропечатывает текст, заданный в макросе.
При задаче данной команды, новички в сфере написания скриптов порой задаются вопросом, как задействовать клавиши Enter, F6 и тому подобные. Ответ прост - напишите по шаблону название клавиши (из списка, приведенного в первом пункте), после чего заключите его в фигурные скобки - таким образом программа будет имитировать нажатие данной клавиши, а не писать ее название текстом.
Точно таким же способом нужно заключать в фигурные скобки символы # ! ^ + < > & - если их не заключить в фигурные скобки, программа будет их задействовать для сочетания клавиш, что может привести к сворачиванию игры.
Также немаловажно задать паузы между сообщениями, иначе программа может сойти с ума и начать смешивать ваши сообщения в единое целое.
Так, прописав команду Sleep и число миллисекунд после нее (1000 = 1 секунда), Вы задаете задержку между выполнениями следующих команд.
Рекомендую использовать задержку 700 между отыгровками /me /do /todo, и 1000 между сообщениями в чат (IC, /b), дабы антифлуд не триггерился на ваш скрипт. (насколько мне известно, в /f /c задержку можно ставить 200, там антифлуд почти не срабатывает).
— 4. Окончание скрипта
После того, как вы прописали все сообщения, не забудьте написать завершающую команду Return, которая останавливает чтение макроса. Иначе, если у Вас в одном файле сразу несколько скриптов, последствия будут неутешительными...
А теперь, закончив рассказ о базовых знаниях, перейдем к освоению "среднего" пилотажа - обучение командам Loop и рандомайзеру.
— 5. Рандомайзер
Код:
Numpad1::
SendMessage, 0x50,, 0x4190419,, A
Sendinput, {F6}/do История болезни в руках Алана.{Enter}
sleep, 950
Random, randt, 1, 3
if (randt = 1)
{
Sendinput, {F6}Здравствуйте, меня зовут Алан, я ваш лечащий врач.{Enter}
sleep, 950
Sendinput, {F6}По сиптомам, записанным в истории болезни, я определил ваш недуг.{Enter}
sleep, 700
Sendinput, {F6}/me открыл сумку, висящую на плече.{Enter}
}
if (randt = 2)
{
Sendinput, {F6}Здравствуйте, я ваш лечащий врач, Алан Арбатский.{Enter}
sleep, 950
Sendinput, {F6}Я прочитал вашу историю полезни. Это должно Вам помочь.{Enter}
sleep, 700
Sendinput, {F6}/todo Данный препарат нужно принимать ежедневно*открыв наплечную сумку{Enter}
}
if (randt = 3)
{
Sendinput, {F6}Здравствуйте, я ваш лечащий врач. Я прочитал вашу историю болезни...{Enter}
sleep, 700
Sendinput, {F6}/do Медицинская сумка с нашивкой "Скорая помощь" висит на плече.{Enter}
sleep, 700
Sendinput, {F6}/todo ...и определил, чем Вы больны. Это должно помочь.*открывая сумку{Enter}
}
sleep 700
SendInput, {F6}/me нашел в сумке нужный препарат, передал его человеку напротив{Enter}
sleep 700
SendInput, {F6}/do Процесс передачи...{Enter}
Sleep 950
SendInput, {F6}/b Отыграйте RP, например: /me взял лекарство{Enter}
Sleep 1
SendInput, {F6}/heal{Space}
Return
Random - начало команды
randt - переменная, значение в которое будет выбираться случайным образом. Может быть задано любое название.
1, 3 - минимальный и максимальный порог значений, генерируемых скриптом. В моем случае - от одного до трех.
Далее начинаем распределять сообщения по группам.
if (randt = 1) - первая группа сообщений: если рандомайзер сгенерирует число 1, то будет запущена данная группа. Также и с остальными значениями.
После команды if не забудьте заключить группу команд в фигурные скобки, как это показано в моем АХК, представленном выше.