Обсуждение:Поваренная книга админа: различия между версиями
AsnDen (обсуждение | вклад) м СРП |
Нет описания правки |
||
| Строка 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> - искусство это взрыв | |||
== Отыгрыш ЦК == | == Отыгрыш ЦК == | ||
| Строка 45: | Строка 51: | ||
=== Счёт карго === | === Счёт карго === | ||
* <code> > station:list</code> => появляется список станций, ищете свою => пишете <code>vv <uid</code>, он показывается сбоку от названия>. | * <code>> station:list</code> => появляется список станций, ищете свою => пишете <code>vv <uid</code>, он показывается сбоку от названия>. | ||
Далее заходим в компоненты сервера и находим <code>StationBank</code> и нажимаем на него, там есть и текущий счёт карго и количество пассивного дохода. | Далее заходим в компоненты сервера и находим <code>StationBank</code> и нажимаем на него, там есть и текущий счёт карго и количество пассивного дохода. | ||
| Строка 54: | Строка 60: | ||
== Раунд == | == Раунд == | ||
В лобби в зависимости от числа готовых игра подбирает прототипы режима и карты. Маппул и пресеты игры найти можно (также далее). Они имеют минимальное и максимальное число игроков. | |||
<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> - позволяет поменять карту до начала раунда. | |||
=== Режимы игры === | === Режимы игры === | ||
Существующие режимы игры: | Существующие режимы игры: | ||
* Extended | * Extended | ||
| Строка 83: | Строка 86: | ||
==== Внутриигровые ивенты ==== | ==== Внутриигровые ивенты ==== | ||
Игровой режим запускает генераторы ивентов, которые вы можете увидеть в <code>listgamerules</code>. | |||
<code>addgamerule <rules></code> добавляет режим или ивент к следующему или идущему раунду. | <code>addgamerule <rules></code> добавляет режим или ивент к следующему или идущему раунду. | ||
<code>endgamerule <rule></code> останавливает текущий в игре ивент. | <code>endgamerule <rule></code> останавливает текущий в игре ивент. | ||
Список ID событий: | Список ID событий: | ||
* <code>BasicStationEventScheduler</code> - спавнер редких игровых ивентов. Стоит во всех режимах игры кроме выживания. | * <code>BasicStationEventScheduler</code> - спавнер редких игровых ивентов. Стоит во всех режимах игры кроме выживания. | ||
| Строка 137: | Строка 136: | ||
* <code>Revolutionary</code> режим революционеров. | * <code>Revolutionary</code> режим революционеров. | ||
* <code>EvilTwin</code> спавнит злого двойника. | * <code>EvilTwin</code> спавнит злого двойника. | ||
* <code>NinjaSpawn</code> спавнит ниндзю. | * <code>NinjaSpawn</code> спавнит ниндзю. | ||
* <code>Thief</code> выдаёт роль вора. | * <code>Thief</code> выдаёт роль вора. | ||
* <code>LoneOpsSpawn</code> спавнит одинокого Ядерного Оперативника. | * <code>LoneOpsSpawn</code> спавнит одинокого Ядерного Оперативника. | ||
<code>NukeOps</code>, <code>Pirates</code> и <code>Revolutionary</code> надо добавлять обязательно до начала раунда. <code>Zombie</code> и <code>Traitor</code> можно добавлять во время раунда, но лучше до начала. Остальные, классические ивенты, срабатывают сразу, даже в лобби. | |||
< | |||
==== Починка пацифизма дионы ==== | ==== Починка пацифизма дионы ==== | ||
| Строка 235: | Строка 228: | ||
Просмотр заметок доступен по команде <code>adminnotes</code> в консоли. | Просмотр заметок доступен по команде <code>adminnotes</code> в консоли. | ||
== | {{ModernTitle|Прототипы|h1}} | ||
=> Грубый краткий пересказ для понимания ECS-КОП, душить не буду, душнилам не читать. | |||
В игре всё является сущностями(entity), сущность - это экземпляр(версия, или сын) прототипа. Когда вы создаёте что-либо на основе прототипа - вы спавните сущность, которая имеет уникальный айди и характеристики прототипа, которые вы можете менять. | |||
Компоненты - это переменные, они хранят разные данные - простые - true/false(включен-выключен), сложные - словарь определяющий тип урона. Они могут своим добавлением могут позволять что-либо — например, боргам пользоваться прибором; являться связующим посредником - stepTrigger(активировался если наступишь), представлять механику игры - Anomaly, и многое другое. Отношения между компонентами определены их кодом, знать его не обязательно, их описание довольно неплохо документировано [https://github.com/space-syndicate/space-station-14/tree/master/Content.Shared/ просто нужно знать, где искать]. | |||
Прототип - это описание чего-либо(режимы игры тоже определяются ими но не являются сущностями), которое состоит из компонентов. Если нам нужно описать хлебушек - самое простое из компонентов будет - itemComponent(его можно поднять и положить, он имеет объём для сумки), спрайт, набор звуков; сложные - являются частями механик и могут для изменения требовать понимания кода игры(с этим вы столкнётесь рано или поздно) - для хлебушка это его питательность(в метаболизме), это не трудно. И из кучи компонентов получим прототип хлеба(зарезервировавший уникальное имя прототипа), который без особого тестирования вполне может уронить сервер(и подарить аварн). | |||
Отдельно упомяну, что прототипы существуют в иерархии - предыдущий передаёт компоненты последующему, для описания чего либо вам не нужно начинать в нуля, вы можете унаследоваться от существующего прототипа, расширив его компоненты. | |||
Итог, для понимания - карта, грид на карте, стена на гриде, станция(со счётом в карго) - это всё сущности. Игрок видит объекты потому что имеет компонент глаз, управляет благодаря компоненту актёра. Прототипы написаны на YAML и могут быть изучены на гитхабе в /Resources/Prototypes/... . | |||
В панели администратора есть возможность загрузить в игру свой прототип. Например, нужен спавнер случайного гуманоида для проведения какого-нибудь мероприятия: | |||
<pre> | |||
- type: entity | |||
parent: ClothingHeadsetAlt | |||
id: ClothingHeadsetCentComCCAlt | |||
suffix: CentCom | |||
name: Гарнитура офицера ЦК | |||
description: Стандартная гарнитура ЦК. | |||
components: | |||
- type: Headset | |||
channels: | |||
- CentCom | |||
- type: Sprite | |||
sprite: Clothing/Ears/Headsets/centcom.rsi | |||
- type: Clothing | |||
sprite: Clothing/Ears/Headsets/centcom.rsi | |||
</pre> | |||
В админ-панели (по клавише F7) во вкладке "Админ-абуз" есть кнопка "Загрузить прототип", кликнув на неё выберите файл прототипа, который нужно загрузить. | |||
Загруженные прототипы будут доступен до перезапуска сервера. | |||
=== Загрузка 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}} | |||
Основные понятия: | Основные понятия: | ||
| Строка 305: | Строка 362: | ||
<code>dock <ID1> <ID2></code> стыкует два стыковочных портах с ID1 и с ID2, находящихся на разных сетках. Полезно, когда нужна стыковка на карте, находящейся в паузе. | <code>dock <ID1> <ID2></code> стыкует два стыковочных портах с ID1 и с ID2, находящихся на разных сетках. Полезно, когда нужна стыковка на карте, находящейся в паузе. | ||
== BQL == | == BQL == | ||