Блоки-контроллеры

Материал из GreenCubes Wiki
Перейти к навигации Перейти к поиску

Контроллер-блок — блок имеющий функции координации маршрута от одной станции до другой. На на сервере GreenCubes Main в качестве КБ используется Кровокамень.

Станции метро[править]

Станции метро — единственная единица, в сторону которой можно просчитать маршрут.

Создание станции[править]

  • /st create <имя станции>

Имя станции должно состоять из латинских букв и символа подчеркивания. У станции устанавливается владелец — игрок, который создал её. Менять настройки станции может только её владелец или модератор метростроя. У станции не может быть более одного владельца, т.к. это не может быть введено правильно до ввода организаций. После их ввода, станцией сможет владеть организация.

Список станций на сервере[править]

  • /st list
  • /go

Список будет выведен в стиле <имя станции> (<описание станции>) владелец: <владелец>

Изменение описания станции[править]

  • /st description <имя станции> <описание станции...>

Описание станции может быть в несколько слов до 200 символов. Не перебарщивайте с длиной...

Переименование станции[править]

  • /st rename <старое имя> <новое имя>

Очевидно, нельзя назвать станцию именем уже существующей станции.

Смена владельца станции[править]

  • /st changeowner <имя станции> <новый владелец>

Всё понятно тут.

Обновление маршрутов[править]

  • /st refresh <имя станции>

Обновляет все маршруты до этой станции.

  • /st refresh (Только для метростроя)

Обновляет маршруты до всех станций. Нельзя делать чаще, чем раз в 10 минут.

Удаление станции[править]

  • /st remove <имя станции>

Все понятно.

Блоки станции[править]

  • /st blocks <имя станции>

Выводит КБ привязанные к этой станции.

Настройка контроллер-блоков[править]

Создание КБ[править]

  • /cb create + удар по блоку (либо по рельсам, которые лежат НА КБ)

Создаёт КБ, выводит его ID, устанавливает владельцем КБ того, кто его создал. Настраивать КБ может только его владелец, либо модераторы метростроя. Условия владения позже будут такими же, как для станции.

Вывод информации по КБ[править]

  • /cb info [<id КБ>] (если ID не указан, нужно будет ударить по блоку или рельсам на нём)

Выводит всю информацию, какую может хранить КБ.

Настройка соседних КБ[править]

  • /cb config <id КБ1> <w|e|n|s> <id КБ2>

Устанавливает связь указанного КБ1 с КБ2 в указанной стороне. Связь создаётся односторонняя! Это необходимо, чтобы создавать правостороннее движение в метро, т.к. тележки скорее всего будут сталкиваться друг с другом. w (west) — запад, s (south) — юг, n (north) — север, e (east) — восток. Можно писать одну букву, можно писать всё слово.

Очистка кэша КБ[править]

  • /cb flush <id КБ>

Очищает кэш всех маршрутов, идущих с этого КБ (при обновлении маршрутов ДО станции, все блоки, содержащие маршрут до этой станции так же обновляются, т.е. удалять кэш отдельно не нужно). Кэш только очищается, новые маршруты не пересчитываются!

Очистка cвязей КБ[править]

  • /cb config <id КБ> <w|e|n|s> 0

Очищает для выбранного КБ связь с указанной стороны. Применяется при ошибке cb-conntection-exists (когда для направления уже был указан блок связи).

Смена владельца КБ[править]

  • /cb changeowner <id КБ> <новый владелец>

Тут всё понятно.

Установка станции на КБ[править]

  • /cb config <id КБ> st[ation] <имя станции>

Привязывает данный КБ к станции. К одной станции может быть привязано сколько угодно КБ! Сама привязка, в прочем, ничего не даёт (см. дальше).

Установка КБ прибытия[править]

  • /cb config <id КБ> arr[ive] <t[rue]|f[alse]>

Данный КБ устанавливается как КБ прибытия станции, к которой он привязан. При расчете маршрута до станции, маршрут рассчитывается до блока прибытия. Блоков прибытия у станции может быть сколько угодно, при расчете маршрута будет выбираться тот КБ, до которого маршрут получится ближе (расстояние между КБ рассчитывается как прямая разница координат x и z у КБ).

Установка КБ отправления[править]

  • /cb config <id КБ> dep[art] <t[rue]|f[alse]>

Данный КБ устанавливается как КБ отправления станции, к которой он привязан. Как КБ отправления должны быть установлены блоки, через которые игрок проезжает первым, отправляясь с указанной станции. Ни кто не умрёт, если КБ отправления указаны не будут, но если они установлены, то с них создаётся кэш маршрутов до всех станций, чтобы не считать их на ходу. Так что, пожалуйста, устанавливайте их. Но не ставьте лишних.

Другие команды метро[править]

Дебаг[править]

  • /mt debug

Устанавливает игрока как дебаггера метро, тележка будет присылать отчеты по обработке КБ. Отчеты о скорости будут добавлены немного позже. Статус сбрасывается при перезаходе.

Установка задач[править]

  • /mt tasks <строка задач...> (Только для метростроя)

Задаёт вручную задачи для тележки для реакции на КБ. Строка задач — строка символов, каждый из которых представляет из себя задачу, которая будет выполнена при прохождении КБ. Возможные задачи КБ: X — выход из тележки и удаление тележки F — вперед B — назад L — налево R — направо N — на север S — на юг W — на запад E — на восток

Поездка до станции[править]

  • /mt st <имя станции>
  • /go <имя станции>

Устанавливает указанную станцию как станцию назначения. Садитесь на тележку и езжайте, она сама найдёт правильный путь.

Поиск ближайших станций[править]

  • /metro

Находит ближайшие 3 станции от игрока. Удобно при навигации.

Другое важное[править]

ТЕЛЕЖКА НЕ ДОЛЖНА СТАРТОВАТЬ С КБ! ОНА ЕГО ПРОПУСТИТ!

Кэш маршрутов[править]

При старте сервера строится кэш маршрутов, от каждого блока отправления рассчитываются маршруты до всех станций и сохраняются, чтобы не считать их когда игрок поедет.

При сбросе кэша КБ, удаляются все маршруты, которые были созданы ОТ этого КБ.

Если игрок начал поездку с КБ, у которого нет кэша, маршрут для него рассчитается на лету и сохранится в этом КБ.

При обновлении кэша для станции, у всех КБ, у которых есть кэш маршрута ДО этой станции, он удаляется. И у всех КБ отправления пересчитываются все маршруты до указанной станции.

При пересчете маршрута до всех станций (/st refresh), все маршруты удаляются и считаются заново.