Обновлено:

На этой странице

Подготовка боевых воздушных действий: исходные ветки и открытые проверки

Состояние на28.10.2026 после0.17.0. Это рабочие результаты исследования для продолжения5.2. Бомбардировка, перехват и городская/войсковая ПВО ещё не являются действующими командами веб-движка.

Исследован предоставленный Conquests/Civ3Conquests.exe, SHA-256 c40583d707af7abd9b8568e2ed5a4f117f27a775dca617c8d7b873d76772dd6d. Адреса ниже относятся к этой поставке. Имена структур сопоставлены с первичными исходниками C3X; изменения C3X нельзя автоматически считать правилами исходного EXE.

Приказ воздушного превосходства

Ветка 0x4d9480 проверяет допустимость 0x30000004, вызывает установку состояния15 (0x4d9495–0x4d9499), получает полное движение (0x4d94a0) и записывает его в счётчик использованного движения (0x4d94a5, поле юнита +0x50).

Поиск перехватчика далее проверяет состояние15, использованное движение и предел движения (0x5c6b35–0x5c6b50). Часть с исчерпанным движением пропускается. Следовательно, назначение приказа нельзя без проверки заменить немедленным доступным перехватом. Первичный код C3X содержит отдельное исправление patch_intercept_lost_turn_bug: функция patch_Unit_get_move_points_after_set_to_intercept сохраняет прежнее значение движения только при включённом исправлении, иначе возвращает предел.

Веб-движок сейчас сбрасывает движения на границе глобального хода. Для будущей реализации нужно отдельно проверить реальную границу хода владельца, дипломатические прерывания и сохранение состояния готовности. Просто добавить проверку moves>0 после глобального сброса недостаточно для воспроизведения собственной очереди владельца. Точное Windows-поведение и исключения пока не проверены.

Городская ПВО складывается

Функция 0x4c1270–0x4c130c перебирает постройки, проверяет наличие/действие и устаревание, затем читает поле +0xc4 структуры постройки (0x4c12e4) и прибавляет его к накопленной силе (0x4c12eb). Выбор максимальной из построек не соответствует этой ветке.

В текущем профиле BLDG44 «Flak Cannons» имеет air_power=6, BLDG88 «Батарея ПВО» —12. Аэропорт9 имеет нулевую силу ПВО и отдельные флаги обучения/воздушной торговли. Предстоящая общая проверка должна учитывать действующие предоставленные постройки, устаревание и владельца через существующие функции зданий.

Для городской ПВО ранее проверен знаменатель случайного испытания planeDefense + airPower. Если результат достигает защиты самолёта, самолёт уничтожается; выжившая ветка также возвращается через выход прерванной миссии. Порог обнаружения берётся из обычного либо stealth-параметра RULE. В этой поставке это80 и5. Полный порядок случайных вызовов и иммунитетов ещё требует контрольных случаев.

Войсковая ПВО и истребители

Ранее исполненные арифметические блоки подтверждают вес выживания D*(experienceId+1)*5, знаменатель weight+AA и предельный выбор четырёх сильнейших зенитных частей. Поле опыта — абсолютное Unit+0x44; это не накопленный урон. Ветку сравнения результата, выбор участников и порядок при нескольких владельцах необходимо проверять отдельно.

Рабочий радиус истребителя делится на два с усечением и минимумом1 для положительного значения. При исходном нуле отдельная ветка оставляет нулевой радиус. После успешного перехвата 0x5c6e21 расходует движение и 0x5c6e24 вызывает смену состояния. Полная геометрия выбора и воздушный бой пока не исполнены в стенде.

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

Следующие проверяемые результаты

  1. Обычная бомбардировка и точечный удар: точные цели/категории повреждения, цена действия, исходные ограничения и отказ без изменения PRNG.
  2. Отдельные сохраняемые приказы перехвата и их готовность на настоящем ходу владельца.
  3. Городская ПВО, до четырёх зенитных частей и истребители: порядок испытаний, уничтожение/прерывание, общий воспроизводимый PRNG.
  4. Производство только реально поддержанных типов через общие национальные, технологические и ресурсные требования.
  5. Предпросмотр и ИИ по доступным игроку сведениям; исполнение может учитывать скрытую оборону, но подсказка не должна раскрывать её заранее.
  6. Исходные кадры полёта/атаки и звук после расчёта. Скрытые чужие действия не проигрываются и не загружают анимационные ресурсы.
  7. Сохранение посреди приказов, продолжение и полный небольшой игровой цикл до победы.

Проверенные численные блоки · Точная привязка пяти кнопок. Полная совместимость с Windows-оригиналом не заявляется.

Реализация v0.18.0

Первоначальные записи выше сохраняются как история исследования. Подключённая реализация,732 дополнительных исполнения исходных инструкций, проверки и оставшиеся расхождения описаны в air-combat-model.md.