[ Работает ] [Гайд][AHK] Учимся создавать скрипты с AutoHotKey (на примере BDO)
Статьи и гайды по Black Desert
[Гайд][AHK] Учимся создавать скрипты с AutoHotKey (на примере BDO)
Доброе время суток, друзья!
Сегодня я расскажу Вам об основах создания и использования скриптов, используя AutoHotKey! 🙂 В этой ветке много макросов на Bloody, однако лично мое мнение, что блуди не удобная штука. Ну тут каждому на свой вкус.
Далее по тексу саму программу и скриптовый язык AutoHotKey я буду называть AHK или АХК.
(также будет работать, если переименовать .txt в .ahk )
Что же нам делать дальше? Давайте рассмотрим две ситуации! 🙂 Мы можем создать скрипт, который будет одноразово при запуске выполнять какие-то действия. Например, при запуске .exe выполняется действие по копированию ярлыка из одного места в другое. В таком случае нам не нужно привязывать какую-либо кнопку к этому действию. Второй же вариант, когда мы запустили скрипт, затем нажали кнопку и у нас произошло то же самое действие.
После того как Вы внесли какой либо код в скрипт, сохраняем его и запускаем от имени администратора.
Давайте рассмотрим основные команды (те, которые я чаще всего использую).
Обратите внимание, что ПОЛНЫЙ синтаксис команд с примерами представлен на официальном сайте autohotkey.com
В АХК конец предыдущей команды обозначается концом прошлой команды, переносом на следующую строку, либо завершением <блока команд>. Я представляю насколько непонятно это выглядит, однако я думаю чуть дальше вы поймете.
В первую очередь я Вам советую в скрипт вписывать несколько строк, которые в случае Вашей ошибки\недоработки позволят отключать скрипт. Например, если Вы поставили нажиматься Alt+F4 каждые 0.1 секунд. Короче если вы не можете остановить скрипт мышкой, чтоб мы могли это сделать кнопкой.
Что это такое? При нажатии на F11 у нас будет выполнена команда pause, которая запаузит скрипт. При повторном нажатии скрипт продолжит работу с того места, где закончил. При нажатии F12 соответственно скрипт будет перезагружен совсем. 🙂 На заметку: если вы изменили код скрипта, сохранили, то при нажатии на f12 будет загружен уже измененный скрипт. Это удобно когда вы только создаете\отлаживаете скрипт.
Эту строку я советую тоже вставлять во все скрипты, где у Вас будут использоваться координаты. (ну например нажать мышкой на крестик в ворде 🙂 ). Дело в том, что в этом случае координаты будут смотреться не относительно вашего разрешения(монитора), а относительно текущего окна. Т.е. если у вас игра\ворд запущены не в полное окно, то вы можете их двигать куда угодно, координаты будут одинаковы.
Далее. Привязка действий к клавишам. Существует список кучи модификаторов. Я приведу основные:
# — кнопка пуск. ! — alt ^ — ctrl +shift
При нажатии сочетания ALT и цифры 1 у нас выведется пустое окошечко. Таким же образом привязываются абсолютно все действия. Если у Вас больше одной команды, то я советую заключать их в <>. Как это будет выглядеть?
В данном случае у нас будут появляться два окошечка последовательно. Но это лишь пример.
Далее рассмотрим одну из самых важных команд: Send, SendPlay, SendInput. Эти команды нужны нам, чтобы посылать какие-то тексты и\или кнопки в игру. Первая делает это чуть медленнее, однако работает всегда. Вторая и третьи(предпочтительна вторая) делают отправку мгновенно. Важно! Если вы хотите послать отправку КНОПКИ, а не ТЕКСТА, то вы должны заключить кнопку в <>. Пример: нам нужно отправить строку объявления в игровой чат мгновенно, чтоб оно не мешало нам фармить.
Все знаки пунктуации нужно заключать в <>. Теперь при нажатии Ctrl+1 у нас отправится объява в чат, причем скорее всего мы даже не успеем заметить как открылся чат. При нажатии Ctrl+2 мы гарантированно изменим чат на Общий, после чего напишется строка и остановится на «Цена:» но не отправится, там мы сможем ввести цену. Ну я надеюсь суть вы поняли 🙂
Пример: Нам нужно зажать шифт на 2 секунды. Здесь мы используем 2 новых штучки. Sleep — данная команда является просто таймером-разделителем между командами. Формат: Sleep, 1000 — это будет задержка 1 секунда Нажатие и «отпускание» клавиши. — данная «клавиша-команда» зажмет клавишу W. — соответственно отожмет клавишу S.
При нажатии на Пуск+1 у нас зажмется шифт на 2 секунды.
Теперь попробуем разобраться с мышкой.
При нажатии на Альт+NumPad0 у нас произойдет «клик» левой кнопкой по координатам 5 5. При нажатии Альт+NumPad1 у нас произойдет клик правой кнопкой по 10 10, через секунду правая кнопка зажмется на полсекунды.
Как нам собирать эти координаты? Я пользуюсь двумя способами. Первый: запускаем любой скрипт, в трее нажимаем правой кнопкой, потом Window Spy. Откроется окошечко Нас интересует строка In Active Window:
Второй: использовать код, который будет показывать нам координаты при нажатии на кнопочку.
Разберемся с циклами. То есть со случаями, когда нам нужно одно и то же действие повторить много раз.
Например, нам нужно кормить кота каждые пять минут. после ; мы можем писать комментарии.
В случае, когда нам нужно повторить действие определенное количество раз, просто после Loop, ставим цифру сколько раз:
У нас отправиться 10 нажатий с интервалом в полсекунды.
Ну вот наверное и всё, из основного 🙂 Теперь перед Вами всё ограничено лишь воображением. Я прошу Вас задавать вопросы, если появятся, а также сказать, надо ли что-то еще добавить в гайд? 🙂
Исходник Гайд AHK RegExMatch | SAMP | Пишем свой авто-ответчик
BASS_DEVSOFTWARE
жЫВЕ бЕЛАРУСЬ!
Приветствую всех!
Данная статья должна помочь разобраться новичкам в Регулярных выражениях и помочь им самостоятельно писать скрипты на автоматический ответ, при появлении в чате N-строки (по задумке).
Перед игроком появляется будто бы непреодолимая стена, посмотрев на которую, он побежит по форумам просить помощи.
Хочу предупредить — данная статья рассчитана на незнающих пользователей. Поэтому подробность данной статьи — это скорее плюс (как по мне).
Надеюсь, вы поняли структуру и что за чем идёт. Теперь смело копируйте каркас нашего скрипта, чтобы мы смогли вместе его редактировать. (Копируйте цельным блоком, что я предоставил вам в самом начале)
И вот мы подошли к моменту, на котором желторотики вскрывают себе вены, а новички бьются в конвульсиях, я говорю о РеГуЛяРнЫх ВыРаЖеНиЯх.
Я не собираюсь копировать термин из Википедии, что такое «Регулярные выражения«. Скажу своими словами: Регулярные выражения — это возможность копировать/вырезать/отправлять, одним словом — обработать необходимую нам строку и достать из неё N-слова. Будь они статичны или переменны — роли не играет.
:hunter:Строку, что нам нужна, будем определять благодаря этим же Регулярным выражениям.:hunter: В нашем случае — мы будем рассматривать строки такого типа:
В Регулярных выражениях есть такое понятие, как литеральный текст. Звучит страшно, но расскажу максимально понятно и только то, что нужно.
Поправка: \Q .. \E в написании, можно заменить на \ перед любым литеральным символом. Пример выше.
Главное — не забыть о существовании литеральных символов в принципе. Запомнили? Молодцы.
Так же, Регулярное выражение не прощает опечаток! Лишний пробел или его отсутствие может запороть любую «регулярку». И уж поверьте — одним криком от отчаяния и злости от глупого прокола вы не обойдётесь. Поэтому, всегда следите при написании Регулярного выражения за тем, чтобы они были 1 в 1: «регулярка» в своём понимании, а наша строка — в своём.
Плавно подошли к написанию собственного Регулярного выражения.
Эта группа делает AutoHotKey скрипты для GTA SA:MP CR:MP. Всё что вам нужно, это написать в раздел «Предложить Новость» AHK который вам нужен. Группа была создана летом 2019 года. И будет развиваться.
Записи сообщества
Поиск
AvtoHotKey [AHK] для SAMP/CRMP запись закреплена
Numpad1:: SendMessage, 0x50,, 0x4190419,, A Показать полностью… SendInput, Здравствуйте, я *Должность* *Имя фамилия*. Sleep 600 SendInput, Вы пришли на собеседование? Return
Numpad2:: SendMessage, 0x50,, 0x4190419,, A SendInput, Пожалуйста предъявите паспорт, мед.карту и лицензии Sleep 1000 SendInput, /n /pass [id] /showmc [id] /lic [id] Sleep 1000 SendInput, А также представьтесь и скажите свой возраст. Return
Numpad3:: SendMessage, 0x50,, 0x4190419,, A SendInput /anim 6 10 Sleep 1000 SendInput, /me протянул руку и легким движение руки взял в руки паспорт Sleep 1000 SendInput, /do Процесс.. Sleep 1000 SendInput, /me внимательно изучает паспорт Sleep 1000 SendInput, /do Процесс.. Sleep 1000 SendInput, /do Паспорт полностью изучен. Sleep 1000 SendInput, /me закрыл паспорт и плавным движение руки вернул его гражданину Sleep 1000 SendInput /anim 6 3 Return
Numpad4:: SendMessage, 0x50,, 0x4190419,, A SendInput /anim 6 10 Sleep 1000 SendInput, /me протянул руку и легким движение руки взял в руки лицензии Sleep 1000 SendInput, /do Процесс.. Sleep 1000 SendInput, /me внимательно изучает лицензии Sleep 1000 SendInput, /do Процесс.. Sleep 1000 SendInput, /do Лицензии полностью изучены. Sleep 1000 SendInput, /me закрыл лицензии и плавным движение руки вернул его гражданину Sleep 1000 SendInput /anim 6 3 Return
Numpad5:: SendMessage, 0x50,, 0x4190419,, A SendInput /anim 6 10 Sleep 1000 SendInput, /me протянул руку и легким движение руки взял в руки мед.карту Sleep 1000 SendInput, /do Процесс.. Sleep 1000 SendInput, /me внимательно изучает мед.карту Sleep 1000 SendInput, /do Процесс.. Sleep 1000 SendInput, /do Мед.карта полностью изучена. Sleep 1000 SendInput, /me закрыл мед.карту и плавным движение руки вернул его гражданину Sleep 1000 SendInput /anim 6 3 Return
Numpad6:: SendMessage, 0x50,, 0x4190419,, A Sendinput, Сейчас я задам пару вопросов. Sleep 1000 Sendinput, Как Вы расшифруете «ТК», «МГ», «ДМ» ? return
Alt & Numpad7:: SendMessage, 0x50,, 0x4190419,, A Sendinput, /n У Вас есть Дискорд? И есть ли канал Radmir 03? Sleep 700 Sendinput, /n Канал можно узнать в Офф.группе «Вконтакте» — https://vk.com/radmir_rp_03 Sleep 700 Sendinput, /n Я жду Вас в гостиной Пра-во. return
AvtoHotKey [AHK] для SAMP/CRMP запись закреплена
Можно пожалуйста АХК на крмп CAPS RP
Редактор:Недостаточно информации для АНК!
AvtoHotKey [AHK] для SAMP/CRMP запись закреплена
Доброе время суток, можно AHK скрипт для механика на клавишу «ALT»? Буду благодарен.
Редактор:Недостаточно информации для АНК!
AvtoHotKey [AHK] для SAMP/CRMP запись закреплена
Можно ахк, который будет реагировать на матные слова в чате крмп.
Редактор:Недостаточно информации для АНК!
AvtoHotKey [AHK] для SAMP/CRMP запись закреплена
AvtoHotKey [AHK] для SAMP/CRMP запись закреплена
Сделайте пожалуйста AHK На полицию северный округ полиция Лыткарино ——————————————————— Numpad3:: SendMessage, 0x50,, 0x4190419,, A SendInput, /do Дубинка на поясе. Показать полностью… Sleep, 1000 SendInput, /me достал дубинку Sleep, 1000 SendInput, /do дубинка в готовности. Sleep, 1000 Return
NumPad1:: SendMessage, 0x50,, 0x4190419,,A Sendinput, /me включил мегафон Sleep, 1000 Sendinput, /m Гражданин, остановите ваше транспортное средство и прижмитесь к обочине Sleep, 1000 Sendinput, /m Заглушите двигатель, руки на руль и без резких движений Sleep, 1000 Sendinput, /m В случае неподчинения я открою огонь по колесам. Sleep, 1000 Sendinput, /m и вы будете занесены в федеральный розыск округа return
!1:: SendMessage, 0x50,, 0x4190419,,A Sendinput, /me повалил человека на землю, после чего прижал его спину коленом sleep 1000 Sendinput, /do На поясе весят наручники. sleep 1000 Sendinput, /me резким движением руки снял наручники с пояса sleep 1000 Sendinput, /do Наручники в руках. sleep 1000 Sendinput, /me заломал руки человеку sleep 1000 Sendinput, /me надевает наручники человеку напротив sleep 1000 Sendinput, /cuff sleep 1000 Return
!2:: SendMessage, 0x50,, 0x4190419,,A Sendinput, /me поднял человека с земли sleep 1000 Sendinput, /me заломал руку и повёл задержанного рядом за собой sleep 1000 Sendinput, /gotome sleep 1000 Return
!3:: SendMessage, 0x50,, 0x4190419,,A Sendinput, /me открыл дверь автомобиля Sleep 1000 Sendinput, /me пригнул голову задерживаему и посадил в автомобиль Sleep 1000 Sendinput, /do Задержанный в автомобиле. Sleep 1000 Sendinput, /incar sleep 1000 Return
Numpad0:: SendMessage, 0x50,, 0x4190419,,A Sendinput, Здравствуйте, я «Звание» Полиции Эдово «Ник» sleep 1000 Sendinput, /do Удостоверение в левом верхнем кармане. sleep 1000 Sendinput, /me взял удостоверение из левого верхнего кармана sleep 1000 Sendinput, /do На удостоверении написано ГУВД sleep 1000 Sendinput, /me открыл удостоверение на первой странице sleep 1000 Sendinput, /me показывает человеку напротив в открытом виде sleep 1000 Sendinput, /showbadge sleep 1000 Return !5:: SendMessage, 0x50,, 0x4190419,,A Sendinput,/do Резиновые перчатки находятся в пакете, который лежит в кармане Sleep 1000 Sendinput,/me достал пакет из кармана, затем достал из пакета перчатки Sleep 1000 Sendinput,/me одел перчатки, свернул пакет и положил его обратно в карман Sleep 1000 Sendinput,/do Процесс. Sleep 1000 Sendinput,/me начал обыскивать человека напротив Sleep 1000 Sendinput,/me начал ощупывать торс человека напротив Sleep 1000 Sendinput,/me начал обыскивать карманы человека напротив Sleep 1000 Sendinput,/me начал ощупывать ноги и руки человека напротив Sleep 1000 Sendinput,/frisk Sleep 1000 Return
Numpad2:: SendMessage, 0x50,, 0x4190419,,A Sendinput,/do Карманный Переносной Компьютер находится в правом кармане. Sleep 1000 Sendinput,/me достал из кармана КПК и зашел в базу данных ФСБ Sleep 1000 Sendinput,/me занёс подозреваемого в базу данных и убрал КПК в карман Sleep 1000 Sendinput,/su Sleep 1000 Return
!4:: SendMessage, 0x50,, 0x4190419,,A Sendinput,/do Ключи от камеры заключения находятся на специальном поясе. Sleep 1000 Sendinput,/me снял со специального пояса ключи от камеры заключенных Sleep 1000 Sendinput,/me вставил ключ от камеры в замочную скважину и открыл клетку Sleep 1000 Sendinput,/me схватил задержанного за рукав одежды и затолкал в камеру Sleep 1000 Sendinput,/do Процесс. Sleep 1000 Sendinput,/me захлопнул решетку, закрыл ее на замок и вытащил ключ из замка Sleep 1000 Sendinput,/me повесил комплект ключей на специальный пояс Sleep 1000 Sendinput,/do Ключи от камеры заключения находятся на специальном поясе. Sleep 1000 Sendinput,/arrest Sleep 1000 Return
Numpad5:: SendMessage, 0x50,, 0x4190419,, A SendInput, /do Оружие в руках. Sleep,1000 SendInput, /me поставил оружие на предохранитель Sleep, 1000 SendInput, /me повесил оружие за спину Return
Numpad6:: SendMessage, 0x50,, 0x4190419,, A SendInput, /do КПК в грудном кармане. Sleep, 1000 SendInput, /me достал КПК и отметил человека на радаре Sleep, 1000 SendInput, /z Return
Numpad4:: SendMessage, 0x50,, 0x4190419,, A SendInput, /me достал оружие и взял его в руки Sleep, 1000 SendInput, /do Оружие в руках. Sleep, 1000 SendInput, /me снял оружие с предохранителя. Sleep, 1000 Return
alt & Numpad1:: SendMessage, 0x50,, 0x4190419,, A SendInput, /do Рация в кармане Sleep, 1000 SendInput, /me достал рацию после чего сказал в нее Sleep, 1000 SendInput, /r [Тэг] Sleep, 1000 Return
Numpad7:: SendMessage, 0x50,, 0x4190419,, A SendInput, /do КПК в грудном кармане. Sleep, 1000 SendInput, /me достал КПК и зашёл в список розыскиваемых Sleep, 1000 SendInput, /find Return
Numpad8:: SendMessage, 0x50,, 0x4190419,, A Sendinput /do КПК в руке. Sleep 1000 Sendinput /me зашёл на сайт Министерства МВД,в раздел «Розыск». Sleep 1000 Sendinput /me вбил нужное имя. Sleep 1000 Sendinput /me подключился к спутнику и узнал место нахождение. Sleep 1000 Sendinput /pursuit Sleep 1000 return
Numpad9:: SendMessage, 0x50,, 0x4190419,, A SendInput, /do Человек сидит в машине Sleep 1000 SendInput, /me резким движением руки разбил стекло автомобиля Sleep 1000 SendInput, /me открыл дверь автомобиля,затем выкинул человека из машины Sleep 1000 SendInput, /pullout return
alt & Numpad3:: SendMessage, 0x50,, 0x4190419,, A SendInput /do Наручники на Человеке. Sleep 1000 SendInput /me Достал ключи от наручников Sleep 1000 SendInput /do Ключи в руке. Sleep 1000 SendInput /me Снял наручники с человека Sleep 1000 SendInput /do Наручники сняты. Sleep 1000 SendInput /uncuff return