Маппинг

Warning

Используйте сборку Tools игры. Если что-то пойдёт не так, сборка Tools или Release с меньшей вероятностью вылетит и потеряет работу вплоть до последнего автосохранения.

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

Это руководство разделено на рабочий процесс (настройка, начало работы над картой, сохранение, полезные инструменты / команды и публикация) и контент, а всё остальное, например глоссарий, находится внизу.

Краткое напоминание

Если вы прочитали “Рабочий процесс” и хотите освежить знания:

  1. Чтобы создать новую карту: mapping ID, или Чтобы отредактировать существующую карту: mapping ID PATH (например, mapping 1000 Maps/saltern.yml) Учтите, что ID должен быть номером карты, которой ещё не существует. Используйте lsmaps, чтобы увидеть список карт, которые используются в данный момент. Рекомендуется более высокий ID, чтобы не столкнуться с существующими.

  2. При желании выполните mappingclientsidesetup, чтобы использовать настройку маппинга по умолчанию.

  3. Внесите все изменения маппинга.

  4. Если были созданы новые комнаты, выполните fixgridatmos GID.

  5. Сохраните карту с тем же ID, который вы использовали ранее: savemap ID PATH. Важно: если вы работаете с утилизаторским объектом, шаттлом или Центральным Командованием, вместо этого нужен savegrid GRID_ID PATH.

Чтобы протестировать карту:

  1. Создайте прототип карты, если вы создаёте новую карту и его ещё не существует.

  2. forcemap MAP-NAME заставит сервер загрузить вашу карту. В сборке Release затем можно нажать F7 в лобби, чтобы открыть админ-меню, и использовать Round > Start Round, чтобы пропустить ожидание. В сборке Tools нужно использовать restartroundnow или F7 → админ-меню, затем Round > Restart NOW, чтобы переключиться на вашу карту.

  3. Если вы не тестируете энергосеть, entities with Battery do "setbatterypercent $ID 100" заставляет все ЛКП быть полностью запитанными без настройки двигателя.

  4. Чтобы вернуться к маппингу, вернитесь к шагу 1. Не сохраняйте карту во время тестирования.

Настройка

Со средой разработки

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

Сборка Tools

Если вы используете среду разработки, а не просто хостите локальный сервер, обязательно используйте Tools вместо режима Debug/DebugOpt. Это потому, что Debug добавляет искусственные задержки (делая маппинг неприятным) и чаще вылетает (из-за большего числа включённых утверждений). Кроме того, будьте осторожны и не используйте Release, который отключает инструменты и конфигурацию среды разработки и заставляет игру вести себя как стандартный сервер, а не как среда разработки.

Если у вас есть runclient-Tools.bat и runserver-Tools.bat, можете запустить их.

Если у вас нет вышеуказанного или вы хотите запустить через консоль самостоятельно, просто используйте:

dotnet run --project Content.Server --configuration Tools
dotnet run --project Content.Client --configuration Tools

Если вы используете IDE, будет другой способ задать конфигурацию. Например, в VS это просто выпадающее меню: mapping-release-dropdown.png

Без среды разработки

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

Рабочий процесс

Начало маппинга

Чтобы начать создавать карты, выполните следующие шаги:

  1. Запустите и клиент, и сервер. В Windows это можно сделать, запустив файлы “runclient.bat” и “runserver.bat” в каталоге вашего клонированного репозитория, после того как хотя бы раз соберёте проект / решение.
  2. Когда игровой клиент загрузится, подключитесь к серверу.
  3. Нажмите клавишу обратного апострофа/тильды `, чтобы открыть консоль отладки, позволяющую выполнять консольные команды.
  4. Выполните команду mapping [MapID] [MapFile], чтобы создать новую карту или отредактировать существующую.
    • Чтобы создать новую карту, укажите только map-id. ID должен быть свободен, то есть сервер в данный момент не может иметь загруженную другую карту с тем же ID), поэтому следует использовать достаточно высокий ID, чтобы избежать конфликта.
    • Чтобы отредактировать существующую карту в папке Maps/, нужно указать имя файла карты и свободный ID. Например, чтобы отредактировать карту Saltern, можно использовать что-то вроде mapping 1000 Maps/saltern.yml
    • Чтобы отредактировать карту, которую вы сохранили ранее, можно выполнить команду mapping 1000 [filename.yml]. Ваши сохранённые карты находятся в папке bin/Content.Server/data, отдельно от карт, используемых репозиторием в папке Resources/Maps.
  5. Внесите все изменения, которые хотите, используя режим песочницы и админ-инструменты. Нажмите F5, чтобы переключить спавнер сущностей, и F6, чтобы переключить спавнер тайлов. Стены являются сущностями, поэтому вы найдёте их в спавнере сущностей.
  6. Чтобы сохранить изменения, используйте команду savemap [MapID] [MapFile]. Например, savemap 1000 name.yml сохраняет локальную копию вашей изменённой карты в space-station-14/bin/Content.Server/data/name.yml

Общие инструменты и команды

  • SHIFT-Click: размещает линию из тайлов/предметов/чего угодно с привязкой к сетке
  • CTRL-Click: размещает квадрат из тайлов/предметов/чего угодно с привязкой к сетке
  • По умолчанию клавиша P (“Pick”) выбирает сущность или тайл, подсвеченный в данный момент под курсором, для размещения.
    • Учтите, что это размещает сущности того же прототипа, а не фактически копирует исходную сущность.
  • Чтобы раскрасить все трубы в сети труб, используйте colornetwork [entity id] Pipe [color], где entity ID — это любой uid трубы в связанной сети труб (используйте “Просмотр переменных” на трубе, чтобы найти его, если он не отображается в меню правого клика), а color — это hex-код цвета, начинающийся с #. Смотрите стандартные цвета труб в разделе “Стандартные цвета труб”.
  • zoom N, чтобы отдалиться во время маппинга. zoom 3 отдаляет в 3 раза. Используйте zoom 1, чтобы вернуть обычный масштаб.
  • В консоли отладки можно использовать команду физических форм, чтобы визуализировать сетки.
  • Чтобы исправить ошибочно повёрнутые стены, выполните fixrotations [GridID]
  • Чтобы найти ID сущности вашей сетки, нажмите F3 и наведите призрака на сетку. ID будет показан в левом верхнем углу.
  • В режиме маппинга вам не должно требоваться освещение. Если по какой-либо причине всё тёмное, выполните команду togglelight в консоли.
  • Используйте админ-меню (F8), чтобы переключать другие вещи, например отображение точек спавна и подпола. Это может облегчить понимание того, что вы делаете.
  • Если вы хотите протестировать освещение на вашей карте, не покидая редактор, используйте команду “mapinit”. Сохранитесь перед этим, так как это испортит вашу карту, если вы сохранитесь после выполнения этой команды.
  • Используйте https://affectedarc07.github.io/SS13WebMap/, чтобы посмотреть большинство карт SS13 онлайн
    • (https://game.ss13.moe/minimaps/images/maps/ для карт /vg/)
  • Во время тестирования карты вам может не хотеться возиться с настройкой питания каждый раз. В таком случае используйте: > entities with Battery do "setbatterypercent $ID 100"
  • Автосохранение карты включено по умолчанию и происходит в каталог данных сервера каждые 10 минут (cvar mapping.autosave_interval). Вы можете отключить его с помощью toggleautosave [map id] или изменить cvar mapping.autosave.

Действия маппинга

Панель действий позволяет назначать действия по размещению сущностей, тайлов и декалей. По сути они служат ярлыками, позволяющими быстро переключаться на размещение распространённых сущностей/тайлов/декалей. Эти действия можно выбирать, либо щёлкнув левой кнопкой мыши по заполненному слоту, либо используя соответствующую привязку клавиш (по умолчанию это цифровые клавиши 0-9). Также можно переключаться между 10 панелями инструментов, используя стрелки на панели или сочетание shift + <0-9>.

Чтобы назначить сущность на слот, просто откройте окно размещения сущностей и щёлкните по сущности, чтобы начать её размещение. Щелчок по пустому слоту панели инструментов вместо какого-либо места в игровом мире сохранит эту сущность в этот слот. Если вы сейчас находитесь в режиме стирания сущностей, щелчок по пустому слоту вместо этого создаст ярлык для режима стирания. Аналогичным образом можно назначать действия размещения тайлов. Учтите, что удаление тайлов — это то же самое, что размещение космических тайлов. Наконец, чтобы назначить действия декалей, нужно открыть меню декалей и настроить выбор декали. И снова, щелчок по пустому слоту добавит эту декаль на панель инструментов. Вы не можете сохранить ярлык стирания декали на панель инструментов, так как для этого должно быть открыто окно размещения декалей. Чтобы удалить действие из слота, просто щёлкните правой кнопкой мыши по этому слоту (при условии, что панель действий не заблокирована/заморожена).

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

Многосеточные и многостанционные карты

Станция и сетка — это не одно и то же. Например, каждый астероид — не отдельная станция, тогда как станция может состоять из нескольких сеток (например, спасательные шаттлы). Большинство карт имеют только одну сетку, хотя станции всё равно нужно настраивать в любом случае. Однако, поскольку вы можете использовать savemap и loadmap для сохранения/загрузки карт с несколькими сетками, есть поддержка переопределения этого поведения.

Чтобы сделать сетку частью станции, задайте ей BecomesStationComponent с уникальной строкой ID (используется только для целей маппинга). Например, сетки Saltern имеют этот компонент с ID Saltern. Вы можете редактировать их в VV или непосредственно в файле карты.

Чтобы сделать это в игре, найдите ID вашей станционной сетки с помощью F3, наведясь на пустой тайл на станции. Затем в консоли введите vv [Grid euID] с euID с экрана F3. Перейдите к серверным компонентам и добавьте или найдите BecomeStationComponent. Затем добавьте ID в соответствующее поле. Этот ID должен совпадать с ID, указанным в файле вашего прототипа карты. Это ID, указанный перед вашим списком ролей.

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

Создание скриншота вашей станции

Чтобы сделать скриншот вашей станции, вам нужны как прототип карты, хранящийся в Resources/Maps, который должна сгенерировать команда savemap 1000 name.yml из предыдущих шагов, так и игровой прототип карты, хранящийся в Resources/Prototypes/Maps, содержащий ID, путь и другую информацию; при создании обращайтесь к другим прототипам там как к примерам.

После этого выполните команду dotnet run --project Content.MapRenderer {your_map_id_here} в IDE или Git CLI с ID игрового прототипа карты (с учётом регистра). Вы также можете задать аргументы командной строки через свою IDE и запустить её таким образом. По завершении изображение должно находиться в Resources/MapImages.

Первый запуск вашей карты

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

  1. Скопируйте только что сохранённый файл маппинга из “space-station-14/bin/Content.Server/data/” в “space-station-14/Resources/Maps/”. Это также понадобится сделать позже для отправки ваших изменений.

  2. Если это совершенно новая карта, перейдите в “space-station-14/Resources/Prototypes/Maps” и создайте файл .yml для вашей карты (известный как прототип карты). Для ориентира скопируйте существующий и измените имя в соответствии с вашей новой картой, а содержимое отредактируйте в текстовом редакторе вроде Notepad++ или предпочитаемым вами способом, чтобы у вашей новой карты были уникальные ID и имя. Смотрите раздел о многосеточных и многостанционных картах для Station ID (это не то же самое, что ваш map ID).

  3. Теперь вы можете перезапустить клиент и сервер. После подключения выполните команду forcemap [ID], где ID — тот, что указан в файле .yml, о котором мы только что говорили. В Release просто нажмите F7 в лобби, чтобы открыть админ-меню, и используйте Round > Start Round, чтобы пропустить ожидание. Если вы на Tools, выполните команду restartnow или F7 → админ-меню, затем Round > Restart NOW, чтобы перезапустить сервер на вашей карте.

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

Открытие PR и добавление его в игру

Как только вы протестировали свою карту, запустив её в игре, как показано ранее, и прошлись по контрольному списку качества, как показано здесь, вы готовы создать пул-реквест, чтобы отправить свою карту в игру.

Важно

При отправке PR связанная ветка будет протестирована с помощью “проверок”, чтобы убедиться в отсутствии ошибок или конфликтов. PR, содержащий новую карту, будет отмечен задачей AllMapsTested внутри PostMapInitTest.cs, если её не добавить в список тестовых случаев внутри файла. Чтобы этого избежать, просто откройте файл PostMapInitTest.cs и добавьте ID любых новых карт в список с именем GameMaps.

Чтобы создать пул-реквест:

  1. Создайте ветку в вашем клонированном репозитории либо через ваш клиент Github.
  2. Добавьте файлы вашей карты и прототипа карты в свой коммит и обновите PostMapInitTest.cs там, где это применимо. (Проиндексируйте их)
  3. Закоммитьте эти два изменения в свою ветку, затем отправьте их в origin.
  4. Перейдите в репозиторий upstream SS14 и откройте вкладку пул-реквестов. Там должен быть баннер примерно такого содержания: “recent changes on your branch, pull request?”. Сделайте это, чтобы открыть пул-реквест для вашей карты. В качестве альтернативы можно открыть пул-реквест из вашего репозитория.
  5. Заполните страницу пул-реквеста такими деталями, как скриншоты / рендеры карты, уведомление о том, что вы следовали контрольному списку качества, максимальное / минимальное число игроков и любые другие детали, и добавьте запись в список изменений.

Не забудьте удалить сохранённую карту в space-station-14/bin/Content.Server/data, когда полностью закончите, так как она сохранится даже после коммита ваших изменений.

Устранение неполадок и ЧАВО

Загрузка вашей карты

Я получаю ошибку об отсутствующих прототипах

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

Затем откройте файл вашей карты в текстовом редакторе вроде Notepad++ и нажмите CTRL-F, найти и заменить — найдите отсутствующий ID прототипа и замените его на новый ID прототипа. Новый ID можно найти, проверив недавние PR на Github, спросив в Discord или проверив соответствующую папку сущностей на Github.

Я недавно обновился, и я получаю фатальную ошибку / игра не загружается

Если вы получили последний upstream master и пытаетесь запустить клиент и сервер, но он вылетает / выдаёт фатальную ошибку — вероятно, это означает, что вам нужно пересобрать проект в вашей IDE.

Откройте проект в Visual Studio Community или предпочитаемой вами IDE и снова соберите проект. Если проблемы сохраняются, убедитесь, что вы на последнем upstream, при необходимости снова получите upstream, запустите скрипт “Run_this.py” для обновления подмодулей, и если это всё ещё не работает, проверьте discord на предмет последней информации.

Контент

Контрольные списки карт

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

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

Спавнер тайлов

  • При размещении тайлов, как упоминалось, можно удерживать ctrl и щёлкать, чтобы разместить прямоугольник тайлов, или shift и щёлкать для линии.
  • Чтобы удалить тайлы, используйте тайл “Space”.
  • Вам не нужно сначала укладывать покрытие, а затем тайлы; можно просто разместить любой тайл, и в игре он приподнимется, чтобы показать тайл под ним (обычно покрытие).
  • Аналогично можно перезаписывать тайлы, размещая новый на их месте — не нужно сначала их удалять.
  • Будьте осторожны при размещении новых тайлов: они должны быть частью правильной сетки — размещайте их поверх существующего тайла при массовом размещении или убеждайтесь, что они привязываются к существующему тайлу. Периодически выполняйте lsgrid в консоли, чтобы проверить, что вы не создали больше сеток.

Спавнер и размещение сущностей

  • Ищите сущности по их ID в строке поиска, затем можете добавить её на панель действий слева для дальнейшего использования, щёлкнув с ней по слоту.
  • Используйте выпадающее меню Snap, чтобы изменить режим размещения. Для большинства вещей вам понадобится режим по умолчанию или привязка к центру. Иногда для индивидуального штриха нужно свободное размещение.
  • Не забывайте поворачивать некоторые сущности. К некоторым, например ЛКП и кнопкам, можно получить доступ только с одного направления.

Атмосфера

Если вы добавили новые комнаты или изменили планировку, после этих изменений нужно исправить атмосферу на старте раунда. Для этого используйте команду fixgridatmos [Grid euID]. (Нажмите F3 или выполните lsgrid, чтобы найти ваш grid euID)

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

  • Если вы хотите, чтобы на вашей карте работала симуляция атмосферы (газы распространяются и т. д.), используйте addatmos 2, где “2” — это ID сетки.
  • Если вы хотите, чтобы на вашей карте была статичная атмосфера (газы не распространяются ни при каких условиях), используйте addunsimulatedatmos 2, где “2” — это ID сетки.

Компоненты атмосферы при маппинге

Чтобы создать систему жизнеобеспечения на вашей карте, вам потребуется создать одну или две сети труб — одну для распределения воздуха и одну для отведения отработанных газов из воздуха. Используйте следующие устройства в ваших сетях труб (pipe net):

  • Вентиляции — используйте их по всей станции, чтобы распределять свежий воздух.
  • Скрубберы — подключайте их к вашей сети труб отходов по всей станции, чтобы вычищать вредные газы из воздуха.
  • Пассивные вентиляции — используйте их в ваших баках распределения газа, например в баке воздушной смеси, чтобы подключить их К вашей сети распределения. Также используются для сброса в космос при размещении за насосом и клапаном
  • Смесители — используйте их для смешивания газов в смесь для распределения. Обязательно подключите первичную сторону (боковой порт) и вторичную сторону (нижний порт) так, как нужно для вашей смеси, в соответствии с пропорциями в интерфейсе. Для смеси распределения воздуха нужно примерно 78% азота и 22% кислорода. Выход затем может идти в бак воздушной смеси / хранения или сразу в распределение.
  • Фильтры — используются для отделения газа от первичного входа к вторичному (нижнему) выходу и пропускания всех остальных газов через другую сторону. Настройте их, чтобы рециркулировать газы из вашей сети труб отходов обратно в газовые баки.
  • Клапаны — используются для ручного перекрытия участков вашей сети труб. Полезны при размещении перед пассивной вентиляцией в космос.
  • Насосы — используются после пассивной вентиляции для контроля количества газа, нагнетаемого в сеть. Размещайте их после ваших газовых баков хранения.
  • Атмосферные маркеры — если вы маппите газовые баки хранения, обязательно используйте “Atmos Fix (gas) Marker” в спавнере сущностей, чтобы задать бакам правильный газ. Это гарантирует, что при выполнении команды fixgridatmos в баки попадёт правильный газ.
  • Датчик воздуха — используется для подключения логики и датчиков к другим устройствам, чтобы запускать их. Используются специально для воздушных сигнализаций и пожарных сигнализаций.
  • Воздушная сигнализация — используется с датчиками воздуха для обнаружения вредных атмосферных условий в областях и передачи оповещений в Инженерию / Атмосферу. Используйте связывание машин, чтобы подключить датчики воздуха в соседних комнатах к воздушной сигнализации, а также вентиляции и скрубберы в текущей комнате к воздушной сигнализации. Также подключите пожарные двери между комнатами к воздушной сигнализации, чтобы она могла запускать их для блокировки участков.
  • Пожарная сигнализация — используется для запуска пожарных дверей в текущей области. Используйте связывание машин, чтобы напрямую связать её с пожарными дверями в её комнате или секции.
  • Газовый рециркулятор — преобразует углекислый газ в кислород, а оксид азота в азот, когда входной газ сжат до 3 МПа и нагрет как минимум до 300 C.
  • Газовый конденсатор — преобразует газы в реагенты. Вероятно, важнее для химии или науки, чем для атмосферы.

Стандартные цвета труб

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

  • Петля отходов: #990000FF (тускло-красный)
  • Петля дистро: #0055CCFF (приглушённо-синий)
  • Воздух: #03FCD3FF (голубой)
  • Смесь: #947507FF (коричневатый)

Энергия

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

  • ВВ-кабели — это ваши линии передачи между генераторами, накопителями энергии (СМЭС) и вашими подстанциями.
  • СВ-кабели соединяют ваши подстанции и ваши ЛКП. Обязательно размещайте их под обоими устройствами.
  • НВ-кабели или кабели ЛКП соединяют ваши ЛКП со всеми потребителями в радиусе 3 тайлов (так что не размещайте их под чем-либо, в этом нет необходимости).

Ваши основные устройства в энергосети следующие:

  • Подстанция — хранит небольшое количество энергии. Подключается к основной сети через ВВ-кабели, принимая энергию, и распределяет эту энергию через СВ-кабели ко многим ЛКП.
  • ЛКП — локальные контроллеры питания. Хранят крошечное количество энергии в зависимости от батареи внутри. Подключаются к подстанции через СВ-кабель. НВ-кабель под ними затем используется для подачи энергии потребителям. Обязательно размещайте их лицом в направлении, в котором они будут использоваться.
  • СМЭС — используется для хранения огромных объёмов энергии в ВВ-сети. Нельзя прокладывать кабель между СМЭС, поэтому нужно вывести провод наружу, а затем обратно внутрь.
  • Кабельный терминал — используется для разделения цепей в вашей ВВ-сети. Ваша первичная цепь находится на стороне с коробкой, а ваша вторичная сторона (выход) — там, куда указывают кабели. Размещайте их, указывающими в батарею СМЭС, чтобы ваша генерация была на первичной стороне, а основная сеть выходила из СМЭС через кабельную сторону кабельного терминала (см. рисунок ниже для наглядности). Вторичная сторона будет потреблять из первичной стороны, поэтому используйте их экономно на вторичной цепи.
  • Генераторы — это могут быть портативные генераторы, плазменные коллекторы, солнечные панели и многое другое. Подложите ВВ-кабель под них, чтобы использовать выработанную энергию. Это включает блок управления АМЭ.
  • Блок питания УЧ — особое упоминание: чтобы запитать ускоритель частиц, нужен ВВ-кабель под кабелем УЧ / блоком питания.

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

Декали

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

Установщик декалей доступен в админ-меню, меню песочницы или по нажатию F8. Управление следующее:

  • Левый клик — разместить декаль
  • Правый клик — удалить декали в радиусе действия

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

Если вы не можете разместить декали, закройте и снова откройте меню. Тайлы и сущности нельзя размещать, пока открыт Установщик декалей, и вы также не можете выполнять взаимодействия, так как он их перехватывает.

Палитры

Палитры можно выбирать в меню декалей. Это часто используемые цвета, например цвета отделов (СБ, командование, сервис и т. д.), которые можно выбрать.

Вы можете очень легко добавить свои собственные палитры. Просто перейдите в Resources/Prototypes/Palettes, скопируйте один из шаблонов в новый файл и измените ID/имя, а также цвета, которые хотите использовать. Цвета задаются в hex-формате RRGGBBAA.

Точки телепортации, станционные маяки и карты станции

Всем картам нужны точки телепортации, чтобы наблюдатели могли быстрее перемещаться.

Большинство карт теперь используют станционные маяки вместо точек телепортации, так как они уже включают в себя компонент именованной точки телепортации. Размещайте их в соответствующих комнатах вашей станции вместо точек телепортации. Это позволит им корректно заполнять карты станции.

Если вы хотите позволить людям телепортироваться призраком к месту, но не хотите, чтобы оно отображалось на карте станции, или оно не подходит для станционного маяка (планеты, гриф игроков путём перемещения точки телепортации, другие причины), тогда используйте классический фиолетовый маркер точки телепортации. Разместите его, затем щёлкните правой кнопкой, выберите просмотр переменных, перейдите к серверным компонентам, найдите warp-компонент, затем измените имя в этом компоненте, чтобы отразить то, что вы хотите видеть в меню телепортации.

Именование дверей и редактирование табличек

Просмотр переменных (VV) — ваш друг. Щёлкните правой кнопкой по сущности, например двери или табличке, и перейдите на вкладку серверных переменных. Здесь вы можете редактировать имя и описание любой сущности на вашей карте.

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

Спавнеры транспорта

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

Камеры

  • Разместите “Camera Router” для вашего конкретного отдела в защищённой зоне, например в шкафу с доступом главы / серверной отдела, или в месте сервера/маршрутизатора.
  • Разместите ваши камеры наблюдения (вставьте отдел) по станции. При их размещении, чтобы исправить имя, отображаемое на мониторе камер, нужно: правый клик > Debug > View Variable > Server Components > SurveillanceCameraComponent > отредактировать CameraID и нажать Enter.
  • Разместите монитор камер, в идеале в более защищённом месте, чтобы кто угодно не мог за ним подглядывать.
  • Если вы хотите протестировать обзор ваших камер, сохраните карту, затем выполните mapinit. После этого вы можете открыть монитор камер и проверить их обзор; обязательно выполните togglelight в консоли, чтобы получить фактический обзор.
  • Для развлекательных камер следуйте тому же процессу, что и выше, но с камерами с пометкой (entertainment).

Телекоммуникации

Станциям требуется телекоммуникационный сервер, чтобы гарнитуры и рации работали корректно. Обязательно разместите TelecomServerFilled где-нибудь на вашей карте, подпишите его и поставьте туда станционный маяк.

Связывание машин (мультитул, взрывные двери, конвейеры и т. д.)

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

По умолчанию радиус действия таких входов, как кнопки, составляет 30 тайлов. Если ваша кнопка находится дальше, вы можете отредактировать радиус с помощью просмотра переменных. Правый клик > debug > view variable > server components > transmission component. Отредактируйте радиус под свои нужды. Старайтесь держать его примерно таким же, как у вашей цели, иначе можете обнаружить, что это можно злоупотребить в игре.

Грузовой шаттл

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

sudo cvar shuttle.cargo true

Спасательные капсулы

Чтобы замапить спасательные капсулы, просто замапьте стыковочный шлюз с суффиксом escape 3x4. Обязательно оставьте зазор 3x4 из космоса снаружи дока, чтобы она заспавнилась при инициализации карты, плюс как минимум тайл пространства вокруг этого зазора по логическим причинам.

Планеты

В конце концов, это симулятор космической станции, но если по какой-то причине вам нужны карты, функционирующие как планеты, с пригодной для дыхания атмосферой и гравитацией, которую нельзя отключить (см. Nukie Planet):

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

  1. Создайте новую карту обычным образом с помощью mapping. Добавлять генератор гравитации или fixgridatmos (пока) не требуется из-за следующих шагов.

  2. Откройте админ-меню (F7) → Objects → Maps, найдите новую карту, которую вы только что создали, щёлкните по ней, чтобы открыть просмотр переменных. В разделе Server Components → Add Component:

    • Добавьте Gravity.
    • Добавьте FootstepModifier и задайте звук через VV.
    • Добавьте Parallax и задайте прототип параллакса. Если вы хотите, чтобы он выглядел как земля, вам нужно будет создать новый.
    • Добавьте MapGrid к карте.
    • Добавьте MapAtmosphere
      • Установите Space в False
      • Установите Mixture в то, как должна выглядеть атмосфера вашей планеты. На поля, на которые стоит обратить внимание, — это температура (290K — хороший выбор) и начальное количество молей (22 моль O2, 82 моль N2) — хорошие варианты
      • Дополнительное веселье в том, что поле Mixture нельзя редактировать в vv, так что вам придётся сохранить карту, открыть текстовый редактор, найти компонент MapAtmosphere и вручную вписать его.
        - space: False
          mixture:
            volume: 2500
            temperature: 290
            moles:
            - 21.824879
            - 82.10312
          type: MapAtmosphere
      
      • После загрузки обратно выполните fixgridatmos
  3. Откройте админ-меню (F7) → Objects → Grids (не Maps!), найдите новую сетку для карты, которую вы только что создали, щёлкните по ней, чтобы открыть просмотр переменных. В разделе Server Components:

    • Поскольку вы добавили Gravity к карте, у этой сетки теперь есть Gravity. Откройте её и:
      • Установите EnableVV в True
  4. Сохраните и протестируйте.

Стандарты маппинга

Стыковочные порты / Эвакуация / Побег

Для доков побега / эвакуации мы используем планировку 5-3-5, то есть 5 тайлов, зазор в 3 космоса и 5 тайлов. Участок из 5 тайлов в идеале должен быть стекло-док-стекло/-док-стекло, где стекло — это укреплённое стекло или укреплённая стена. Мы также предлагаем оставлять зазор как минимум в 5 тайлов с каждой стороны от стыковочной зоны, больше, если можете себе это позволить, чтобы корабли могли стыковаться легче.

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

Стыковочный док прибытия

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

  • Ангарный тип, как следует из названия, — это док, который оборачивается вокруг стыкующегося шаттла в форме буквы U. Он должен стремиться следовать тем же интервалам, что и плоский док, поэтому должен иметь буфер в 5 космоса от станции, чтобы корабль мог припарковаться, а затем начинается первая пятёрка из 5-3-5. Для прибытия нужен только один набор шлюзов, поэтому это скорее конструкция 5 космоса, 5 тайлов.
  • Плоский тип должен следовать тому же формату, что и док побега, то есть 5-3-5 с зазором в 5 космоса с каждой стороны.

Стыковочная стрела

Все карты должны также иметь стыковочную стрелу в дополнение к докам прибытия и побега. Стыковочная стрела должна иметь следующие особенности:

  • Выступать из станции без непосредственных препятствий с обеих сторон как минимум на 20 тайлов с каждой стороны.
  • Это делается, чтобы большие корабли для событий могли стыковаться без труда.
  • Стыковочная стрела должна иметь стыковочный шлюз шириной как минимум 2 тайла, чтобы через него можно было легко протаскивать конструкции.

Subpages