Содержание
- Что такое AHK и почему он нужен в Amazing Online?
- Необходимые программы и библиотеки
- Установка AutoHotkey и подготовка среды
- Структура типового скрипта для Amazing Fire Army
- Создание пользовательского интерфейса с вкладками
- Полный пример скрипта «Amazing Fire Army»
- Распространённые ошибки и их решение
- Юридические и этические аспекты
- Полезные ресурсы и ссылки
AutoHotkey (AHK) – это бесплатный скриптовый язык для Windows, позволяющий автоматизировать ввод с клавиатуры, мыши и создавать графические интерфейсы. В онлайн‑игре Amazing Online (часто называют Amazing RP) многие игроки используют AHK для:
- Быстрого ввода готовых реплик (RP‑отыгровок) для государственных организаций, спецподразделений и т.п.;
- Автоматизации рутинных действий (покупка лицензий, открытие меню, переключение между окнами);
- Создания удобных панелей с вкладками, где каждый таб хранит набор фраз для конкретной «армии» – в нашем случае Amazing Fire Army.
Скрипт, о котором пойдёт речь, ориентирован на сотрудников ОСН ГРОМ, ФСБ и Специализированной роты, но его можно адаптировать под любую фракцию.
Необходимые программы и библиотеки
Для работы скрипта вам понадобятся:
- AutoHotkey v1.1.37.02 (или новее). Скачать можно с официального сайта autohotkey.com.
- Дополнительный исполняемый файл
AutoHotkeyA32_UIA.exe– нужен для корректной работы UI Automation (см. раздел «Распространённые ошибки»). - Библиотека
Gdip.ahk(для рисования кастомных окон) – GitHub. - Библиотека
GuiTabs.ahk(упрощённое создание вкладок). Можно взять из репозитория hi5/_AHK_Library.
Все библиотеки следует разместить в одной папке с вашим скриптом или добавить путь к ним в переменную #Include.
Установка AutoHotkey и подготовка среды
Шаг 1. Скачивание и установка AHK
- Перейдите на официальный сайт и нажмите «Download AutoHotkey Installer».
- Запустите установщик, выберите Unicode 32‑bit (это важно для совместимости с большинством игр).
- После установки проверьте версию:
AutoHotkey.exe /?в командной строке.
Шаг 2. Замена программы‑запускателя (для решения ошибки «ANSI 32‑bit»)
Если при запуске скрипта появляется сообщение «Ошибка кодировки ANSI 32‑bit», выполните следующее:
- Скачайте
AutoHotkeyA32_UIA.exe(обычно он находится в папке установки AHK, файл называетсяAutoHotkeyA32_UIA.exe). - Кликните правой кнопкой мыши по вашему
.ahk‑файлу → Открыть с помощью… → Выбрать другое приложение → укажите путь кAutoHotkeyA32_UIA.exeи отметьте «Всегда использовать это приложение».
Шаг 3. Подключение библиотек
#Include Gdip.ahk
#Include GuiTabs.ahk
Структура типового скрипта для Amazing Fire Army
Ниже представлена «скелетная» структура, которую удобно использовать как основу:
; -------------------------------------------------
; Amazing Fire Army – AHK скрипт
; Версия: 1.0
; Требуемая версия AutoHotkey: 1.1.37.02
; -------------------------------------------------
#NoEnv ; Рекомендовано для совместимости
#SingleInstance force ; Запрещаем запускать несколько копий
SendMode Input ; Быстрый ввод
SetWorkingDir %A_ScriptDir% ; Папка скрипта как рабочая
; ---------- Подключаем библиотеки ----------
#Include Gdip.ahk
#Include GuiTabs.ahk
; ---------- Глобальные переменные ----------
global FireArmyPhrases := {}
global CurrentDelay := 50 ; задержка между отправкой символов (мс)
; ---------- Инициализация ----------
InitPhrases
CreateMainGui
return
; -------------------------------------------------
; Функция: заполняет массив готовыми репликами
; -------------------------------------------------
InitPhrases {
; Пример: реплики для пожарных
FireArmyPhrases["Пожарный"] := [
"Внимание! Пожар в здании №%1%!",
"Эвакуировать всех граждан в безопасную зону.",
"Подать сигнал SOS в центр управления."
]
; Реплики для командования
FireArmyPhrases["Командование"] := [
"Отчет о текущем положении дел.",
"Запросить подкрепление от спецподразделения.",
"Подтвердить получение приказа."
]
}
Дальше идут функции создания GUI, обработчики нажатий клавиш и отправка текста в чат игры.
Создание пользовательского интерфейса с вкладками
Для удобства мы будем использовать библиотеку GuiTabs.ahk. Она позволяет быстро добавить несколько табов, каждый из которых будет содержать ListBox со списком реплик.
CreateMainGui {
Gui, New, +Resize +MinSize500x300, Amazing Fire Army
Gui, Font, s10, Segoe UI
; Создаём объект TabControl
Tab := new GuiTabs
Tab.AddTab("Пожарные", "FireTab")
Tab.AddTab("Командование", "CommandTab")
Tab.Show
; Заполняем ListBox в каждом табе
Gui, FireTab: Add, ListBox, vFireListBox w460 h200 gSendPhrase, % Join("|", FireArmyPhrases["Пожарный"])
Gui, CommandTab: Add, ListBox, vCommandListBox w460 h200 gSendPhrase, % Join("|", FireArmyPhrases["Командование"])
; Кнопка отправки
Gui, Add, Button, gSendSelectedPhrase Default, Отправить
Gui, Show, AutoSize
}
Функция SendPhrase будет вызываться при двойном клике по элементу списка, а кнопка «Отправить» – при нажатии клавиши Enter в окне.
Полный пример скрипта «Amazing Fire Army»
; -------------------------------------------------
; Amazing Fire Army – полностью готовый скрипт
; Требуемая версия AutoHotkey: 1.1.37.02
; -------------------------------------------------
#NoEnv
#SingleInstance force
SendMode Input
SetWorkingDir %A_ScriptDir%
#Include Gdip.ahk
#Include GuiTabs.ahk
; ---------- Конфигурация ----------
global FireArmyPhrases := {}
global CurrentDelay := 40 ; задержка между символами (мс)
global GameWindowTitle := "Amazing Online" ; заголовок окна игры
; ---------- Инициализация ----------
InitPhrases
CreateMainGui
return
; -------------------------------------------------
; Заполняем массив реплик
; -------------------------------------------------
InitPhrases {
FireArmyPhrases["Пожарные"] := [
"Внимание! Пожар в здании №%1%!",
"Эвакуировать всех граждан в безопасную зону.",
"Подать сигнал SOS в центр управления.",
"Подтверждаю прибытие на место происшествия."
]
FireArmyPhrases["Командование"] := [
"Отчет о текущем положении дел.",
"Запросить подкрепление от спецподразделения.",
"Подтвердить получение приказа.",
"Согласовать план действий."
]
}
; -------------------------------------------------; Создаём главное окно с вкладками
; -------------------------------------------------
CreateMainGui {
Gui, New, +Resize +MinSize500x350, Amazing Fire Army
Gui, Font, s10, Segoe UI
; Таб‑контрол
Tab := new GuiTabs
Tab.AddTab("Пожарные", "FireTab")
Tab.AddTab("Командование", "CommandTab")
Tab.Show
; ListBox в каждом табе
Gui, FireTab: Add, ListBox, vFireLB w460 h200 gSendPhrase, % Join("|", FireArmyPhrases["Пожарные"])
Gui, CommandTab: Add, ListBox, vCommandLB w460 h200 gSendPhrase, % Join("|", FireArmyPhrases["Командование"])
; Кнопка отправки
Gui, Add, Button, gSendSelectedPhrase Default, Отправить
Gui, Show, AutoSize
return
}
; -------------------------------------------------
; Обработчик двойного клика по ListBox
; -------------------------------------------------
SendPhrase:
Gui, Submit, NoHide
; Получаем выбранный элемент из активного ListBox
ControlGet, Selected, List, Selected, %A_GuiControl%
if (Selected = "")
return
ControlGet, Text, List, %Selected%, %A_GuiControl%
SendMessageToGame(Text)
return
; -------------------------------------------------
; Кнопка «Отправить» – отправляет выбранный элемент
; -------------------------------------------------
SendSelectedPhrase:
Gui, Submit, NoHide
; Определяем, какой ListBox активен
if (WinActive("ahk_id " . FireLB_Hwnd))
ControlGet, Text, List, Selected, FireLB
else if (WinActive("ahk_id " . CommandLB_Hwnd))
ControlGet, Text, List, Selected, CommandLB
else
return
SendMessageToGame(Text)
return
; -------------------------------------------------
; Функция отправки текста в чат игры
; -------------------------------------------------
SendMessageToGame(Message) {
; Активируем окно игры
if WinExist(GameWindowTitle) {
WinActivate
Sleep 100
; Открываем чат (обычно клавиша "Enter")
Send, {Enter}
Sleep 50
; Вводим сообщение посимвольно с задержкой
Loop, Parse, Message
{
Send, %A_LoopField%
Sleep, %CurrentDelay%
}
; Отправляем
Send, {Enter}
} else {
MsgBox, 48, Ошибка, Не найдено окно игры с заголовком "%GameWindowTitle%".
}
}
Скрипт полностью готов к использованию. Чтобы добавить новые реплики, достаточно отредактировать функцию InitPhrases и добавить новые массивы.
Распространённые ошибки и их решение
- Ошибка «ANSI 32‑bit» – см. раздел Установка AutoHotkey, пункт «Замена программы‑запускателя».
- Скрипт не отправляет сообщения в чат:
- Убедитесь, что заголовок окна игры точно совпадает с переменной
GameWindowTitle. Можно проверить черезWindow Spy(в комплекте с AHK). - Если игра работает в режиме «полноэкранный», переключите её в «окно без рамки» – AHK не может посылать клавиши в чистый полноэкранный режим.
- Убедитесь, что заголовок окна игры точно совпадает с переменной
- ListBox не отображает новые строки после правки скрипта – перезапустите скрипт (правый клик по иконке в трее → «Reload Script»).
- Скрипт «залипает» после отправки сообщения – уменьшите значение
CurrentDelay(не менее 20 мс) или проверьте, не конфликтует ли он с другими макросами.
Юридические и этические аспекты
Использование макросов в онлайн‑играх часто регулируется правилами серверов. Перед тем как применять скрипт в Amazing Online:
- Ознакомьтесь с правилами поведения конкретного сервера (например, «Amazing Fire Army»).
- Убедитесь, что автоматизация реплик не считается «читом». На большинстве RP‑серверов такие скрипты допускаются, если они не дают игрового преимущества.
- Не используйте скрипт для спама, массовой рассылки рекламных сообщений или нарушения правил чата.
Нарушение правил может привести к блокировке аккаунта, поэтому действуйте ответственно;
Полезные ресурсы и ссылки
- Официальный сайт AutoHotkey – загрузка, документация, форум.
- Библиотека GuiTabs – упрощённое создание вкладок.
- Gdip.ahk – работа с графикой, если захотите добавить иконки.
- Видео‑гайд «Гайд по AHK для AMAZING ONLINE» (RUTUBE, 5 марта 2025, 3:13) – ссылка.
- GitHub‑репозиторий ValekusVachpekus/AHK-FSB – пример скрипта для ФСБ, который легко адаптировать под Fire Army.
Скрипт на AutoHotkey для Amazing Fire Army позволяет быстро и удобно отправлять готовые реплики, экономя время и повышая качество RP‑отыгрыша. В статье мы рассмотрели:
- Необходимые инструменты и библиотеки;
- Пошаговую установку и настройку;
- Структуру скрипта и создание GUI с вкладками;
- Полный готовый пример кода;
- Типичные ошибки и способы их устранения;
- Юридические нюансы использования.
Если у вас возникнут вопросы – смело пишите в комментариях или создавайте issue в репозитории на GitHub. Удачной игры и продуктивных RP‑сессий!