마인크래프트는 원래 난수 값을 지원하지 않았음.


하지만 최근 업데이트를 통해 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인 플레이어는 뼈가 부러지며 사망함.