Первый раз на сервере? Узнай как зайти →

Загрузка данных...

Патчноут

Обновление «Пятая симфония» от 05.09.2026

Это обновление получилось не совсем обычным. Обычно мы приносим вам новые механики, технику и задания — и они здесь тоже есть, целых семь штук. Но главное в «Пятой симфонии» лежит под капотом.

За последние две недели мы заменили собственными разработками сразу четыре инструмента, на которых держался проект: лаунчер, защиту миссии и серверного аддона, сайт и — самое серьёзное — драйвер, через который игровой сервер разговаривает с базой данных. Всё это написано нами, под нашу задачу, и больше не зависит ни от чужих лицензий, ни от чужого желания что-то поддерживать.

Ниже — по порядку.


1. Свой лаунчер

Что это вообще такое

Лаунчер — это отдельная небольшая программа, которую вы запускаете вместо того, чтобы вручную возиться с ArmA 3, модами, мастерской Steam и TeamSpeak. Одно окно, одна кнопка «Запуск».

Раньше подключение к серверу выглядело так: найти нужные моды в мастерской, подписаться на каждый, дождаться загрузки, не перепутать версии, отдельно поставить TeamSpeak, отдельно найти и установить плагин рации TFAR, потом собрать всё это в стандартном лаунчере ArmA и надеяться, что ничего не забыл. Каждая ошибка на любом из этих шагов — это «не пускает на сервер», и дальше поход в Discord за помощью в и без того перегруженный чат технической поддержки (ребята, вы крутые).

Теперь всё это делает лаунчер.

Главное окно лаунчера

Что он умеет

Сам находит игру. Лаунчер просматривает все библиотеки Steam на всех ваших дисках и сам находит Arma3_x64.exe. Если игра стоит в нестандартном месте — можно указать файл вручную, кнопка есть.

Берёт на себя моды. Лаунчер знает, какой набор модов сейчас нужен серверу, сравнивает его с тем, что у вас реально стоит, и показывает, чего не хватает. Список модов открывается прямо в лаунчере: каждый пункт — кнопка, ведущая на страницу мода в мастерской. Подписались — лаунчер сам находит скачанное Steam'ом (во всех библиотеках, на всех дисках), раскладывает по нужным папкам и проверяет, что мод на месте и не побит: папка существует, содержимое полное, идентификатор совпадает с нужным. Собирать список модов руками и импортировать пресет больше не надо.

Моды по-прежнему приходят из мастерской Steam — тут мы ничего не меняли. Лаунчер их не качает и не подписывает вас: подписка остаётся за вами, он лишь доводит дело до рабочего состояния и не пускает в бой с неполным набором.

Раздача модов напрямую с нашего сервера в лаунчере уже заложена — но пока не включена. Механизм готов и ждёт своего часа: у каждого файла в описи есть размер и контрольная сумма SHA-256, лаунчер считает суммы файлов на диске в несколько потоков, сам находит битый или недокачанный файл и перекачивает только его, а не весь мод целиком. Мы задействуем это, если понадобится — например, если мод не получится держать в мастерской или потребуется выдать срочную правку в обход Steam. Пока всё остаётся как есть, и качать вы будете из Steam.

Ставит TeamSpeak и плагин рации. Скачивает, устанавливает, кладёт плагин TFAR куда надо и показывает статус: версия TeamSpeak, стоит ли плагин. Перед запуском игры предупредит, если TeamSpeak не включён.

Показывает, что происходит на сервере. Прямо в окне: сколько человек онлайн, какая карта, сколько осталось до рестарта.

Обучение для новичков. При первом запуске лаунчер проводит по шагам: где игра, что качаем, зачем TeamSpeak, как подключиться. Пройти его заново можно в любой момент из настроек.

Обновляет сам себя. Вышла новая версия лаунчера — он её поставит сам, скачивать заново ничего не нужно.

Настройки запуска — по-человечески. Пропуск заставок, проверка подписей, BattlEye, гипертрединг, автоматическое подключение к серверу сразу при старте игры. Всё галочками, без ковыряния в параметрах командной строки.

Настройки лаунчера

Привязка Steam-аккаунта. Относится к той же будущей раздаче с нашего сервера: у привязанных аккаунтов выше лимит скорости скачивания. Пока моды идут из Steam, на скорость это не влияет — привязка просто заранее готова. Делается через сайт в один клик, пароль Steam лаунчер не видит и не запрашивает: вход проходит в браузере, на стороне Steam и сайта.

Полный сброс. Если что-то совсем разъехалось — одна кнопка возвращает лаунчер к состоянию «как при первом запуске». Установленные игры и скачанные моды при этом не удаляются.

Почему Windows показывает предупреждение

При первом запуске вы почти наверняка увидите синее окно: «Система Windows защитила ваш компьютер» и кнопку «Не выполнять». Это нормально, и вот почему.

Windows доверяет программам по двум признакам: подписана ли она платным сертификатом разработчика и сколько людей её уже безопасно запустили. Механизм называется SmartScreen.

Наш лаунчер — свежая программа. Сертификат для подписи, которому Windows доверяет сразу, стоит десятки тысяч рублей в год и выдаётся юридическому лицу — мы предпочитаем тратить эти деньги на сервер. А репутация нарабатывается только количеством запусков: чем больше людей запустит файл, тем быстрее предупреждение исчезнет само.

Поэтому SmartScreen говорит буквально следующее: «я эту программу раньше не видел». Не «она вредоносная», а «я её не знаю».

Что делать: нажмите «Подробнее», затем «Выполнить в любом случае». Один раз — дальше Windows запомнит.

Про антивирусы

Лаунчер не делает ничего, что антивирусу не понравится: он скачивает файлы, считает от них контрольные суммы и запускает игру. Никаких хитростей внутри нет.

Мы проверили итоговый файл Антивирусом Касперского (версия 21.26, антивирусные базы от 03.09.2026) — тем самым, который стоит у большинства из вас. Проверка разбирает установщик и смотрит всё, что внутри:

Проверено объектов:  1576
Обнаружено угроз:    0
Подозрительных:      0
Ошибок:              0

Ни одного срабатывания. Лаунчер спокойно работает с включённым антивирусом, добавлять его в исключения не нужно.

Для тех, кто хочет проверить сам — контрольная сумма файла на релизе обновления (она будет меняться с обновлениями, актуальную контрольную сумму всегда можно посмотреть на странице гайда "Как зайти на сервер" или получить её самостоятельно через команду в PowerShell):

SHA-256: d749bea2c44b105e01931153bedbcfb76240e111c74909d9149a961db0a68cd2

Её можно вбить на любом публичном сервисе проверки — например, на Kaspersky OpenTIP или VirusTotal — либо загрузить туда сам файл. Если скачанный вами файл даёт другую сумму — значит, он скачан не у нас, и запускать его не нужно.

Инструкция переписана

Страница «Как зайти на сервер» на сайте переписана под лаунчер. Раньше это были двадцать шагов со скриншотами: скачать пресет, положить на рабочий стол, импортировать в лаунчер ArmA, подписаться, потом одиннадцать шагов установки TeamSpeak и отдельно плагин рации. Теперь наверху короткий путь — скачать лаунчер, разрешить запуск, подписаться на моды по списку из самого лаунчера и нажать «Запуск». Прежняя ручная инструкция никуда не делась: она лежит там же, свёрнутая, — на случай если лаунчером пользоваться не хочется или что-то пошло не так.


2. Свой обфускатор

Что это такое

Обфускатор — это программа, которая превращает читаемый исходный код в работающий, но нечитаемый. Всё продолжает работать точно так же, но если кто-то вскроет файлы миссии, он увидит не аккуратный код с понятными названиями, а кашу из бессмысленных имён, разбросанных по случайным папкам.

Зачем это нам: миссия и серверный аддон RED — это без преувеличения тысячи часов работы. Файлы миссии физически попадают на компьютер каждого, кто заходит на сервер, — так устроена ArmA. Обфускация нужна, чтобы наш контент нельзя было просто взять и поставить у себя.

Почему это интересно само по себе

Инструментов такого класса для ArmA 3 на рынке буквально единицы. Все они — коммерческие, с платной лицензией, закрытым исходным кодом и, как правило, давно не развивающиеся: авторы выпустили продукт несколько лет назад и с тех пор к нему почти не возвращались. Мы пользовались одним из них — и упирались в его потолок каждый раз, когда хотелось что-то сделать по-своему.

Поэтому мы написали свой. Полностью: собственный упаковщик игровых архивов (PBO), собственный компилятор конфигов, собственный разборщик языка SQF, свой алгоритм сжатия, свою панель управления сборкой — и отдельно деобфускатор, которым мы проверяем собственную защиту на прочность.

Это, насколько нам известно, единственная живая разработка такого рода в русскоязычном сообществе ArmA 3, и она наша.

Что изменилось для вас: размер

Побочный, но очень приятный эффект собственного упаковщика — мы наконец смогли нормально сжимать содержимое. Цифры:

ЧтоБылоСталоРазница
Миссия RED.pja3101,12 МБ661 КБ≈ −41 %
Серверный аддон RedServer1,90 МБ590 КБ≈ −69 %
Итого3,02 МБ1,22 МБ≈ −59 %

Файл миссии сервер отдаёт каждому игроку при подключении. При полном сервере на 120 человек за один рестарт это было около 134 МБ только на раздачу миссии — теперь около 76 МБ. Меньше трафика, меньше нагрузки на канал сервера в самый неудобный момент (когда все заходят одновременно после рестарта), быстрее загрузка у вас и более стабильный игровой процесс в часы нагрузки с одновременным заходом игроков.

Серверный аддон стал легче больше чем втрое — это заметно при установке, при каждом обновлении и любом входе игрока на сервер.


3. Полный редизайн сайта

Сайт переписан визуально целиком. Новый стиль: тёмный фон с еле заметной сеткой, плоские панели без скруглений, красные уголки-кронштейны на активных блоках, моноширинные служебные подписи. Меньше украшательства, больше воздуха и читаемости — сайт военного проекта должен выглядеть как военный интерфейс, а не как витрина интернет-магазина.

Переработаны все разделы без исключения: главная, новости, каталог, чёрный рынок, ящики, личный кабинет, форум, публичные профили, подразделения, доска почёта, гайд и админ-панель.

Главная страница

Каталог

Личный кабинет

Подразделения

Форум

Чёрный рынок

В модальных окнах появились нормальные полосы прокрутки и пропала двойная прокрутка, ники в списках и на форуме стали кликабельными, а служебная карточка в личном кабинете переработана по композиции.


4. Свой драйвер подключения к базе данных

Это самая объёмная и самая сложная в реализации техническая часть обновления. Постараемся объяснить по-человечески, потому что для вас она значит больше, чем кажется.

Что это за файл и зачем он нужен

Вся ваша игровая жизнь хранится в базе данных: деньги, звание, гараж, арсенал, хранилище, подразделение, статистика, баны. База — это отдельная программа, которая живёт рядом с игровым сервером.

Сам движок ArmA 3 с базами данных работать не умеет. Совсем. Чтобы он мог, рядом с сервером кладут специальный файл — расширение, — который движок подгружает в себя и через который отдаёт команды базе. Это одна библиотека, RedExt_x64.dll, лежащая рядом с исполняемым файлом сервера.

Раньше эту роль выполняло стороннее расширение extDB3. Оно старое, написано не нами, давно не развивается и внутри устроено так, как в 2015 году было нормально, а сейчас — нет.

Теперь у нас своё, абсолютно уникальное, написанное на Rust — языке, который специально выбирают там, где программа не имеет права упасть.

Главное: почему сервер больше не подвисает

Вот суть проблемы, и она напрямую про то, что вы видите на экране.

Игровой сервер живёт кадрами — так же, как ваша игра. Он много раз в секунду пересчитывает весь мир: где кто стоит, куда летит пуля, что делает ИИ. Пока считается кадр, всё остальное ждёт.

extDB3 отправлял запрос в базу и ждал ответа прямо внутри кадра. Он не умел уступить очередь: получил задание — крутится на месте, пока база не ответит. Мы это измерили на настоящем сервере:

  1. один тяжёлый запрос — 35–79 миллисекунд полностью замершего сервера;
  2. один медленный запрос (база занята или подтормаживает) — 70–92 миллисекунды.

Кадр сервера при нормальной работе длится 10 миллисекунд. То есть один-единственный запрос к базе съедал от четырёх до девяти кадров подряд. А запросы редко приходят по одному: игрок заходит на сервер — это профиль, гараж, арсенал, хранилище, счётчики; открыл рынок — ещё пачка; массовая операция — десятки одновременно.

Вы это видели каждый день и, скорее всего, ругали интернет или свой компьютер:

  1. техника на секунду «залипает», а потом рывком оказывается в другом месте;
  2. ИИ дёргается и стреляет с задержкой;
  3. попадание засчитывается с опозданием;
  4. при заходе людей после рестарта сервер «дышит» рывками.

Это не был ваш пинг, а почти Arma3, или если точнее extDB3. Сервер каждый раз замирал, пока ждал базу.

Теперь запрос не задерживает кадр вообще. Игра отдаёт запрос расширению и сразу идёт считать мир дальше; запрос выполняют отдельные рабочие потоки, а ответ приходит, когда будет готов. Замеры в настоящем движке:

extDB3RedExt
Время внутри кадра сервера на один запрос35–92 мс0,001 мс (медиана), 0,02 мс для 99 % вызовов, максимум 0,12 мс
Кадров «съедено» одним тяжёлым запросом4–90

Разница в этом месте — четыре порядка. Не проценты, а в десятки тысяч раз.

Скорость

Там, где запросы идут пачкой (а это как раз вход игрока, гараж, ящики, сектора), новый слой выполняет их параллельно:

Тип нагрузкиextDB3RedExtВыигрыш
50 тяжёлых запросов подряд1 751–3 960 мс184–215 мсв 8–21 раз быстрее
20 медленных запросов1 392–1 832 мс308–373 мсв 4,5–5 раз быстрее

На мелких дешёвых запросах, которые база отдаёт мгновенно, старый слой по общему времени отвечает даже быстрее — счёт идёт на доли миллисекунды, а кадр не страдает в обоих случаях, так что заметить это невозможно. Вся разница проявляется на тяжёлых и медленных запросах, то есть ровно там, где раньше сервер и замирал.

Что ещё чинится само собой

  1. Работа с новыми типами данных. extDB3 физически не умел читать один из типов колонок базы (ENUM), и этим ограничивал удобство работы с базой, изменение исключительно внутреннее и вам не заметное, но всё же.
  2. Текст в базе больше не ломает запросы. У extDB3 была злая особенность: если в текстовой колонке лежал обычный человеческий текст (например, описание лота на рынке), разбор ответа мог падать и пропадал весь результат запроса, а не одна ячейка.
  3. Числа пишутся точно. Вот об этом — отдельно, ниже, потому что это то самое «у меня неправильно показываются деньги».

Надёжность

Расширение написано так, что оно не имеет права уронить сервер: любая внутренняя ошибка ловится и превращается в аккуратный код ошибки, а не в падение процесса.

Проверяли долго:

  1. два часа непрерывной нагрузки по профилю полного сервера на 120 игроков: 29 339 разноплановых по сложности и скорости запросов, 0 ошибок, расход памяти около 25 МБ и без роста;
  2. сверка со старым слоем: 90 реальных запросов игрового кода прогнали одновременно через extDB3 и через новый слой в две одинаковые копии боевой базы, а потом сравнили одиннадцать затронутых таблиц по контрольным суммам. Разошедшихся таблиц — ноль. То есть новый слой приводит базу ровно в то же состояние, что и старый;
  3. обход всех 166 таблиц боевой базы — ошибок нет;
  4. отдельный тест конкурентной записи: 500 записей и 100 чтений пачкой, без пауз — счётчик сошёлся ровно, ни одной потерянной или задвоенной записи.

Честное предупреждение

Разработка свежая. Она протестирована так тщательно, как мы вообще умеем — но это первый выход в бой на живом сервере с живыми людьми, а живые люди всегда находят то, что не находит тест.

Если увидите странность с деньгами, гаражом, арсеналом, хранилищем или сохранением персонажа — пожалуйста, сразу пишите в техподдержку, с временем и описанием, что делали. Мы держим руку на пульсе и в состоянии откатиться на старый слой в любой момент. Логи мы теперь пишем подробно — по вашему сообщению мы увидим ровно тот запрос, который сломался.


5. Большие суммы отображаются и сохраняются правильно

Отдельным пунктом, потому что это заметит каждый, у кого на счету больше миллиона.

В языке ArmA есть неприятная особенность: при переводе числа в текст он оставляет только шесть значащих цифр и дальше уходит в научную запись. Число 1 656 437 превращалось в 1.65644e+06. Именно это вы видели в банкомате и планшете вместо баланса.

Хуже, что то же самое происходило при записи в базу: в базу ложилось 1 656 440 вместо 1 656 437. Деньги тихо округлялись.

Исправлено во всех местах сразу: баланс счёта, наличные, касса подразделения, цены на рынке, сроки банов и заключения. Теперь и на экране, и в базе — точное значение до единицы.


6. Новые механики

«Язык» ДРГ: пленный офицер, допрос и схрон

Квест «Поиск и уничтожение ДРГ» перестал быть «приехал, всех положил, уехал».

Как это работает. С шансом 75 % в составе диверсионной группы противника есть офицер. Он не участвует в бою и не входит в счёт выполнения квеста. Как только боевая часть группы уничтожена, а офицер жив — он бросает оружие и сдаётся в плен, о чём человеку, взявшему квест, приходит уведомление.

Дальше начинается самое интересное:

  1. Связать пленного (взаимодействие ACE, нужна стяжка ACE_CableTie).
  2. Довезти живым — можно погрузить в транспорт. Мёртвый или без сознания пленный бесполезен.
  3. Доставить либо к точке конвоирования у комендатуры (та же, через которую отправляют на губу, радиус 20 м), либо к развёрнутому полевому штабу (радиус 45 м).
  4. Допросить. Право допроса есть у ВП, ФСБ и командира операции — это их эксклюзивный боевой контур. Допрос длится 20 секунд, всё это время нужно стоять неподвижно рядом с пленным.

Пленный колется не всегда. Базовый шанс разговорить его — 60 %. Молчун не теряется: через 10 минут его можно допросить снова, любым дознавателем. За успешный допрос допросивший получает премию 150 $.

Что даёт успешный допрос. На карте появляется отметка схрона ДРГ — только у того, кто допрашивал (дальше уже ваша игра: передать координаты по рации, собрать группу). Схрон стоит в лесу, в 2,5–6 км от места допроса, и его охраняют 6 бойцов. В одиночку туда лучше не ездить.

Схрон — это не конец. Помимо груза, в ящике лежат документы ДРГ. Действие «Изучить документы» занимает 5 секунд, документы одноразовые. С шансом 60 % они вскрывают полевой лагерь группы — он дальше (3–8 км от схрона), жирнее и охраняется 12 бойцами двумя патрулями: ближним у ящика и дальним по периметру. Координаты лагеря получает только тот, кто изучал документы.

Навык «Дознаватель». Новый навык, качается допросами пленных и изучением документов противника. Поднимает и шанс разговорить пленного, и шанс вскрыть лагерь по документам с 60 % до 100 %. Каждая попытка — даже неудачная — качает навык.

Что там лежит. Гарантированных позиций нет. Наполнение случайное из нескольких пулов: препараты, медицина ACE, взрывчатка и гранаты, гранатомёты и редкие предметы Зоны — оружие, рюкзаки, магазины, снаряжение. Схрон отдаёт 4–8 разных позиций, лагерь — 7–12. Пул может не выпасть вовсе, количество каждой позиции тоже случайное.

Тайминги: язык живёт 90 минут, схрон — 90 минут, лагерь — 2 часа. Если рядом нет игроков, противник их «вывозит».

Смысл механики простой: в бою у вас теперь есть выбор. Положить всех и забрать обычную награду за квест — или рискнуть, взять офицера живым, устроить логистическую мини-операцию с конвоем и получить сверху охраняемый схрон, а с удачей — и целый лагерь.

Боевое дежурство подразделения

Фоновые атаки противника на захваченные флаги превратились из шума в события с началом, боем и результатом.

Как заступить. Командир или заместитель подразделения ВС РФ открывает планшет → меню подразделения → «Боевое дежурство» → «Заступить». Дежурит одно подразделение единовременно. Всем игрокам приходит оповещение, событие попадает в «Сводки».

Как это выглядит в бою. Когда противник готовит налёт, на базе включается сирена, а бойцы дежурного подразделения получают красный приказ с районом и квадратом. От объявления до подхода противника — 7–8 минут: время собраться, выехать и занять оборону.

Награда. Считается участие: суммарно не меньше 2 минут в радиусе 600 м от флага за время боя.

  1. любому, кто оборонял флаг — 75 $;
  2. бойцу дежурного подразделения — 150 $ (двойная ставка);
  3. плюс дежурным оплачивается пост на КПП с множителем ×2.

Налёт засчитывается отражённым, когда пехота противника у флага уничтожена, а флаг удержан. Если противник вернул флаг — выплат нет, и сторона теряет надбавку к зарплате за этот флаг.

Дежурство — это обязанность, а не почётный статус. Если бой у флага состоялся, а ни один боец дежурного подразделения не отработал минимальные 2 минуты — это неявка:

  1. подразделение немедленно снимается с дежурства с публичным оповещением и записью в «Сводки»;
  2. от командования в отношении подразделения могут последовать соответствующие санкции;
  3. заступить снова можно только через 30 минут;
  4. если при этом флаг был потерян — из кассы подразделения удерживается штраф 500 $.

Если атака закрылась без боестолкновения — неявка не засчитывается. Ставка фиксируется в момент объявления тревоги: заступить посреди налёта ради двойной оплаты не выйдет.

Механика заточена под подразделение, которое в этот вечер «на хозяйстве»: оно закрывает и КПП, и тревоги, и внутренняя служба перестаёт быть скучной.

Заодно починили наземную поддержку с чекпоинта НАТО: раньше бронетехника противника при налётах на флаги из-за ошибки в скрипте так и оставалась на месте появления. Теперь БМП и БТР доезжают до флага — учитывайте это при обороне.

Лента новостей «Сводки»

В планшете появился раздел «Сводки» — лента событий сервера за последнюю неделю. Это не чат и не объявления администрации: это то, что сервер пишет о себе сам.

Что туда попадает: захват и потеря флагов (с именем отличившегося), присвоение званий, итоги турниров, крупные сделки на торговой площадке (от 1 500 $), развёртывание полевого штаба, выбросы в Зоне, успешные допросы пленных ДРГ, вскрытые лагеря, заступления на боевое дежурство, отражённые налёты и неявки по тревоге, и все динамические события мира.

Как устроено: записи хранятся 7 дней, в планшет отдаются 60 последних. Каждый тип события имеет несколько вариантов формулировки, и вариант выбирается устойчиво. Координаты схронов в сводки не попадают: разведданные — дело того, кто их добыл.

Смысл — общая память сервера. Зашли после перерыва, открыли планшет и за минуту поняли, что происходило: кто взял флаги, кого повысили, куда прилетело, что потеряли.

Динамические события мира

Между ивентами мир теперь живёт сам. Сервер время от времени объявляет происшествие — оно одно на весь сервер, его нельзя «взять в очередь», и достаётся оно тем, кто первым собрался и выехал.

Сбитый транспортник. В «Сводках» — точный квадрат крушения. На месте горящий остов, охрана из уцелевшего экипажа и 2–4 ящика МТО по 60 ОС каждый. Охрану уничтожить, ящики вывезти на полевой штаб либо на базу для ускоренного предварительного развёртывания после установки ПШ.

Колонна снабжения противника. Разведка даёт квадрат выхода и направление. Колонна идёт по дорогам — её нужно перехватить. На месте разгрома появляется трофейный ящик с тем, что противник вёз: либо прекурсоры и ёмкости для химкрафта, либо компоненты крафта, включая промежуточные — то, что иначе пришлось бы покупать или собирать самому. По магазинным ценам груз обычной колонны тянет на 1 500–2 000 $. Набор случайный, гарантированных позиций нет. Каждая четвёртая колонна — «жирная»: везёт дорогие промежуточные компоненты примерно на 6 000 $. Не остановили — колонна дошла, и в сводках фиксируется неудача.

Аварийный сброс. Контейнер снабжения спускается на парашюте с дымовым маркером. Квадрат объявляется всем сторонам, включая сопротивление. Кто первым дошёл и удержал точку — того и груз. Внутри — только редкое из Зоны, и контейнер тематический: либо препараты, либо оружие, патроны и прицелы. Каждый четвёртый сброс — «жирный»: больше оружия плюс редкие предметы Зоны — приборы ночного видения, тепловизоры, глушители, редкие препараты, а иногда и редкий рюкзак.

Разведгруппа у базы — и вот тут внимательнее.

Противник проводит разведку окрестностей базы ВС РФ. В «Сводках» — только ориентировочный квадрат: группу нужно искать, прочёсывая зелёнку. Разведчики не атакуют базу, но отстреливаются при обнаружении. В составе группы есть офицер — взятый живым, он проходит всю цепочку «языка» со схроном.

Если сводку проигнорировать, будет плохо. При онлайне (больше 10 человек на сервере и не меньше 5 в периметре базы в момент появления группы) разведчики не уходят по обычному таймеру — они ведут наблюдение до 45–60 минут. Если за это время группу не уничтожили, противник по её данным атакует базу:

  1. от чекпоинта НАТО выходит бронеколонна с десантом;
  2. с базы США поднимаются вертолёты с десантом и ударные вертолёты;
  3. состав растёт с онлайном: до 15 игроков — одна машина, один десантный борт и один ударный вертолёт; 16–30 — две машины, два десантных борта и один ударный; от 31 — три машины, три десантных борта и два ударных вертолёта.

Начало наступления объявляется всем: запись в «Сводках», уведомление, сирена боевой тревоги на базе, дежурному подразделению — приказ на оборону. Первая цель противника — граница периметра со стороны чекпоинта; через 15 минут уцелевшие силы идут на штурм самого расположения. Атака считается отражённой, когда наземные силы противника уничтожены; если гарнизон держится долго, противник отходит сам.

Судьба офицера на это не влияет — его можно и нужно брать в плен. Значение имеет только одно: уничтожена ли разведгруппа вовремя. Уничтожили — удара не будет вообще.

Общие правила событий: первое — не раньше 25 минут после старта сервера, минимальный онлайн 8 человек, пауза между событиями не меньше 20 минут, каждый тип повторяется не чаще раза в 60–90 минут, время жизни события 40–45 минут. Ивентолог может остановить запуск новых событий перед крупным ивентом.

Касса подразделения и покупка очков снабжения

У подразделений появился собственный денежный фонд.

Взнос делается у банкомата: в меню под основной панелью появился блок «Фонд подразделения» с полем суммы. Внести может любой боец подразделения, минимум 50 $. Взнос безвозвратный — вывести деньги из фонда в кошелёк нельзя никак. Это сделано намеренно: иначе фонд превратился бы в сейф «спрятать деньги от потери 5 % при смерти».

Тратить может только командир подразделения (не заместитель) и только при развёрнутом полевом штабе: планшет → меню отделения → «Передать в ОС штаба». Курс — 35 $ = 1 очко снабжения, лимит 1000 ОС на подразделение за сессию (сбрасывается рестартом).

Зачем это нужно. Личные деньги ветеранов наконец получают командный смысл: «копим на операцию». Командир подразделения получает бюджетную роль и решение с ценой — когда влить фонд в операцию. КМДО получает источник ОС, который готовят заранее, до ивента. Для экономики сервера это чистый сток: деньги уходят из игры безвозвратно.

Ориентир по балансу: ящик МТО даёт 80 ОС за конвой, деньгами тот же объём стоит 2 800 $. Деньги дополняют логистику, а не заменяют её.

Модуль «Назначить языком» для ивентологов

В дереве модулей Zeus появился раздел Rising Sun → «Назначить языком».

Ивентолог ставит модуль на любого ИИ-юнита ивента — открывается окно ввода «Показания пленного». Вписанный текст — это ровно то, что услышит игрок, который возьмёт этого юнита в плен и допросит. Сервер ничего не генерирует и не дополняет.

Дальше всё идёт по общей схеме: юнит сдаётся штатным модулем ZEN «Капитуляция», его связывают, конвоируют к комендатуре или ПШ и допрашивают. Разница только в результате: вместо схрона допросивший получает дословный текст показаний на экране и копию в дневнике карты (Карта → Записи), чтобы его можно было перечитать и передать по команде.

Модуль можно применить к тому же юниту повторно — текст откроется для редактирования, а пустое поле снимает пометку «язык». Игрока языком назначить нельзя.

Проще говоря: у ивентологов появился способ выдать сюжетную информацию через живого пленного, а не текстом в чат. Хотите, чтобы игроки узнали координаты, пароль или замысел противника — сделайте так, чтобы им пришлось довезти пленного до комендатуры.

Взрывчатка в заданиях полевого штаба

Задание «Подорвите технику в укрепрайоне противника» принимало только два вида зарядов из всех, что есть в игре, — и молча отказывалось работать со всеми остальными. Игроки приезжали на охраняемый укрепрайон с полным рюкзаком взрывчатки и не могли выполнить задание.

Теперь список зарядов единый с заданием «Подрыв снабжения» и включает ТМ-100, ТМ-200, ТМ-500, СВУ и ЭШ-200/400 наравне с ранцевым и подрывным зарядом. А если заряд всё-таки не подходит — игра честно об этом скажет, а не промолчит.


7. Discord-бот переписан с нуля

Бот, который жил одним большим файлом и десятком !-команд, разобран на 18 самостоятельных модулей. Каждый можно включить и выключить отдельно, каждый настраивается — и всё это из панели администратора прямо на сайте, без правки файлов и перезапуска бота.

Что бот теперь умеет:

Порядок в чатах

  1. Анти-флуд и защита от взлома. Главный сценарий: угнанный аккаунт рассылает одно и то же сообщение по всем каналам. Бот держит скользящее окно сообщений каждого пользователя, ловит рассылку, мгновенно выдаёт тайм-аут, удаляет все копии и присылает администрации карточку с кнопками «Забанить» / «Снять».
  2. Авто-модерация: запрещённые слова, чужие Discord-инвайты, ссылки вне белого списка, капс, флуд упоминаниями. Нарушения копятся, при накоплении за сутки — автоматический тайм-аут.
  3. Правила каналов: тонкая настройка для каждого канала отдельно — «текст только в ветки», «только чтение», запрет ссылок, изображений, видео, файлов, стикеров, обязательное медиа для галерей. Ссылки на YouTube, Rutube, VK Видео и Twitch считаются видео, а не ссылками.
  4. Контроль никнеймов: серверный ник обязан быть в форме «Фамилия И.О.» русскими буквами, сотрудникам СпН разрешён позывной одним словом. Без правильного ника недоступны каналы и команды бота, а в личку приходит инструкция.
  5. Команды модерации: /warn, /mute, /unmute, /kick, /ban, /unban, /history — с полной историей наказаний по каждому.

Связь с игрой

  1. Привязка аккаунта — /привязка с ключом из профиля на сайте. Ответ скрытый, ключ никто, кроме вас, не видит.
  2. Синхронизация ролей — /роли: роль подразделения, командира, заместителя, Zeus. Если одну роль изменить не удалось, остальные всё равно применяются, а вы получаете список того, что не вышло, вместо общего отказа.
  3. Контроль ролей подразделений. Боец, числящийся в подразделении, обязан быть на Discord-сервере с ролью своего подразделения — и без чужих. Нарушители получают игровой бан до исправления, командованию подразделения уходит уведомление. Ручные баны администрации при этом не перекрываются.
  4. Статусы и награды. Донат-статусы (RED Supporter → Sponsor → Investor → Main Investor) и наградные («Почётный игрок», «RED Team») выдаются и заменяются автоматически, а на сайте вас ждёт плашка-поздравление.
  5. Справка по подразделениям — /отделение и /отделения с составом прямо из базы.

Служебное

  1. Мониторинг игрового сервера: статус, онлайн и карта в выделенном канале, обновление каждые 15 секунд.
  2. Журнал событий: удалённые и изменённые сообщения, входы и выходы, баны, смены ников и ролей — видно и в лог-канале, и в панели на сайте.
  3. Отчёты по онлайну подразделений в XLSX — ежедневно по расписанию и вручную командой /отчет.
  4. Приветствие новичка, пост с правилами и кнопка выдачи роли после принятия.
  5. Техподдержка: контроль шаблона заявок и автосоздание тредов.

Под капотом: секреты вынесены из кода, соединения с базой идут через пул, все !-команды заменены слэш-командами (старые отвечают подсказкой, какой командой пользоваться теперь), а сам бот шлёт в базу сигнал «я жив», чтобы панель на сайте показывала его состояние честно.


Заключение

«Пятая симфония» — обновление не столько про контент, сколько про фундамент.

Мы могли бы за эти две недели выкатить пять новых заданий и четыре новых ящика — это было бы проще, быстрее и заметнее. Вместо этого мы переписали то, на чём проект стоит: собственный лаунчер вместо ручной возни с модами, собственная защита контента вместо чужой платной лицензии, собственный сайт вместо накопившегося визуального хаоса и — главное — собственный драйвер базы данных на Rust вместо расширения, которое замораживало сервер до 80–90 миллисекунд на каждый тяжёлый запрос.

Скажем прямо: технической базы такого уровня нет практически ни у одного проекта на ArmA 3. Не потому что мы умнее — а потому что это долго, дорого по времени (а если говорить прямо, то и по денежным средствам) и совершенно не видно в первый вечер. Зато видно во второй месяц: когда сервер не дёргается на полном онлайне, когда моды ставятся одной кнопкой, когда на игровой сервер вы заходите в несколько раз быстрее.

Мы это сделали, потому что дальше запланированы вещи, которые на старом фундаменте просто не поехали бы. Следующие обновления будут ещё серьёзнее и комплекснее — и направлены они на то, ради чего всё это затевалось: максимально необычный, живой и непредсказуемый игровой опыт, которого больше нигде нет. Этим RED всегда выделялся на фоне других проектов, так будет и впредь.

Спасибо, что играете с нами.

Оставайтесь на связи, с вами была команда RED.

27

02 Комментарии 4

Ратаев Ж.А.
5 СЕН 2026 — 14:23
Я твои руки целовал, обнова супер!
Титанович П.А
Титанович П.А Почётный игрок RED Investor
5 СЕН 2026 — 15:37
Еху щас будут очень весело спасибо
Титанович П.А
Титанович П.А Почётный игрок RED Investor
5 СЕН 2026 — 15:37
можно опять жить на сервере
Мельник
5 СЕН 2026 — 17:23
классная обнова, красавчик