분야 | 스크립트 |
---|---|
게임버전 | 1.12.x, 1.13.x, 1.14.x |
안녕하세요 파란입니다!
오늘은 본격적으로 스크립트 강좌를 시작하려고합니다. ^ㅇ^
강좌에 사용되는 에드온과 프로그램은 강좌 1강을 확인하시면 보실 수 있습니다 :)
먼저 이전 강좌에서 설치해놓은 Nodepad++를 실행시킵시다.
그럼 이런 창이 뜰겁니다.
먼저 위 사진을 그대로 입력해봅시다.
참고로 문장 맨앞의 들여쓰기는 구별하기 편한 Tab을 사용하고 있습니다.
힘들게 작성한 코드를 날려버리면 안되니 ctrl+s 를 눌러 저장도 꾸준히 해줍시다!
저장 위치는 plugins->Skript->skirpts에 저장하셔야합니다.
또한 저장할 때 파일이름에 .sk를 붙여야 스크립트로써 저장됩니다.
.sk를 붙이지 않으면 일반 텍스트문서로 저장되고 맙니다 ㅠㅠ
저장된 스크립트를 서버에 적용시키려면 서버를 리로드하는 방법도 있지만 더 간편한 방법이 있습니다.
/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번 출력될겁니다.
정말 뻔한 결과죠(?)
이번 강좌는 약간 기초적인 것들만 다루어 봤습니다.
추가로 오늘 배운 내용을 바탕으로 제작한 재밌는 코드를 파일에 첨부해두었으니
시간이 나시면 한번 보고가시길 바랍니다!
아이스틴
2019.11.24오우... 스크립트 쉬운줄 알았는데 약간 어렵네요! 천천히 따라해봐야겠어요.....
좋은 강의 써주셔서 감사합니다~!
SpringOnionEgg
2019.11.24쓸때 없이 어렵게 쓴듯..ㅠㅠ
뭔가 스크립트는 기초부터 천천히 알려주려고하면 더 어려워지는 이상한 시스템...
gjo173
2020.06.01ㄳㄳ
마크초보레오
2020.10.30.sk로 해도 텍스트 문서로 저장이 됩니다
이를 어찌하죠ㅠㅠ
야옹아멍멍해봐
2020.10.30파일 설정에서 보기 누르시고 확장자명보이게 설정하셨나요?
마크초보레오
2020.10.30했는데 .sk가 아니라
.sk.text로 나와요
닉네임이 다 중복임
2021.03.06그러면 .sk.text를 .sk 가 되게 지우셔야죠
로스06
2021.10.19command /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다 좋은데 예문이랑 설명이 너무 떨어져 있어요ㅠㅠ