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

м СРП
Нет описания правки
 
Строка 1: Строка 1:
{{infobox|indev|sign=[[Участник:Trinnq|Trinnq]] ([[Обсуждение участника:Trinnq|обсуждение]]), [[Участник:Kevicky9|Kevicky9]] ([[Обсуждение участника:Kevicky9|обсуждение]])}}
Данная статья посвящена всяким полезностям для админов.
Данная статья посвящена всяким полезностям для админов.
 
{{ModernTitle|Работа с консолью|h1}}
Консоль открывается по клавише <code>`</code> (<code>ё</code>).
== Основы ==
 
Консоль по стандарту открывается на <code>~</code> (<code>ё</code>). Автозаполнение работает нажатием кнопки Tab после выбора стрелками. Не все команды отображаются в зависимости от прав.
Переход между состояниями админа и простого игрока с помощью команд:
* <code>deadmin/readmin</code> - убирает/возвращает права администратора
* <code>deadmin</code> убирает с вас права и делает обычным игроком;
* <code>aghost</code> - та же команда <code>ghost</code>, но с правами администратора
* <code>readmin</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> - искусство это взрыв


== Отыгрыш ЦК ==
== Отыгрыш ЦК ==
Строка 19: Строка 25:


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


Значения кодов см. [[СРП#Уровни_угрозы]].
Значения кодов см. [[СРП#Уровни_угрозы]].
Строка 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>Exterminator</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> можно добавлять во время раунда, но лучше до начала. Остальные, классические ивенты, срабатывают сразу, даже в лобби.
 
 
<!-- TODO: переписать и объединить данный раздел с разделом про режимы игры, так как они неразрывно связаны! -->
 
Nukeops, Pirates и Revolutionary надо добавлять обязательно до начала раунда. Zombie и Traitor можно добавлять во время раунда, но лучше до начала. Остальные, классические ивенты, срабатывают сразу, даже в лобби.


==== Починка пацифизма дионы ====
==== Починка пацифизма дионы ====
Строка 186: Строка 179:


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


== Баны ==
==== Баны роли ====
 
=== Баны роли ===


<code>rolebanlist ...</code> позволяет просмотреть список банов ролей игрока.
<code>rolebanlist ...</code> позволяет просмотреть список банов ролей игрока.
Строка 219: Строка 212:
<code>roleunban <ID бана></code> отменяет бан роли.
<code>roleunban <ID бана></code> отменяет бан роли.


=== Общие баны ===
==== Общие баны ====


<code>banlist ...</code> позволяет просмотреть список банов игрока.
<code>banlist ...</code> позволяет просмотреть список банов игрока.
Строка 227: Строка 220:
<code>pardon <ID бана></code> разбанивает простой бан игрока.
<code>pardon <ID бана></code> разбанивает простой бан игрока.


== Логи ==
=== Логи ===


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


== Заметки ==
=== Заметки ===


Просмотр заметок доступен по команде <code>adminnotes</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}}


Основные понятия:
Основные понятия:
Строка 292: Строка 356:


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


<code>loadmappacts</code> - подгружает некоторые инструменты для более удобного маппинга (ставит в меню действий некоторые тайлы и стены).
<code>loadmappacts</code> - подгружает некоторые инструменты для более удобного маппинга (ставит в меню действий некоторые тайлы и стены).
Строка 306: Строка 370:
<code>dock <ID1> <ID2></code> стыкует два стыковочных портах с ID1 и с ID2, находящихся на разных сетках. Полезно, когда нужна стыковка на карте, находящейся в паузе.
<code>dock <ID1> <ID2></code> стыкует два стыковочных портах с ID1 и с ID2, находящихся на разных сетках. Полезно, когда нужна стыковка на карте, находящейся в паузе.


== Прототипы ==
{{ModernTitle|BQL|h1}}
 
В панели администратора есть возможность загрузить в игру свой прототип. Например, нужен спавнер случайного гуманоида для проведения какого-нибудь мероприятия:
 
<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>.
 
== BQL ==


''Основная статья: [[BQL]]''
''Основная статья: [[BQL]]''