개인 자료란 (JE)

  서버 커뮤니티

Profile hochmael 대표칭호 없음
Profile

질문하기 커맨드

명령어 질문

2021.08.20 조회 수 110 추천 수 0

확률 커맨드는 어떻게 만드나요 ex) 25%


22개의 댓글

허두
2021.08.20

가장 쉬운건 엔티티 UUID[0] 빼오는 방법이 있고

아니면 수만큼 엔티티 소환해서 @e[sort=random]으로 하는 방식도 있답니당

hochmael
2021.08.20
@허두

잘 모르겠는데 예시로 25% 확률로 익힌 고기 만들고 75% 확률로 안 익힌 고기 만드는건 어케 하나요

허두
2021.08.20
@hochmael

/summon armor_stand ~ ~ ~ {Tags:["cooked","random"]}

/summon armor_stand ~ ~ ~ {Tags:["random"]}

/summon armor_stand ~ ~ ~ {Tags:["random"]}

/summon armor_stand ~ ~ ~ {Tags:["random"]}

/tag @e[type=armor_stand,tag=random,sort=random,limit=1] add selected

/execute if entity @e[type=armor_stand,tag=selected,tag=cooked] run 익힌고기

/execute unless entity @e[type=armor_stand,tag=selected,tag=cooked] run 생고기

/kill @e[type=armor_stand,tag=random]

 

이렇게 하시면 되겠네용!

1.17 이상이시면 armor_stand 대신 marker 쓰셔도 되시겠구욤

hochmael
2021.08.20
@허두

오 3개 1개 해서 75 25 감사합니다.

허두
2021.08.20
@hochmael

커맨드에 limit가 빠졌었군요 ㅋㅋㅋ 혹시 이미 작성하셨다면 다섯번째 명령어 한번 더 확인 부탁드려욤!

hochmael
2021.08.21
@허두

근데 사실 그냥 따라쓰는거라 해석을 잘 모르겠어요.

Tags: "random"이 무슨 의미를 가지고

5번째 명령어는 무슨 의민지 모르겠어요

허두
2021.08.21
@hochmael

태그는 음, 엔티티에게 꼬리표를 붙이는 거에요

/tag 엔티티 add 태그 로 붙여도 되지만, 아예 소환할때 /summon 엔티티 좌표 {Tags:["태그"]} 로 붙힌 채로 소환하는 게 편하죠.

그러면 이제 @e[tag=태그]라고 하면, 해당 태그를 붙인 엔티티들만 선택이 되는 거에요.

 

/summon armor_stand ~ ~ ~ {Tags:["cooked","random"]}
/summon armor_stand ~ ~ ~ {Tags:["random"]}
/summon armor_stand ~ ~ ~ {Tags:["random"]}
/summon armor_stand ~ ~ ~ {Tags:["random"]}
/tag @e[type=armor_stand,tag=random,sort=random,limit=1] add selected
/execute if entity @e[type=armor_stand,tag=selected,tag=cooked] run 익힌고기
/execute unless entity @e[type=armor_stand,tag=selected,tag=cooked] run 생고기
/kill @e[type=armor_stand,tag=random]

1번째 줄에서는 cooked와 random 태그를 붙인 아머스탠드 1마리,

2~4번째 줄에서는 random 태그만 붙은 아머스탠드 3마리를 소환해요.

여기서 random 태그는 랜덤값을 얻기 위한 목적으로 생성한 아머스탠드라는 뜻이고 (다른 장치와 충돌 방지), cooked 태그는 구운 고기 선택지를 뜻해요.

 

5번째 줄에서는 random 태그가 붙은 아머스탠드 중 1마리를(limit=1) 랜덤으로(sort=random) 선택해서 그 친구에게 selected라는 태그를 추가로 붙여줘요.

selected 태그는 4마리 중에서 랜덤으로 그 친구를 선택했다는 뜻이에요.

 

6~7번째 줄에서는 5에서 랜덤으로 선택한 아머스탠드(tag=selected)가 구운 고기 선택지(tag=cooked)인지를 판별해요

6번째는 if이니까 구운 고기일 때 실행되고, 7번째는 unless이니까 구운 고기가 아닐 때 실행되는거에요.

 

마지막으로 8번째에 랜덤 목적으로 생성한(tag=random) 아머스탠드들을 다시 없애주면서, 전체적인 코드 실행을 끝내요.


++ 5번째 커맨드에 sort 옵션이 빠졌었네요..! 혹시 이미 옮겨넣으셨다면 5번째만 다시 바꿔주시면 감사하겠습니다!

hochmael
2021.08.21
@허두

감사합니다 ㄷㄷ

이런건 어디서 배우신건지

설명이 이해가 잘 되네요 감사합니다.

hochmael
2021.08.21
@허두

6번째 쓸거에 /execute if entity @a[nbt={Inventory:[{id:"minecraft:apple",Slot:-106b}]}] if entity @e[type=armor_stand,tag=selected,tag=cooked run give @a cooked_beef 라고 써봤는데요 사과를 f를 눌러도 익힌 고기가 안 나와서 이렇게 하면 안 되는건가요 사과를 offhand에 들었을 때 25퍼 확률로 익힌 고기 75퍼 확률로 안익힌 고기를 얻고 싶은데..

허두
2021.08.21
@hochmael

그러면 차라리 랜덤 커맨드를 따로 분리하셔서

/execute if entity @a[nbt={Inventory:[{id:"minecraft:apple",Slot:-106b}]}] run setblock 좌표 redstone_block

로 분리한 랜덤 커맨드를 실행해주시고 (좌표 자리에 레드스톤 블럭이 설치될 위치 입력)

랜덤 커맨드 맨 끝쪽에 /setblock 좌표 air 붙이셔서 하시는게 좋을것같아요!


+ 명령어는 digminecraft.com나 구글에 해당 명령어 치면 강좌 많이 나와용! 조금 실력 키운후에는 공식 영문 위키가 도움 많이 되고요 :)

hochmael
2021.08.21
@허두

감사합니다

 

hochmael
2021.08.21
@허두

레드스톤 블록 생성되서 발동하는 커맨드 블록에

한줄에 6~7번째 /setblock 좌표 air까지 다 넣는건가요

6번 째 반복으로 하고 7번째랑 /setblock 조건 연쇄로 했는데 안되서요

허두
2021.08.21
@hochmael

앗 1번째를 반응형 무조건적 레드스톤 필요, 2~8번째랑 /setblock air는 연쇄형 무조건적 항상 활성화로, 하나로 쭉 이어주시면 됩니다!

왼손 탐지는 반복이구여 :)

hochmael
2021.08.21
@허두

아 그렇군요 다 따로 하고있었는데 ㅠㅠ 어쩐지 잘 안 되더라 감사합니다.

hochmael
2021.08.21
@허두

갑옷거치대 다 소환되고 태그도 다 붙혀지기 까지 하는데 고기가 안 나와요

귀찮으실텐데 죄송합니다 ㅠㅠ

hochmael
2021.08.21
@허두

싱글 가서 해보니까 익힌 고기만 나오네요;

 

허두
2021.08.21
@hochmael

어 안된다고요?

 

5번째와 6번째 커맨드 사이에

/execute as @e[type=armor_stand,tag=selected] run tellraw @a {"nbt":"Tags","entity":"@s"}

이거 넣어서 여러번 돌렸을때 항상 cooked하고 random이 같이 나오는지 한번 확인 부탁드려도 될까요?

hochmael
2021.08.21
@허두

네.. random하고 cooked하고 항상 같이 나오는데 이러면 안되는거 아닌가요..

허두
2021.08.22
@hochmael

/kill @e[type=armor_stand,tag=random] 한번 하시고 다시 시도해 보시겠어요?

이론적으로 실행 후에 아머스탠드와 레드스톤 블록이 남아있으면 안됩니다.

hochmael
2021.08.22
@허두

오늘 다르게 가서 아예 처음부터 해보니까 되네요

ㄷㄷ 감사합니다 완성됐어요

@허두

68ef97ea6329a89991e0904c4cd88791.png

일케 설치했는데;

허두
2021.08.21
@hochmael

앗 연쇄형 커맨드 블록들에 조건적 빼주세요!

뉴스 및 창작물
/files/thumbnails/268/789/003/262x150.crop.jpg?20240515192032

레드스톤

벌레먹은 돌 빠르게 제거하는 법

GlassesFilm

2024-05-15

0

/files/thumbnails/797/788/003/262x150.crop.jpg?20240515090924

건축

마인크래프트로 구현한 카르카손 보드게임

Warak

2024-05-15

1

/files/thumbnails/487/784/003/262x150.crop.jpg?20240508233607

모드

Windows Borderless 모드에서 악성코드 발견

학교가기싫다

2024-05-08

1

/files/thumbnails/384/778/003/262x150.crop.jpg?20240512002324

업데이트

마인크래프트 자바 에디션 스냅샷 24w18a

학교가기싫다

2024-05-06

0

/files/thumbnails/855/781/003/262x150.crop.jpg?20240505141129

레드스톤

레이저 클리너

GlassesFilm

2024-05-05

1