Система счёта игровых событий

В другом языковом разделе есть более полная статья.
Вы можете помочь проекту, расширив текущую статью с помощью перевода.
См. Scoreboard на английском языке.

Скриншот с системой счёта игровых событий на боковой панели.

Система счёта игровых событий (ССИС, англ. scoreboard) — сложная система игровой механики, позволяющая отслеживать статистику игроков. В основном предназначена для разработчиков карт и операторов серверов.

Задачи

Задачи состоят из трёх основных параметров: название, тип и отображаемое название. Счёт в задаче — целое число от -2 147 483 648 до 2 147 483 647.

Название используется внутри команд в качестве ссылки. Должно быть уникальным и содержать только определённые символы.
Отображаемое название используется при отображении на экране. Может быть не уникальным и состоять из различных символов.
Тип определяет, что отслеживает задача.

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

Параметр селектора scores={задача=диапазон} позволяет произвести поиск сущностей с счётом определённого диапазона в указанной задаче.

Тип

Тип Описание Можно изменить значение?
dummy Счёт может быть изменён только командами. Может быть полезно, например, при математических вычислениях. Да
trigger Счёт может быть изменён только командами. Игрок может использовать команду /trigger, чтобы изменить свой счёт в задаче с этим типом, если эта задача «включена» для данного игрока. После выполнения команды, задача «отключается» для игрока, исполнившего эту команду. Да
deathCount Счёт игрока увеличивается с его смертью. Да
playerKillCount Счёт игрока увеличивается с убийством другого игрока. Да
totalKillCount Счёт игрока увеличивается с убийством моба или другого игрока. Да
health Счёт игрока соответствует количеству его ед. здоровья. Нет
food Счёт игрока соответствует количеству его ед. сытости. Нет
xp Счёт игрока соответствует количеству его ед. опыта. Нет
level Счёт игрока соответствует его уровню опыта. Нет
air Счёт игрока соответствует количеству его кислорода. Нет
armor Счёт игрока соответствует количеству его очков защиты. Нет
Составные типы — типы, разделяемые точками. Счёт всех составных типов может быть изменён командами. В начале и после двоеточия у составных типов, использующих систему статистики, может указываться пространство имён; если оно не указано, будет использовано пространство имён minecraft. Например, custom:jump соответствует minecraft.custom:minecraft.jump.

Список составных типов:

Основа Подтипы Описание
custom: Идентификатор основной статистики. Список идентификаторов см. в этой таблице. Счёт увеличивается, когда происходит указанное статистикой действие.
crafted: Идентификатор блока или предмета, который возможно создать/выплавить. Счёт игрока увеличивается на количество блоков/предметов, взятых им из печи, верстака или слота создания в инвентаре.
used: Идентификатор блока или предмета. Большинство идентификаторов доступны, за исключением некоторых. Счёт игрока увеличивается с использованием блока/предмета. «Использованием» является следующее: В других случаях счёт игрока не увеличивается.
broken: Идентификатор предмета, имеющего прочность. Счёт игрока увеличивается с поломкой предмета.
mined: Идентификатор блока. Большинство идентификаторов доступны, за исключением идентификаторов нерушимых или технических блоков. Счёт игрока увеличивается с разрушением указанного блока. Если игрок в творческом режиме, счёт не увеличивается.
killed: Идентификатор сущности. Счёт игрока увеличивается с убийством указанной сущности.
picked_up: Идентификатор блока/предмета. Счёт игрока увеличивается с подбиранием указанного предмета/блока.
dropped: Идентификатор блока/предмета. Счёт игрока увеличивается с выбрасыванием указанного предмета/блока.
killed_by: Идентификатор сущности. Счёт игрока увеличивается, когда его убивает указанная сущность.
teamkill. Цвет команды. Список доступных цветов см. в этой таблице. Счёт игрока увеличивается с убийством участника команды указанного цвета.
killedByTeam. Цвет команды. Список доступных цветов см. в этой таблице. Счёт игрока увеличивается, когда его убивает участник команды указанного цвета.

Слоты отображения

Различное отображение задач: задача, отслеживающая здоровье, установлена в слоте отображения «list»; задача «Преодолено пешком» — в слоте отображения «sidebar»; задача «смертей» — в «belowName».

С помощью команды /scoreboard objectives setdisplay, счёт различных сущностей в указанной задаче может быть отображён в определённом слоте отображения. Слоты отображения способны отображать только одну задачу.

Слот Описание
list Отображает счёт игрока в виде сердечек или жёлтого числа после его имени в списке игроков. По умолчанию в виде сердечек отображается только задача с типом «health».
sidebar Отображает счёт сущностей на боковой панели. Заголовок панели — отображаемое название задачи. Максимальное количество записей на панели — 15. Записи с бо́льшим счётом отображаются выше. Записи, начинающиеся на знак решётки (#), не отображаются на панели.
sidebar.team.цвет Отображает счёт так же, как sidebar, но только игроку, состоящему в команде с указанным цветом (например, «sidebar.team.green» отобразит панель только игрокам зелёной команды). Список доступных цветов см. в этой таблице.
belowName Отображает счёт игрока под его именем в виде «счёт_игрока отображаемое_название_задачи». Скрывается, если игрок находится более чем в 10-ти блоках от наблюдателя или крадётся.

Формат NBT

Файл scoreboard.dat, находящийся в папка_мира\data, хранит данные о ССИС данного мира. Является сжатым GZip-файлом.
  • Корень.
    •  data: Данные ССИС.
      •  Objectives: Список составных тегов, хранящих данные о задачах.
          •  CriteriaName: Тип задачи. Если это тип, использующий систему статистики, должно быть указано пространство имён.
          •  DisplayName: Отображаемое название задачи в формате JSON. Принимает значение {"text":"название задачи"}, если при создании задачи не указывается её отображаемое название.
          •  Name: Название задачи.
          •  RenderType: Способ отображения задачи. Может быть integer или hearts. По умолчанию integer.
      •  PlayerScores: Список составных тегов, хранящих данные о счётах сущностей.
          •  Score: Счёт.
          •  Name: UUID сущности или имя игрока.
          •  Objective: Задача, в которой всё это хранится.
          •  Locked: 1 — задача выключена, 0 — включена (только для задач-триггеров).
      •  Teams: Список составных тегов, хранящих данные о командах сущностей.
          •  AllowFriendlyFire: 1 — участники команды могут наносить урон друг другу, 0 — нет.
          •  SeeFriendlyInvisibles: 1 — участник команды способен видеть невидимых союзников. 0 — нет.
          •  NameTagVisibility: Значение параметра «nametagVisibility»: never, hideForOtherTeams, hideForOwnTeam или always.
          •  DeathMessageVisibility: Значение параметра «deathMessageVisibility»: never, hideForOtherTeams, hideForOwnTeam или always.
          •  CollisionRule: Значение параметра «collisionrule»: always, pushOwnTeam, never или pushOtherTeams.
          •  DisplayName: Отображаемое название команды в формате JSON. Принимает значение {"text":"название команды"}, если при создании команды не указывается её отображаемое название.
          •  Name: Название команды.
          •  MemberNamePrefix: Префикс перед именами участников команды в формате JSON.
          •  MemberNameSuffix: Постфикс после имён участников команды в формате JSON.
          •  TeamColor: Цвет, использующийся для слотов отображения «sidebar.team.цвет», задач с типом «killedByTeam.цвет» и «teamkill.цвет», цвета подсветки участника и для прочего.
          •  Players: Список участников команды.
            • Участник команды.
      •  DisplaySlots: Слоты, отображающие определённые задачи.
        •  slot_0: Название задачи, отображаемой в слоте «list».
        •  slot_1: Название задачи, отображаемой в слоте «sidebar».
        •  slot_2: Название задачи, отображаемой в слоте «belowName».
        •  slot_3: Название задачи, отображаемой в слоте «sidebar.team.black».
        •  slot_4: Название задачи, отображаемой в слоте «sidebar.team.dark_blue».
        •  slot_5: Название задачи, отображаемой в слоте «sidebar.team.dark_green».
        •  slot_6: Название задачи, отображаемой в слоте «sidebar.team.dark_aqua».
        •  slot_7: Название задачи, отображаемой в слоте «sidebar.team.dark_red».
        •  slot_8: Название задачи, отображаемой в слоте «sidebar.team.dark_purple».
        •  slot_9: Название задачи, отображаемой в слоте «sidebar.team.gold».
        •  slot_10: Название задачи, отображаемой в слоте «sidebar.team.gray».
        •  slot_11: Название задачи, отображаемой в слоте «sidebar.team.dark_gray».
        •  slot_12: Название задачи, отображаемой в слоте «sidebar.team.blue».
        •  slot_13: Название задачи, отображаемой в слоте «sidebar.team.green».
        •  slot_14: Название задачи, отображаемой в слоте «sidebar.team.aqua».
        •  slot_15: Название задачи, отображаемой в слоте «sidebar.team.red».
        •  slot_16: Название задачи, отображаемой в слоте «sidebar.team.light_purple».
        •  slot_17: Название задачи, отображаемой в слоте «sidebar.team.yellow».
        •  slot_18: Название задачи, отображаемой в слоте «sidebar.team.white».

История

Официальный выпуск Java Edition
1.513w04aССИС добавлена в игру.
13w05aДобавлено управление командами.
1.7.213w36aДобавлены типы задач, основанные на статистике.
1.814w02aПомимо игроков в ССИС становится возможным включать сущности.
14w06aДобавлены типы задач: trigger, killedByTeam.цвет и teamkill.цвет.
Добавлена команда /scoreboard players enable.
Становится возможным использование * в качестве имени игрока, чтобы указать всех отслеживаемых сущностей.
Новый аргумент [задача] у команды /scoreboard players reset.
Типы задач, основанные на статистике, используют именные ID вместо числовых.
Добавлен тип задачи achievement.overpowered.
14w07aДобавлены: /scoreboard players operation и /scoreboard players test.
Счёт игроков, имена которых начинаются на # не отображаются на боковой панели.
Добавлены слоты отображения: sidebar.team.цвет.
Добавлен параметр команд nametagVisibility.
14w10aДобавлен параметр команд deathMessageVisibility.
Новый аргумент [тегДанных] у команд /scoreboard players set, /scoreboard players add и /scoreboard players remove.
Добавлены типы задач: stat.crouchOneCm, stat.sprintOneCm и stat.timeSinceDeath
14w25aДобавлены арифметические операции: =, < и >.
14w29aЗаписи на боковой панели вторично сортируются по алфавиту.
14w30aДобавлены типы задач: stat.talkedToVillager и stat.tradedWithVillager
?Добавлена арифметическая операция ><.
1.8.2Добавлены типы задач: stat.cauldronFilled, stat.cauldronUsed, stat.armorCleaned, stat.bannerCleaned, stat.brewingstandInteraction, stat.beaconInteraction, stat.dropperInspected, stat.hopperInspected, stat.dispenserInspected, stat.noteblockPlayed, stat.noteblockTuned, stat.flowerPotted, stat.trappedChestTriggered, stat.enderchestOpened, stat.itemEnchanted, stat.recordPlayed, stat.furnaceInteraction, stat.craftingTableInteraction и stat.chestOpened.
1.915w32aДобавлен тип задачи stat.sneakTime.
15w32bДобавлена команда /scoreboard players tag.
Добавлены типы задач: xp, food и air.
15w33aДобавлены типы задач: stat.pickup, stat.drop, armor и level.
Добавлены типы задач: armor и level.
15w36aДобавлен параметр команд collisionRule.
15w49aДобавлен тип задачи stat.aviateOneCm.
1.13pre7Добавлена команда /scoreboard objectives modify.
1.13.118w31a
Официальный выпуск Bedrock Edition
1.7beta 1.7.0.2Добавлены основные функции ССИС.

Проблемы

Отчёты об ошибках, связанных с «Система счёта игровых событий», поддерживаются в системе отслеживания ошибок Mojira. Сообщайте о найденных ошибках там (на английском языке).

См. также

В данной статье используются материалы из статьи «Система счёта игровых событий» с вики-сайта Minecraft Wiki, расположенного на Фэндоме, и они распространяются согласно лицензии Creative Commons Attribution-Share Alike. Авторы статьи.