마인크래프트는 원래 난수 값을 지원하지 않았음.
하지만 최근 업데이트를 통해 random이라는 명령어가 추가됬지.
/random [value/roll] (int) [sequenceId]
를 통해 사용 할 수 있음.
하지만 커맨드 초보 마붕이들 중, 이 random을 어떻게 활용 해야 할 지 모르는 게이가 있을 거라 생각함. random 명령어를 사용하면 난수 값이 출력되기만 하지, 명령어 자체만으로는 할 수 있는 것이 없거든.
ㅇㅇ, 오늘은 사실 random 명령어로 위장한 execute 명령어 안내서임.
1. 기초 지식
마인크래프트 execute에는 저장 설정이라는 것이 존재함. 명령어를 출력 한 값을 특정 위치에 저장 할 수 있는 기능이지.
그리고 그 저장 설정 옵션 중, score라는 것이 존재함. scoreboard에 출력 값을 넣을 수 있지.
/execute as (대상) store [result/success] score (대상) (scoreboard 이름) {다음 명령}
이렇게 사용 가능함.
2. 사용 방법
첫째, random 값을 담아줄 scoreboard가 필요함.
/scoreboard objectives add (scoreboard 이름) dummy
를 입력해주면 된다. scoreboard 이름은 자유롭게 설정해주면 된다.
그리고 다음 명령어를 이용해 1에서 100까지의 난수 중 하나를 모든 플레이어의 scoreboard에 저장 할 수 있음.
/execute as @a at @s store result score @s (scoreboard 이름) run random value 1..100
2.1 명령어 설명
/scoreboard objectives add (scoreboard 이름) dummy
dummy: 해당 scoreboard를 명령어로만 변경 할 수 있다는 뜻임.
/execute as @a at @s store result score @s (scoreboard 이름) run random value 1..100
as @a: 해당 명령어의 실행 주체를 모든 플레이어(@a)로 설정한다는 뜻임.
at @s: 사실 없어도 된다. 실행 위치를 자기 자신(@s), 즉 여기서는 모든 플레이어로 설정한다는 뜻임. 나는 습관적으로 사용하기에 넣어봤음.
store result score: 뒤의 scoreboard에 명령어가 성공하면 그 값을, 실패하면 0을 저장하라는 뜻임. (success를 쓰면 성공하면 1이 저장된다)
random value 1..100: 1 이상 100 이하 난수를 실행 플레이어에게만 공개한다는 뜻임.
3. 활용 예시
마플의 억까크래프트에 나온 것을 약간 변경해 피격 당할 시 1% 확률로 죽는 것을 만들어 보겠음.
<실행 명령어>
/scoreboard objectives add ucka_ran dummy
<반복 커맨드>
execute as @a[HurtTime:1s] at @s store result score @s ucka_ran run random value 1..100
<연쇄형 커맨드>
execute as @a[score={ucka_ran=1}] at @s run kill @s
execute as @a[score={ucka_ran=1}] at @s run tellraw @s {"text":"뼈가 부러졌다!","color":"red","bold":true}
execute as @a[score={ucka_ran=1}] at @s run scoreboard players set @s ucka_ran 100
이러면 피격 당했을 때 ucka_ran이 1인 플레이어는 뼈가 부러지며 사망함.
제목만 보고 나폴리탄 괴담인줄
은하수를 여행하는 히치하이커들을 위한 안내서 모름
알긴하는데 읽진않아서 나폴리탄괴담이 먼저 떠올랐음
execute as @a[score={ucka_ran=1}] at @s run scoreboard players set @s ucka_ran 100 이 부분은 난수값이 저장된 스코어보드를 리셋시키는 과정인 거지?
ㅇㅇ 맞음