Ylemon0618 f920ec2ed0f7479684dd910fc7fde463
안녕하세요. 오늘은 마인크래프트 커맨드를 응용해서 타이머를 만드는 방법을 소개해 드리겠습니다.
우선 알아야 할 명령어 들입니다.
-scoreboard
-execute
-setblock
-title
이 명령어들은 나중에 소개해 드리겠습니다.
모르시는 분들은 다른 강좌를 찾아보시거나, 구글링을 해보시는 걸 추천합니다.
자, 그럼 이제 시작해 보겠습니다.
우선, 채팅창에 다음과 같은 명령어들을 쳐주세요.
/scoreboard objectives add timer dummy {"text":"time"}
잠깐 설명을 하자면 timer 라는 이름의 dummy 타입의 objective 를 만드는 명령어 입니다.
파란색 글씨로 되어있는 timer 는 명령어에서 쓸 이름이고, 초록색 JSON형식으로 되어있는 timer 는 직접 보이는 이름입니다.
저는 쉽게 이해를 돕기위해 두개의 이름을 통일했습니다.
/scoreboard objectives add second dummy {"text":"second"}
second 라는 이름의 dummy 타입의 objective 를 만드는 명령어 입니다.
/scoreboard objectives add minute dummy {"text":"minute"}
minute 라는 이름의 dummy 타입의 objectives 를 만드는 명령어 입니다.
자, 이렇게 3개의 명령어를 쳐줬다면 준비는 끝났습니다.
이제 커맨드 블럭을 사용해 봅시다.
(저는 타이머를 시작시키는 방법을 레버를 당기는 형식으로 선택했습니다.
여러분들은 하고싶으신 대로 하셔도 무방함을 알려드립니다.)
이제 본격적으로 타이머를 만들어 보겠습니다.
scoreboard players add @a timer 1
을 반복형 커맨드 블럭에 넣어주고,
execute as @a if score @s timer matches 20 run scoreboard players add @a second
를 연쇄형 항상 활성화 커맨드 블럭에 넣어주세요.
scoreboard players reset @a timer
를 연쇄형 항상 활성화 조건적 커맨드 블럭에 넣어주시고 작동 시켜주면
second가 올라가는 것을 확인 할 수 있습니다.
이 명령어의 원리는, 반복 커맨드는 1틱(0.05초)에 한번 작동된다는 점을 이용해 timer 변수가 20이 될때마다 second 에 1을 더하고, timer 를 초기화 시키는 것 입니다.
이번에는 분이 올라가는 시스템을 만들어 보겠습니다.
execute as @a if score @s second matches 60 run scoreboard players add @a minute 1
을 연쇄형 항상 활성화 커맨드 블럭에 넣어주고,
scoreboard players reset @a second
를 연쇄형 항상 활성화 조건적 커맨드 블럭에 넣어주면
60초 마다 분이 올라가는 것을 확인 할 수 있습니다.
이것도 마찬가지로 second 변수가 60이 될 때 마다 minute 에 1을 더하고, second 를 초기화 시키는 것 입니다.
이제 분과 초를 actionbar 에 띄워줄 건데요
다른 반복형 커맨드 블럭에 (좀 깁니다)
title @a actionbar ["",{"text":"[","color":"gold","bold":false},{"selector":"@a","color":"gold","bold":false},{"text":"] ","color":"gold","bold":false},{"text":"timer : ","color":"yellow","bold":false},{"score":{"name":"@a","objective":"minute"},"color":"green","bold":false},{"text":" : ","color":"blue"},{"score":{"name":"@a","objective":"second"},"color":"green","bold":false}]
를 넣어 주세요.
그리고
와 같은 모양으로 커맨드 블럭 3개를 더 설치해 주시고,
커맨드 블럭에 각각
scoreboard players set @a second 0
scoreboard players set @a minute 0
scoreboard players reset @a timer
을 넣어 주세요.
이렇게 하면 스톱워치 기능은 완성입니다.
이제 타이머 기능을 만드시고 싶으신 분은 앞의 명령어를 조금 바꿔야 됩니다.
우선 스톱워치와 같은 모양으로 커맨드 블럭을 설치해 주시고, (조건적, 무조건적 등도 유지되어야 합니다.)
반복형 커맨드 블럭 쪽은 차례로
scoreboard players add @a timer 1
execute as @a if score @s timer matches 20 run scoreboard players remove @a second 1
scoreboard players reset @a timer
execute as @a if score @s second matches -1 run scoreboard players remove @a minute 1
scoreboard players set @a second 59
를 넣어 주세요.
그리고 반응형 커맨드 블럭 쪽은 차례로
scoreboard players set @a second <하고싶은 초 크기>
scoreboard players set @a minute <하고싶은 분 크기>
scoreboard players reset @a timer
를 넣어주세요.
이렇게 해주시면 완성이지만, 자동으로 actionbar도 뜨게 하고싶으신 분은
다음과 같은 모양으로 반응형 커맨드 블럭을 하나 더 설치해 주세요.
(저는 스톱워치, 타이머 둘다 해서 두개입니다.)
그리고 저 커맨드 블럭에
setblock <actionbar 를 뜨게 하는 커맨드 블럭을 작동시킬 레드스톤 블럭을 설치할 좌표> redstone_block
을 넣어주시면 됩니다.
이렇게 해 주시면 최종적으로 완성입니다.
만든 타이머를 탈출맵이나 파쿠르맵에 쓰면 좋겠네요.
긴 글 읽어주셔서 감사하고, 또 정말 고맙습니다.
저는 다음에 또 다른, 더 재미있고 유익한 강좌로 찾아뵙겠습니다.
여러분 모두 안녕히 계세요.
댓글이 없습니다.
새로운 댓글을 등록해 주세요!