Поваренная книга админа: различия между версиями
Kevicky9 (обсуждение | вклад) →Сетки и карты: добавлена информация о БСС |
Нет описания правки |
||
| (не показано 27 промежуточных версий 3 участников) | |||
| Строка 1: | Строка 1: | ||
Данная статья посвящена всяким полезностям для админов. | Данная статья посвящена всяким полезностям для админов. | ||
{{ModernTitle|Работа с консолью|h1}} | |||
Консоль открывается | == Основы == | ||
Консоль по стандарту открывается на <code>~</code> (<code>ё</code>). Автозаполнение работает нажатием кнопки Tab после выбора стрелками. Не все команды отображаются в зависимости от прав. | |||
* <code>deadmin/readmin</code> - убирает/возвращает права администратора | |||
* <code> | * <code>aghost</code> - та же команда <code>ghost</code>, но с правами администратора | ||
* <code> | * <code>setadminooc #FFFFFF</code> - устанавливает цвет вашему нику, который будет виден в чате OOC. | ||
* <code>help [название команды]</code> - расскажет вам о команде, не забывайте про неё! | |||
* <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> - искусство это взрыв | |||
== Отыгрыш ЦК == | == Отыгрыш ЦК == | ||
| Строка 16: | Строка 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> и нажимаем на него, там есть и текущий счёт карго и количество пассивного дохода. | |||
=== Эвакуационный шаттл === | === Эвакуационный шаттл === | ||
| Строка 33: | Строка 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 | ||
| Строка 47: | Строка 77: | ||
* Pirates | * Pirates | ||
* Deathmatch | * Deathmatch | ||
* Revolutionary | |||
* AllAtOnce | |||
* Survival | |||
<code>setgamepreset</code> устанавливает режим следующего раунда. | <code>setgamepreset</code> устанавливает режим следующего раунда. | ||
| Строка 52: | Строка 85: | ||
<code>forcegamepreset</code> устанавливает режим и мгновенно запускает раунд. | <code>forcegamepreset</code> устанавливает режим и мгновенно запускает раунд. | ||
==== Внутриигровые ивенты ==== | |||
Игровой режим запускает генераторы ивентов, которые вы можете увидеть в <code>listgamerules</code>. | |||
<code>addgamerule <rules></code> добавляет режим или ивент к следующему или идущему раунду. | <code>addgamerule <rules></code> добавляет режим или ивент к следующему или идущему раунду. | ||
<code>endgamerule <rule></code> останавливает текущий в игре ивент. | |||
Список ID событий: | |||
* <code>BasicStationEventScheduler</code> - спавнер редких игровых ивентов. Стоит во всех режимах игры кроме выживания. | |||
* <code>RampingStationEventScheduler</code> - спавнер частых игровых ивентов для режима выживания. | |||
* <code>Secret</code> - режим игры "Секрет" | |||
* <code>DeathMatch</code> - режим игры "Все против всех". | |||
* <code>NukeOps</code> - режим игры ядерных оперативников - спавнит пять нюкеров и их базу. | |||
* <code>Pirates</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>GasLeak</code> создаёт в рандомном месте рандомный газ. | |||
* <code>KudzuGrowth</code> - кудзу. | |||
* <code>MeteorSwarm</code> - метеоритный рой. | |||
* <code>RandomSentience</code> даёт некоторым объектам роль призрака. | |||
* <code>Dragon</code> - дракон, не работает, админу нужно спавнить вручную. | |||
* <code>RevenantSpawn</code> спавнит Ревенанта. | |||
* <code>Traitor</code> - игра выдаёт случайным игрокам предателей. | |||
* <code>VentCritters</code> - из вентиляции лезут существа, от мышей до тарантулов. | |||
* <code>ZombieOutbreak</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>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>CaptainIDStealObjective</code> | |||
* <code>KillRandomObjective</code> | |||
* <code>KillRandomHeadObjective</code> | |||
* <code>RandomTraitorAliveObjective</code> | |||
* <code>DieObjective</code> | |||
* <code>CMOHyposprayStealObjective</code> | |||
* <code>CMOCrewMonitorStealObjective</code> | |||
* <code>RDHardsuitStealObjective</code> | |||
* <code>HandTeleporterStealObjective</code> | |||
* <code>NukeDiskStealObjective</code> | |||
* <code>ClipboardStealObjective</code> | |||
* <code>MagbootsStealObjective</code> | |||
* <code>SecretDocumentsStealObjective</code> | |||
* <code>CorgiMeatStealObjective</code> | |||
* <code>CaptainGunStealObjective</code> | |||
* <code>CaptainJetpackStealObjective</code> | |||
* <code>EscapeShuttleObjective</code> | |||
* <code>RandomTraitorProgressObjective</code> | |||
[[Файл:Демонстрация_команды_addobjective.png]] | |||
== Наказания == | |||
=== Баны === | |||
== Баны == | ==== Баны роли ==== | ||
<code>rolebanlist ...</code> позволяет просмотреть список банов ролей игрока. | |||
<pre>roleban <логин> <ID профессии> "<причина>" <время в минутах или 0 для пермы></pre> | <pre>roleban <логин> <ID профессии> "<причина>" <время в минутах или 0 для пермы></pre> банит данную профессию для данного игрока. | ||
Узнать ID работы можно, найдя соответствующий файл этой роли на [https://github.com/space-syndicate/space-station-14/tree/master/Resources/Prototypes/Roles/Jobs Github]: | Узнать ID работы можно, найдя соответствующий файл этой роли на [https://github.com/space-syndicate/space-station-14/tree/master/Resources/Prototypes/Roles/Jobs Github]: | ||
| Строка 78: | Строка 201: | ||
Пример команды: <code>roleban Morty Assistant "Очень плох" 60</code> | Пример команды: <code>roleban Morty Assistant "Очень плох" 60</code> | ||
<code>departmentban <nickname> <ID отдела> <причина> <время в минутах или 0 для пермы></code> банит игроку весь отдел. ID отделов: | |||
* Cargo | |||
* Civilian | |||
* Command | |||
* Engineering | |||
* Medical | |||
* Science | |||
* Security | |||
<code>roleunban <ID бана></code> | <code>roleunban <ID бана></code> отменяет бан роли. | ||
=== | ==== Общие баны ==== | ||
<code> | <code>banlist ...</code> позволяет просмотреть список банов игрока. | ||
== Логи == | <code>ban <login> <причина> [время бана в минутах или 0 для перма]</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}} | |||
Основные понятия: | Основные понятия: | ||
| Строка 140: | Строка 349: | ||
Опционально можно переименовать сетку опять в просмотре переменных <code>vv</code> - во вкладке "Переменные сервера" в поле Name прописывается новое имя и обязательно нажимается Enter по завершению ввода. | Опционально можно переименовать сетку опять в просмотре переменных <code>vv</code> - во вкладке "Переменные сервера" в поле Name прописывается новое имя и обязательно нажимается Enter по завершению ввода. | ||
''Примечание: чтобы новое БСС-пространство появилось в консолях управления шаттлами, нужно их обновить путём выкручивания и вкручивания обратно гаечным ключом.'' | |||
=== Непосредственно маппинг === | |||
< | <code>fixgridatmos</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 - язык запросов движка SS14, который позволяет проводить массовые манипуляции с игровыми сущностями. Примеры: | |||
* <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. | |||
</ | |||