HK Dev

"미래로 도약하는 개발자 커뮤니티"

한마포 갤러리
https://www.koreaminecraft.net/files/thumbnails/308/518/002/262x150.crop.jpg

업데이트

마인크래프트 1.17 스냅샷 21w18a 업데이트

마리오군

2021-05-07

0

https://www.koreaminecraft.net/files/thumbnails/636/517/002/262x150.crop.jpg
레전드 컨텐츠! 장담합니다!

딤딤_

2021-05-06

0

한국 마인크래프트 포럼

새롭게 돌아온
마인크래프트 커뮤니티 및 자료 플랫폼

전체 회원수 105,110명 오늘 가입자 32명

※ 1년 이상 활동하지 않은 휴면 회원은 제외된 수치입니다.

Profile Ylemon0618 HK For Developers 에디터

Ylemon0618 f920ec2ed0f7479684dd910fc7fde463

Profile

개발자란new 커뮤니티new HK For Developers 커맨드 제작

마인크래프트 커맨드 기초 강좌 - scoreboard(objectives 편)

2021.03.31 조회 수 50 추천 수 0

 

※ 본 강좌는 1.16.5-Optifine_HD_U_G6 버전에서 기획, 작성되었으며, 강좌 작성자 레몬에게 저작권이 있습니다.

※ 불법 카피 등을 금지합니다.


안녕하세요.

귀찮아서 강좌 안쓰고 있다가 그냥 심심해서 할거 없을때 강좌찍는 레몬은 십니다...?

뭐라는거야


쨌든

오늘은 스코어보드 강좌를 해볼건데,

기본 커맨드에 대해서 어느정도의 지식을 갖고 있다면

더 쉽게 보실 수 있을겁니다.


암튼!!!

최대한 쉽게 설명해 드리도록 하겠습니다.


그럼

ㄱㄱ


--------------------------------------------------------


우선 스코어보드란?

다른 C, python 같은 언어의 변수 역할을 하는 명령어 입니다.

이 스코어보드는 아~~~주 중요하니

잘 따라와 주세요.


일단 명령어는 다음과 같습니다.


/scoreboard objectives <add | list | modify | remove | setdisplay>...

입니다.


scoreboard 라는 명령어 안에, objectives 라는 애와, 5개의 이상한 놈들이 있는데,

오늘은 이 5개 모두 배워 볼거입니다.


1. /scoreboard objectives add


스코어보드를 생성하는 명령어입니다!

사용법은 간단합니다.

/scoreboard objectives add <스코어보드 이름1> <스코어보드 타입> <스코어보드 이름2>


어? 왜 이름이 2개지? 하시는 분에게 알려 드리자면

이름 1은 커맨드 작업 등을 할때 사용하는 이름으로,

우리는 보통 이 이름을 기준으로 작업을 할겁니다.


이름 2는 우리에게 보이는 이름입니다.

예를 들면, setdisplay 를 활성화 시켰을 때,

우리에게 보이는 이름입니다.


통일해 주시는것이 가장 좋겠죠 ㅎㅎ

참고로, 2번째 이름을 입력하는 부분을 비워두면,

자동으로 이름1과 같게 설정되니 알아 두시면 좋겠습니다.


아, 그리고

이름 1은 그냥 아무것도 없이 입력하시면 되고

(Ex. /scoreboard objectives add test1 dummy)


이름 2는 json 형식으로 입력해 주셔야 합니다.

(Ex. /scoreboard objectives add test2 dummy {"text":"test22"})


여기까지 잘 따라와 주셨다면, 이제는 타입(criteria)을 공부해 볼텐데요.


타입이란, 플레이어의 행동 등을 감지하여,

어떤 상황에서 스코어보드를 올리고 말지를 결정하는

굉장히 중요한 부분입니다.


가장 많이 쓰는 타입 몇개를 꼽아보자면,


dummy - 일반 타입. 아무것도 없고 커맨드로 직접 올려줘야 하는 거의 가장 많이 쓰는 형식.

deathCount - 죽을 때를 감지하는 타입. 플레이어가 죽으면 그 플레이어의 deathcount 변수가 올라간다.

health - 체력. 플레이어의 남은 체력을 표시한다.

level - 레벨. 말 그대로 플레이어의 레벨을 표시한다.


이런 식으로 기본 타입이 몇개 있습니다.


여기서 눈치가 빠르신 분이라면,

타입앞에 '기본' 이 붙어있다는것을 눈치 채셨을텐데요.

네, 맞습니다.


위에 봤던 식으로, 그냥 단순히 level, dummy 처럼 있는 타입이 있는 반면,

minecraft.broken:minecraft.블럭(보트등의 일부 엔티티, 혹은 도구들도 포함),

minecraft.crafted:mnecraft.아이템(왠지 모르겠지만 여기에는 배리어, 에어같은 흔히 조합법이 없는 아이템도 포함되어 있다.),

minecraft.custom:minecraft.이벤트(데스카운트 등의 일부를 제외한 이벤트는 거의 다 이곳에 있다.),

minecraft.dropped:mineraft.아이템(여기도 에어가 있음),

minecraft.killed:minecraft.엔티티(플레이어 포함),

minecraft.mined:minecraft.블럭(아니 왜 자꾸 에어가 있는거야),

minecraft.picked_up:minecraft.아이템(이젠 쓰기도 귀찮다... 에어 왜있는지 아시는분 댓좀),

minecraft.used:minecraft.아이템(정확히 어떤 조건에서 발동 되는지는 모르겠지만, 블럭이면 설치, 모루면 사용등의 행동을 하면 올라가는 것으로 보임(가설, 귀찮아서 테스트 안해봄))


등의 다양한 타입이 있습니다.

나중에 우클릭 감지 강좌를 할때 설명하겠지만,

custom type 에는 유용한 것들이 많이 있으니 어느정도는 외워 두시면 유용 하실겁니다.


드디어 objectives add 가 끝났는데,

아직 한참 남았으니,

차근차근 따라 와 주세요 ㅎㅎ.


------------------------------------------------------


2. /scoreboard objectives list


이번에는 짧을 겁니다.

장담하죠.


list 는 말 그대로 스코어보드가 얼마나 있는지, 무슨 스코어보드가 있는지 알려주는 명령어입니다.

다음에 배울 players list 와는 달리,

이 명령어는 scoreboard를 가지고 있는 엔티티가 있든 말든

그냥 모든 스코어보드를 다 보여주는 명령어 입니다.


디버깅을 할 때 유용할 수 있으니, 그냥 가볍게 알아두시기만 하면 좋겠습니다 ^^


----------------------------------------------------------


3. /scoreboard objectives modify


이 명령어는 스코어보드의 세부적인? 사항들을 수정하는 명령어 인데요,

간단합니다.


여기에는 두가지 종류가 있는데,

/scoreboard objectives modify <objective> displayname 과,

/scoreboard objectives modify rendertype 이 있습니다.


displayname 은 이름 그대로

위의 add 에서 배웠던 이름 2를 수정하는 명령어입니다.


왜 아까는 이름2라고 하고 지금은 displayname 이라고 하는지 궁금해 하시는 분을 위해 설명하자면,

이름 1을 멋있게 말하면 'objective' 이고,

이름 2를 멋있게 말하면 'displayName' 이라고 알아두시면 좋겠네요 ㅎ

앞으로 보통 얘기할때에는 위 두 이름을 사용할 것이니 지나가는 것으로 알아 두시면 좋겠습니다.


다시 modify 얘기로 돌아 와서,

/scoreboard objectives modify <objective> displayname <displayName> 식으로 작성 하시면,

그 objective 의 displayName이 뒤에 작성한 이름으로 바뀝니다!

참고로, 여기에서도 displayName은 json 형식으로 작성 하셔야 합니다.


modify rendertype 은, C 언어로 치자면 int, char 등의 것을 바꿔주는 것으로,

hearts와 integer, 2가지가 존재합니다.


hearts 로 설정하면 체력 표시를 숫자가 아닌, 하트 모양으로 보여줍니다!

rpg 게임을 만들때 유용하겠네요.


integer 로 설정하면, 말 그대로 그냥 숫자 타입이 됩니다.

기본적으로 처음 생성할 때 이 타입이 되는 듯 하네요.


--------------------------------------------------------


4. /scoreboard objectives remove


이것도 참으로 간단합니다!


스코어보드를 없애는 명령어이죠.

임시 변수처럼 잠깐만 필요하고 다시 지워야 할때,

이 명령어를 사용합니다.


사용법도 간단합니다!

/scoreborad objectives remove <objective> 식으로만 작성해 주시면 끝입니다!


아마 오늘 한 것중에 list를 제외하면 가장 쉽다고 할 수 있네요.


--------------------------------------------------------------


5. /scoreboard obejctives setdisplay


마지막 입니다!


아까 add에서 잠깐 말했듯이, 우리에게 어떤 스코어보드가 어떤 수인지, 알려주는 명령어 인데요.

디버깅할때 잘 사용하니 집중해서 따라와 주세요.

(이곳에서는 스코어보드의 이름이 displayName으로 표시됩니다.)


사용법은 아래와 같습니다.

/scoreboard objectives setdisplay <belowName, list, sidebar, sidebar.team.색> <objective>

입니다.


하나 하나 설명해 보겠습니다.


우선, belowName은

멀티에서 정말 쓸만한 기능으로,

다른 사람이 자신을 보면 생기는 닉네임 아래에 스코어보드를 보여줍니다!


플레이어가 10칸 너머에 있거나, 쉬프트를 누르고 있는 등의 행동 시, 보이지 않습니다.


list 는 탭을 눌렀을 때, 플레이어의 이름 옆에 스코어보드가 뜨게 해주는 기능입니다.

이곳에 체력 등을 표시하면 rpg 분위기가 나겠네요


다음으로, sidebar 는 말 그대로 사이드 바에 표시되는 것으로,

플레이어의 이름이 최상단에 나타나고, objective value 식으로 표시됩니다.


sidebar.team.색 은 색깔 별로 정해진 팀을 표시합니다.

예를 들어, red 팀의 sidebar 를 활성화 시키면,

그 팀에 소속된 플레이어들의 점수가 표시됩니다.


----------------------------------------------------------------


여기까지 '/scoreboard objectives' 명령어를 알아봤는데요.

다음번에는 '/scoreboard players' 명령어까지 알아보도록 합시다!


오늘 알아본 내용 까먹지 마시고, 다음에 만나지 말까....

아닙니다.

저는 귀찮아서 언제 돌아올지 모르겠지만 제 키보드 수명이 다하기 전까지는 강좌를... 써야겠죠?


그럼

ㅂㅂ


----------------------------------------------------------------


Discord : 레몬#2334

Twitch : Ylemon0618

Minecraft (JE) : Ylemon0618

Minecraft (BE) : Yellow_lemon0618

 블로그


HKDev 디스코드 서버

한마포 (한국 마인크래프트 포럼) 디스코드 서버 

2개의 댓글

haneul1102
2021.03.31

와 정말 좋은 강좌네요. 유익한걸요?

Ylemon0618
2021.03.31
@haneul1102