마인크래프트 스크립트 구문 - mainkeulaepeuteu seukeulibteu gumun

nalag.tistory.com/4 - 마인크래프트 스크립트 강좌 #0 준비물
https://nalag.tistory.com/10 - 마인크래프트 스크립트 강좌 #1 기초
https://nalag.tistory.com/20- 마인크래프트 스크립트 강좌 #2 공부방법

이전까지는 기초적인 세팅이나 구조같은것을 알아보았습니다. 이번 강좌에서 알려드릴 내용은 공부법입니다. 

기본적인 공부는 원하는것들을 구현해보면서 구문을 찾아보고 다양한 다른 스크립트들 분석하면서 공부하면 좋을듯 합니다. 혹시 아이디어 가 없거나 혼자 제작하는게 어렵다 싶으시면 강좌 차근차근 따라가면서 익혀보시면 되겠습니다.

1. 질문하기

스스로 해결하기 힘든문제는 다른 고수분들한테 질문하는것 또한 좋은 방법입니다. 외국 커뮤니티는 번역기 사용하면 언어의 장벽따윈 무시할 수 있습니다.

Skript Community - 멤버 250명 정도의 국내의 스크립트 커뮤니티 입니다.

HKDev - 멤버 3000명정도 되는 국내 개발커뮤니티 스크립트 질문답변 채널도있습니다.

Skript Chat - 멤버 1300명정도 되는 해외 스크립트 커뮤니티 입니다.

skUnity - 멤버 5500명 정도되는 해외 스크립트 커뮤니티 입니다. 한국 채널도 있습니다.

네이버 지식인 - 이곳에서도 활동하는 분이 많고 익명이라서 부담없이 질문할수 있습니다. (특히 지식인 룰렛이벤트가 있어서 질문많이해주시면 오히려 좋습니다.)

한마포, 김태룡(네이버카페), 우마공(네이버카페) 도 있습니다.

2. 스스로 배우는 방법

스크립트를 하면서 질문을하면은 분명 쉽게 답을 얻을 수 있습니다. 하지만 그분들의 시간 또한 뺏는것이고 충분히 본인이 배울 수 있는것은 직접 하는것이 좋습니다.

(1). 스크립트 문서 찾아보기.

스크립트 에서 문서라는것이 있습니다. 문서에서는 스크립트에 어떠한 구문들이 있는지 확인할 수 있습니다. 이를 활용하여 모르는 구문을 찾을때 유용하게 사용할 수 있습니다. 위키같은것이라고 생각하시면 편합니다.

(1-1). 문서 활용 표현식(패턴) 알아보기.
예를들어 블럭을 파괴할수 없게하는 스크립트를 만들고싶다면
영어로로 부수다 = break 취소 = cancel 이렇게 검색하면되겠죠. 검색해서 나온 이벤트부분에서
[on] [block] (break[ing]|min(e|ing)) [[of] %itemtypes%] 이렇게 되어있는 부분을 활용하면 되는데요,
[on] [block] 과 같이 [ ] 로 씌어진것은 생략가능한 부분입니다.
(break[ing]|mine|ing)) 처럼 ( ) 로 씌어진것은 생략이 불가능한 부분입니다.
(break[ing]|mine|ing)) 에 | 는 '또는' 이라는 뜻입니다. break[ing] 또는 mine(e|ing)를 사용할 수 있다는 뜻이죠.
%itemtypes%처럼 % % 이렇게된것은 itemtypes 라는 유형을 사용할 수 있다는 뜻입니다.
itmetypes유형에 해당하는 돌이나 나무도끼 그런것들을 구문에 쓸 수 있죠.

이를 활용하여 다음과 같은 구문을 작성할 수 있습니다.
on block breaking of stone:, mine of stone:, break:

마인크래프트 스크립트 구문 - mainkeulaepeuteu seukeulibteu gumun
break: #블럭이 파괴되었을때 아래 구문들을 실행시킵니다.
    cancel event #해당 이벤트를 취소시킵니다.
on breaking of stone: #돌 블럭이 파괴되었을때 아래구문들을 실행시킵니다.
    cancel evnet #해당 이벤트를 취소 시킵니다.
on mine of stone: #파괴된 돌 블럭이 아이템을 떨어트릴때 아래 구문들을 실행시킵니다.
    cancel event # 해당 이벤트를 취소 시킵니다.

(1-2). 문서 링크.

스크립트 문서입니다. 공식문서에는 애드온 이나 검색기능 같은게 없어서 저는 개인적으로 SkriptHub를 지향하는편이고 하지만 문서마다 나오는 내용 같은게 다 달라서 상황이나 취향에 따라 적당히 원하는거 쓰시면됩니다.

https://skriptlang.github.io/Skript/index.html - 스크립트 공식문서 입니다.

https://skripthub.net/docs/- Skript Hub입니다. 애드온 구문과 검색기능 까지 포함하여 유용합니다.

Njol.ch- 스크립트 구문서로 command 나 변수 같은 개념이 잘정리 되어있습니다.

(2). 인터넷 에 검색하기

대부분의 내용은 구글이나 네이버에 검색만하면 다나옵니다. 한글로 검색하시고 자료가안나온다면 영어로 검색하시면됩니다. 영어를 몰라도됩니다. 예를들어 숫자를 1,000 이런식으로 통화로 바꾸는 스크립트를 만들고 싶습니다. 그렇다면 구글 번역기에 아래 처럼 적당히 작성한뒤 번역해 minecraft skript convert numbers to currency 이런검색어로 구글에 검색합니다. (영어 검색은 구글로)

그러면 많은 검색결과들이나오며 저는 그중 맨위에있는 것을 클릭해 들어가보았습니다.

마인크래프트 스크립트 구문 - mainkeulaepeuteu seukeulibteu gumun
마인크래프트 스크립트 구문 - mainkeulaepeuteu seukeulibteu gumun

그렇게 들어간 사이트에는 아래처럼 이에대한 구문이 작성되어있었습니다. 친절하게 사용방법도 알려주는군요. 영어를 모른다면 사이트 내에서는 구글 자동번역를 사용하면 될듯합니다.

마인크래프트 스크립트 구문 - mainkeulaepeuteu seukeulibteu gumun

3. 문제 해결방법

마지막으로 스크립트를 작성할때 발생하는 문제 해결 방법을 알아봅시다.
어떤것이 문제인지 정확히 파악하면 해결할때 더 빠르게 해결할 수 있고 질문을 할때 더 명확하게 할 수 있습니다.

(1). 구문오류

구문에 오타가 있거나 탭이나 스페이스바를 잘못눌러서 등 구문이 제대로 되어있지않으면 스크립트가 로드될때 에러메세지가 나타납니다. 에러메시지를 보고 해결하면됩니다. 이렇게 오류메세지가 뜨는 문제도 있는데 스크립트가 계획된것과 다르게 작동하지만 충돌은 일어나지않아 에러메세지가 뜨지않는 버그가 있는데 이를 해결하는게 제일 까다롭습니다. 직접 실행해보면서 문제있는부분을 발견한뒤 그부분의 구문에있는 문제를 찾아 계획대로 수정해주는게 좋습니다.

(1-1). 자주있는 구문오류

1. 들여쓰기 오류

스크립트 에서는 이벤트나 조건문 등 뒤에 : 이 붙은 구문 아래에 들여쓰기(1 tab or 4 space)를 해줘야합니다. 그리고 한 이벤트 내에서는 탭이나 space를 혼동하여 사용할 수 없습니다. 이를 어길경우 스크립트를 로드할때 아래와 같은 오류메세지가 나타나게 됩니다.

마인크래프트 스크립트 구문 - mainkeulaepeuteu seukeulibteu gumun

(2). 외부환경 문제

외부환경 문제는 플러그인이나 자버버전, 컴퓨터 성능 등등 다양한문제에서 발생하기에 하나씩 테스트해본것도 좋은 방법이 될 수 있습니다.