개인 자료란 (JE)

  서버 커뮤니티

Profile 마린잉엥 대표칭호 없음
Profile

질문하기 스크립트

X-ray 스크립트 질문

2020.11.09 조회 수 183 추천 수 0
이해도 1.16 
게임버전 (JE) 스피곳 
스크립트 애드온 2.5 

안녕하세요 

스크립트로 X-ray 구현하기 간단할 듯 생각하여 

하는 데 안되네요..


on swap item:

 if name of player's tool contains "보물탐지봉":

         make player see dirt as air


air barrier 다 안됩니다. 


      




17개의 댓글

무너_
2020.11.09

플레이어 주변을 loop하셔서 찾아 주변 블록의 좌표을 알아내는건 어떨까요?

 

아래 구문은 플레이어 주변 5블럭을 검색하여 알려주는 구문입니다.

 

@는 텝을 의미합니다.

 

loop all blocks in radius 5 around the player:

@if loop-block is dirt:

@@message "%loop-block's location%에 흙이 존재합니다." to player

 

in radius <값>으로 범위를 정할 수 있습니다.

마린잉엥
2020.11.10
@무너_

와... 엄청 큰 도움되는 스크립트네요

실제 정말 많이 다양하게 쓸 듯합니다

감사합니다!

무너_
2020.11.10
@마린잉엥

범위를 너무 크게 설정하면 서버에 심한 랙이 생기니, 범위는 적당히 하셔야되요!

마린잉엥
2020.11.10
@무너_

이미 체험해서 알고 있었습니다ㅎㅎ;;

100으로 하니까 렉걸리기 시작하더라구용..

50으로 하니까 탐색도 빠르고 정말 마음에 듭니다 감사합니다!!ㅎㅎ

무너_
2020.11.10
@마린잉엥

어멋.. 그걸 체험하셨군요... 대단하시네요..!

마린잉엥
2020.11.10
@무너_

ㅋㅋㅋ호기심이 많아서 한번 해봤습니다.

엄청 렉이 심해져서 튕기고 튕기고 결국 아 이것때문이구나 라는 걸 알았죠

무너_
2020.11.10
@마린잉엥

그렇군요ㅎㅎ 스크립트 코딩 힘내세요!

마린잉엥
2020.11.10
@무너_

어려워서 스트레스지만..ㅋㅋ

재밌어서 계속 하고 있습니다. 진짜 재밌네요 도움 주셔서 정말 감사합니다.

무너_
2020.11.11
@마린잉엥

더 궁금한거나 물어보실꺼 있으시면, 뭐든 물어봐 주세요!

마린잉엥
2020.11.11
@무너_

제가 send 리소스팩 해서 url 입력해서 리소스팩 적용을 했는데요

혹시 적용한 리소스팩을 해제할 때는 어떤 구문을 사용하면 되나요?

무너_
2020.11.11
@마린잉엥

Send Resource Pack 으로 보내신 리소스팩은 따로 해제가 불가능합니다.

서버에서 보낸 리소스팩을 정상적으로 다운로드 하였는지 또는 거절하였는지를 확인하는 것만 가능합니다.

Has Resource Pack 또는 Resource Pack State 로 확인하실 수 있고, 마지막으로 보낸 리소스팩은 Last Resource Pack Response 로 확인하실 수 있습니다.

스크립터브혼
2020.11.09

[Send Block Change]이펙트는 특정 블록을 다른 블록으로 보이게 하는 기능입니다. 패턴을 다시 확인해보세요.

> make %players% see %blocks% as %item type/block data%


dirt는 아이템 타입입니다. 블록을 특정하세요.

마린잉엥
2020.11.10
@스크립터브혼

엥...?? 흙이 블럭 타입이 아니라 아이템 타입인가요..??

혹시 블럭 타입과 아이템 타입의 차이가 뭔가요유ㅠ

스크립터브혼
2020.11.10
@마린잉엥

스크립트에 매터리얼 타입이 없어서 혼란 스러우실겁니다.


매터리얼은 재질이라는 의미입니다.

아이템과 블록은 같은 매터리얼을 가지고 있지만 다른 타입입니다.


문 매터리얼로 예로 들면, 문은 월드에 설치되면 문 블록이 됩니다. 그리고 문을 부수면 문 아이템이 드랍됩니다.


블록의 특징은 월드에 존재하기 때문에 좌표계에 표시 할수있고, 특정 블록들은 방향을 가질 수 있습니다.

아이템의 특징은 스택(갯수)을 가질 수 있고, 인벤토리에 포함되거나, 엔티티(드랍된 아이템)으로써 존재할 수 있다는 것입니다.



스크립트에서는 이러한 두 타입의 비교에서 자동으로 매터리얼 비교를 하게끔 설계가 되어있습니다.
그래서 특정 블록이 흙 메터리얼인지 비교하는 것과 특정 아이템이 흙 메터리얼인지 비교하는 코드가 일치합니다.
> %block% is dirt
> %item% is dirt
이 때문에 자바 개발 보다 스크립트 개발을 먼저 접하신 분들은 혼동하는 경우가 많습니다.
마린잉엥님이 작성하신 make player see dirt as air 에서 dirt는 사실 메터리얼을 의미합니다만,
스크립트에서는 매터리얼 개념을 사용하지 않아서 아이템 타입이라고 부르고 있습니다.

마린잉엥
2020.11.10
@스크립터브혼

음... 내용이 어떤 말씀인지 잘 이해가 안됩니다.

흙은 매터리얼 블럭이지만 아이템이다..?

혹시 make player see %block% as %item type%에서

적용되는 예시로 1개만 알려주실 수 있을까요?

스크립터브혼
2020.11.10
@마린잉엥

make player see block at player as dirt

make player see target block as campfire[facing=south]

 

블록 성분 : 매터리얼, 좌표, 방향, 블록 태그... 등

아이템 성분 : 매터리얼, 스택, 메타데이터, 아이템 태그, 플래그... 등

마린잉엥
2020.11.10
@스크립터브혼

해당 내용을 해봤는데요 전체가 바뀌는 게 아니라 가짜 블럭이 생성되어서

구현이 많이 어렵겠네요

혹시 우클릭시 플레이어에게 리소스팩을 다운로드하게 하여 강제로 리소스팩을

적용시킬 수 있는 스크립트 있을까요?