개인 자료란 (JE)

  서버 커뮤니티

Profile 씬소 대표칭호 없음

ssinso 24f58f717ff24fd4811adaf128ca0ab8

Profile

질문하기 스크립트

스크립트 질문

2021.07.19 조회 수 236 추천 수 0
이해도 1.12 
게임버전 (JE) 스피곳 
스크립트 애드온 skript 2.5.3 

플레이어가 블럭을 파괴 할 경우 그 블럭 중심으로 3*3 범위 내의 블럭이 파괴되고 파괴된 블럭이 아이템으로 떨어지도록 하는 스크립트 명령어를 알고 싶습니다. 좌표 설정하고 부서진 블럭을 아이템으로 드롭하는 법을 모르겠어요..

5개의 댓글

늘솜보름
2021.07.19

https://www.koreaminecraft.net/scriptqna/1295338 여기서 답을 찾을 수 있을거 같네요!

씬소
2021.07.19
@늘솜보름

직육면체가 아니라 평면으로 캐지게 만들고 싶은데 방법이 없을까요..

 

스크립터브혼
2021.07.19

3*3*3 블록을 받아오는 방법은 여러가지가 있습니다.

가장 간단한 방법은 [Block Sphere] 익스프레션을 사용해 3*3*3 블록을 모두 포함하는 구 형태로 서칭 하는 방법과

육면체의 대각 꼭지점을 사용하는 [Blocks]의 within 패턴을 사용하는 방법이 있고,

기초적인 원리를 사용하여 x, y, z 삼중 루프를 통해 직접 연산하는 방법이 있습니다.


가장 간단한 구를 이용한 3*3*3 영역을 찾는 방법입니다.

command /block.sphere:
    trigger:
        break blocks in radius 1.75 around targeted block naturally

구의 크기를 조금씩 조절하다보면 3*3*3 사이즈에 맞는 크기가 있습니다. 1.75가 그정도가 됩니다.

이 방식은 구 형태이기 때문에 3*3*3크기에만 적용할 수 있습니다.

스크립터브혼
2021.07.19
@스크립터브혼

추가로 평면으로 캐지게 하려면 [Filter]사용해 한쪽 축으로 고정시켜주면 됩니다.

command /block.sphere <text>:
    trigger:

        set {_target} to targeted block
        set {_blocks::*} to blocks in radius 1.75 around {_target}

        if arg-text is "x":
            set {_filter::*} to {_blocks::*} where [ x-coord of input is x-coord of {_target} ]
        else if arg-text is "y":
            set {_filter::*} to {_blocks::*} where [ y-coord of input is y-coord of {_target} ]
        else if arg-text is "z":
            set {_filter::*} to {_blocks::*} where [ z-coord of input is z-coord of {_target} ]
            
        break {_filter::*} naturally
씬소
2021.07.19
@스크립터브혼

감사합니다