Cтолкновения
⌨️
Cтолкновения

🔥 Обзор

Эти файлы используются для определения поведения при столкновении и вызываются системными INI-файлами при определении столкновения (например, area_scout.ini). Имейте в виду, что столкновения особенно подвержены сбоям без spew при наличии ошибок и определяются несколькими INI-файлами.

💨 Ванильные примеры

  • DATA\MISSIONS\ENCOUNTERS\area_armored_prisoner.ini
  • DATA\MISSIONS\ENCOUNTERS\area_armored_prisonerarea_scout.ini
  • DATA\MISSIONS\ENCOUNTERS\area_armored_prisonerminingp_scavenger.ini
  • DATA\MISSIONS\ENCOUNTERS\area_armored_prisonerpatrolp_bh_patrol.ini
  • DATA\MISSIONS\ENCOUNTERS\area_armored_prisonertradelane_trade_transport.ini
  • DATA\MISSIONS\ENCOUNTERS\area_armored_prisonertradep_trade_freighter_smuggler.ini

💢 Синтаксис

Все INI-файлы в этой папке имеют одинаковый синтаксис. В одном файле можно определить несколько блоков [EncounterFormation]. Блок [Creation] может быть определён только один.

💥 [EncounterFormation]

[EncounterFormation]
ship_by_class = INT, INT, STRING
ship_by_npc_arch = INT, INT, STRING ;optional
pilot_job = STRING
make_class = STRING ;optional
formation_by_class = STRING
behavior = STRING
arrival = STRING, -STRING, -STRING, ...
allow_simultaneous_creation = BOOL
zone_creation_distance = INT
times_to_create = INT
Параметр Информация
ship_by_class Этот параметр ссылается на класс, определённый в shipclasses.ini, и задаёт минимальное и максимальное количество кораблей для появления. Практический предел кораблей на один блок [EncounterFormation] — около 17. Превышение этого лимита может вызвать сбой игры.
ship_by_npc_arch Работает аналогично ship_by_class, но позволяет напрямую указать никнейм из npcships.ini. Важно, чтобы вызов столкновения в системе соответствовал уровню сложности [NPCShipArch], иначе возможны сбои.
pilot_job Определяет поведение пилота, заданное в блоке JobBlock в pilots_population.ini.
make_class Переопределяет тег класса из shipclasses.ini для создаваемых кораблей перед их появлением. Можно использовать вместе с density_restriction зоны, чтобы ограничить появление определённых кораблей при заданных условиях.
formation_by_class Определяет формацию, которую будет использовать столкновение, согласно тегу formation из faction_prop.ini. Вместимость формации ограничивает число кораблей, которые могут образовать формацию. Корабли могут появляться сверх лимита, но не смогут формироваться и не будут двигаться, пока на них не нападут.
behavior Определяет поведение кораблей в формации. Значения, похоже, захардкожены. Известные варианты: wander, trade, patrol_path. Подробнее см. раздел "Behavior" ниже таблицы.
arrival Определяет способы появления формации. Известные варианты: all, object_all, tradelane, object_docking_ring, object_jump_gate, object_station, object_capital, cruise, buzz. Можно задавать несколько способов, а для исключения метода использовать префикс -. Например, all, -tradelane позволит все методы, кроме tradelane.
allow_simultaneous_creation Определяет, создаются ли все корабли столкновения одновременно или последовательно. Одиночные столкновения не будут усиливаться, но таймер повторного появления (repop_timer) продолжит отсчёт. Когда таймер достигнет 0, игра "удержит" следующее столкновение до уничтожения текущего, появив его, когда последний корабль текущего столкновения исчезнет.
zone_creation_distance Определяет минимальное расстояние от игрока, на котором может появиться это столкновение.
times_to_create Похоже, что этот параметр не используется. Возможно, это остаток от старых версий Freelancer, где столкновения могли появляться ограниченное число раз. Значение может быть либо "infinite", либо целым числом.

🔭 Behavior Parameter (Параметр поведения)

Этот параметр определяет схему поведения полёта для всей группы столкновения, независимо от других параметров. Задание пилота по-прежнему определяет, как пилот будет себя вести при столкновении с объектами или кораблями, принадлежащими другой фракции. Как правило, созданные столкновения исчезают, покидая зону действия в соответствии с их схемой поведения.

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

Поведение Информация
wander (зоны) Корабли будут летать по случайной траектории на нормальной скорости внутри зоны. Они исчезают только при выходе за пределы зоны и не будут швартоваться, использовать врата или прыжковые дыры. Такое поведение можно применять в зонах с путями, но оно может вести к нежелательным эффектам: пилоты обычно летят по случайным траекториям внутри границ зоны пути.
trade (зоны вокруг объектов) Когда столкновения с этим поведением появляются рядом с базой, прыжковыми вратами, прыжковой дырой или кольцом торгового пути, корабли будут использовать эти объекты при выполнении определённых условий (фракция столкновения должна быть указана в mbases.ini базы и иметь достаточную дружелюбность для швартовки). Если игрок отчалит, он может обнаружить столкновение уже присутствующим. Все корабли, покидающие станцию, будут иметь заполненные трюмы выбранными товарами из commodity_per_faction.ini. Прибывающие корабли будут с пустыми трюмами. Если появление происходит вдали от интерактивных объектов, корабли появятся с пустыми трюмами и полетят на крейсерской скорости к случайному швартуемому объекту в системе.
trade (зоны пути) Торговые пути обычно соединяют швартуемые объекты. Корабль с этим поведением появится в любом месте пути и будет двигаться в одном из направлений на крейсерской скорости. Обычно он попытается пристыковаться в пункте назначения, если вы будете следовать за ним до конца.
patrol_path (зоны пути) Это поведение не следует использовать в зоне. Корабль с этим поведением появится в любой точке пути и будет следовать по нему в одном направлении. Когда он попадёт в зону действия и истечёт relief_time, патруль завершит текущий участок маршрута и попытается пристыковаться к ближайшему объекту. Если маршрут патруля образует замкнутый цикл, корабли будут летать по нему до истечения времени relief_time.
Предупреждение

Если в бою используется либо trade, либо patrol_path, маршруты патрулирования должны начинаться на определенном расстоянии и заканчиваться в пределах досягаемости оснащённого сканера от объекта, к которому могут пристыковаться участники боевого прикрытия, как определено в mbases.ini. Неправильное расположение способов патрулирования при проведении сбоям.

💨 [Creation]

[Creation]
permutation = INT, INT
Параметр Информация
permutation Когда определено несколько блоков [EncounterFormation], можно использовать этот параметр в блоке создания для задания вероятности появления столкновения. Первое значение — это ID [EncounterFormation], начиная с нуля в порядке определения, второе значение — вес вероятности.