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

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

См. Scoreboard на английском языке. |


Только для Java Edition и Bedrock Edition
|


**Система счёта игровых событий** (**ССИС**, англ. *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.`
|
Цвет команды. Список доступных цветов см. в этой таблице. | Счёт игрока увеличивается, когда его убивает участник команды указанного цвета. |


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

С помощью команды `/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».


- Objectives: Список составных тегов, хранящих данные о задачах.

- data: Данные ССИС.

## История

Официальный выпуск Java Edition | |||||
---|---|---|---|---|---|

1.5 | 13w04a | ССИС добавлена в игру. | |||

13w05a | Добавлено управление командами. | ||||

1.7.2 | 13w36a | Добавлены типы задач, основанные на статистике. | |||

1.8 | 14w02a | Помимо игроков в ССИС становится возможным включать сущности. | |||

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.9 | 15w32a | Добавлен тип задачи `stat.sneakTime` . | |||

15w32b | Добавлена команда `/scoreboard players tag` .
| ||||

Добавлены типы задач: `xp` , `food` и `air` . | |||||

15w33a | Добавлены типы задач: `stat.pickup` , `stat.drop` , `armor` и `level` .
| ||||

Добавлены типы задач: `armor` и `level` . | |||||

15w36a | Добавлен параметр команд `collisionRule` . | ||||

15w49a | Добавлен тип задачи `stat.aviateOneCm` . | ||||

1.13 | pre7 | Добавлена команда `/scoreboard objectives modify` . | |||

1.13.1 | 18w31a | ||||

Официальный выпуск Bedrock Edition | |||||

1.7 | beta 1.7.0.2 | Добавлены основные функции ССИС. |


## Проблемы

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