Поваренная книга админа: различия между версиями

Нет описания правки
мНет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
Данная статья посвящена всяким полезностям для админов.
'''Поваренная книга админа''' — статья посвящена всяким полезностям для админов.
{{ModernTitle|Работа с консолью|h1}}
 
== Основы ==
== Работа с консолью ==
Консоль по стандарту открывается на <code>~</code> (<code>ё</code>). Автозаполнение работает нажатием кнопки Tab после выбора стрелками. Не все команды отображаются в зависимости от прав.
Консоль по стандарту открывается на <code>~</code> (<code>ё</code>). Автозаполнение работает нажатием кнопки Tab после выбора стрелками. Не все команды отображаются в зависимости от прав.
* <code>deadmin/readmin</code> - убирает/возвращает права администратора
* <code>deadmin/readmin</code> — убирает/возвращает права администратора
* <code>aghost</code> - та же команда <code>ghost</code>, но с правами администратора
* <code>aghost</code> — та же команда <code>ghost</code>, но с правами администратора
* <code>setadminooc #FFFFFF</code> - устанавливает цвет вашему нику, который будет виден в чате OOC.
* <code>setadminooc #FFFFFF</code> — устанавливает цвет вашему нику, который будет виден в чате OOC.
* <code>help [название команды]</code> - расскажет вам о команде, не забывайте про неё!
* <code>help [название команды]</code> — расскажет вам о команде, не забывайте про неё!
* <code>list</code> - выводит список доступных вам команд
* <code>list</code> — выводит список доступных вам команд
* <code>listgamerules</code> - выводит список всех игровых событий
* <code>listgamerules</code> — выводит список всех игровых событий
* <code>forcemap</code> - перманентно устанавливает карту (сброс карты делается forcemap "")
* <code>forcemap</code> — перманентно устанавливает карту (сброс карты делается forcemap "")
* <code>> self scale:multiplyvector [2, 1]</code> (ТУЛШЕД!) - <strike>способ получить аварн</strike> изменение размера спрайта(увеличить в два раза = 2, уменьшить = 0,5)
* <code>> self scale:multiplyvector [2, 1]</code> (ТУЛШЕД!) — <strike>способ получить аварн</strike> изменение размера спрайта(увеличить в два раза = 2, уменьшить = 0,5)
* <code>tpto</code> - телепортация куда кого, алтернатива tp
* <code>tpto</code> — телепортация куда кого, алтернатива tp
* <code>playglobalsound</code> - чтобы все услышали ваше аудио(после указания пути идёт громкость, она может быть отрицательной, если нужно тише)
* <code>playglobalsound</code> — чтобы все услышали ваше аудио(после указания пути идёт громкость, она может быть отрицательной, если нужно тише)
* <code>ftldisk</code> - диск БСС скачков шаттла
* <code>ftldisk</code> — диск БСС скачков шаттла
* <code>explosionui</code> - искусство это взрыв
* <code>explosionui</code> — искусство это взрыв


== Отыгрыш ЦК ==
== Отыгрыш ЦК ==


=== Установка кодов угроз ===
=== Установка кодов угроз ===
Позволяет менять код на станции и блокировать его смену персоналом с консоли связи:
Позволяет менять код на станции и блокировать его смену персоналом с консоли связи:


Строка 25: Строка 24:


ID кодов:
ID кодов:
* <code>green</code> - {{цвет|text|green|c=зелёный}};
* <code>green</code> — {{цвет|text|green|c=зелёный}};
* <code>blue</code> - {{цвет|text|blue|c=синий}};
* <code>blue</code> — {{цвет|text|blue|c=синий}};
* <code>yellow</code> - {{цвет|text|darkyellow|c=жёлтый}};
* <code>yellow</code> — {{цвет|text|darkyellow|c=жёлтый}};
* <code>violet</code> - {{цвет|text|violet|c=фиолетовый}};
* <code>violet</code> — {{цвет|text|violet|c=фиолетовый}};
* <code>red</code> - {{цвет|text|red|c=красный}};
* <code>red</code> — {{цвет|text|red|c=красный}};
* <code>gamma</code> - {{цвет|text|gamma|c=гамма}};
* <code>gamma</code> — {{цвет|text|gamma|c=гамма}};
* <code>delta</code> - {{цвет|text|delta|c=дельта}};
* <code>delta</code> — {{цвет|text|delta|c=дельта}};
* <code>epsilon</code> - {{цвет|text|violet|dark|c=эпсилон}}.
* <code>epsilon</code> — {{цвет|text|violet|dark|c=эпсилон}}.


Значения кодов см. [[СРП#Уровни_угрозы]].
Значения кодов см. [[СРП#Уровни_угрозы]].


=== Цели станции по факсу ===
=== Цели станции по факсу ===
* <code>sendstationgoal</code> - позволяет по факсу отправить цель на выбор. Примеры:
* <code>sendstationgoal</code> — позволяет по факсу отправить цель на выбор. Примеры:
* <code>StationGoalContaintment</code>
* <code>StationGoalContaintment</code>
* <code>StationGoalShuttle</code>
* <code>StationGoalShuttle</code>
Строка 50: Строка 49:


=== Счёт карго ===
=== Счёт карго ===
* <code>> station:list</code> => появляется список станций, ищете свою => пишете <code>vv <uid</code>, он показывается сбоку от названия>.
* <code>> station:list</code> => появляется список станций, ищете свою => пишете <code>vv <uid</code>, он показывается сбоку от названия>.
Далее заходим в компоненты сервера и находим <code>StationBank</code> и нажимаем на него, там есть и текущий счёт карго и количество пассивного дохода.
Далее заходим в компоненты сервера и находим <code>StationBank</code> и нажимаем на него, там есть и текущий счёт карго и количество пассивного дохода.


=== Эвакуационный шаттл ===
=== Эвакуационный шаттл ===
 
* <code>callshuttle #</code>, где <code>#</code> — кол-во минут до шаттла, вызывает эвакуационный шаттл.
* <code>callshuttle #</code>, где <code>#</code> - кол-во минут до шаттла, вызывает эвакуационный шаттл.
* <code>dockemergencyshuttle</code> мгновенно стыкует эвакуационный шаттл к станции.
* <code>dockemergencyshuttle</code> мгновенно стыкует эвакуационный шаттл к станции.


Строка 62: Строка 59:
В лобби в зависимости от числа готовых игра подбирает прототипы режима и карты. Маппул и пресеты игры найти можно (также далее). Они имеют минимальное и максимальное число игроков.
В лобби в зависимости от числа готовых игра подбирает прототипы режима и карты. Маппул и пресеты игры найти можно (также далее). Они имеют минимальное и максимальное число игроков.


<code>customvote <вопрос> <ответ1> <ответ2> ... <ответN></code> - создаёт голосование с заданными параметрами, которое видно и в раунде, и в лобби.
<code>customvote <вопрос> <ответ1> <ответ2> ... <ответN></code> — создаёт голосование с заданными параметрами, которое видно и в раунде, и в лобби.
Например:
Например:
* <code>customvote "Какой режим хотите выбрать?" Выживание Трейторы Секрет ...</code>
* <code>customvote "Какой режим хотите выбрать?" Выживание Трейторы Секрет ...</code>
* <code>delaystart [seconds]</code> - ставит старт раунда на паузу в лобби. Если указан аргумент, то откладывает старт на указанное количество секунд.
* <code>delaystart [seconds]</code> — ставит старт раунда на паузу в лобби. Если указан аргумент, то откладывает старт на указанное количество секунд.
* <code>forcemap</code> - позволяет поменять карту до начала раунда.
* <code>forcemap</code> — позволяет поменять карту до начала раунда.
 
=== Режимы игры ===
=== Режимы игры ===
Существующие режимы игры:
Существующие режимы игры:
Строка 90: Строка 88:
<code>endgamerule <rule></code> останавливает текущий в игре ивент.
<code>endgamerule <rule></code> останавливает текущий в игре ивент.
Список ID событий:
Список ID событий:
* <code>BasicStationEventScheduler</code> - спавнер редких игровых ивентов. Стоит во всех режимах игры кроме выживания.
* <code>BasicStationEventScheduler</code> — спавнер редких игровых ивентов. Стоит во всех режимах игры кроме выживания.
* <code>RampingStationEventScheduler</code> - спавнер частых игровых ивентов для режима выживания.
* <code>RampingStationEventScheduler</code> — спавнер частых игровых ивентов для режима выживания.
* <code>Secret</code> - режим игры "Секрет"
* <code>Secret</code> — режим игры «Секрет»
* <code>DeathMatch</code> - режим игры "Все против всех".
* <code>DeathMatch</code> — режим игры «Все против всех».
* <code>NukeOps</code> - режим игры ядерных оперативников - спавнит пять нюкеров и их базу.
* <code>NukeOps</code> — режим игры ядерных оперативников — спавнит пять нюкеров и их базу.
* <code>Pirates</code> - режим игры "Пираты" - создаёт шаттл с пиратами, пиратов по хорошему переспавнить и сделать через Уристов, сломаны.
* <code>Pirates</code> — режим игры «Пираты» — создаёт шаттл с пиратами, пиратов по хорошему переспавнить и сделать через Уристов, сломаны.
* <code>Sandbox</code> - режим игры "Песочница", игроки имеют права спавнить энтити/декали/тайлы.
* <code>Sandbox</code> — режим игры «Песочница», игроки имеют права спавнить энтити/декали/тайлы.
* <code>Suspicion</code> - TTT - Все вооружены, среди вооруженных есть предатели, задача не-предателей найти их и убить.
* <code>Suspicion</code> — TTT — Все вооружены, среди вооруженных есть предатели, задача не-предателей найти их и убить.
* <code>TraitorDeathMatch</code> - режим игры, резня агентов.
* <code>TraitorDeathMatch</code> — режим игры, резня агентов.
* <code>Zombie</code> - режим игры "Зомби".
* <code>Zombie</code> — режим игры «Зомби».
* <code>VentClog</code> выпускает жидкости из скрубберов.
* <code>VentClog</code> выпускает жидкости из скрубберов.
* <code>PowerGridCheck</code> выключает свет на неопределённый срок.
* <code>PowerGridCheck</code> выключает свет на неопределённый срок.
* <code>FalseAlarm</code> - ивент, создающий фальшивые обьявления о игровых ивентах.
* <code>FalseAlarm</code> — ивент, создающий фальшивые обьявления о игровых ивентах.
* <code>BluespaceArtifact</code> создаёт рядом со станции/На ней артефакт.
* <code>BluespaceArtifact</code> создаёт рядом со станции/На ней артефакт.
* <code>BreakerFlip</code> отключает в некоторых местах ЛКП.
* <code>BreakerFlip</code> отключает в некоторых местах ЛКП.
* <code>DiseaseOutbreak</code> выпускает рандомную болезнь рядом с игроком.
* <code>DiseaseOutbreak</code> выпускает рандомную болезнь рядом с игроком.
* <code>AnomalySpawn</code> создаёт аномалию.
* <code>AnomalySpawn</code> создаёт аномалию.
* <code>BureaucraticError</code> - бюрократическая ошибка.
* <code>BureaucraticError</code> — бюрократическая ошибка.
* <code>GasLeak</code> создаёт в рандомном месте рандомный газ.
* <code>GasLeak</code> создаёт в рандомном месте рандомный газ.
* <code>KudzuGrowth</code> - кудзу.
* <code>KudzuGrowth</code> — кудзу.
* <code>MeteorSwarm</code> - метеоритный рой.
* <code>MeteorSwarm</code> — метеоритный рой.
* <code>RandomSentience</code> даёт некоторым объектам роль призрака.
* <code>RandomSentience</code> даёт некоторым объектам роль призрака.
* <code>Dragon</code> - дракон, не работает, админу нужно спавнить вручную.
* <code>Dragon</code> — дракон, не работает, админу нужно спавнить вручную.
* <code>RevenantSpawn</code> спавнит Ревенанта.
* <code>RevenantSpawn</code> спавнит Ревенанта.
* <code>Traitor</code> - игра выдаёт случайным игрокам предателей.
* <code>Traitor</code> — игра выдаёт случайным игрокам предателей.
* <code>VentCritters</code> - из вентиляции лезут существа, от мышей до тарантулов.
* <code>VentCritters</code> — из вентиляции лезут существа, от мышей до тарантулов.
* <code>ZombieOutbreak</code> оживляет мертвых игроков в виде зомби.
* <code>ZombieOutbreak</code> оживляет мертвых игроков в виде зомби.
* <code>MouseMigration</code> - крысиный король с его свитой.
* <code>MouseMigration</code> — крысиный король с его свитой.
* <code>BluespaceLockerLink</code> - блюспейс-шкаф.
* <code>BluespaceLockerLink</code> — блюспейс-шкаф.
* <code>SpiderSpawn</code> спавнит в рандомных местах Тарантулов.
* <code>SpiderSpawn</code> спавнит в рандомных местах Тарантулов.
* <code>ClosedSkeleton</code> скелет в шкафу.
* <code>ClosedSkeleton</code> скелет в шкафу.
Строка 143: Строка 141:


==== Починка пацифизма дионы ====
==== Починка пацифизма дионы ====
 
Чтобы убрать пацифизм у дионы, нужно удалить компоненты PacifedComponent и CombatModeComponent, а затем добавить CombatModeComponent снова. Это делается через просмотр переменных (<code>vv <EntityUID></code>) во вкладке «Компоненты сервера». Если добавить CombatModeComponent, пока у моба стоит PacifedComponent, то ничего не сработает.
Чтобы убрать пацифизм у дионы, нужно удалить компоненты PacifedComponent и CombatModeComponent, а затем добавить CombatModeComponent снова. Это делается через просмотр переменных (<code>vv <EntityUID></code>) во вкладке "Компоненты сервера". Если добавить CombatModeComponent, пока у моба стоит PacifedComponent, то ничего не сработает.


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


==== Цели антагониста ====
==== Цели антагониста ====
С помощью команды <code>lsobjectives <ник игрока></code> можно просмотреть цели антагониста.
С помощью команды <code>lsobjectives <ник игрока></code> можно просмотреть цели антагониста.


Строка 179: Строка 175:


[[Файл:Демонстрация_команды_addobjective.png]]
[[Файл:Демонстрация_команды_addobjective.png]]
== Наказания ==
== Наказания ==
=== Баны ===
=== Баны ===


==== Баны роли ====
==== Баны роли ====
<code>rolebanlist ...</code> позволяет просмотреть список банов ролей игрока.
<code>rolebanlist ...</code> позволяет просмотреть список банов ролей игрока.


Строка 203: Строка 200:
<code>departmentban <nickname> <ID отдела> <причина> <время в минутах или 0 для пермы></code> банит игроку весь отдел. ID отделов:
<code>departmentban <nickname> <ID отдела> <причина> <время в минутах или 0 для пермы></code> банит игроку весь отдел. ID отделов:
* Cargo
* Cargo
* Civilian  
* Civilian
* Command  
* Command
* Engineering  
* Engineering
* Medical  
* Medical
* Science
* Science
* Security
* Security
Строка 213: Строка 210:


==== Общие баны ====
==== Общие баны ====
<code>banlist ...</code> позволяет просмотреть список банов игрока.
<code>banlist ...</code> позволяет просмотреть список банов игрока.


Строка 221: Строка 217:


=== Логи ===
=== Логи ===
Просмотр логов доступен по команде <code>adminlogs</code> в консоли.
Просмотр логов доступен по команде <code>adminlogs</code> в консоли.


=== Заметки ===
=== Заметки ===
Просмотр заметок доступен по команде <code>adminnotes</code> в консоли.
Просмотр заметок доступен по команде <code>adminnotes</code> в консоли.


== GoobFork команды ==
== GoobFork команды ==
 
* Система навыков — Навыки: <code>ShuttleControl</code> <code>Shooting</code> <code>AdvancedBuilding</code> <code>Surgery</code> <code>MedicalEquipment</code> <code>Butchering</code>
* Система навыков - Навыки: <code>ShuttleControl</code> <code>Shooting</code> <code>AdvancedBuilding</code> <code>Surgery</code> <code>MedicalEquipment</code>   <code>Butchering</code>
Команды:
Команды:
* <code>grantskill <euid> <skill></code> - выдаёт скилл.
* <code>grantskill <euid> <skill></code> — выдаёт скилл.
* <code>revokeskill <euid> <skill></code> - забирает скилл.
* <code>revokeskill <euid> <skill></code> — забирает скилл.
* <code>listskills <euid></code> - перечисляет скиллы.
* <code>listskills <euid></code> — перечисляет скиллы.
* <code>grantallskills <euid></code>- выдаёт все скиллы.
* <code>grantallskills <euid></code>- выдаёт все скиллы.
* AntagObjectiveImmunityComponent - иммунитет от становления целью
* AntagObjectiveImmunityComponent — иммунитет от становления целью


{{ModernTitle|Прототипы|h1}}
== Прототипы ==
== Основы ==
В игре всё является сущностями(entity), сущность — это экземпляр(версия, или сын) прототипа. Когда вы создаёте что-либо на основе прототипа — вы спавните сущность, которая имеет уникальный айди и характеристики прототипа, которые вы можете менять.
В игре всё является сущностями(entity), сущность - это экземпляр(версия, или сын) прототипа. Когда вы создаёте что-либо на основе прототипа - вы спавните сущность, которая имеет уникальный айди и характеристики прототипа, которые вы можете менять.
Компоненты — это переменные, они хранят разные данные — простые — true/false(включен-выключен), сложные — словарь определяющий тип урона. Они могут своим добавлением могут позволять что-либо — например, боргам пользоваться прибором; являться связующим посредником — stepTrigger(активировался если наступишь), представлять механику игры — Anomaly, и многое другое. Отношения между компонентами определены их кодом, знать его не обязательно, их описание довольно неплохо документировано [https://github.com/space-syndicate/space-station-14/tree/master/Content.Shared/ просто нужно знать, где искать].
Компоненты - это переменные, они хранят разные данные - простые - true/false(включен-выключен), сложные - словарь определяющий тип урона. Они могут своим добавлением могут позволять что-либо — например, боргам пользоваться прибором; являться связующим посредником - stepTrigger(активировался если наступишь), представлять механику игры - Anomaly, и многое другое. Отношения между компонентами определены их кодом, знать его не обязательно, их описание довольно неплохо документировано [https://github.com/space-syndicate/space-station-14/tree/master/Content.Shared/ просто нужно знать, где искать].


Прототип - это описание чего-либо(режимы игры тоже определяются ими но не являются сущностями), которое состоит из компонентов. Если нам нужно описать хлебушек - самое простое из компонентов будет - itemComponent(его можно поднять и положить, он имеет объём для сумки), спрайт, набор звуков; сложные - являются частями механик и могут для изменения требовать понимания кода игры(с этим вы столкнётесь рано или поздно) - для хлебушка это его питательность(в метаболизме), это не трудно. И из кучи компонентов получим прототип хлеба(зарезервировавший уникальное имя прототипа), который без особого тестирования вполне может уронить сервер(и подарить аварн).
Прототип — это описание чего-либо(режимы игры тоже определяются ими но не являются сущностями), которое состоит из компонентов. Если нам нужно описать хлебушек — самое простое из компонентов будет — itemComponent(его можно поднять и положить, он имеет объём для сумки), спрайт, набор звуков; сложные — являются частями механик и могут для изменения требовать понимания кода игры(с этим вы столкнётесь рано или поздно) — для хлебушка это его питательность(в метаболизме), это не трудно. И из кучи компонентов получим прототип хлеба(зарезервировавший уникальное имя прототипа), который без особого тестирования вполне может уронить сервер(и подарить аварн).


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


Итог, для понимания - карта, грид на карте, стена на гриде, станция(со счётом в карго) - это всё сущности. Игрок видит объекты потому что имеет компонент глаз, управляет благодаря компоненту актёра. Прототипы написаны на YAML и могут быть изучены на гитхабе в /Resources/Prototypes/... .
Итог, для понимания — карта, грид на карте, стена на гриде, станция(со счётом в карго) — это всё сущности. Игрок видит объекты потому что имеет компонент глаз, управляет благодаря компоненту актёра. Прототипы написаны на YAML и могут быть изучены на гитхабе в /Resources/Prototypes/.


Если прототип не тестится на локалке из-за размера файла больше 3мб, то необходимо следовать следующим пунктам:
Если прототип не тестится на локалке из-за размера файла больше 3мб, то необходимо следовать следующим пунктам:
На серверах Корвакс размер файлах ограничен 25-ю мб, но для этого надо пойти в cvar в \Resources\ConfigPresets\Build  
На серверах Корвакс размер файлах ограничен 25-ю мб, но для этого надо пойти в cvar в \Resources\ConfigPresets\Build
И написать:
И написать:
<pre>
<pre>
Строка 257: Строка 249:
</pre>
</pre>


== Работа с файлами и загрузка прототипов ==
=== Работа с файлами и загрузка прототипов ===
При автодополнении пути для указания файла вы будете в [https://github.com/space-syndicate/space-station-14/tree/master/Resources/ Resources]. Если вам нужно что-то быстро найти - легче всего будет скачать с гитхаба и найти сначала у себя, а потом в игре. Когда вы пишете /, вы начинаете уже в папке, имя Resources вам писать не надо.
При автодополнении пути для указания файла вы будете в [https://github.com/space-syndicate/space-station-14/tree/master/Resources/ Resources]. Если вам нужно что-то быстро найти — легче всего будет скачать с гитхаба и найти сначала у себя, а потом в игре. Когда вы пишете /, вы начинаете уже в папке, имя Resources вам писать не надо.
Чем эта папка отличается от гитхаба? У мапперов есть свои папки, которую можете создать и вы себе для хранения маперских наработок(при сохранении необходимо в пути указать имя новой папки — по традиции ваш сикей, срать папкам НЕ НАДО!). Во-вторых, есть новая папка - Resources/Uploaded/ в неё отправляется всё, что загружается на сервер через <code>uploadfile</code> или <code>uploadfolder</code>, при перезапуске сервер она очищается. ОДНАКО это не значит, что в неё можно срать, при заходе на сервер эти файлы отправляются игрокам, что может приводить к тому, что окно подключения к серверу у них будет висеть и минуту и больше, сжимайте аудио.
Чем эта папка отличается от гитхаба? У мапперов есть свои папки, которую можете создать и вы себе для хранения маперских наработок(при сохранении необходимо в пути указать имя новой папки — по традиции ваш сикей, срать папкам НЕ НАДО!). Во-вторых, есть новая папка — Resources/Uploaded/ в неё отправляется всё, что загружается на сервер через <code>uploadfile</code> или <code>uploadfolder</code>, при перезапуске сервер она очищается. ОДНАКО это не значит, что в неё можно срать, при заходе на сервер эти файлы отправляются игрокам, что может приводить к тому, что окно подключения к серверу у них будет висеть и минуту и больше, сжимайте аудио.




* Когда вы пользуетесь <code>uploadfolder</code> вы указываете имя папки которая на вашем компьюторе лежит на пути - C:\Users\(ИМЯ ПОЛЬЗОВАТЕЛЯ)\AppData\Roaming\Space Station 14\data\UploadFolder
* Когда вы пользуетесь <code>uploadfolder</code> вы указываете имя папки которая на вашем компьюторе лежит на пути — C:\Users\(ИМЯ ПОЛЬЗОВАТЕЛЯ)\AppData\Roaming\Space Station 14\data\UploadFolder
* Для <code>uploadfile</code> вы придумываете своё название файла как он отправится на сервер, который выберете на компьютере.
* Для <code>uploadfile</code> вы придумываете своё название файла как он отправится на сервер, который выберете на компьютере.
* Для загрузки прототипа <code>loadprototype</code> , нужно выбрать yml файл.  
* Для загрузки прототипа <code>loadprototype</code> , нужно выбрать yml файл.




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


== Загрузка RSI ==
=== Загрузка RSI ===
 
[https://docs.spacestation14.io/en/engine/rsi RSI] — формат группы изображений, изобретённый создателями SS14. Используется для спрайтов. У администраторов существует возможность загрузить свои RSI для использования их в прототипах без необходимости перезапуска сервера или перекомпиляции сборки.
[https://docs.spacestation14.io/en/engine/rsi RSI] - формат группы изображений, изобретённый создателями SS14. Используется для спрайтов. У администраторов существует возможность загрузить свои RSI для использования их в прототипах без необходимости перезапуска сервера или перекомпиляции сборки.


Например, нужно загрузить следующий RSI:
Например, нужно загрузить следующий RSI:
Строка 297: Строка 288:
Загруженные файлы удаляются при перезапуске сервера.
Загруженные файлы удаляются при перезапуске сервера.


В недавнем обновлении появился более лёгкий способ загрузки папок - команда <code>uploadfolder</code>.
В недавнем обновлении появился более лёгкий способ загрузки папок — команда <code>uploadfolder</code>.
 
{{ModernTitle|Маппинг|h1}}


== Маппинг ==
Основные понятия:
Основные понятия:
* Карта (map) - БСС-пространство, содержащее сетки (grids).
* Карта (map) — БСС-пространство, содержащее сетки (grids).
* Сетка (grid) - совокупность соединённых тайлов и игровых сущностях, находящихся на них. Собственно, станция - большая единая сетка. Например, если отделить от неё кусочек или поставить прутья на космос, то получится новая сетка, отдельная от станции.
* Сетка (grid) — совокупность соединённых тайлов и игровых сущностях, находящихся на них. Собственно, станция — большая единая сетка. Например, если отделить от неё кусочек или поставить прутья на космос, то получится новая сетка, отдельная от станции.


=== Карта (map) ===
=== Карта (map) ===
 
Карта — БСС-пространство и содержащиеся в нём сетки (grids). Имеет два состояния <code>init: True</code> и <code>init: False</code> — пауза и не пауза. С помощью команды <code>lsmap</code> можно вывести список всех существующих в текущий момент карт, их ID и их состояние (пауза или нет). Основные команды:
Карта - БСС-пространство и содержащиеся в нём сетки (grids). Имеет два состояния <code>init: True</code> и <code>init: False</code> - пауза и не пауза. С помощью команды <code>lsmap</code> можно вывести список всех существующих в текущий момент карт, их ID и их состояние (пауза или нет). Основные команды:


* <code>mapping [MapID] [путь до мира или сетки]</code> создаёт новую карту на свободном ID или с данным ID, который не должен быть занят существующими картами, и телепортирует вас на неё. Если дан путь до мира или сетки, то загружает этот файл в новосозданный мир. По умолчанию карта поставлена на паузы.
* <code>mapping [MapID] [путь до мира или сетки]</code> создаёт новую карту на свободном ID или с данным ID, который не должен быть занят существующими картами, и телепортирует вас на неё. Если дан путь до мира или сетки, то загружает этот файл в новосозданный мир. По умолчанию карта поставлена на паузы.
Строка 315: Строка 304:


=== Сетка (grid) ===
=== Сетка (grid) ===
 
Сетка — совокупность соединённых вместе тайлов (пол) и лежащих на них предметов. Например, станция — отдельная сетка, шаттл карго — тоже отдельная сетка.
Сетка - совокупность соединённых вместе тайлов (пол) и лежащих на них предметов. Например, станция - отдельная сетка, шаттл карго - тоже отдельная сетка.


'''Спавн сетки:'''
'''Спавн сетки:'''
Строка 326: Строка 314:


'''Перемещение сеток:'''
'''Перемещение сеток:'''
* <code>tpgrid <id сетки> <x> <y></code> - сама команда для телепорта;
* <code>tpgrid <id сетки> <x> <y></code> — сама команда для телепорта;
* <code>lsgrid</code> выдаёт список всех существующих сеток;
* <code>lsgrid</code> выдаёт список всех существующих сеток;
* <code>loc</code> даёт ваши текущие координаты, там же указывается ID сетки на которой вы стоите (GridID).
* <code>loc</code> даёт ваши текущие координаты, там же указывается ID сетки на которой вы стоите (GridID).
Строка 338: Строка 326:
<ol>
<ol>
<li>Узнайте ID сетки на которой находится ваш персонаж/призрак с помощью команды <code>loc</code>. Нужное вами число это GridID.</li>
<li>Узнайте ID сетки на которой находится ваш персонаж/призрак с помощью команды <code>loc</code>. Нужное вами число это GridID.</li>
<li>Далее сама команда для сохранения сетки как карты: <code>savebp <gridUid> <path></code>, где <code><gridId></code> это ранее полученное число, а <code><path></code> - путь, по которому ''сетка'' будет сохранена в папке сервера. Достаточно просто указать название файла. Обязательно укажите расширение <code>.yml</code> для файла.<br>
<li>Далее сама команда для сохранения сетки как карты: <code>savebp <gridUid> <path></code>, где <code><gridId></code> это ранее полученное число, а <code><path></code> — путь, по которому ''сетка'' будет сохранена в папке сервера. Достаточно просто указать название файла. Обязательно укажите расширение <code>.yml</code> для файла.<br>
Пример: <code>savebp 12 myShuttle.yml</code>.</li>
Пример: <code>savebp 12 myShuttle.yml</code>.</li>
<li>Profit!</li>
<li>Profit!</li>
Строка 345: Строка 333:
'''БСС (FTL)''':
'''БСС (FTL)''':


Чтобы сделать сетку доступной для прыжка к ней через БСС, нужно открыть окно просмотра переменных этой сетки. Для этого прописывается <code>vv <gridUID></code>. Во вкладке "Компоненты сервера" нужно добавить компонент "FTLDestination" через кнопку "Добавить компонент". Готово! Сетка, а вместе с ней и карта, на которой она расположена, доступны для прыжка, например, карго-шаттла.
Чтобы сделать сетку доступной для прыжка к ней через БСС, нужно открыть окно просмотра переменных этой сетки. Для этого прописывается <code>vv <gridUID></code>. Во вкладке «Компоненты сервера» нужно добавить компонент «FTLDestination» через кнопку «Добавить компонент». Готово! Сетка, а вместе с ней и карта, на которой она расположена, доступны для прыжка, например, карго-шаттла.


Опционально можно переименовать сетку опять в просмотре переменных <code>vv</code> - во вкладке "Переменные сервера" в поле Name прописывается новое имя и обязательно нажимается Enter по завершению ввода.
Опционально можно переименовать сетку опять в просмотре переменных <code>vv</code> — во вкладке «Переменные сервера» в поле Name прописывается новое имя и обязательно нажимается Enter по завершению ввода.


''Примечание: чтобы новое БСС-пространство появилось в консолях управления шаттлами, нужно их обновить путём выкручивания и вкручивания обратно гаечным ключом.''
''Примечание: чтобы новое БСС-пространство появилось в консолях управления шаттлами, нужно их обновить путём выкручивания и вкручивания обратно гаечным ключом.''


=== Непосредственно маппинг ===
=== Непосредственно маппинг ===
<code>fixgridatmos</code> мгновенно заполняет все тайлы грида дыхательной смесью.
<code>fixgridatmos</code> мгновенно заполняет все тайлы грида дыхательной смесью.


<code>colornetwork <UID> Pipe <HEX-color></code> добавляет выбранный цвет на трубу.
<code>colornetwork <UID> Pipe <HEX-color></code> добавляет выбранный цвет на трубу.
* <code>0000FF</code> Дистра
* <code>0000FF</code> — Дистра
* <code>FF0000</code> Вейст
* <code>FF0000</code> — Вейст
* <code>17E8E2</code> Воздух
* <code>17E8E2</code> — Воздух
* <code>947507</code> Грязный
* <code>947507</code> — Грязный
* <code>FFD800</code> Автобус
* <code>FFD800</code> — Автобус
* <code>FF9900</code> Сигнальный
* <code>FF9900</code> — Сигнальный
* <code>D3FC03</code> Вирусология
* <code>D3FC03</code> — Вирусология
* <code>FEF101</code> Жёлтый
* <code>FEF101</code> — Жёлтый
* <code>A505FA</code> Фиолетовый
* <code>A505FA</code> — Фиолетовый


<code>loadmappacts</code> - подгружает некоторые инструменты для более удобного маппинга (ставит в меню действий некоторые тайлы и стены).
<code>loadmappacts</code> — подгружает некоторые инструменты для более удобного маппинга (ставит в меню действий некоторые тайлы и стены).


<code>dock <ID1> <ID2></code> стыкует два стыковочных портах с ID1 и с ID2, находящихся на разных сетках. Полезно, когда нужна стыковка на карте, находящейся в паузе.
<code>dock <ID1> <ID2></code> стыкует два стыковочных портах с ID1 и с ID2, находящихся на разных сетках. Полезно, когда нужна стыковка на карте, находящейся в паузе.


{{ModernTitle|BQL|h1}}
== BQL ==
{{основная статья|BQL}}


''Основная статья: [[BQL]]''
BQL — язык запросов движка SS14, который позволяет проводить массовые манипуляции с игровыми сущностями. Примеры:
 
BQL - язык запросов движка SS14, который позволяет проводить массовые манипуляции с игровыми сущностями. Примеры:
* <code>forall with FaxMachine do echo $ID</code> найдёт абсолютно все факсы и выведет их UID.
* <code>forall with FaxMachine do echo $ID</code> найдёт абсолютно все факсы и выведет их UID.


Toolshed - разработана как замена старым BQL командам, но не сильно от них отличается. (см. файл [https://docs.spacestation14.com/en/robust-toolbox/toolshed.html])
Toolshed — разработана как замена старым BQL командам, но не сильно от них отличается. (см. файл [https://docs.spacestation14.com/en/robust-toolbox/toolshed.html])
Например:  
Например:
* <code> adjstationjob => stations:get jobs:job AtmosphericTechnician jobs:adjust 1</code> позволяет добавить свободную роль на станцию. (см. файл [https://github.com/space-syndicate/space-station-14/tree/master/Resources/Prototypes/Roles/Jobs])
* <code> adjstationjob => stations:get jobs:job AtmosphericTechnician jobs:adjust 1</code> позволяет добавить свободную роль на станцию. (см. файл [https://github.com/space-syndicate/space-station-14/tree/master/Resources/Prototypes/Roles/Jobs])
* <code> > entities with PointLight do "addcomp $ID RgbLightController"</code> позволяет добавить всем лампам компонент RGB.
* <code> > entities with PointLight do "addcomp $ID RgbLightController"</code> позволяет добавить всем лампам компонент RGB.