Как сделать счет в майнкрафт
Система счёта игровых событий
См. Scoreboard на английском языке.
Система счёта игровых событий (ССИС, англ. scoreboard) — сложная система игровой механики, позволяющая отслеживать статистику игроков. В основном предназначена для разработчиков карт и операторов серверов.
Содержание
Задачи [ править | править код ]
Задачи состоят из трёх основных параметров: название, тип и отображаемое название. Счёт в задаче — целое число от -2 147 483 648 до 2 147 483 647.
Название используется внутри команд в качестве ссылки. Должно быть уникальным и содержать только определённые символы.
Отображаемое название используется при отображении на экране. Может быть не уникальным и состоять из различных символов.
Тип определяет, что отслеживает задача.
Счёт может быть изменён с помощью команд, если указанная задача не является задачей только для чтения. При изменении счёта задачи, отслеживающей статистику, отслеживаемая статистика не изменится — счёт задачи изменится при обновлении статистики.
Параметр селектора scores=<задача=диапазон> позволяет произвести поиск сущностей с счётом определённого диапазона в указанной задаче.
Тип [ править | править код ]
Список составных типов:
В других случаях счёт игрока не увеличивается.
| Доступные идентификаторы |
|---|
| bow, carrot_on_a_stick, chainmail_boots, chainmail_chestplate, chainmail_helmet, chainmail_leggings, diamond_axe, diamond_boots, diamond_chestplate, diamond_helmet, diamond_hoe, diamond_leggings, diamond_pickaxe, diamond_shovel, diamond_sword, elytra, fishing_rod, flint_and_steel, golden_axe, golden_boots, golden_chestplate, golden_helmet, golden_hoe, golden_leggings, golden_pickaxe, golden_shovel, golden_sword, iron_axe, iron_boots, iron_chestplate, iron_helmet, iron_hoe, iron_leggings, iron_pickaxe, iron_shovel, iron_sword, leather_boots, leather_chestplate, leather_helmet, leather_leggings, shears, shield, stone_axe, stone_hoe, stone_pickaxe, stone_shovel, stone_sword, wooden_axe, wooden_hoe, wooden_pickaxe, wooden_shovel и wooden_sword |
| Доступные идентификаторы |
|---|
| acacia_fence, acacia_fence_gate, acacia_stairs, activator_rail, anvil, beacon, birch_fence, birch_fence_gate, birch_stairs, black_glazed_terracotta, black_shulker_box, blue_glazed_terracotta, blue_shulker_box, bone_block, bookshelf, brick_block, brick_stairs, brown_glazed_terracotta, brown_mushroom, brown_mushroom_block, brown_shulker_box, cactus, carpet, chain_command_block, chest, chorus_flower, chorus_plant, clay, coal_block, coal_ore, cobblestone, cobblestone_wall, command_block, concrete, concrete_powder, crafting_table, cyan_glazed_terracotta, cyan_shulker_box, dark_oak_fence, dark_oak_fence_gate, dark_oak_stairs, daylight_detector, deadbush, detector_rail, diamond_block, diamond_ore, dirt, dispenser, double_plant, dragon_egg, dropper, emerald_block, emerald_ore, enchanting_table, end_bricks, end_portal_frame, end_rod, end_stone, ender_chest, farmland, fence, fence_gate, furnace, glass, glass_pane, glowstone, gold_block, gold_ore, golden_rail, grass, gravel, gray_glazed_terracotta, gray_shulker_box, green_glazed_terracotta, green_shulker_box, hardened_clay, hay_block, heavy_weighted_pressure_plate, hopper, ice, iron_bars, iron_block, iron_ore, jukebox, jungle_fence, jungle_fence_gate, jungle_stairs, ladder, lapis_block, lapis_ore, leaves, leaves2, lever, light_blue_glazed_terracotta, light_blue_shulker_box, light_weighted_pressure_plate, lime_glazed_terracotta, lime_shulker_box, lit_pumpkin, log, log2, magenta_glazed_terracotta, magenta_shulker_box, magma, melon_block, monster_egg, mossy_cobblestone, mycelium, nether_brick, nether_brick_fence, nether_brick_stairs, nether_wart_block, netherrack, noteblock, oak_stairs, observer, obsidian, orange_glazed_terracotta, orange_shulker_box, packed_ice, pink_glazed_terracotta, pink_shulker_box, piston, planks, prismarine, pumpkin, purple_glazed_terracotta, purple_shulker_box, purpur_block, purpur_pillar, purpur_slab, purpur_stairs, quartz_block, quartz_ore, quartz_stairs, rail, red_flower, red_glazed_terracotta, red_mushroom, red_mushroom_block, red_nether_brick, red_sandstone, red_sandstone_stairs, red_shulker_box, redstone_block, redstone_lamp, redstone_ore, redstone_torch, repeating_command_block, sand, sandstone, sandstone_stairs, sapling, sea_lantern, silver_glazed_terracotta, silver_shulker_box, slime, snow, snow_layer, soul_sand, sponge, spruce_fence, spruce_fence_gate, spruce_stairs, stained_glass, stained_glass_pane, stained_hardened_clay, sticky_piston, stone, stone_brick_stairs, stone_button, stone_pressure_plate, stone_slab, stone_slab2, stone_stairs, stonebrick, structure_block, structure_void, tallgrass, tnt, torch, trapped_chest, tripwire_hook, vine, waterlily, web, white_glazed_terracotta, white_shulker_box, wooden_button, wooden_pressure_plate, wooden_slab, wool, yellow_flower, yellow_glazed_terracotta и yellow_shulker_box |
Слоты отображения [ править | править код ]
Формат NBT [ править | править код ]
История [ править | править код ]
Проблемы [ править | править код ]
Отчёты об ошибках, связанных с «Система счёта игровых событий», поддерживаются в системе отслеживания ошибок Mojira. Сообщайте о найденных ошибках там (на английском языке).
Основа создания Магазина Душ лежит на команде Scoreboard.
Логичным началом при работе с данной командой является создание событий,
счет которых будет отслеживаться Системой Счета Игровых Событий (ССИС).
вначале создаем событие, которое будет вести счет убитых игроком зомби
именно это событие является ключевым и от него будут зависеть
все очки остальных событий
/scoreboard objectives add kills stat.killEntity.Zombie
событие с название kills с соединенным критерием stat.killEntity.Zombie
в данной новости только этот критерий будет учитываться ССИС
далее создаем два фиктивных события с критерием dummy
1. /scoreboard objectives add board dummy
этой командой мы создаем фиктивное событие с именем board.
имя события может быть абсолютно любое, на ваш вкус,
но обязательно написано латиницей, так как название этого события
нам нужно будет вписать в тестовую команду при покупке вещей в магазине.
для чего нужно создание этого события?
именно это событие будет начислять и копить у игрока те очки, которыми
он будет расплачиваться в Магазине Душ за покупку вещей.
2. /scoreboard objectives add сундук dummy
второе фиктивное событие с названием сундук.
здесь также можно задать любое название даже на русском языке.
я задал это символичное название, будто убитые души будут складываться
в какой-то мистический сундук.
для чего нужно создание этого событие?
оно нужно только для визуализации и всё, счет этого события будет
отображаться на экране.
поэтому для этого события мы задаем еще одну команду
/scoreboard objectives setdisplay sidebar сундук
теперь как только в событие с названием сундук будут
начислены очки, у нас на экране появится панелька с заголовком «сундук».
/scoreboard players test @a kills 1 10
и к этому командному блоку подводим генератор импульсов
усилим повторителем выходной сигнал из компаратора
и разведем этот сигнал на три командных блока
1. В первом командном блоке задаем команду
/scoreboard players set @a kills 0
при выходе сигнала из компаратора эта команда будет устанавливать
ноль очков игроку для события kills, то есть теперь начисленные игроку
очки за убийства не будут попадать в диапазон теста от 1 до 10, поэтому
тест на очки в командном блоке будет отрицательным и сигнал на выходе
из компаратора будет гаситься. это нужно для того, чтоб в цепи после ком-
паратора не оставался сигнал, и при новом убийстве на командные блоки
под номерами 1,2 и 3 вновь подавался импульс.
2. Во втором командном блоке задаем команду на начисление очков
для события с названием board.
/scoreboard players add @a board 1
при каждой подаче сигнала на этот командный блок
игроку будет прибавляться одно очко в этом событии
3. В третьем командном блоке мы задаем команду для начисления очков
для события сундук и начисляться они будут фиктивному игроку
под названием «души».
разберем эту схему.
на стене магазина ставим кнопку, за стеной на один блок ниже блока,
где установлена кнопка ставим первый командный блок с командой
testfor @p[score_board_min=1,r=10]
эта команда будет проверять счет игрока, нажавшего кнопку
по событию с именем board.
В четвертом командом блоке задаем команду
/scoreboard players remove души сундук 1
эта команда будет минусовать из таблички на экране одну душу.
В третьем командом блоке задаем команду
/scoreboard players remove @p board 1
эта команда будет минусовать одно очко из счета
игрока по событию board.
Во втором командном блоке мы задаем предмет, который игрок покупает
/give @p[r=20,c=1] minecraft:rotten_flesh 1
в данном случае игрок купит за одну душу одну гнилую плоть
И в пятом командном блоке задаем команду, которая будет выводить на экран
сообщение, если у игрока не будет достаточно душ для покупки предмета
Так можно создать нужное количество кнопок в магазине
с покупкой абсолютно разных предметов за разную цену
Итак, при достаточном количестве душ мы сможем купить нужный предмет.
При недостаточном количестве мы получим сообщение на экран об этом













.png)
.png)
.png)
.png)





