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
24 일 전제가 해보니 이게 맞는 것 같습니다.(1.21.3입니다)
execute as @a at @s if/unless entity @s[nbt={SelectedItem:{}}] run say @s
IRONBLOCK
22 일 전그니까요 전에 실행할때 안된거로 기억해요
저 커맨드는 무슨 버전일까요
yusin12
22 일 전흠흠.. 지금와서 다시보니 execute if entity가 아닌 execute if data입니다. 혼동을 드려 죄송합니다.
yusin12
22 일 전흠흠.. 지금와서 다시보니 execute if entity가 아닌 execute if data입니다. 혼동을 드려 죄송합니다.