Поваренная книга админа: различия между версиями
Kevicky9 (обсуждение | вклад) →Режимы игры: добавлена информация про внутриигровые события |
Нет описания правки |
||
| (не показано 13 промежуточных версий 3 участников) | |||
| Строка 1: | Строка 1: | ||
Данная статья посвящена всяким полезностям для админов. | Данная статья посвящена всяким полезностям для админов. | ||
{{ModernTitle|Работа с консолью|h1}} | |||
Консоль открывается | == Основы == | ||
Консоль по стандарту открывается на <code>~</code> (<code>ё</code>). Автозаполнение работает нажатием кнопки Tab после выбора стрелками. Не все команды отображаются в зависимости от прав. | |||
* <code>deadmin/readmin</code> - убирает/возвращает права администратора | |||
* <code>deadmin</code> убирает | * <code>aghost</code> - та же команда <code>ghost</code>, но с правами администратора | ||
* <code> | * <code>setadminooc #FFFFFF</code> - устанавливает цвет вашему нику, который будет виден в чате OOC. | ||
* <code>help [название команды]</code> - расскажет вам о команде, не забывайте про неё! | |||
<code>setadminooc #FFFFFF</code> устанавливает цвет вашему нику, который будет виден в чате OOC. | * <code>list</code> - выводит список доступных вам команд | ||
* <code>listgamerules</code> - выводит список всех игровых событий | |||
* <code>forcemap</code> - перманентно устанавливает карту (сброс карты делается forcemap "") | |||
* <code>> self scale:multiplyvector [2, 1]</code> (ТУЛШЕД!) - <strike>способ получить аварн</strike> изменение размера спрайта(увеличить в два раза = 2, уменьшить = 0,5) | |||
* <code>tpto</code> - телепортация куда кого, алтернатива tp | |||
* <code>playglobalsound</code> - чтобы все услышали ваше аудио(после указания пути идёт громкость, она может быть отрицательной, если нужно тише) | |||
* <code>ftldisk</code> - диск БСС скачков шаттла | |||
* <code>explosionui</code> - искусство это взрыв | |||
== Отыгрыш ЦК == | == Отыгрыш ЦК == | ||
| Строка 18: | Строка 25: | ||
ID кодов: | ID кодов: | ||
* <code>green</code> - < | * <code>green</code> - {{цвет|text|green|c=зелёный}}; | ||
* <code> | * <code>blue</code> - {{цвет|text|blue|c=синий}}; | ||
* <code> | * <code>yellow</code> - {{цвет|text|darkyellow|c=жёлтый}}; | ||
* <code>violet</code> - < | * <code>violet</code> - {{цвет|text|violet|c=фиолетовый}}; | ||
* <code> | * <code>red</code> - {{цвет|text|red|c=красный}}; | ||
* <code> | * <code>gamma</code> - {{цвет|text|gamma|c=гамма}}; | ||
* <code> | * <code>delta</code> - {{цвет|text|delta|c=дельта}}; | ||
* <code> | * <code>epsilon</code> - {{цвет|text|violet|dark|c=эпсилон}}. | ||
Значения кодов см. [[СРП#Уровни_угрозы]]. | |||
=== Цели станции по факсу === | |||
* <code>sendstationgoal</code> - позволяет по факсу отправить цель на выбор. Примеры: | |||
* <code>StationGoalContaintment</code> | |||
* <code>StationGoalShuttle</code> | |||
* <code>StationGoalSingularity</code> | |||
* <code>StationGoalSolarPanels</code> | |||
* <code>StationGoalBank</code> | |||
* <code>StationGoalZoo</code> | |||
* <code>StationGoalArtifacts</code> | |||
* <code>StationGoalMiningOutpost</code> | |||
Значение целей см. [[Задачи_станции]]. | |||
=== Счёт карго === | |||
* <code>> station:list</code> => появляется список станций, ищете свою => пишете <code>vv <uid</code>, он показывается сбоку от названия>. | |||
Далее заходим в компоненты сервера и находим <code>StationBank</code> и нажимаем на него, там есть и текущий счёт карго и количество пассивного дохода. | |||
=== Эвакуационный шаттл === | === Эвакуационный шаттл === | ||
| Строка 35: | Строка 60: | ||
== Раунд == | == Раунд == | ||
В лобби в зависимости от числа готовых игра подбирает прототипы режима и карты. Маппул и пресеты игры найти можно (также далее). Они имеют минимальное и максимальное число игроков. | |||
<code>customvote <вопрос> <ответ1> <ответ2> ... <ответN></code> - создаёт голосование с заданными параметрами, которое видно и в раунде, и в лобби. | <code>customvote <вопрос> <ответ1> <ответ2> ... <ответN></code> - создаёт голосование с заданными параметрами, которое видно и в раунде, и в лобби. | ||
Например: | |||
* <code>customvote "Какой режим хотите выбрать?" Выживание Трейторы Секрет ...</code> | |||
* <code>delaystart [seconds]</code> - ставит старт раунда на паузу в лобби. Если указан аргумент, то откладывает старт на указанное количество секунд. | |||
* <code>forcemap</code> - позволяет поменять карту до начала раунда. | |||
=== Режимы игры === | === Режимы игры === | ||
Существующие режимы игры: | Существующие режимы игры: | ||
* Extended | * Extended | ||
| Строка 49: | Строка 77: | ||
* Pirates | * Pirates | ||
* Deathmatch | * Deathmatch | ||
* Revolutionary | |||
* AllAtOnce | |||
* Survival | |||
<code>setgamepreset</code> устанавливает режим следующего раунда. | <code>setgamepreset</code> устанавливает режим следующего раунда. | ||
| Строка 55: | Строка 86: | ||
==== Внутриигровые ивенты ==== | ==== Внутриигровые ивенты ==== | ||
Игровой режим запускает генераторы ивентов, которые вы можете увидеть в <code>listgamerules</code>. | |||
<code>addgamerule <rules></code> добавляет режим или ивент к следующему или идущему раунду. | <code>addgamerule <rules></code> добавляет режим или ивент к следующему или идущему раунду. | ||
<code>endgamerule <rule></code> останавливает текущий в игре ивент. | <code>endgamerule <rule></code> останавливает текущий в игре ивент. | ||
Список ID событий: | Список ID событий: | ||
* <code>VentClog</code> | * <code>BasicStationEventScheduler</code> - спавнер редких игровых ивентов. Стоит во всех режимах игры кроме выживания. | ||
* <code>PowerGridCheck</code> | * <code>RampingStationEventScheduler</code> - спавнер частых игровых ивентов для режима выживания. | ||
* <code>FalseAlarm</code> - | * <code>Secret</code> - режим игры "Секрет" | ||
* <code>BluespaceArtifact</code> | * <code>DeathMatch</code> - режим игры "Все против всех". | ||
* <code>BreakerFlip</code> | * <code>NukeOps</code> - режим игры ядерных оперативников - спавнит пять нюкеров и их базу. | ||
* <code> | * <code>Pirates</code> - режим игры "Пираты" - создаёт шаттл с пиратами, пиратов по хорошему переспавнить и сделать через Уристов, сломаны. | ||
* <code>AnomalySpawn</code> | * <code>Sandbox</code> - режим игры "Песочница", игроки имеют права спавнить энтити/декали/тайлы. | ||
* <code>Suspicion</code> - TTT - Все вооружены, среди вооруженных есть предатели, задача не-предателей найти их и убить. | |||
* <code>TraitorDeathMatch</code> - режим игры, резня агентов. | |||
* <code>Zombie</code> - режим игры "Зомби". | |||
* <code>VentClog</code> выпускает жидкости из скрубберов. | |||
* <code>PowerGridCheck</code> выключает свет на неопределённый срок. | |||
* <code>FalseAlarm</code> - ивент, создающий фальшивые обьявления о игровых ивентах. | |||
* <code>BluespaceArtifact</code> создаёт рядом со станции/На ней артефакт. | |||
* <code>BreakerFlip</code> отключает в некоторых местах ЛКП. | |||
* <code>DiseaseOutbreak</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>VentCritters</code> - | * <code>Traitor</code> - игра выдаёт случайным игрокам предателей. | ||
* <code>ZombieOutbreak</code> | * <code>VentCritters</code> - из вентиляции лезут существа, от мышей до тарантулов. | ||
* <code>MouseMigration</code> - | * <code>ZombieOutbreak</code> оживляет мертвых игроков в виде зомби. | ||
* <code>BluespaceLockerLink</code> - | * <code>MouseMigration</code> - крысиный король с его свитой. | ||
* | * <code>BluespaceLockerLink</code> - блюспейс-шкаф. | ||
* <code>SpiderSpawn</code> спавнит в рандомных местах Тарантулов. | |||
< | * <code>ClosedSkeleton</code> скелет в шкафу. | ||
* <code>GiftsMedical</code> отправляет на трейд-пост набор медицины. | |||
* <code>GiftsSecurityGuns</code> отправляет на трейд-пост ящик снаряжения. | |||
* <code>GiftsEngineering</code> отправляет на трейд-пост инженерный набор. | |||
* <code>GiftsSecurityRiot</code> отправляет на трейд-пост ящик против бунта. | |||
* <code>GiftsSpacingSupplies</code> отправляет на трейд-пост защиту от космоса. | |||
* <code>GiftsFireProtection</code> отправляет на трейд-пост защиту от огня. | |||
* <code>GiftsJanitor</code> отправляет на трейд-пост наборы для сервиса. | |||
* <code>GiftsVendingRestock</code> отправляет на трейд-пост наборы пополнения. | |||
* <code>GiftsPizzaPartySmall</code> отправляет на трейд-пост малый набор пицц. | |||
* <code>GiftsPizzaPartyLarge</code> отправляет на трейд-пост большой набор пицц. | |||
* <code>IonStorm</code> меняет законы всем киборгам на станции. | |||
* <code>CockroachMigration</code> спавн ивент с рандомными мобами из вентиляций. | |||
* <code>ClericalError</code> ивент, рандомно удаляющий человека из манифеста. | |||
* <code>Revolutionary</code> режим революционеров. | |||
* <code>EvilTwin</code> спавнит злого двойника. | |||
* <code>NinjaSpawn</code> спавнит ниндзю. | |||
* <code>Thief</code> выдаёт роль вора. | |||
* <code>LoneOpsSpawn</code> спавнит одинокого Ядерного Оперативника. | |||
<code>NukeOps</code>, <code>Pirates</code> и <code>Revolutionary</code> надо добавлять обязательно до начала раунда. <code>Zombie</code> и <code>Traitor</code> можно добавлять во время раунда, но лучше до начала. Остальные, классические ивенты, срабатывают сразу, даже в лобби. | |||
==== Починка | ==== Починка пацифизма дионы ==== | ||
Чтобы убрать пацифизм у дионы | Чтобы убрать пацифизм у дионы, нужно удалить компоненты PacifedComponent и CombatModeComponent, а затем добавить CombatModeComponent снова. Это делается через просмотр переменных (<code>vv <EntityUID></code>) во вкладке "Компоненты сервера". Если добавить CombatModeComponent, пока у моба стоит PacifedComponent, то ничего не сработает. | ||
''Если вы меняете расу ядерного оперативника или респауните его, то вы во первых лишаете его тега синдиката, а во вторых ломаете систему режима из-за чего раунд может | ''Если вы меняете расу ядерного оперативника или респауните его, то вы во-первых лишаете его тега синдиката, а во-вторых ломаете систему режима, из-за чего раунд может закончиться, даже если этот опер жив.'' | ||
==== Цели антагониста ==== | ==== Цели антагониста ==== | ||
С помощью команды <code>lsobjectives <ник игрока></code> можно просмотреть цели антагониста. | С помощью команды <code>lsobjectives <ник игрока></code> можно просмотреть цели антагониста. | ||
С помощью команды <code>rmobjective <ник игрока> <номер цели></code> можно удалить цель у человека на выбор. Пример: | |||
* <code>rmobjective trinnq 0</code> | |||
Команда <code>adduplink <ник игрока></code> позволяет добавить аплинк указанному игроку. | |||
Команда <code>addobjective <nickname> <objective ID></code> добавит выбранному игроку ещё одну цель антагониста. Список ID целей (см. файл [https://github.com/space-syndicate/space-station-14/blob/master/Resources/Prototypes/Objectives/traitorObjectives.yml traitorObjectives.yml]): | Команда <code>addobjective <nickname> <objective ID></code> добавит выбранному игроку ещё одну цель антагониста. Список ID целей (см. файл [https://github.com/space-syndicate/space-station-14/blob/master/Resources/Prototypes/Objectives/traitorObjectives.yml traitorObjectives.yml]): | ||
* <code>CaptainIDStealObjective</code> | * <code>CaptainIDStealObjective</code> | ||
* <code>KillRandomObjective</code> | * <code>KillRandomObjective</code> | ||
* <code>KillRandomHeadObjective</code> | |||
* <code>RandomTraitorAliveObjective</code> | * <code>RandomTraitorAliveObjective</code> | ||
* <code>DieObjective</code> | * <code>DieObjective</code> | ||
* <code>CMOHyposprayStealObjective</code> | * <code>CMOHyposprayStealObjective</code> | ||
* <code>CMOCrewMonitorStealObjective</code> | |||
* <code>RDHardsuitStealObjective</code> | * <code>RDHardsuitStealObjective</code> | ||
* <code>HandTeleporterStealObjective</code> | |||
* <code>NukeDiskStealObjective</code> | * <code>NukeDiskStealObjective</code> | ||
* <code> | * <code>ClipboardStealObjective</code> | ||
* <code>MagbootsStealObjective</code> | * <code>MagbootsStealObjective</code> | ||
* <code> | * <code>SecretDocumentsStealObjective</code> | ||
* <code>CorgiMeatStealObjective</code> | * <code>CorgiMeatStealObjective</code> | ||
* <code>CaptainGunStealObjective</code> | * <code>CaptainGunStealObjective</code> | ||
| Строка 114: | Строка 179: | ||
[[Файл:Демонстрация_команды_addobjective.png]] | [[Файл:Демонстрация_команды_addobjective.png]] | ||
== Наказания == | |||
=== Баны === | |||
= | ==== Баны роли ==== | ||
=== Баны роли === | |||
<code>rolebanlist ...</code> позволяет просмотреть список банов ролей игрока. | <code>rolebanlist ...</code> позволяет просмотреть список банов ролей игрока. | ||
| Строка 147: | Строка 212: | ||
<code>roleunban <ID бана></code> отменяет бан роли. | <code>roleunban <ID бана></code> отменяет бан роли. | ||
=== Общие баны === | ==== Общие баны ==== | ||
<code>banlist ...</code> позволяет просмотреть список банов игрока. | <code>banlist ...</code> позволяет просмотреть список банов игрока. | ||
| Строка 155: | Строка 220: | ||
<code>pardon <ID бана></code> разбанивает простой бан игрока. | <code>pardon <ID бана></code> разбанивает простой бан игрока. | ||
== Логи == | === Логи === | ||
Просмотр логов доступен по команде <code>adminlogs</code> в консоли. | Просмотр логов доступен по команде <code>adminlogs</code> в консоли. | ||
== | === Заметки === | ||
Просмотр заметок доступен по команде <code>adminnotes</code> в консоли. | |||
== GoobFork команды == | |||
* Система навыков - Навыки: <code>ShuttleControl</code> <code>Shooting</code> <code>AdvancedBuilding</code> <code>Surgery</code> <code>MedicalEquipment</code> <code>Butchering</code> | |||
Команды: | |||
* <code>grantskill <euid> <skill></code> - выдаёт скилл. | |||
* <code>revokeskill <euid> <skill></code> - забирает скилл. | |||
* <code>listskills <euid></code> - перечисляет скиллы. | |||
* <code>grantallskills <euid></code>- выдаёт все скиллы. | |||
* AntagObjectiveImmunityComponent - иммунитет от становления целью | |||
{{ModernTitle|Прототипы|h1}} | |||
== Основы == | |||
В игре всё является сущностями(entity), сущность - это экземпляр(версия, или сын) прототипа. Когда вы создаёте что-либо на основе прототипа - вы спавните сущность, которая имеет уникальный айди и характеристики прототипа, которые вы можете менять. | |||
Компоненты - это переменные, они хранят разные данные - простые - true/false(включен-выключен), сложные - словарь определяющий тип урона. Они могут своим добавлением могут позволять что-либо — например, боргам пользоваться прибором; являться связующим посредником - stepTrigger(активировался если наступишь), представлять механику игры - Anomaly, и многое другое. Отношения между компонентами определены их кодом, знать его не обязательно, их описание довольно неплохо документировано [https://github.com/space-syndicate/space-station-14/tree/master/Content.Shared/ просто нужно знать, где искать]. | |||
Прототип - это описание чего-либо(режимы игры тоже определяются ими но не являются сущностями), которое состоит из компонентов. Если нам нужно описать хлебушек - самое простое из компонентов будет - itemComponent(его можно поднять и положить, он имеет объём для сумки), спрайт, набор звуков; сложные - являются частями механик и могут для изменения требовать понимания кода игры(с этим вы столкнётесь рано или поздно) - для хлебушка это его питательность(в метаболизме), это не трудно. И из кучи компонентов получим прототип хлеба(зарезервировавший уникальное имя прототипа), который без особого тестирования вполне может уронить сервер(и подарить аварн). | |||
Отдельно упомяну, что прототипы существуют в иерархии - предыдущий передаёт компоненты последующему, для описания чего либо вам не нужно начинать в нуля, вы можете унаследоваться от существующего прототипа, расширив его компоненты. | |||
Итог, для понимания - карта, грид на карте, стена на гриде, станция(со счётом в карго) - это всё сущности. Игрок видит объекты потому что имеет компонент глаз, управляет благодаря компоненту актёра. Прототипы написаны на YAML и могут быть изучены на гитхабе в /Resources/Prototypes/... . | |||
Если прототип не тестится на локалке из-за размера файла больше 3мб, то необходимо следовать следующим пунктам: | |||
На серверах Корвакс размер файлах ограничен 25-ю мб, но для этого надо пойти в cvar в \Resources\ConfigPresets\Build | |||
И написать: | |||
<pre> | |||
[netres] | |||
limit = 25.0 | |||
</pre> | |||
== Работа с файлами и загрузка прототипов == | |||
При автодополнении пути для указания файла вы будете в [https://github.com/space-syndicate/space-station-14/tree/master/Resources/ Resources]. Если вам нужно что-то быстро найти - легче всего будет скачать с гитхаба и найти сначала у себя, а потом в игре. Когда вы пишете /, вы начинаете уже в папке, имя Resources вам писать не надо. | |||
Чем эта папка отличается от гитхаба? У мапперов есть свои папки, которую можете создать и вы себе для хранения маперских наработок(при сохранении необходимо в пути указать имя новой папки — по традиции ваш сикей, срать папкам НЕ НАДО!). Во-вторых, есть новая папка - Resources/Uploaded/ в неё отправляется всё, что загружается на сервер через <code>uploadfile</code> или <code>uploadfolder</code>, при перезапуске сервер она очищается. ОДНАКО это не значит, что в неё можно срать, при заходе на сервер эти файлы отправляются игрокам, что может приводить к тому, что окно подключения к серверу у них будет висеть и минуту и больше, сжимайте аудио. | |||
* Когда вы пользуетесь <code>uploadfolder</code> вы указываете имя папки которая на вашем компьюторе лежит на пути - C:\Users\(ИМЯ ПОЛЬЗОВАТЕЛЯ)\AppData\Roaming\Space Station 14\data\UploadFolder | |||
* Для <code>uploadfile</code> вы придумываете своё название файла как он отправится на сервер, который выберете на компьютере. | |||
* Для загрузки прототипа <code>loadprototype</code> , нужно выбрать yml файл. | |||
Сначала вы загружаете ресурсы прототипа - музыку, спрайты, если оно того требует, потом сам прототип, иначе может крашнуть. Учитывайте, если ваш прототип перезаписывает существующие на карте сущности, после раундстарта оно не заменит уже созданные сущности, но возможно сломает, если там присутствуют сложные механики(например, новый список товаров в автомате). | |||
== Загрузка RSI == | |||
[https://docs.spacestation14.io/en/engine/rsi RSI] - формат группы изображений, изобретённый создателями SS14. Используется для спрайтов. У администраторов существует возможность загрузить свои RSI для использования их в прототипах без необходимости перезапуска сервера или перекомпиляции сборки. | |||
Например, нужно загрузить следующий RSI: | |||
<pre> | |||
delorian.rsi/ | |||
├── auto.png | |||
└── meta.json | |||
</pre> | |||
Для этого нужно использовать команду <code>uploadfile</code> с прописанной директорией: | |||
<pre> | |||
> uploadfile delorian.rsi/auto.png | |||
> uploadfile delorian.rsi/meta.json | |||
</pre> | |||
Для использования загруженных спрайтов в прототипах нужно прописывать такой путь: | |||
<pre> | |||
- type: Sprite | |||
sprite: /Uploaded/delorian.rsi # <------ | |||
layers: | |||
- state: auto | |||
map: ["enum.VehicleVisualLayers.AutoAnimate"] | |||
</pre> | |||
Загруженные файлы удаляются при перезапуске сервера. | |||
В недавнем обновлении появился более лёгкий способ загрузки папок - команда <code>uploadfolder</code>. | |||
{{ModernTitle|Маппинг|h1}} | |||
Основные понятия: | Основные понятия: | ||
| Строка 216: | Строка 356: | ||
<code>colornetwork <UID> Pipe <HEX-color></code> добавляет выбранный цвет на трубу. | <code>colornetwork <UID> Pipe <HEX-color></code> добавляет выбранный цвет на трубу. | ||
* | * <code>0000FF</code> — Дистра | ||
* | * <code>FF0000</code> — Вейст | ||
* | * <code>17E8E2</code> — Воздух | ||
* <code>947507</code> — Грязный | |||
* | * <code>FFD800</code> — Автобус | ||
* <code>FF9900</code> — Сигнальный | |||
* <code>D3FC03</code> — Вирусология | |||
* <code>FEF101</code> — Жёлтый | |||
* | * <code>A505FA</code> — Фиолетовый | ||
< | |||
</ | |||
<code>loadmappacts</code> - подгружает некоторые инструменты для более удобного маппинга (ставит в меню действий некоторые тайлы и стены). | |||
< | |||
</ | |||
<code>dock <ID1> <ID2></code> стыкует два стыковочных портах с ID1 и с ID2, находящихся на разных сетках. Полезно, когда нужна стыковка на карте, находящейся в паузе. | |||
< | |||
> | |||
{{ModernTitle|BQL|h1}} | |||
''Основная статья: [[BQL]]'' | ''Основная статья: [[BQL]]'' | ||
| Строка 285: | Строка 376: | ||
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]) | |||
Например: | |||
* <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. | |||
Текущая версия от 12:12, 12 октября 2025
Данная статья посвящена всяким полезностям для админов.
Работа с консолью
Основы
Консоль по стандарту открывается на ~ (ё). Автозаполнение работает нажатием кнопки Tab после выбора стрелками. Не все команды отображаются в зависимости от прав.
deadmin/readmin- убирает/возвращает права администратораaghost- та же командаghost, но с правами администратораsetadminooc #FFFFFF- устанавливает цвет вашему нику, который будет виден в чате OOC.help [название команды]- расскажет вам о команде, не забывайте про неё!list- выводит список доступных вам командlistgamerules- выводит список всех игровых событийforcemap- перманентно устанавливает карту (сброс карты делается forcemap "")> self scale:multiplyvector [2, 1](ТУЛШЕД!) -способ получить аварнизменение размера спрайта(увеличить в два раза = 2, уменьшить = 0,5)tpto- телепортация куда кого, алтернатива tpplayglobalsound- чтобы все услышали ваше аудио(после указания пути идёт громкость, она может быть отрицательной, если нужно тише)ftldisk- диск БСС скачков шаттлаexplosionui- искусство это взрыв
Отыгрыш ЦК
Установка кодов угроз
Позволяет менять код на станции и блокировать его смену персоналом с консоли связи:
setalertlevel <ID кода> [заблокирована ли возможность сменить ("true" или "false")]
ID кодов:
green- зелёный;blue- синий;yellow- жёлтый;violet- фиолетовый;red- красный;gamma- гамма;delta- дельта;epsilon- эпсилон.
Значения кодов см. СРП#Уровни_угрозы.
Цели станции по факсу
sendstationgoal- позволяет по факсу отправить цель на выбор. Примеры:StationGoalContaintmentStationGoalShuttleStationGoalSingularityStationGoalSolarPanelsStationGoalBankStationGoalZooStationGoalArtifactsStationGoalMiningOutpost
Значение целей см. Задачи_станции.
Счёт карго
> station:list=> появляется список станций, ищете свою => пишетеvv <uid, он показывается сбоку от названия>.
Далее заходим в компоненты сервера и находим StationBank и нажимаем на него, там есть и текущий счёт карго и количество пассивного дохода.
Эвакуационный шаттл
callshuttle #, где#- кол-во минут до шаттла, вызывает эвакуационный шаттл.dockemergencyshuttleмгновенно стыкует эвакуационный шаттл к станции.
Раунд
В лобби в зависимости от числа готовых игра подбирает прототипы режима и карты. Маппул и пресеты игры найти можно (также далее). Они имеют минимальное и максимальное число игроков.
customvote <вопрос> <ответ1> <ответ2> ... <ответN> - создаёт голосование с заданными параметрами, которое видно и в раунде, и в лобби.
Например:
customvote "Какой режим хотите выбрать?" Выживание Трейторы Секрет ...delaystart [seconds]- ставит старт раунда на паузу в лобби. Если указан аргумент, то откладывает старт на указанное количество секунд.forcemap- позволяет поменять карту до начала раунда.
Режимы игры
Существующие режимы игры:
- Extended
- Secret
- Sandbox
- Traitor
- Nukeops
- Zombie
- Pirates
- Deathmatch
- Revolutionary
- AllAtOnce
- Survival
setgamepreset устанавливает режим следующего раунда.
forcegamepreset устанавливает режим и мгновенно запускает раунд.
Внутриигровые ивенты
Игровой режим запускает генераторы ивентов, которые вы можете увидеть в listgamerules.
addgamerule <rules> добавляет режим или ивент к следующему или идущему раунду.
endgamerule <rule> останавливает текущий в игре ивент.
Список ID событий:
BasicStationEventScheduler- спавнер редких игровых ивентов. Стоит во всех режимах игры кроме выживания.RampingStationEventScheduler- спавнер частых игровых ивентов для режима выживания.Secret- режим игры "Секрет"DeathMatch- режим игры "Все против всех".NukeOps- режим игры ядерных оперативников - спавнит пять нюкеров и их базу.Pirates- режим игры "Пираты" - создаёт шаттл с пиратами, пиратов по хорошему переспавнить и сделать через Уристов, сломаны.Sandbox- режим игры "Песочница", игроки имеют права спавнить энтити/декали/тайлы.Suspicion- TTT - Все вооружены, среди вооруженных есть предатели, задача не-предателей найти их и убить.TraitorDeathMatch- режим игры, резня агентов.Zombie- режим игры "Зомби".VentClogвыпускает жидкости из скрубберов.PowerGridCheckвыключает свет на неопределённый срок.FalseAlarm- ивент, создающий фальшивые обьявления о игровых ивентах.BluespaceArtifactсоздаёт рядом со станции/На ней артефакт.BreakerFlipотключает в некоторых местах ЛКП.DiseaseOutbreakвыпускает рандомную болезнь рядом с игроком.AnomalySpawnсоздаёт аномалию.BureaucraticError- бюрократическая ошибка.GasLeakсоздаёт в рандомном месте рандомный газ.KudzuGrowth- кудзу.MeteorSwarm- метеоритный рой.RandomSentienceдаёт некоторым объектам роль призрака.Dragon- дракон, не работает, админу нужно спавнить вручную.RevenantSpawnспавнит Ревенанта.Traitor- игра выдаёт случайным игрокам предателей.VentCritters- из вентиляции лезут существа, от мышей до тарантулов.ZombieOutbreakоживляет мертвых игроков в виде зомби.MouseMigration- крысиный король с его свитой.BluespaceLockerLink- блюспейс-шкаф.SpiderSpawnспавнит в рандомных местах Тарантулов.ClosedSkeletonскелет в шкафу.GiftsMedicalотправляет на трейд-пост набор медицины.GiftsSecurityGunsотправляет на трейд-пост ящик снаряжения.GiftsEngineeringотправляет на трейд-пост инженерный набор.GiftsSecurityRiotотправляет на трейд-пост ящик против бунта.GiftsSpacingSuppliesотправляет на трейд-пост защиту от космоса.GiftsFireProtectionотправляет на трейд-пост защиту от огня.GiftsJanitorотправляет на трейд-пост наборы для сервиса.GiftsVendingRestockотправляет на трейд-пост наборы пополнения.GiftsPizzaPartySmallотправляет на трейд-пост малый набор пицц.GiftsPizzaPartyLargeотправляет на трейд-пост большой набор пицц.IonStormменяет законы всем киборгам на станции.CockroachMigrationспавн ивент с рандомными мобами из вентиляций.ClericalErrorивент, рандомно удаляющий человека из манифеста.Revolutionaryрежим революционеров.EvilTwinспавнит злого двойника.NinjaSpawnспавнит ниндзю.Thiefвыдаёт роль вора.LoneOpsSpawnспавнит одинокого Ядерного Оперативника.
NukeOps, Pirates и Revolutionary надо добавлять обязательно до начала раунда. Zombie и Traitor можно добавлять во время раунда, но лучше до начала. Остальные, классические ивенты, срабатывают сразу, даже в лобби.
Починка пацифизма дионы
Чтобы убрать пацифизм у дионы, нужно удалить компоненты PacifedComponent и CombatModeComponent, а затем добавить CombatModeComponent снова. Это делается через просмотр переменных (vv <EntityUID>) во вкладке "Компоненты сервера". Если добавить CombatModeComponent, пока у моба стоит PacifedComponent, то ничего не сработает.
Если вы меняете расу ядерного оперативника или респауните его, то вы во-первых лишаете его тега синдиката, а во-вторых ломаете систему режима, из-за чего раунд может закончиться, даже если этот опер жив.
Цели антагониста
С помощью команды lsobjectives <ник игрока> можно просмотреть цели антагониста.
С помощью команды rmobjective <ник игрока> <номер цели> можно удалить цель у человека на выбор. Пример:
rmobjective trinnq 0
Команда adduplink <ник игрока> позволяет добавить аплинк указанному игроку.
Команда addobjective <nickname> <objective ID> добавит выбранному игроку ещё одну цель антагониста. Список ID целей (см. файл traitorObjectives.yml):
CaptainIDStealObjectiveKillRandomObjectiveKillRandomHeadObjectiveRandomTraitorAliveObjectiveDieObjectiveCMOHyposprayStealObjectiveCMOCrewMonitorStealObjectiveRDHardsuitStealObjectiveHandTeleporterStealObjectiveNukeDiskStealObjectiveClipboardStealObjectiveMagbootsStealObjectiveSecretDocumentsStealObjectiveCorgiMeatStealObjectiveCaptainGunStealObjectiveCaptainJetpackStealObjectiveEscapeShuttleObjectiveRandomTraitorProgressObjective
Наказания
Баны
Баны роли
rolebanlist ... позволяет просмотреть список банов ролей игрока.
roleban <логин> <ID профессии> "<причина>" <время в минутах или 0 для пермы>
банит данную профессию для данного игрока.
Узнать ID работы можно, найдя соответствующий файл этой роли на Github:
# /Resources/Prototypes/Roles/Jobs/Security/head_of_security.yml - type: job id: HeadOfSecurity # <--- интересующий нас ID name: job-name-hos playTimeTracker: JobHeadOfSecurity ...
Пример команды: roleban Morty Assistant "Очень плох" 60
departmentban <nickname> <ID отдела> <причина> <время в минутах или 0 для пермы> банит игроку весь отдел. ID отделов:
- Cargo
- Civilian
- Command
- Engineering
- Medical
- Science
- Security
roleunban <ID бана> отменяет бан роли.
Общие баны
banlist ... позволяет просмотреть список банов игрока.
ban <login> <причина> [время бана в минутах или 0 для перма] просто банит игрока с сервера.
pardon <ID бана> разбанивает простой бан игрока.
Логи
Просмотр логов доступен по команде adminlogs в консоли.
Заметки
Просмотр заметок доступен по команде adminnotes в консоли.
GoobFork команды
- Система навыков - Навыки:
ShuttleControlShootingAdvancedBuildingSurgeryMedicalEquipmentButchering
Команды:
grantskill <euid> <skill>- выдаёт скилл.revokeskill <euid> <skill>- забирает скилл.listskills <euid>- перечисляет скиллы.grantallskills <euid>- выдаёт все скиллы.- AntagObjectiveImmunityComponent - иммунитет от становления целью
Прототипы
Основы
В игре всё является сущностями(entity), сущность - это экземпляр(версия, или сын) прототипа. Когда вы создаёте что-либо на основе прототипа - вы спавните сущность, которая имеет уникальный айди и характеристики прототипа, которые вы можете менять. Компоненты - это переменные, они хранят разные данные - простые - true/false(включен-выключен), сложные - словарь определяющий тип урона. Они могут своим добавлением могут позволять что-либо — например, боргам пользоваться прибором; являться связующим посредником - stepTrigger(активировался если наступишь), представлять механику игры - Anomaly, и многое другое. Отношения между компонентами определены их кодом, знать его не обязательно, их описание довольно неплохо документировано просто нужно знать, где искать.
Прототип - это описание чего-либо(режимы игры тоже определяются ими но не являются сущностями), которое состоит из компонентов. Если нам нужно описать хлебушек - самое простое из компонентов будет - itemComponent(его можно поднять и положить, он имеет объём для сумки), спрайт, набор звуков; сложные - являются частями механик и могут для изменения требовать понимания кода игры(с этим вы столкнётесь рано или поздно) - для хлебушка это его питательность(в метаболизме), это не трудно. И из кучи компонентов получим прототип хлеба(зарезервировавший уникальное имя прототипа), который без особого тестирования вполне может уронить сервер(и подарить аварн).
Отдельно упомяну, что прототипы существуют в иерархии - предыдущий передаёт компоненты последующему, для описания чего либо вам не нужно начинать в нуля, вы можете унаследоваться от существующего прототипа, расширив его компоненты.
Итог, для понимания - карта, грид на карте, стена на гриде, станция(со счётом в карго) - это всё сущности. Игрок видит объекты потому что имеет компонент глаз, управляет благодаря компоненту актёра. Прототипы написаны на YAML и могут быть изучены на гитхабе в /Resources/Prototypes/... .
Если прототип не тестится на локалке из-за размера файла больше 3мб, то необходимо следовать следующим пунктам: На серверах Корвакс размер файлах ограничен 25-ю мб, но для этого надо пойти в cvar в \Resources\ConfigPresets\Build И написать:
[netres] limit = 25.0
Работа с файлами и загрузка прототипов
При автодополнении пути для указания файла вы будете в Resources. Если вам нужно что-то быстро найти - легче всего будет скачать с гитхаба и найти сначала у себя, а потом в игре. Когда вы пишете /, вы начинаете уже в папке, имя Resources вам писать не надо.
Чем эта папка отличается от гитхаба? У мапперов есть свои папки, которую можете создать и вы себе для хранения маперских наработок(при сохранении необходимо в пути указать имя новой папки — по традиции ваш сикей, срать папкам НЕ НАДО!). Во-вторых, есть новая папка - Resources/Uploaded/ в неё отправляется всё, что загружается на сервер через uploadfile или uploadfolder, при перезапуске сервер она очищается. ОДНАКО это не значит, что в неё можно срать, при заходе на сервер эти файлы отправляются игрокам, что может приводить к тому, что окно подключения к серверу у них будет висеть и минуту и больше, сжимайте аудио.
- Когда вы пользуетесь
uploadfolderвы указываете имя папки которая на вашем компьюторе лежит на пути - C:\Users\(ИМЯ ПОЛЬЗОВАТЕЛЯ)\AppData\Roaming\Space Station 14\data\UploadFolder - Для
uploadfileвы придумываете своё название файла как он отправится на сервер, который выберете на компьютере. - Для загрузки прототипа
loadprototype, нужно выбрать yml файл.
Сначала вы загружаете ресурсы прототипа - музыку, спрайты, если оно того требует, потом сам прототип, иначе может крашнуть. Учитывайте, если ваш прототип перезаписывает существующие на карте сущности, после раундстарта оно не заменит уже созданные сущности, но возможно сломает, если там присутствуют сложные механики(например, новый список товаров в автомате).
Загрузка RSI
RSI - формат группы изображений, изобретённый создателями SS14. Используется для спрайтов. У администраторов существует возможность загрузить свои RSI для использования их в прототипах без необходимости перезапуска сервера или перекомпиляции сборки.
Например, нужно загрузить следующий RSI:
delorian.rsi/ ├── auto.png └── meta.json
Для этого нужно использовать команду uploadfile с прописанной директорией:
> uploadfile delorian.rsi/auto.png > uploadfile delorian.rsi/meta.json
Для использования загруженных спрайтов в прототипах нужно прописывать такой путь:
- type: Sprite
sprite: /Uploaded/delorian.rsi # <------
layers:
- state: auto
map: ["enum.VehicleVisualLayers.AutoAnimate"]
Загруженные файлы удаляются при перезапуске сервера.
В недавнем обновлении появился более лёгкий способ загрузки папок - команда uploadfolder.
Маппинг
Основные понятия:
- Карта (map) - БСС-пространство, содержащее сетки (grids).
- Сетка (grid) - совокупность соединённых тайлов и игровых сущностях, находящихся на них. Собственно, станция - большая единая сетка. Например, если отделить от неё кусочек или поставить прутья на космос, то получится новая сетка, отдельная от станции.
Карта (map)
Карта - БСС-пространство и содержащиеся в нём сетки (grids). Имеет два состояния init: True и init: False - пауза и не пауза. С помощью команды lsmap можно вывести список всех существующих в текущий момент карт, их ID и их состояние (пауза или нет). Основные команды:
mapping [MapID] [путь до мира или сетки]создаёт новую карту на свободном ID или с данным ID, который не должен быть занят существующими картами, и телепортирует вас на неё. Если дан путь до мира или сетки, то загружает этот файл в новосозданный мир. По умолчанию карта поставлена на паузы.mapinit <MapID>снимает с паузы или размораживает карту. Не сработает с эвакуационным шаттлом и картой ЦК.addmap <MapID>создаёт размороженный мир с данным ID, к которому телепортироваться нужно вручную.rmmap <MapID>удаляет мир с данным ID. ОЧЕНЬ рекомендуется дюжину раз проверять ID прежде, чем нажимать Enter, иначе ненароком можно удалить мир со станцией вместе с игроками.
Сетка (grid)
Сетка - совокупность соединённых вместе тайлов (пол) и лежащих на них предметов. Например, станция - отдельная сетка, шаттл карго - тоже отдельная сетка.
Спавн сетки:
- Получить ID текущей карты. Для этого используйте команду
loc:
- Определитесь с шаблоном который хотите загрузить на карту.
- Используйте команду
loadgrid <ID карты> <загружаемый шаблон>. По умолчанию объект появится на нулевых координатах (x: 0, y: 0). Вы можете телепортировать себя туда, используя команду:tp <x> <y>. - Если вы хотите переместить его на другие координаты, то см. #Перемещение сеток.
- Profit!
Перемещение сеток:
tpgrid <id сетки> <x> <y>- сама команда для телепорта;lsgridвыдаёт список всех существующих сеток;locдаёт ваши текущие координаты, там же указывается ID сетки на которой вы стоите (GridID).
Сохранение сеток:
Функция позволяет сохранить сетку как файл с картой на сервере и загружать ее в будущих раундах.
❗Не злоупотребляйте этой функцией и сохраняйте только действительно необходимые вам вещи.
- Узнайте ID сетки на которой находится ваш персонаж/призрак с помощью команды
loc. Нужное вами число это GridID. - Далее сама команда для сохранения сетки как карты:
savebp <gridUid> <path>, где<gridId>это ранее полученное число, а<path>- путь, по которому сетка будет сохранена в папке сервера. Достаточно просто указать название файла. Обязательно укажите расширение.ymlдля файла.
Пример:savebp 12 myShuttle.yml. - Profit!
БСС (FTL):
Чтобы сделать сетку доступной для прыжка к ней через БСС, нужно открыть окно просмотра переменных этой сетки. Для этого прописывается vv <gridUID>. Во вкладке "Компоненты сервера" нужно добавить компонент "FTLDestination" через кнопку "Добавить компонент". Готово! Сетка, а вместе с ней и карта, на которой она расположена, доступны для прыжка, например, карго-шаттла.
Опционально можно переименовать сетку опять в просмотре переменных vv - во вкладке "Переменные сервера" в поле Name прописывается новое имя и обязательно нажимается Enter по завершению ввода.
Примечание: чтобы новое БСС-пространство появилось в консолях управления шаттлами, нужно их обновить путём выкручивания и вкручивания обратно гаечным ключом.
Непосредственно маппинг
fixgridatmos мгновенно заполняет все тайлы грида дыхательной смесью.
colornetwork <UID> Pipe <HEX-color> добавляет выбранный цвет на трубу.
0000FF— ДистраFF0000— Вейст17E8E2— Воздух947507— ГрязныйFFD800— АвтобусFF9900— СигнальныйD3FC03— ВирусологияFEF101— ЖёлтыйA505FA— Фиолетовый
loadmappacts - подгружает некоторые инструменты для более удобного маппинга (ставит в меню действий некоторые тайлы и стены).
dock <ID1> <ID2> стыкует два стыковочных портах с ID1 и с ID2, находящихся на разных сетках. Полезно, когда нужна стыковка на карте, находящейся в паузе.
BQL
Основная статья: BQL
BQL - язык запросов движка SS14, который позволяет проводить массовые манипуляции с игровыми сущностями. Примеры:
forall with FaxMachine do echo $IDнайдёт абсолютно все факсы и выведет их UID.
Toolshed - разработана как замена старым BQL командам, но не сильно от них отличается. (см. файл [1]) Например:
adjstationjob => stations:get jobs:job AtmosphericTechnician jobs:adjust 1позволяет добавить свободную роль на станцию. (см. файл [2])> entities with PointLight do "addcomp $ID RgbLightController"позволяет добавить всем лампам компонент RGB.
