Что такое AHK и почему он нужен в Amazing Online?

Гайд по созданию идеального AHK-скрипта для Amazing Fire Army: от установки до готового кода с GUI. Упрости фарм и доминируй в Amazing Online!

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru


Содержание

  1. Что такое AHK и почему он нужен в Amazing Online?
  2. Необходимые программы и библиотеки
  3. Установка AutoHotkey и подготовка среды
  4. Структура типового скрипта для Amazing Fire Army
  5. Создание пользовательского интерфейса с вкладками
  6. Полный пример скрипта «Amazing Fire Army»
  7. Распространённые ошибки и их решение
  8. Юридические и этические аспекты
  9. Полезные ресурсы и ссылки

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

  1. Перейдите на официальный сайт и нажмите «Download AutoHotkey Installer».
  2. Запустите установщик, выберите Unicode 32‑bit (это важно для совместимости с большинством игр).
  3. После установки проверьте версию: 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, пункт «Замена программы‑запускателя».
  • Скрипт не отправляет сообщения в чат:
    1. Убедитесь, что заголовок окна игры точно совпадает с переменной GameWindowTitle. Можно проверить через Window Spy (в комплекте с AHK).
    2. Если игра работает в режиме «полноэкранный», переключите её в «окно без рамки» – 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‑сессий!