적용 가능 minecraft 버전 :: 1.12.2 (싱글플레이)
기능 & 설명 :: 땅에 떨어진 아이템이 제거되지 않게 하는 기능
출처 설명 또는 링크 :: <없음>
실행 방식 -> 아머스텐드, 커맨드(스폰청크에서) 또는 게임루프펑션
변경되는 명령어 -> /give
방법
(부가설명)
/커맨드
→펑션
커맨드(펑션)
!~[주의사항]
>해석
+참고
▼커맨드블록
▼무조건적 항상 활성화 반복 커맨드 블록
│커맨드 블록 잇기
▼무조건적 항상 활성화 체인 커맨드블록
▽조건적 항상 활성화 체인 커맨드블록
┌▶여러가지 방법중 하나(이것들중 선택사항)
│방법(이것들중 한가지 방법)
├▶여러가지 방법중 하나(이것들중 선택사항)
┘방법(이것들중 한가지 방법)
┌▷폴더 이름
│같은 폴더
┘같은 폴더
┌▷펑션 이름
├같은 펑션
└같은 펑션
/summon minecraft:armor_stand ~ 0 ~ {NoGravity:1b,UUIDLeast:0L,UUIDMost:0L,Invisible:1b}
!~[사람의 손이 닿지 않는곳에 엔티티를 소환해주세요.]
!~[엔티티가 소환된 좌표와 그 좌표에서 y=y+1 좌표에 해당하는 장소는 플레이어가 블록을 설치할수 없으며, 바라보는곳 이상의 위치를 건드릴수 없습니다.]
!~["물체를 소환할 수 없습니다" 라고 뜬다면 이미 같은 UUID가 있습니다 UUID를 변경해주세요.]
>x=자신의좌표x,y=0,z=자신의좌표z 에 가만히 있어야되는상태,최소위주UUID0,최대위주UUID0,무적상태인 아머스텐드 라는 엔티티를 소환한다.
+아머스텐드를 제거하려면 참고1으로 이동해주세요.
/scoreboard objectives add item_protect dummy
!~["'item_protect'(이)라는 이름의 목표가 이미 존재합니다" 라고 뜬다면, 이미 같은 오브젝트가 존재합니다 이름을 변경해주세요.]
>스코어보드에 이름은item_protect,유형은 dummy,표시는 item_protect로 되는것인 오브젝트를 추가합니다.
+스코어보드를 제거하려면 참고3으로 이동해주세요.
┌▶커맨드블록을 사용하여 만들기
│▼/testfor @e[score_item_protect=0,score_item_protect_min=0] {NoGravity:1b,UUIDLeast:0L,UUIDMost:0L,Invisible:1b}
││!~["갑옷 거치대이(가) 필요한 데이터 구조와 일치하지 않습니다" 라고 뜬다면 데이터태그가 다르게 설정되어 있거나, 다른 갑옷 거치대가 설치되어있는 상태이면서 해당 데이터 태그의 아머스텐드가 제거되어있습니다.]
││!~["선택자 '@e[score_item_protect=0,score_item_protect_min=0]'이가 아무것도 찾지 못했습니다" 라고 뜬다면 해당 데이터 태그의 아머스텐드가 오브젝트 item_protect 의 점수를 0으로 갖고 있지 않거나, 데이터태그가 다르게 설정되어 있거나, 해당 데이터 태그의 아머스텐드가 제거되어있습니다.]
││>가만히 있어야되는상태,최소위주UUID0,최대위주UUID0,무적상태,오브젝트 item_protect 점수를 0이상,오브젝트 item_protect 점수를 0이하 상태인 엔티티를 찾는다.
│▽/entitydata @e[type=item] {Invulnerable:1,Age:0}
││>아이템 타입 상태인 엔티티를 자동 제거 무시(청크 언로드때만),0초동안 떨어진 아이템 상태를 추가합니다.
│▼/scoreboard players set @e item_protect 0 {NoGravity:1b,UUIDLeast:0L,UUIDMost:0L,Invisible:1b}
│!~["00000000-0000-0000-0000-000000000000의 데이터 태그가 일치하지 않습니다" 라고 뜬다면 데이터태그가 다르게 설정되어 있습니다.]
│!~["목표 item_protect를 찾을 수 없습니다" 라고 뜬다면 오브젝트 item_protect 가 제거되어 있거나, 오브젝트 이름이 다르게 설정되어 있습니다.]
│>가만히 있어야되는상태,최소위주UUID0,최대위주UUID0,무적상태인 엔티티의 오브젝트 item_protect점수를 0으로 변경한다.
├▶게임루프펑션을 이용하여만들기
│┌▷scenemanager
││┌▷loop.mcfunction
││└→function scenemanager:item_protect if @e[score_item_protect=0,score_item_protect_min=0]
││!~[오류를 확인할 수 없습니다.]
││>오브젝트 item_protect 점수를 0이상,오브젝트 item_protect 점수를 0이하 상태인 엔티티가 존재한다면, 펑션 scenemanager:item_protect를 실행한다.
││┌▷item_protect.mcfunction
││├→scoreboard players tag @e add run {NoGravity:1b,UUIDLeast:0L,UUIDMost:0L,Invisible:1b}
││├→execute @e[tag=run] ~ ~ ~ /entitydata @e[type=item] {Invulnerable:1,Age:0}
││└→scoreboard players tag @e remove run {NoGravity:1b,UUIDLeast:0L,UUIDMost:0L,Invisible:1b}
││!~[오류를 확인할 수 없습니다.]
│┘>가만히 있어야되는상태,최소위주UUID0,최대위주UUID0,무적상태인 엔티티에게 run태그를 추가한후 좌표 x=자신(없을경우 해당 엔티티)의좌표x,y=자신(없을경우 해당 엔티티)의좌표y,z=자신(없을경우 해당 엔티티)의좌표z를 중심으로 run태그가 붙어있는 엔티티가 모두 자신(없을경우 커맨드블록)의 권한으로 아이템 타입 상태인 엔티티를 자동 제거 무시(청크 언로드때만),0초동안 떨어진 아이템 상태를 추가하는명령을 실행하게 한후 가만히 있어야되는상태,최소위주UUID0,최대위주UUID0,무적상태인 엔티티에게 run태그를 제거한다.
│/gamerule gameLoopFunction scenemanager:loop
│!~[오류를 확인할 수 없습니다.]
│>게임룰중 게임루프펑션을 scenemanager폴더 안에 있는 loop.mcfunction파일 주소에 있는 파일로 변경합니다.
┘+마인크래프트 안에 명령어를 써서 버그를 테스트 해보세요.
참고0 - 변경된 명령어 /give <플레이어> <아이템> [양] [데이터] [데이터태그]
!~[변경된 명령어를 이용하지 않을 경우 버그가 일어날 수 있습니다.]
┌▶커맨드블록을 사용하여 실행하기
│▼/give <플레이어> <아이템> [양] [데이터] [데이터태그]
││!~[변경된 명령어를 이용하지 않을 경우 버그가 일어날 수 있습니다.]
││><플레이어>에게 [양]개의 [데이터태그]인 [데이터]<아이템>을 준다.
│▼/scoreboard players set @e item_protect 1 {NoGravity:1b,UUIDLeast:0L,UUIDMost:0L,Invisible:1b}
│!~["00000000-0000-0000-0000-000000000000의 데이터 태그가 일치하지 않습니다" 라고 뜬다면 데이터태그가 다르게 설정되어 있습니다.]
│!~["목표 item_protect를 찾을 수 없습니다" 라고 뜬다면 오브젝트 item_protect 가 제거되어 있거나, 오브젝트 이름이 다르게 설정되어 있습니다.]
│>가만히 있어야되는상태,최소위주UUID0,최대위주UUID0,무적상태인 엔티티의 오브젝트 item_protect점수를 1로 변경한다.
├▶펑션을 이용하여 실행하기
│→give <플레이어> <아이템> [양] [데이터] [데이터태그]
│→scoreboard players set @e item_protect 1 {NoGravity:1b,UUIDLeast:0L,UUIDMost:0L,Invisible:1b}
│!~[오류를 확인할 수 없습니다.]
│><플레이어>에게 [양]개의 [데이터태그]인 [데이터]<아이템>을 준후 가만히 있어야되는상태,최소위주UUID0,최대위주UUID0,무적상태인 엔티티의 오브젝트 item_protect점수를 1로 변경한다.
│+마인크래프트 안에 명령어를 써서 버그를 테스트 해보세요.
├▶직접 입력해서 실행하기
│/scoreboard objectives remove item_protect dummy
│!~["목표 'item_protect"을(를) 찾을 수 없습니다"라고 뜬다면 이름이 다르게 설정되었거나 이미 제거되어 있습니다.]
│>스코어보드에 있는 이름은item_protect인 오브젝트를 제거합니다.
│/give <플레이어> <아이템> [양] [데이터] [데이터태그]
│!~[변경된 명령어를 이용하지 않을 경우 버그가 일어날 수 있습니다.]
│><플레이어>에게 [양]개의 [데이터태그]인 [데이터]<아이템>을 준다.
│/scoreboard objectives add item_protect dummy
│!~["'item_protect'(이)라는 이름의 목표가 이미 존재합니다" 라고 뜬다면, 이미 같은 오브젝트가 존재합니다 이름을 변경해주세요.]
│>스코어보드에 이름은item_protect,유형은 dummy,표시는 item_protect로 되는것인 오브젝트를 추가합니다.
┘+스코어보드를 제거하려면 참고3으로 이동해주세요.
참고1 - 땅에 떨어진 아이템이 제거되지 않게 하는기능 멈추기 - 아머스텐드 사용식
/scoreboard players tag @e add empty {NoGravity:1b,UUIDLeast:0L,UUIDMost:0L,Invisible:1b}
!~[제거한 후 땅에 떨어진 아이템이 제거되지 않게 하는 기능이 사라집니다 ]
!~["태그 empty이가 추가되었습니다" 라고 뜨지 않는다면 데이터태그가 다르게 설정되었거나 이미 제거되었습니다.]
> 가만히 있어야되는상태,최소위주UUID0,최대위주UUID0,무적상태인 엔티티에 empty 태그를 추가한다.
/kill @e[tag=empty]
>empty 태그가 붙어있는 엔티티를 모두 제거한다.
참고2 땅에 떨어진 아이템이 제거되는 기능을 아머스텐드 사용식으로 멈춘후 다시 작동시키기 - 아머스텐드 사용식
/summon minecraft:armor_stand ~ 0 ~ {NoGravity:1b,UUIDLeast:0L,UUIDMost:0L,Invisible:1b}
!~[사람의 손이 닿지 않는곳에 엔티티를 소환해주세요.]
!~[엔티티가 소환된 좌표와 그 좌표에서 y=y+1 좌표에 해당하는 장소는 플레이어가 블록을 설치할수 없으며, 바라보는곳 이상의 위치를 건드릴수 없습니다.]
!~["물체를 소환할 수 없습니다" 라고 뜬다면 이미 같은 UUID가 있습니다 UUID를 변경해주세요.]
>x=자신의좌표x,y=0,z=자신의좌표z 에 가만히 있어야되는상태,최소위주UUID0,최대위주UUID0,무적상태인 아머스텐드 라는 엔티티를 소환한다.
+제거하려면 참고1으로 이동해주세요.
참고3 - 땅에 떨어진 아이템이 제거되지 않게 하는기능 멈추기 - 스코어보드 사용식
/scoreboard objectives remove item_protect
!~["목표 'item_protect"을(를) 찾을 수 없습니다"라고 뜬다면 이름이 다르게 설정되었거나 이미 제거되어 있습니다.]
>스코어보드에 있는 이름은item_protect인 오브젝트를 제거합니다.
참고4 땅에 떨어진 아이템이 제거되는 기능을 스코어보드 사용식으로 멈춘후 다시 작동시키기 - 스코어보드 사용식
/scoreboard objectives add item_protect dummy
!~["'item_protect'(이)라는 이름의 목표가 이미 존재합니다" 라고 뜬다면, 이미 같은 오브젝트가 존재합니다 이름을 변경해주세요.]
>스코어보드에 이름은item_protect,유형은 dummy,표시는 item_protect로 되는것인 오브젝트를 추가합니다.
+스코어보드를 제거하려면 참고3으로 이동해주세요.