AutoHotKey (AHK) - подробно для чайников. | Страница 7 | Форум онлайн-игры – AMAZING ONLINE
Форум
AMAZING ONLINE

AutoHotKey (AHK) - подробно для чайников.

Toshiro_Mushinory

Новичок
Пользователь
Что делать если правильно написал код сохранил его закрыл блокнот а АХК всеравно не работает?
 

Андрей Жуков

Пользователь
Пользователь
А лучше использовать UDF, он стабильнее работает. Правда, только с Амазингом. А так, можешь добавить в гайд ещё и работу с UDF
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 - пятая кнопка мыши, боковая
Space - пробел
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 - точка
Также, вместо использования одной клавиши, Вы можете задействовать сочетания нескольких. Поставьте между наименованиями двух или более клавиш знак "&" для объединения их в единое целое. Также имеется несколько символов, упрощающих создание сочетаний клавиш.
# – Win
! – Alt
^ – Control
+ – Shift
< – Использует левую клавишу пары (например - <! - использование левого Alt)
> – Использует правую клавишу пары (например - >! - использование правого Alt)
ТАКЖЕ, Вы можете заменить горячую клавишу строкой автозамены - после ввода определенной команды ваш скрипт будет запускаться. Поставьте перед началом команды восклицательный знак, обособленный двоеточиями ( :?: ). В пример приведу один из самых ярких примеров использования данного способа - автоматическое написание тэга в чате организации (рации):
Код:
:?:!р::
SendMessage, 0x50,, 0x4190419,, A
SendInput, {F6}/r [ППСП]{Space}
Return
— 2. Автоматическое определение языка и раскладки клавиатуры.
Данный шаг Вы можете пропустить, но тогда при неправильной раскладке клавиатуры вместо красивого текста, который вы расписывали несколько десятков минут, в чат будут отправляться сплошные вопросительные знаки, так как скрипт не будет видеть на вашей текущей раскладке бо'льшую часть нужных для набора текста символов. Во избежание этих проблем, настоятельно Вам рекомендую на следующей строке, после назначение горячей клавиши, прописать следующее:
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 не забудьте заключить группу команд в фигурные скобки, как это показано в моем АХК, представленном выше.
 

Андрей Жуков

Пользователь
Пользователь
я пишу свой ахк, как обозначить кнопки в меня R (/frac)?
Есть два способа:
1. Берешь здесь названия клавиш для АНК, и записываешь их в скрипт с помощью стандартного sendinput, например, sendinput, {sc2} {sc2} - два раза нажмётся 1 и откроется меню фракции. Профит!
2. (Может не работать): вместо {sc2} пишешь просто {1} и всё. Тоже должно работать.

Надеюсь, помог
 

.Nikita_Vasenin.

Новичок
Пользователь
Что делать если у меня ахк работает криво, то есть в начале предложения не пишет команды /me, /do и т.д а также половину букв просто пропукает.
 

Ilya_Lebedev

Новичок
Новичок
Подскажите что делать если он начало пропускает /do /me иногда и буквы
 

Alexey_Yunusov

Активный пользователь
Пользователь
Я думал то как-то другой чел, а то Алан. Есть кто в этой теме живой? Ч ё если я установил ахк, а он не запускает скрипт, я не помню что уже делал, но мне нужен АХК
 

Anton Zaprudnov

Новичок
Новичок
Помогите в одной ситуации Продал я комнату в Общежитии вот деньги положили на фам счёт я думал на карту и я распустил фаму и не снул что теперь делать?
 
Вверх
Розыгрыш