인터랙션에 우클릭을 한다는 가정 하에 커맨드를 알려드리겠습니다 [맨손으로 우클릭 했을 때 채팅만 나오는 커맨드] execute as 인터랙션 on target unless data entity @s {SelectedItem:{}} run say 1 [인벤토리에 특정 아이템이 있을 때 우클릭하면 이미 아이템이 있다고 나오는 커맨드] execute as 인터랙션 on target if data entity @s {Inventory:[{id:"minecraft:아이템"}]} run say 이미 있는 아이템입니다. 위의 두 커맨드는 뒤에 인터랙션의 interaction이라는 nbt를 지우는 과정이 필요합니다 또한 say 명령어를 tellraw로 바꾸는 것을 추천드립니다 마지막으로, 특정 '조건일 때' 이벤트가 '캔슬'되는 커맨드를 만들기 보단 특정 '조건이 아닐 때'만 이벤트가 작동하도록 커맨드를 만드시는 것이 좋을 것 같습니다 예를 들어, execute as 인터랙션 on target unless data entity @s {Inventory:[{id:"minecraft:stone"}]} run give @s minecraft:stone 이렇게 말이죠 이건 돌이 없을 때 돌을 지급하는 커맨드입니다
좀 복잡합니다 블록의 데이터를 바꾸는 방법이 없기 때문이죠 그래서 폴링블록을 사용할 겁니다 손에 들고 있는 블록을 설치하는 방법과, 인벤토리에 블록 하나를 제외한 아무 것도 없을 때의 두 가지 경우로 커맨드를 알려드리겠습니다 [손에 들고 있는 블록을 설치] (반응형) summon minecraft:falling_block -43 -60 -32 {Tags:["block"],DropItem:0b} (연쇄형) data modify entity @e[tag=block,limit=1] BlockState.Name set from entity @p SelectedItem.id [인벤토리에 블록 하나만 있을 때 그 블록을 설치] (반응형) summon minecraft:falling_block -43 -60 -32 {Tags:["block"],DropItem:0b} (연쇄형) data modify entity @e[tag=block,limit=1] BlockState.Name set from entity @p Inventory[0].id
그대로 썼는데 작동이 안돼요...
연쇄형 커맨드 블록이 항상 활성화로 되어 있나요?
@n 반복 커맨드에 영상에 나오는 명령어 그대로 적어서 실행시켜 봤는데 실행이 안돼요 레드스톤 블럭 설치해서 실행 시켰어요
죽어도 특정 아이템만 인벤토리에 남게 하는것도 가능한가요?
특정 아이템만 남게 하는 것은 불가능합니다.
그나마 비슷하게 하려면 죽었을 때를 감지하고, 특정 아이템을 인벤토리에 지급하는 것이죠.
아이템을 가지고 있으면 계속 작동되는데, 얻었을 때 한번만 작동하게 할 수 있나요?
아이템을 얻었을 때, tag 명령어로 태그를 부여한 후, 조건적 연쇄형 커맨드 블록을 이용해 원하는 커맨드를 작동시키면 되겠습니다
태그가 이미 있는 대상에는 똑같은 태그가 부여되지 않기 때문에, 조건적 연쇄형 커맨드가 작동하지 않게 되므로 커맨드는 1번만 실행됩니다
혹시 아무 것도 없는 손으로 상호작용을 하면 채팅만 나오고, 인벤토리에 특정 아이템이 있을 때 상호작용을 하면 '이미 있는 아이템입니다.' 하고 이벤트가 캔슬되는 커맨드도 있을까요..? 궁급합니다ㅠㅠ
인터랙션에 우클릭을 한다는 가정 하에 커맨드를 알려드리겠습니다
[맨손으로 우클릭 했을 때 채팅만 나오는 커맨드]
execute as 인터랙션 on target unless data entity @s {SelectedItem:{}} run say 1
[인벤토리에 특정 아이템이 있을 때 우클릭하면 이미 아이템이 있다고 나오는 커맨드]
execute as 인터랙션 on target if data entity @s {Inventory:[{id:"minecraft:아이템"}]} run say 이미 있는 아이템입니다.
위의 두 커맨드는 뒤에 인터랙션의 interaction이라는 nbt를 지우는 과정이 필요합니다
또한 say 명령어를 tellraw로 바꾸는 것을 추천드립니다
마지막으로, 특정 '조건일 때' 이벤트가 '캔슬'되는 커맨드를 만들기 보단
특정 '조건이 아닐 때'만 이벤트가 작동하도록 커맨드를 만드시는 것이 좋을 것 같습니다
예를 들어,
execute as 인터랙션 on target unless data entity @s {Inventory:[{id:"minecraft:stone"}]} run give @s minecraft:stone
이렇게 말이죠
이건 돌이 없을 때 돌을 지급하는 커맨드입니다
아무것도 없을때만 감지할수 있는것은 없나요?
air를 활용해보시면 어떨까요?
아이템을 가기고있는 개수를 title 명령어오 띄우는 방법이 뭔가요?
아이템을 잃었을때도 가능한가요?
혹시 아이템 개수도 감지가 가능 할까요?
아이템이 하나로 뭉쳐있을 때는 간단하지만, 인벤토리에 흩어져 있는 아이템의 총합을 감지하는 거라면 좀 복잡합니다
하나로 뭉쳤을 때를 감지하는 법을 알려드릴까요?
아니면 총 합의 개수를 감지하는 법을 알려드릴까요?
답글로 달아주시면 알려드리겠습니다
@@포마인뭉친 아이템으로 특정 이름, 개수 감지 입니다
@@블베-k7c execute as @a[nbt={Inventory:[{Count:개수b,tag:{display:{Name:'{"text":"이름"}'}}}]}] run 원하는 커맨드
이렇게 하시면 될겁니다
@@포마인 정말 감사합니다..
@@포마인 혹시 그럼 총 합의 개수를 감지하는 법을 알려주실수 있나요?
혹시 흩어져 있는 아이템 개수를 감지 할 수 있는 명령어가 있나요? 예를 들어 겉날개 개수를 알고싶다면..
clear 명령어로 0개의 아이템을 지우게 하면 인벤토리에 있는 아이템의 개수를 알아낼 수 있습니다. 그걸 execute store를 이용해 스코어보드 값에 저장하면 되겠네요. 설명이 더 필요하시면 답글 달아주세요.
discord.gg/zJ4mtP4q8X
디스코드 서버에 오셔서 커맨드 질문이나 소통을 해보세요!
마크에서 Inventory 태그 안에서 여러 아이템을 지정하고 싶다면 어떻게 해야하나요?
제가 갖고 있는 지식에 따르면 /execute as @a[nbt={Inventory:[{id:"아이템"},{id:"아이템"}]}] 인거 같은데..
1.16.5 버전도 가능한가요?
네, 가능합니다
그러면 특정 아이템이 아닌 노가다 없이 모든 블록을 감지해서 그 블록을 설치하는 명령어도 있나요
좀 복잡합니다
블록의 데이터를 바꾸는 방법이 없기 때문이죠
그래서 폴링블록을 사용할 겁니다
손에 들고 있는 블록을 설치하는 방법과,
인벤토리에 블록 하나를 제외한 아무 것도 없을 때의
두 가지 경우로 커맨드를 알려드리겠습니다
[손에 들고 있는 블록을 설치]
(반응형)
summon minecraft:falling_block -43 -60 -32 {Tags:["block"],DropItem:0b}
(연쇄형)
data modify entity @e[tag=block,limit=1] BlockState.Name set from entity @p SelectedItem.id
[인벤토리에 블록 하나만 있을 때 그 블록을 설치]
(반응형)
summon minecraft:falling_block -43 -60 -32 {Tags:["block"],DropItem:0b}
(연쇄형)
data modify entity @e[tag=block,limit=1] BlockState.Name set from entity @p Inventory[0].id
@@포마인 떨어지는 블록 위치 바꿨는데도 안되요 ㅠㅠ
@@RedButton_ 혹시 공중에 블록을 설치하실 거라면 안될겁니다
근데 바닥 위에 설치하는 거면 잘 작동할 텐데...
원하는것만 올려주시네
타이밍이 좋으시네요!