마크지식제로뉴비
대표칭호 없음
이해도 | 입문자 |
---|---|
게임버전 (JE) | 1.19.2 |
게임버전 (BE) | 관련없음 |
커맨드 블록을 활용화여 홀 짝 도박 게임을 만들려고 합니다
버튼을 눌러 신호를 주면 해당 유저의 칩이라는 아이템을 1개를 삭제 시키고 싶습니다
id:sunflower,Count:1,tag:{RepairCost: 0, display:{Name:'{"text":"칩"}'}}
위와 같은 형태로 해바라기를 칩으로 만들었습니다.
/clear @p ? 0 1
저 물음표에 어떤 식으로 해야할지 알려주시면 감사하겠습니다
yusin12
2023.04.16sunflower{display:{Name:"{\"text\":\"칩\"}"}}
마크지식제로뉴비
2023.04.16답글 감사합니다!!! 혹시 @p 를 하면 가장 가까운 플레이어로 알고 있습니다만 왜 모든 유저한테서 삭제가 되는지 여쭤봐도 괜찮을까요?
김형원
2023.04.16혹시 반복커맨드에 버튼을 다셨나요?
마크지식제로뉴비
2023.04.16아 실수로 @a 로 해놨네요 실수했습니다.. 죄송합니다ㅠㅠ
혹시 PC je에서 scoreBoard players random 을 사용할 수 없던데 홀 짝을 하고 싶습니다만 대체가 있을까요?
김형원
2023.04.16엔티티의 UUID를 사용하면 됩니다
ececute store로 UUID를 조장한 다음 % 연산자를 통해 일정한 범위 내의 랜덤 값을 얻을 수 있어요
마크지식제로뉴비
2023.04.16답변 감사합니다 지금 강좌 보면서 진행하고 있습니다만 진행한 내용
스코어 보드 설정
1. scoreboard objectives add coin dummy
2. scoreboard objectives add gamble dummy
커맨드 블력
3. clear @p mincraft:diamond 1 (반응형, 레드스톤 필요 => 버튼을 통해 신호)
4. scoreboard players set @p gamble 1 (연쇄형)
5 . 강의에서는 scoreboard players random @p coin 1 2 <= 이 부분에서 막힌 상태 (연쇄형)
5번 완료 시 진행해야 하는 명령려
6. tag @p add gambler (연쇄형)
7. execute @a pscores={gamble1}] ~ ~ ~ scoreboard players test @s coin 1 1 (반복형) <= je에서 excute 후 @a를 바로 할 수 없으니 막힐 거 같습니다
8. title @p[tag=gambler] actionbar 도박 성공 (연쇄형)
9. scoreboard players set @a coin 0 (연쇄형)
10. give @p[tag=gambler] diamond 2 (연쇄형)
11. tag @p remove gambler
참고하려는 유튜브 영상 => https://www.youtube.com/watch?v=5bHGpn_SGaY&t=155s
이거 입니다만 도움 주시면 감사하겠습니다
yusin12
2023.04.16마인크래프트 에서 random은... 가장 간단한 방법은
/summon minecraft:armor_stand ~ ~ ~ {Tags:["holjjak"]}
으로 holjjak이라는 태그를 가진 아머스탠드 소환 후
/scoreboard objectives add 스코어보드이름 dummy
으로 스코어 보드를 만들고
/scoreboard players add @e[tag=holjjak] 스코어보드이름 1
으로 계속 1점씩 줘요!
/execute as @e[tag=holjjak,scores={스코어보드이름=2..}] at @s run scoreboard players set @s 스코어보드이름 0
으로 2가 될 때 마다 초기화 해줘요!
/tellraw @a [{"score":{"objective":"스코어보드이름","name":"@e[tag=holjjak]"}}]
이 명령어로 하면 0과 1만 나오는걸 볼 수 있어요!!
/execute as @e[tag=holjjak,scores={스코어보드이름=1}] at @s run say 홀
/execute as @e[tag=holjjak,scores={스코어보드이름=0}] at @s run say 짝
그 다음 방법은
/scoreboard objectives add 스코어보드이름 dummy
으로 스코어 보드를 만들고
/summon minecraft:armor_stand ~ ~ ~ {Tags:["random"]}
으로 random이라는 태그를 가진 아머스탠드 소환해요!
/execute as @e[tag=random] at @s store result score c 스코어보드이름 run data get entity @s UUID[0]
으로 random이라는 태그를 가진 아머스탠드의 UUID를 스코어보드이름의 c라는 가상에 개체랑 같게해요!
/kill @e[tag=random]
으로 random이라는 태그를 가진 모든 엔티티를 죽여요!
/scoreboard players operation c 스코어보드이름 %= Max 스코어보드이름
으로 c의 값에서 Max의 값을 나눠요!
/scoreboard players add Max 스코어보드이름 10
으로 Max를 설정해줘요!!
이 방법은 아머스탠드에 UUID를 가져와서 스코어보드에 저장한 뒤 그 값을 나눠서 나오는 나머지 값을 저장하는 거에요!
즉 10 나누기 10의 나머지는 0이므로 Max값이 10이면 0~9까지 10개의 숫자가 나와요!