이해도 | 초보자 |
---|---|
게임버전 (JE) | 1.19.2 |
게임버전 (BE) | 관련없음 |
/execute as @a[nbt={Inventory:[{id:"minecraft:leather_boots",Slot:100b,tag:{display:{Name:'{"text":"boost"}'}}}]}] at @s run scoreboard players add @s rabbit_boots 1
/execute as @a[scores={rabbit_boots=1}] at @s run effect give @s minecraft:speed 70 0 false
/execute as @a[nbt={Inventory:[{id:"minecraft:leather_boots",Slot:100b,tag:{display:{Name:'{"text":"boost"}'}}}]}] at @s run scoreboard players set @s rabbit_boots 2
------
/execute as @a[scores={rabbit_boots=2}] at @s run execute if score second second matches 59.. at @s run effect give @s minecraft:speed 70 0 false
특정 태그를 가진 아이템을 장착시 특정 버프를 주는 커멘드를 만들었습니다.
그런데장착시 버프를 주는 커멘드에 재생을 적용하면 순식간에 체력 차올라 원하는 느낌이 아니게 되어 스코어 보드를 이용해 1분에 한번씩 버프를 갱신하는 커멘드로 변경 하였습니다.
다만 지금의 커멘드에선 장비를 벗어도 버프가 최대 1분 10초가랑 남게 되는데
특정 태그를 가진 장비를 벗는 것을 감지하는 커멘드가 있을까요?
이 방법이 아니라도 장비를 벗자 마자 버프를 없엘 수 있는 방법이 있을까요?
yusin12
2023.09.02inventory를 이용해서 이 태그를 가진 아이템이 어떤 슬롯에 없다면.. 이라고 할 수 있음다!
홍새치
2023.09.03/execute as @a[nbt={Inventory:[{id:"minecraft:air",Slot:100b}]}] at @s run say 1
이렇게 명령어하는게 맞을까요?
yusin12
2023.09.03아니요! 마크에서 아무것도 들고 있지않으면 storage값에서 제거됩니다!
이거 대부분 사람들이 모르시는 기능같은데..
앞에 !를 붙여서 nbt의 부정을 할 수 있어요!
예를 들어
만약 모든 플레이어에 인벤토리에서 슬롯이 100번이고 아이템 아이디가 <마크 아이디>가 아니라면..
그 플레이어를 기준으로..
run뒤에 명령어를 실행한다.
이렇게 앞에 !를 붙여 할 수있음다!
홍새치
2023.09.04아 감사합니다. 조건 부정 방식이 있는줄 몰랐습니다.
yusin12
2023.09.04(ง •̀ㅁ•́)ง✧