개인 자료란 (JE)

  서버 커뮤니티

Profile SpringOnionEgg 대표칭호 없음
Profile

강좌 자바 에디션(JE) 플러그인 개발

스크립트(Skript) 강좌 2강 - 기초

2019.11.24 조회 수 3779 추천 수 1
분야 스크립트 
게임버전 1.12.x, 1.13.x, 1.14.x 

 

안녕하세요 파란입니다!

 

 

 

오늘은 본격적으로 스크립트 강좌를 시작하려고합니다. ^ㅇ^

 

강좌에 사용되는 에드온과 프로그램은 강좌 1강을 확인하시면 보실 수 있습니다 :)

 

 

 

먼저 이전 강좌에서 설치해놓은 Nodepad++를 실행시킵시다.

 

강의2-1.PNG

 

그럼 이런 창이 뜰겁니다.

 

 

 

강의2-2.PNG

 

 

 

먼저 위 사진을 그대로 입력해봅시다.

 


참고로 문장 맨앞의 들여쓰기는 구별하기 편한 Tab을 사용하고 있습니다.

 

 

힘들게 작성한 코드를 날려버리면 안되니 ctrl+s 를 눌러 저장도 꾸준히 해줍시다!


저장 위치는 plugins->Skript->skirpts에 저장하셔야합니다.

또한 저장할 때 파일이름에 .sk를 붙여야 스크립트로써 저장됩니다.

 

.sk를 붙이지 않으면 일반 텍스트문서로 저장되고 맙니다 ㅠㅠ

 

 

강의2-4.png

 

 

 

저장된 스크립트를 서버에 적용시키려면 서버를 리로드하는 방법도 있지만 더 간편한 방법이 있습니다. 

/sk reload [스크립트이름] 명령어를 입력하면 수정한 스크립트를 바로 적용시킬 수 있습니다.

 

 

서버에서 적용까지 마쳤다면 이제 작성한 코드를 분석해봅시다!

 

 

2,3,4줄에는 한글로 설명이 써있습니다.

#을 코드의 앞에 붙이면 그 줄이 주석처리가 되어 프로그램이 코드로써 인식하지 않습니다.

그래서 어려운 코드에 주석을 이용해 설명을 적어놓곤하죠!

이렇게 주석을 습관화하면 예전에 작성한 프로그램을 다시 볼때 다시 파악하는데 큰 도움이 됩니다.

 

 

8,9줄에서는 /hello 라는 명령어를 생성합니다.

command [생성할명령어]:

         trigger:

이 두줄은 한 세트로 생각해야합니다.

실제로 명령어를 생성할 때 trigger: 를 빼먹어 오류가 생기는 경우가 많으니 꼭 기억해두세요!

 

 

10번째 줄의 send" " 안의 메시지를 자신에게 출력해줍니다.

 

 

11번째 줄은의 stop은 말 그대로 진행중인 코드를 멈춰주는 역할입니다.

 

 

15번쨰 줄에서는 새로운 /hello2 라는 명령어를 새롭게 생성하고 있습니다.

그런데 이번에는 [<text>]라는 것이 있군요?

이것은 서버내에서 해당 명령어를 입력할때 추가로 입력받는 요소입니다. 

ex) kill [플레이어]

 

하나뿐이 아니라 여러개를 추가할 수도 있습니다. 

ex) command /hello [<text>] [<text>] [<text>]:

 

또한 text(문자)뿐만 아니라 integer(정수), player(플레이어) 등 다양하게 설정할 수 있습니다.

 

 

17번째 줄은 send의 "" 안의 문자를 출력하니 %arg 1%를 출력할겁니다.

하지만 arg 1은 명령어로 입력받은 정보 [<text>] 를 담고있습니다. 

하지만 send " arg 1 " 이라고한다면 진짜 arg 1이라는 글자 자체가 출력됩니다.

그래서 정보가 담긴 것들을 출력할 때%% 퍼센트기호로 감싸야만 그것이 가진 정보가 출력됩니다.

이 코드에서는 '/hello2 안녕애들아' 를 입력했다면 '안녕애들아' 가 출력됩니다.

 

 

18번째 줄의 broadcast ""는 모든 플레이어에게 "" 안의 문자를 출력합니다.

 

 

18,19,20 줄은 모두 비슷한 기능을 가지고 있습니다.

"" 안의 명령어를 실행시키는 기능이죠.

하지만 조금씩 다르게 쓰입니다.

 

execute command ""는 명령어를 실행시키는 주체가 콘솔(버킷)이 됩니다.

execute player command ""는 명령어를 실행시키는 주체가 플레이어가 됩니다.

execute op command ""는 명령어를 실행시키는 주체는 플레이어로 같지만 op의 권한으로 실행됩니다.

 

 

한번 '/hello2 안녕 모두들!' 명령어를 서버에서 직접 입력해봅시다.

그러면 아마 안녕 모두들! 이라는 문장이 다른 방식으로 5번 출력될겁니다.

정말 뻔한 결과죠(?)

 

 

 

 

이번 강좌는 약간 기초적인 것들만 다루어 봤습니다.

 

추가로 오늘 배운 내용을 바탕으로 제작한 재밌는 코드를 파일에 첨부해두었으니 

 

시간이 나시면 한번 보고가시길 바랍니다!




10개의 댓글

아이스틴
2019.11.24

오우... 스크립트 쉬운줄 알았는데 약간 어렵네요! 천천히 따라해봐야겠어요.....

좋은 강의 써주셔서 감사합니다~!

SpringOnionEgg
2019.11.24
@아이스틴

쓸때 없이 어렵게 쓴듯..ㅠㅠ

뭔가 스크립트는 기초부터 천천히 알려주려고하면 더 어려워지는 이상한 시스템...

마크초보레오
2020.10.30

.sk로 해도 텍스트 문서로 저장이 됩니다

이를 어찌하죠ㅠㅠ

@마크초보레오

파일 설정에서 보기 누르시고 확장자명보이게 설정하셨나요?

마크초보레오
2020.10.30
@야옹아멍멍해봐

했는데 .sk가 아니라

.sk.text로 나와요

@마크초보레오

그러면 .sk.text를 .sk 가 되게 지우셔야죠

로스06
2021.10.19

command /tpa [<player>]:

trigger:

send "%arg 1%에게 이동중!"

execute op command "tp %arg 1%"

을 했는데 op 있는 플레이어만 tp가 되는데 어떻게 해야 op가 없는 플레이어도 이동 가능 한가요?

빵떡404
2022.10.14

이 명령어가 실행돼지않아요

원인은 "",{},[] 과 같이 skript 의 명령적 택스트때문인거 같은대 이것을 무시할 방법은 없나요?

command /cp1:

executable by: players

trigger:

execute player command "execute as @s run tellraw @s [""{"color":"red","text":"히"},{"color":"green","text":"히"}]"

마리오
2022.12.13

다 좋은데 예문이랑 설명이 너무 떨어져 있어요ㅠㅠ

뉴스 및 창작물
/files/thumbnails/246/933/003/262x150.crop.jpg?20241204080049

업데이트

[마인크래프트 1.21.4 업데이트]

제작대

2024-12-04

0

/files/thumbnails/477/930/003/262x150.crop.jpg?20241201030912

레드스톤

뉴진스 - Super Shy | 마크 노트블럭 커버

노트블럭전문가

2024-12-01

0

/files/thumbnails/483/916/003/262x150.crop.jpg?20241127115329

레드스톤

[노트블럭 커버] 뉴진스 - ETA 3

노트블럭전문가

2024-11-27

1

/files/thumbnails/150/925/003/262x150.crop.jpg?20241123005717

건축

응답하라 1988 ? 1

팀뉴일리시

2024-11-23

5

/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 6

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2