개인 자료란 (JE)

  서버 커뮤니티

Profile 프란델 대표칭호 없음

Peurandel 3d3d482e35a54679a3c22d0f505dc661

Profile

커뮤니티 소통 잡담하기

발전과제? 최고의 응용법!

2021.09.01 조회 수 141 추천 수 1

데이터팩 컨텐츠를 즐겨주시고 만드시는 여러분 반갑습니다.

데이터팩에는 발전과제를 추가해주는 기능이 있다는 사실을 제작하시는 분이라면 잘아시리라 믿습니다.


우리는 보통 이걸 건들여보기전에 "발전과제? 쓸만하긴 하겠는데 지금 나한텐 딱히 쓸데 없겠다."라고 생각하시게될 사람 여럿 있을거 같습니다. 저 또한 그랬구요.


커맨드와 데이터팩을 하시는 여러분 중 몇몇은 이 문제에 대해서 굉장히 난감함을 가졌을 것 같습니다.

이 문제란 여러가지가 있는데 대표적으로 활 당기기와 방패로 막기가 있죠.

스코어보드 minecraft.used로도 잘 감지가 안되는 그 녀석들! 이 문제를 해결할 방법은 바로 데이터팩의 발전과제에 있었습니다!


우선 같이 활을 당기는걸 감지해볼까요?

아래와 같이 코드를 짜주세요.

{

    "criteria": {

        "using_bow": {

            "trigger": "minecraft:using_item",

            "conditions": {

                "item": {

                "items": ["minecraft:bow"]

                }

            }

        }

    },

    "rewards":{

        "function" : "script:rewards/using_bow"

    }

}


와 같이 작성하면 활당기는것을 발전과제에 추가하여 발전과제를 클리어함과 동시 그것을 감지할 수 있습니다!


어, 프란델님 reward가 뭐에요?

reward는 발전과제를 달성하였을 시 작동하는 명령이라고 생각하시면 이해가 빠릅니다.

활 당기기 발전과제를 달성하셨다면 아래 저 함수가 실행되게 하는 것이죠.


그렇다면, 저 함수에는 무엇이 적혀 있을까요?

우리는 활 당기는것을 감지하고 싶습니다. 다만 발전과제는 1회성에 지나지 않죠. 그래서 발전과제를 달성함과 동시에 발전과제를 제거하는 명령을 만들어줘야겠지요.

그래서 저렇게 작성된 것입니다.


어라, 프란델님 바로 발전과제를 취소해버리면 활당기기를 감지할 수 없지 않나요?

이 부분은 여러분의 능... 아니 임기응변력에 달렸습니다.

저 함수는 겨우 한줄의 명령만 실행되게 하지는 않을것이리라 믿습니다.


이 기능은 당연히 활을 당기는것 뿐만 아닌 방패로 막기... 어... 그외 여러가지 에매했던 판정들을 대부분 감지할 수 있게 도와줍니다. 여러분도 이 글을 참조하여 멋진 데이터팩, 컨텐츠를 제작함에 있어서 도움이 되셨으면 좋겠습니다.


Thank you beautiful people I really love you

Thank you, Plume! 




3개의 댓글

아스드프
2021.09.01

잠만.... 근데 애초에 reward에다가 function 이런식으로 하거나 트리거로 써먹을 스코어를 올리든가 하면.... 딴 펑션파일과의 연계도 가능하겠네요

프란델
2021.09.01
@아스드프

그럼요:)

허두
2021.09.01

이거 이용해서 플레이어 죽인 카운트라던지 그런것도 하기 좋더라구요 :)