|
Форум AHK Программирование Уроки [SAMP] Делаем свой AntiAFK |
[SAMP] Делаем свой AntiAFK |
Offline
АХТУНГ! АТТЕНТИОН! СТАТЬЯ ИСКЛЮЧИТЕЛЬНО ФОР НУБС НУ И НЕ ТОЛЬКО =) Приветствую, вас дорогие форумчане и AHK-скриптеры Сегодня мы будем разбирать такой урок, как написание собственного AntiAFK Для начала я хочу сказать: AutoHotkey - это нереально большая и интересная утилита для создания макросов и автоматизации на Windows и ее возможности очень высоки. Вы даже представить не можете как они высоки. То что мы можем сделать свой AntiAFK - это всего лишь первая ступень этого "многоэтажного дома". Скрипты AutoHotkey также можно сделать для CS, Battlefield и т.д. Итак, начнем! Инструменты которые нам сегодня понадобятся: 1. Установленная программа AutoHotkey (скачать можно на http://autohotkey.com) 2. Терпение Начнем мы с того что создадим файл *.ahk (щелк правой мышкой -> Создать -> AutoHotkey Script) Назовем его AntiAFK Щелкаем по AntiAFK.ahk правой кнопкой, в контекстном меню выбираем Edit Script Все что написано стираем, и вот перед нами чистый будущий скрипт Выбираем кнопку на которую будет активироваться наш скрипт (лист клавиш можно найти здесь - http://u.to/P47p) Я выберу сочетание клавиш Alt+1, это будет выглядеть как !1:: Переходим на следующую строку, там указываем метку, к которой мы потом будем возращаться в скрипте Назовем эту метку например: Trololo: У нас получается такой скрипт на данный момент: Код!1:: Trololo: Переходим на следующую строчку и тут начинается все самое интересное А именно - пишем клавиши которые будут нажиматься за вас Вводим SendInput, или Send, Теперь разберем эти Send-функции: SendInput - самый предпочтительный способ для посылки клавиш, очень быстрый по сравнению с Send, но есть нюансы - клавиши посылаются очень быстро и поэтому если мы делаем скрипт с какими-то движениями для игрока, то лучше юзать Send Send - обычный способ, похож на то с какой самой быстрой скоростью вводит человек клавиши На этой же строке далее вводим какая кнопка будет нажиматься Клавиши при всех дочерних функциях Send употребляются в фигурных скобках { и } Наша строка будет выглядеть примерно так - Send, {Up Down} Вы спросите - откуда появилось сразу и Up и Down Объясняю, Up - это клавиша которая будет нажиматься, обозначает клавишу Стрелка "Вверх" на клавиатуре, в GTA делает шаг вперед Down после Up показывает что кнопка будет зажата, а если после Up будеть стоять Up, это будет означать что эту клавишу нужно какбэ отпустить Представим функцию Send, {1 2} Представим 1 - это клавиша Up на клавиатуре А 2 после 1 - это значит положить камешек на эту стрелку Вы наверное так раньше юзали чтобы вас не кикнуло от AFK, а теперь все также, только теперь камешек невидимый Переходим на следующую строку - там ставим "задержку", т.е. Sleep Мы ставим к примеру Sleep, 5000 5000 - это 5000 миллисекунд, т.е. 5 секунд На следующей строке "убираем камешек" с клавиши Вверх Т.е. вот так - Send, {Up Up} У нас получается вот такой скриптик на данный момент: Код!1:: Trololo: Send, {Up Down} Sleep, 5000 Send, {Up Up} Мы нажимаем Alt+1, зажимается клавиша Up, по истечении 5 секунд клавиша "отпускается" Теперь идем дальше Чтобы все время не нажимать на Alt+1, а спокойно нажать один раз и уйти пить чай, нам нужно поставить переход к нашей метке Trololo чтобы она повторила выполнение Для этого есть функция Goto Выглядеть это будет так - Goto, Trololo Но чтобы наш персонаж не шел вперед бесконечно, поставим задержку после строки где отпускается клавиша Up Мы можем поставить задержку например на 560 секунд (9.2 минуты) Это время, данное вверху - приблизтельное время до кика за AFK на Samp-Rp Итак, получаем данный скрипт: Код!1:: Trololo: Send, {Up Down} Sleep, 5000 Send, {Up Up} Sleep, 560000 Goto, Trololo Ну и в довершении всего добавим проверку на то что мы находимся в GTA:SA:MP, добавляем функцию паузы для скрипта на клавишу Alt+2 Код!1:: Trololo: IfWinActive, GTA:SA:MP { Send, {Up Down} Sleep, 5000 Send, {Up Up} Sleep, 560000 } Goto, Trololo !2::Pause Вот и все! Вы сделали свой собственный AntiAFK-скрипт! Удачи! P.S. Для знающих о том почему я поставил проверку на то что мы в данный момент в GTA:SA:MP после метки Trololo, а не перед ней - а потому что за эти 560 секунд например, вдруг мы нечаянно свернули GTA:SA:MP, включили Counter-Strike, сидим в засаде, а скрипт начнет действовать и выведет вас из засады. Ситуации могут быть разными! P.S.S. Почему нельзя использовать например клавиши W, A, S, D в Send, {Клавиша Down} Да потому что эти клавиши будут работать только тогда когда ваша раскладка на английском языке |
| |||
| |||