스크립트를 만들다보면 에러는 꼭 발생한다.

 

에러가 발생하면 플러그인은 붉은 색 에러 메시지와 함께 몇 번째 줄에서 어떤 문제가 생겼는지 설명해준다.

 

이런 오류들은 만나다보면 익숙해지지만, 처음 접하게 되면 어디를 고쳐야 할 지 몰라 헤멜 수도 있다.

 

이 글에서는 특히 스크립트 입문자에게 자주 발생하는 문법 오류를 위주로 간단하게 설명해보려고 한다.

 

 

 

 

1. 괄호 또는 큰따옴표의 열고 닫기가 잘못됨

 

 

 

2. 들여쓰기가 제대로 되지 않음

 

 

 

3. 콜론(:)을 붙이지 않음

 

 

 

4. 코드 앞 공백이 탭(Tab)이 아니라 스페이스 바(spaces)임 * 인터넷에서 코드를 복붙할 때 자주 발생

 

 

 

5. 오타

 

 

오류가 발생하는 이유는 많지만, 처음에는 이정도만 알고 있어도 문제가 되지 않는다.

 

추가로 오류가 발생할 수 있는 부분에 대해서는 해당 글에 추가로 전달해주려고 한다.

 

 

 

 

이렇게 스크립트-기초의 연재가 마무리되었다.

 

다음 글부터는 두 개의 카테고리에 나뉘어서 글을 올릴 계획이다.

 

 

스크립트-활용 카테고리에는 스크립트를 접하고 본격적으로 실사용 스크립트들을 ,

 

스크립트-심화 카테고리에서는 내용이 어렵거나 규모가 큰 스크립트에 대해서 다뤄볼 예정이다.

처음부터 보기 - mon0rail.tistory.com/2

 

변수란 이름이 적힌 하나의 상자다.

 

상자의 이름에는 이 안에 무엇이 들어갈 지를 알려주고, 그 내용물은 직접 열어보기 전까지는 알 수 없다.

 

왜냐하면 상자 속 내용물은 수시로 바뀌기 때문이다.

 

 

이제 우리는 스크립트 속에서 상자들을 다룰 것이다.

 

 

 

 

이번에는 전 시간에 만들었던 command.sk에 코드를 이어서 추가할 계획이다.

 

 

command /world:
	trigger:
		set {hello.world} to "Hello world!"
		send {hello.world}

 

위 코드를 넣고 /sk reload command를 실행시킨다.

 

 

 

그 뒤 명령어 /world를 실행시키면 /hello와 똑같은 메시지가 출력된다.

 

이는 {hello.world}라는 변수를 "Hello world!"라는 텍스트로 지정(set)했기 때문이다.

 

 

 

command /diamond:
	trigger:
		set {diamond} to diamond
		give {diamond} to player
		send "다이아몬드를 받았습니다."

 

변수에는 텍스트가 들어가도 되지만, 다른 것이 들어갈 수도 있다.

 

위 예시는 {diamond}라는 변수에 다이아몬드를 저장한 뒤, give를 사용하여 아이템을 주는 명령어이다.

 

 

 

 

 

앞으로 변수를 지정하고 사용하는 일이 굉장히 많을 것이다.

 

변수의 활용은 어렵기 때문에 이 내용은 스크립트-응용 편에서 다시 다루도록 하겠다.

 

다음 편에선 오류의 발생과 원인에 대해서 간단히 알아볼 예정이다.

1화부터 보기 - mon0rail.tistory.com/2

 

편의상 예시 파일들은 모두 삭제하였다. 혼자 공부하고 싶다면 다른 곳에 옮겨두고 읽어보는 것을 추천한다.

 

이전 글에서 플레이어가 접속했을 때 Hello world! 메시지를 출력하는 스크립트를 작성해두었다.

 

이제는 본론이라고 할 수 있는 명령어를 직접 만들어보기로 한다

 

 

 

 

Notepad++를 다시 실행하면, 저번에 만들었던 hello.sk의 코드가 남아있다.

 

Ctrl+N 단축키를 눌러 새 파일을 만들어준다.

 

 

 

새로운 파일에 아래와 같은 코드를 적어준다.

 

command /hello:
	trigger:
		send "Hello world!"

 

주의: 들여쓰기를 정확히 했는지, 콜론(:)을 정확히 붙였는지 확인해야한다.

 

마찬가지로 이 파일을 command.sk 이라고 저장해주고, /sk reload command 명령어로 스크립트를 활성화해준다.

 

파일 형식을 꼭 All types(*.*)으로 해주는 것을 잊지 말아야 한다.

 

 

 

 

command.sk를 활성화시키고 나면 /hello 라는 명령어가 추가된다.

 

추가된 명령어는 자동완성에도 뜨기 때문에 편하게 실행시킬 수 있다.

 

/hello 명령어를 실제로 실행하여 Hello world! 라는 텍스트가 출력되는지 확인해보자.

 

 

다음 편에서는 변수라는 것을 스크립트에 사용해볼 예정이다.

1화부터 보기 - mon0rail.tistory.com/2

 

 

스크립트 플러그인을 다운받아 plugins 폴더에 넣고, 서버를 재부팅하면 plugins/Skript 폴더가 생성되어있다

 

scripts 폴더에 들어가준다.

 

 

 

scripts 폴더에 들어가면 많은 예시 스크립트들이 미리 마련되어있다.

 

이제 Notepad++를 실행시켜준다. (워드패드로도 가능하지만, 추천하지 않음)

 

 

이제 이 곳이 스크립트를 작성/수정할 곳이다.

 

파이썬을 배운 사람이라면 문법이 비슷한 부분이 있기 때문에 좀 더 수월하게 스크립트를 익힐 수 있다.

 

 

 

 

on join:
	send "Hello world!"

 

보통 프로그래밍을 처음 할 때 만드는 Hello world 출력문을 입력해준다.

 

2번째 줄을 적기 전에는 Tab 버튼을 눌러 들여쓰기를 해야지 오류가 발생하지 않는다.

 

 

 

 

 

이 파일을 아까 scripts 폴더에 저장해주되, 파일 형식을 All types (*.*)으로 선택해주고,

 

파일 이름은 hello.sk으로 해준다.

 

그리고 서버에 접속하여 /sk reload hello 를 입력해준다.

 

 

 

 

그럼 이렇게 Successfully reloaded hello.sk 메시지가 나오면서 첫 스크립트가 작동을 시작했다.

 

on join은 플레이어가 접속했을 때 실행되므로 재접속을 하면 Hello world! 라는 메시지가 출력된다.

 

 

이렇게 첫 스크립트를 만들고, 작동시키는 데 성공하였다. 

 

다음 편에서는 커스텀 명령어를 만들어볼 예정이다.

가끔 마인크래프트 서버를 돌아다니면 여러 커스텀 명령어가 있는 경우가 많다.

 

이는 이전에 여러 개발자들이 만들어놓은 플러그인(Plug-in)을 사용하는 경우가 대부분이다. 플러그인은 서버 폴더 속 plugins 폴더에 .jar 파일을 넣고 서버를 재시작하는 것만으로도 작동하여 간편하고, 플러그인에 따라 여러 설정을 제공하여 어드민이 원하는대로 서버에 맞춰 설정을 변경할 수도 있다.

 

다만 마인크래프트 서버의 플러그인이 아무리 많다고 해도 어드민이 원하는 플러그인이 없거나, 서버에서 사용할 플러그인을 직접 만들고싶은 경우가 생기기 마련이다. 하지만 플러그인 제작에는 Java 프로그래밍 언어가 사용되기 때문에 쉽사리 시도하기 어렵다.

 

 

그리고 그런 서버 어드민들을 위하여 만들어진 플러그인이 있다. 바로 이 포스트에서 소개할 스크립트(Skript)이다.

 

스크립트 역시 플러그인이기 때문에 다른 플러그인들과 마찬가지로 먼저 .jar 파일을 다운받아 서버 폴더의 plugins 폴더 안에 넣고 서버를 재부팅해야한다. 스크립트 플러그인은 아래 링크에 접속하여 다운받을 수 있다.

 

https://github.com/SkriptLang/Skript/releases

 

SkriptLang/Skript

Skript is a Bukkit plugin which allows server admins to customize their server easily, but without the hassle of programming a plugin or asking/paying someone to program a plugin for them. - Skript...

github.com

 

글 마지막 수정일(20'9'12')으로 최신 버전은 2.4.1이며, 2.5의 베타 버전이 공개되어있다.

 

이 플러그인은 처음 실행했을땐 플러그인의 리로드와 업데이트를 제외한 어떠한 기능도 제공하지 않는다. 왜냐하면 그 기능을 만드는 것은 서버 어드민의 몫이기 때문이다. 다른 플러그인들이 자기의 이름을 적어둔 책이라면 스크립트는 빈 공책인 셈이다.

 

공책에는 본인이 원하는 대로 내용을 채워나갈 수 있듯, 스크립트 역시 어드민이 원하는 기능을 마음껏 추가하고 수정할 수 있다. 중등 영어 수준의 문법으로도 쉽게 코드를 만들 수 있으며, 서버를 재부팅하는 번거로움 없이 빠르게 서버에 적용할 수 있다.

 

스크립트로 서버를 개발할 때에는 코드가 담긴 파일을 워드패드로 열어도 되긴하지만, 가능하다면 notepad++를 사용하는 것을 추천한다. notepad++는 작성일 기준 7.8.9 버전까지 나와있으며, 아래 링크에서 다운받을 수 있다.

 

notepad-plus-plus.org/downloads/v7.8.9/

 

Notepad++ 7.8.9: Stand with Hong Kong | Notepad++

Notepad++ 7.8.9: Stand with Hong Kong Release Date: 2020-07-16 Download 32-bit x86 Download 64-bit x64 Download source code Download Notepad++ source code of current version and/or check sha-256 digests for binary packages on GitHub Integrity & Authenticit

notepad-plus-plus.org

 

notepad++까지 설치했다면 이제 스크립트를 시작할 준비가 되었다. 다음 포스트부터는 본격적으로 스크립트를 사용하는 방법에 대하여 작성할 예정이다.

+ Recent posts