yusin12
대표칭호 없음
yusin_YT 1e0511f92377434a9f27b5724c29fbe3
게임버전 | 1.20.x |
---|
우아ㅏㅏ 너무 오랜만이다!!
0. 맨손 감지는 execute if에서 SelectedItem에 minecraft:air을 감지하면 되는거 아닌가요?
결론만 말씀드리면 아닙니다!!
SelectedItem이라는 NBT는 확실하게 손에 들고 있는 아이템의 정보를 표시해주는 건 맞지만!
손에 아이템을 들어야해요! 맨손은 아무것도 안들었기 때문에execute if에서 SelectedItem으론 감지 할 수 없어요!
1. 그럼 어떡해..??
execute as @a at @s if data @s SelectedItem run say @s
모든 플레이어가 있다면..
그 플레이어 기준으로..
그 플레이어가 SelectedItem이라는 NBT가 있다면..
run뒤에 명령어를 실행한다..
그 플레이어에 이름을 말한다.
이 명령어에서 아이템을 들면 SelectedItem이 생겨 제 이름이 출력됩니다!
하지만 손에 아무것도 들지 않으면..! SeletedItem이 없기 때문에 아무것도 출력되지 않슴다!
자 그럼 if에 반대는? unless!!
execute as @a at @s unless data @s SelectedItem run say @s
모든 플레이어가 있다면..
그 플레이어 기준으로..
그 플레이어가 SelectedItem이라는 NBT가 없다면..
run뒤에 명령어를 실행한다..
그 플레이어에 이름을 말한다.
마무리이~
질문은 디스코드(yusin_12)도 좋고 댓글도 좋고 쪽지도 좋아요!
IRONBLOCK
2023.11.06if/unless entity 가 되나요? 그 뒤에 붙이면 안되지 않나요?
yusin12
2023.11.06약간 명제를 생각하면 쉽슴다!
if 반대는 unless가 맞슴다!
따라서 if가 거짓인 명제가 있다면
unless는 참인 명제가 있는검다!
실제로 if/unless는 "이 개체한테 이런 nbt가 있니?/이 개체한테 이런 nbt값이 없니?"
라고 묻는 것이므로
execute as @a at @s unless data @s SelectedItem
이라고 한다면..
"너 SelectedItem이라는 nbt값이 없니?"가 됨다!
hahajjoon
2024.10.30제가 해보니 이게 맞는 것 같습니다.(1.21.3입니다)
execute as @a at @s if/unless entity @s[nbt={SelectedItem:{}}] run say @s
IRONBLOCK
2024.11.01그니까요 전에 실행할때 안된거로 기억해요
저 커맨드는 무슨 버전일까요
yusin12
2024.11.01흠흠.. 지금와서 다시보니 execute if entity가 아닌 execute if data입니다. 혼동을 드려 죄송합니다.
yusin12
2024.11.01흠흠.. 지금와서 다시보니 execute if entity가 아닌 execute if data입니다. 혼동을 드려 죄송합니다.