yusin_YT 1e0511f92377434a9f27b5724c29fbe3
게임버전 | 1.20.x |
---|
짜짜쟌! 오랜만에 돌아왔습니다!!
*먼저 제 강의는 커맨드와 해석, NBT태그들의 뜻.. 등을 적어드립니다!
이해하면서 봐주세요.. (이해가 안되셔서 질문하셔도 됌다!)*
https://www.koreaminecraft.net/qna/3520937
1. 화살 nbt태그
화살을 쏘고 난 뒤에 nbt태그를 보시면!
1.19 버전으로 올라오면서 화살에 nbt태그들이 조금 봐꼈지만 다 필요없고!!! 저희는!!
damage와 Owner를 부시면 댐다!!
damage는 말 그대로 대미지를 뜻합니다!
Owner은 말 그대로 주인으로 화살을 쏜 플레이어에 UUID를 가져옵니다!
즉! 예전에는 스코어보드에 UUID의 값이 일치하면 damage를 수정하는 방법을 거쳐 대미지를 봐꿨지만!
지금은 on orgin이라는 기능으로 쉽게 하실 수 있습니다!
2. 구현법
위에 질문에서 스왑이 된다는데 제가 아는 스왑은 경제밖
아무튼..
1. 화살을 쏘면 1점 올라가는 스코어보드 만들기
2. execute as @e[type=arrow] on orgin at @s 를 이용하여 화살에 data를 봐꾸기
3. 스코어보드 초기화 하기
3. 만들기
음음! 먼저 스코어보드 부터 만들어 봅시다!
/scoreboard objectives add arrow minecraft.used:minecraft.crossbow
이제 execute on orgin을 이용해서 화살에 data를 봐꿔봅시다!
execute as @e[type=arrow] on origin at @s[scores={arrow=1..}] run data merge entity @e[type=arrow,limit=1,sort=nearest,distance=..1.7] {damage:30.0d}
만약 화살을 쏜 주인이있다면.. 그 플레이어가 arrow라는 스코어보드 점수가 1점을 기준으로..
화살이며, 1개의 개체이며, 가장 가깝고, 1.7칸 이내에 있는 개체의 damage라는nbt를 30.0d라는 값으로 data를 수정한다.
type=arrow | 개체가 화살.. |
limit=1 | 태어난 순서 중 가장 마지막으로 태어난 1개의 개체.. |
sort=nearest | 가장 가까운.. |
distance=..1.7 | 1.7칸 이내에.. |
data라는 명령어는 낮설죠!! data라는 친구는 어떤 엔티티나 블록에 nbt태그들을 알거나 수정하거나 삭제 하는 명령어에요!
스코어보드 초기화!
execute as @a[scores={arrow=1..}] at @s run scoreboard players reset @s arrow
만약 arrow라는 점수가 1점 이상인 모든 플레이어가 있다면.. 그 플레이어 기준으로..
자기자신의 arrow스코어보드를 초기화 시킨다.
끝!
질문은 디스코드도 좋구! (상민#3372)
댓글도 좋구!
쪽지도 좋아요!
hyundding
2023.08.07으악
yusin12
2023.08.07으악