[include(틀:상위 문서, top1=마인크래프트/명령어)] [목차] == 개요 == ||<-2> {{{+3 {{{#fff '''scoreboard'''}}}}}} || ||<-2> {{{scoreboard ...}}} || || '''역사''' ||JE | {{{#0a0 [ruby(1.5,ruby=추가)]}}} / {{{#ffa100 [ruby(1.13, ruby=변경)]}}} ---- BE | {{{#0a0 [ruby(Bata 1.7.0.2,ruby=추가)]}}} ---- EE | ? || || '''기능''' || 스코어보드를 관리한다. || || '''관련 명령어''' || [[마인크래프트/명령어#trigger|{{{trigger}}}]] | [[마인크래프트/명령어#team|{{{team}}}]] || || '''단축 명령어''' || - || || '''기본값''' || - || || '''싱글 사용''' || '''권한''' || || {{{#373a3c,#ddd 가능}}} || 2^^(JE)^^, 1^^(BE)^^ || 스코어보드나 플레이어 목록 점수를 관리하는 [[마인크래프트/명령어|명령어]]이다. 사용법에 따라 플레이어 체력바를 표시할 수 있고 복잡하고 정교한 시스템을 짤 수 있다. {{{scoreboard players ...}}} 문법은 스코어보드의 점수를 조작할 때 사용하는 명령어이며, {{{scoreboard objectives ...}}} 문법은 점수가 아닌 스코어보드 자체를 조작할 때 사용하는 명령어이다.[* execute와 scoreboard 둘다 알면 커맨드 고수로 인정받을 만큼 많이 쓰인다.] == JE == 문법은 크게 두가지로 나눈다. 점수는 [include(틀:NBTInt)] 유형이므로 -2,147,483,648 ~ 2,147,483,647 값만 사용할 수 있다. === objectives(목표) === 모든 문법은 {{{/scoreboard objectives ...}}}로 시작한다. * {{{... add <목표> <기준> [보이는 목표(JSON)]}}} * {{{<목표>}}}를 {{{<기준>}}}에 따라 추가한다. {{{<기준>}}}에 대한 설명은 [[#기준|기준 문단]]에 따로 설명한다. * {{{... list}}} * 생성된 모든 스코어보드를 채팅창에 표시한다. * {{{... modify <목표> ...}}} * {{{... }}} * 보이는 목표를 설정한다. JSON 형식으로 작성한다. * {{{... }}} * '''{{{... setdisplay list <이름>}}}'''으로 설정할 경우 상태가 변한다. 그렇지 않을 경우 아무 일도 일어나지 않는다. * {{{hearts}}}로 할 경우 '''플레이어 리스트'''에 하트가 보이게 하고, {{{integer}}}로 할 경우 숫자로 보여지게 한다. * {{{... remove <목표>}}} * {{{<목표>}}} 스코어보드를 삭제한다. 삭제하려는 스코어보드가 있어야 한다. * {{{... setdisplay <슬롯> [목표]}}} * {{{[목표]}}}를 해당 {{{<슬롯>}}}에 보이게 한다. {{{[목표]}}}를 비워두면 슬롯을 숨기게 된다. ==== 기준 ==== * dummy * 명령어로만 변경할 수 있다. * trigger * 명령어와 [[마인크래프트/명령어#trigger|{{{trigger}}}]] 명령어로만 변경할 수 있다. * air * 모든 플레이어의 [[마인크래프트/NBT/엔티티#Air|숨을 참고 있는 시간({{{Air}}})]]을 반영한다. * armor * 모든 플레이어의 방어력 수치를 반영한다. * deathCount * 플레이어가 사망할 때마다 1씩 증가한다. * food * 모든 플레이어의 [[마인크래프트/NBT/몹/플레이어#foodLevel|허기 수치({{{foodLevel}}})]]를 반영한다. * health * 모든 플레이어의 [[마인크래프트/NBT/몹#Health|체력({{{Health}}})]]과 [[마인크래프트/NBT/몹#AbsorptionAmount|흡수({{{AbsorptionAmount}}})]]를 더해 반영한다. * killedByTeam.<색> * 같은 팀에게 살해당했을 때 증가한다. 즉 [[팀킬]]당한 횟수이다. * level * 모든 플레이어의 [[마인크래프트/NBT/몹/플레이어#XpLevel|레벨 수치({{{XpLevel}}})]]를 반영한다. * minecraft.<기준>:minecraft.<하위 기준> * <기준> * broken: {{{<하위 기준>}}} 아이템이 파괴될 때마다 값이 증가한다. {{{<하위 기준>}}} 아이템은 모든 아이템에 사용할 수 있으나 실질적으로 내구도가 있는 모든 아이템만 가능하다. * crafted: {{{<하위 기준>}}} 아이템이 제작, 재련, 주민 거래로 얻을 때마다 값이 증가한다. * custom: {{{<하위 기준>}}}은 통계에 있는 어떠한 행동에 따라 값이 증가한다. * dropped: {{{<하위 기준>}}} 아이템이 버릴 때마다 값이 증가한다. * killed: {{{<하위 기준>}}} 개체가 죽일 때마다 값이 증가한다. * killed_by: {{{<하위 기준>}}} 개체에 의해 사망할 때마다 값이 증가한다. * mined: {{{<하위 기준>}}} 블록을 파괴될 때마다 값이 증가한다. 크리에이티브 모드인 플레이어는 이 값이 절대로 증가하지 않는다. * picked_up: {{{<하위 기준>}}} 아이템을 주울 때마다 값이 증가한다. * used: {{{<하위 기준>}}} 아이템이 사용될 때마다 값이 증가한다. * playerKillCount * 플레이어가 다른 플레이어를 처치할 때마다 값이 증가한다. * teamkill.<색> * 각각의 색을 가진 팀원이 다른 팀원을 죽이면 값이 증가한다. * xp * 플레이어가 마지막 사망 이후 총 획득한 경험치(즉, 사망할 때 나오는 점수)를 반영한다. ==== 슬롯 ==== 마인크래프트 화면 상에 {{{<목표>}}}을 표시할 곳(슬롯)은 3곳이 있다. * below_name * 플레이어 위에 있는 이름 밑에 점수가 표시된다. 플레이어가 10칸 너머에 있거나, 은신(웅크리기)할 시 보이지 않는다. * list * Tab을 누르면 나오는 리스트. 플레이어 이름 오른쪽에 노란 글씨로 숫자가 표시 된다. * sidebar * 화면 오른쪽에 표시된다. 플레이어가 오프라인이라도 표시된다. * sidebar.team.<색> * sidebar와 같지만 색깔 별로 정해진 팀을 표시한다. 예를 들어 {{{sidebar.team.red}}}라 쓰면 red 팀에 소속된 플레이어들의 점수가 표시된다. === players(플레이어) === 모든 문법은 {{{/scoreboard players ...}}}로 시작한다. * {{{... get <대상> <목표>}}} * {{{<목표>}}}에 있는 {{{<대상>}}}의 점수를 확인한다. * {{{... add <대상> <목표> <수>}}} * {{{<목표>}}}에 있는 {{{<대상>}}}의 점수를 {{{<수>}}}만큼 증가시킨다. * {{{... set <대상> <목표> <수>}}} * {{{<목표>}}}에 있는 {{{<대상>}}}의 점수를 {{{<수>}}}로 설정한다. * {{{... remove <대상> <목표> <수>}}} * {{{<목표>}}}에 있는 {{{<대상>}}}의 점수를 {{{<수>}}}만큼 감소시킨다. * {{{... enable <대상> <기준이_trigger로_설정된_목표>}}} * {{{<대상>}}}이 [[마인크래프트/명령어#trigger|{{{trigger}}}]] 명령을 통해 점수를 수정할 수 있도록 '''한번 허락'''한다. * {{{... list [대상]}}} * 스코어보드에 의해 영향을 받는 개체를 모두 표시한다. {{{[대상]}}}을 쓰면 특정 {{{[대상]}}}의 점수를 확인할 수 있다. * {{{... reset <대상> [목표]}}} * {{{<대상>}}}의 모든 점수를 삭제한다. {{{[목표]}}}를 쓰면 그 {{{[목표]}}}의 점수만 삭제한다. 0으로 만드는 것이 아니다. * {{{... operation <대상이름> <대상목표> <연산> <선택자> <목표>}}} * {{{<목표>}}}에 있는 {{{<선택자>}}}의 점수를 이용해서, {{{<대상목표>}}}에 있는 {{{<대상이름>}}}의 점수에 대해 {{{<연산>}}}을 실행시킨다. * {{{<연산>}}}은 아래와 같다. *"+=": 선택자의 점수를 대상의 점수에 더한다. *"-=": 뺀다. *"*=": 곱한다. *"/=": 나눈다. 나머지는 버린다. *"%=": 나눗셈 결과의 나머지를 대상의 점수로 한다. *"=": 대상의 점수를 선택자의 점수와 같게 한다. *"<": 만약 선택자의 점수가 대상보다 작으면, 대상의 점수를 선택자 점수로 만든다. *">": 만약 선택자의 점수가 대상보다 크면, 대상의 점수를 선택자 점수로 만든다. *"><": 대상과 선택자의 점수를 바꾼다. === 예시 === ==== 체력 표시 ==== 플레이어의 이름 밑에 체력을 표시한다. 멀티 플레이 시 상대방 체력을 확인할 수 있게 만들 수 있으며,[* 은신(웅크리기, 기본 키는 Shift 키) 시 숨겨진다.] 전투 서버라면 팀끼리만 보이고 적은 보이지 않게 추가적으로 설정할 수도 있다. {{{/scoreboard objectives add <이름> health}}} {{{/scoreboard objectives setdisplay below_name <이름>}}} ==== 살인 횟수 ==== 호전적인 플레이어를 시스템적으로 가려낼 수 있다. 플레이어 외의 다른 동물들을 기준으로 하면 얼마나 사냥을 열심히 했는지 지표로 사용할 수 있다. 아래 명령어는 탭(Tab) 키를 눌렀을 때 나오는 리스트에 숫자가 표시되게 하였으나, 기준만 만들고 나서 필요할 때만 불러올 수도 있다.[* 혹은 tellraw, title 명령어와 혼합하여 더 깔끔하게 만들 수도 있지만 그건 커맨드에 숙련되지 않고서는 힘들다. ] 아예 리스트가 번갈아 나오게 할 수도 있다. {{{/scoreboard objectives add <이름> playerKillCount}}} {{{/scoreboard objectives setdisplay list <이름>}}} 모든 플레이어의 수치를 초기화할 시 {{{/scoreboard players reset @a}}}[* 특정 플레이어 수치만 초기화시키려면 플레이어 닉네임을 쓰면 된다.]{{{ <이름> }}} [* 단순히 0으로만 만들 것이라면 /scoreboard players set @a <이름> 0 으로 해도 된다.] ==== 사망 횟수 ==== 사망 횟수를 사용해 죽을 시 관전자 모드가 되게 하거나 죽은 횟수를 볼 수 있다. {{{/scoreboard objectives add <이름> deathCount}}} 관전자 모드로 변경할 시: {{{/gamemode spectator @a[scores={<이름>=1}]}}} 모든 플레이어의 수치를 초기화할 시 {{{/scoreboard players reset @a <이름>}}} ==== 당근 낚싯대로 텔레포트 ==== 당근 낚싯대를 우클릭했을 시 점수가 올라간다. 이것을 이용해서 지정된 장소로 텔레포트할 수 있다. {{{/scoreboard objectives add <이름> minecraft.used:minecraft.carrot_on_a_stick}}} {{{/execute as @a[scores={<이름>=1..}] at @s run tp @s <좌표>}}} {{{/scoreboard players set @a[scores={<이름>=1..}] <이름> 0}}}[* 연쇄, 무조건적. 이 커맨드가 빠질 시 재사용이 불가하다.] 좌표에 ^ ^ ^15를 넣을 시 자신이 바라보는 방향으로 15칸 이동해 먼 거리를 편하게 이동할 수 있다. == BE == === objectives(목표) === 모든 문법은 {{{/scoreboard objectives ...}}}로 시작한다. * {{{... add <목표> dummy [보이는 목표(JSON)]}}} * {{{<목표>}}}를 추가한다. * {{{... remove <목표>}}} * {{{<목표>}}} 스코어보드를 삭제한다. 삭제하려는 스코어보드가 있어야 한다. * {{{... setdisplay [목표] [ascending|descending]}}} * * {{{... setdisplay belowname [목표]}}} * === players(플레이어) === 모든 문법은 {{{/scoreboard players ...}}}로 시작한다. * {{{... add <대상> <목표> <수>}}} * {{{<목표>}}}에 있는 {{{<대상>}}}의 점수를 {{{<수>}}}만큼 증가시킨다. * {{{... set <대상> <목표> <수>}}} * {{{<목표>}}}에 있는 {{{<대상>}}}의 점수를 {{{<수>}}}로 설정한다. * {{{... remove <대상> <목표> <수>}}} * {{{<목표>}}}에 있는 {{{<대상>}}}의 점수를 {{{<수>}}}만큼 감소시킨다. * {{{... random <대상> <목표> <최소값> <최대값>}}} * {{{<목표>}}}에 있는 {{{<대상>}}}의 점수를 {{{<최소값>}}}과 {{{<최대값>}}}(둘 다 포함) 사이의 임의의 숫자로 설정한다. * {{{... list [대상]}}} * 스코어보드에 의해 영향을 받는 개체를 모두 표시한다. {{{[대상]}}}을 쓰면 특정 {{{[대상]}}}의 점수를 확인할 수 있다. === team(팀) === === 예시 === ==== 임의의 좌표에 다이아몬드 광석 배치하기 ==== {{{/scoreboard players random}}}을 이용해 갑옷 거치대를 임의의 좌표로 이동시킨 다음, 해당 위치에 다이아몬드 광석을 배치한다. 단, BE에서는 NBT 태그를 다룰 수 없으므로, 갑옷 거치대를 이동시키는데 약간의 노가다가 필요하다. 먼저 {{{random}}}의 결과를 저장할 목표 하나를 생성한다. {{{ /scoreboard objectives add r dummy}}} 그 다음, 갑옷 거치대를 원하는 위치에 소환한 후 {{{random}}}을 실행하고 그 결과에 따라 갑옷 거치대를 텔레포트시키는 과정을 반복한다. {{{ /summon armor_stand }}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~1 ~ ~}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~2 ~ ~}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~4 ~ ~}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~8 ~ ~}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~1 ~}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~2 ~}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~4 ~}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~8 ~}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~ ~1}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~ ~2}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~ ~4}}} {{{ /scoreboard players @e[type=armor_stand] random r 0 1}}} {{{ /execute as @e[type=armor_stand, scores={r=1}] at @s run tp ~ ~ ~8}}} 다이아몬드 광석을 놓을 범위에 따라 {{{/scoreboard players random}}}과 {{{/execute tp}}}를 반복 실행한다. 한 번 실행할 때마다 범위가 2배가 된다. 마지막으로 해당 위치에 다이아몬드 광석을 놓고 갑옷 거치대를 없앤다. {{{/fill}}}의 {{{[replace]}}} 옵션을 이용해 심층암 다이아몬드 광석도 생성하거나, {{{/structure}}}의 {{{[integrity]}}} 옵션을 이용해 다이아몬드 원석의 개수를 조절할 수 있다. {{{/execute as @e[type=armor_stand] at @s run fill ~ ~ ~ ~1 ~1 ~1 diamond_ore}}} {{{/kill @e[type=armor_stand]}}} [[분류:마인크래프트/명령어]]