Yuta_BOT 98fe88f0ea7149eab88ad13ea3509175
강좌 및 개발 개발자란 개발자 강좌 스크립트
스크립트(Skript) 강좌 [ 2. 이벤트, 컨디션, 익스프레션, 이펙트, 타입,함수 ]
스크립트(Skript) 강좌 [ 2. 이벤트,컨디션,익스프레션,이펙트,타입,함수 ]
#저번 강좌에 이어 두 번째 강좌를 작성하게 되었습니다.저번 강좌의 내용을 보지 못하신 초보분이시라면 여기 를 클릭해주세요.
(1) 스크립트의 구성요소
스크립트는 다양한 구문들로 구성되어 있습니다. 그 구문들은 이벤트, 컨디션, 익스프레션, 이펙트, 타입,함수 정도로 나눌 수 있습니다. 함수를 만들 수 있지만 함수 제작은 초보자분들이 하기에 꽤 어려운 부분이기 때문에 따로 강좌를 적도록 하겠습니다.
(2.1) 이벤트(Events)란?
이벤트는 어떤 하나의 동작이 일어났을 때 호출되는 구문을 말합니다.이 이벤트들은 항상 스크립트 구문의 첫 번째에 와서 구문이 실행되게 해줍니다.
예를 몇개만 들어보자면
on rightclick: | 플레이어가 좌클릭을 할 때 호출됩니다. |
on chat: | 플레이어가 채팅을 칠 때 호출됩니다. |
on damage: | 엔티티 혹은 플레이어가 데미지를 주거나 받을 때 실행됩니다. |
every %timespan%: | 특정 시간마다 계속 호출됩니다. 실행자가 존재하지 않습니다. |
on place: | 플레이어가 블럭을 설치할 때 호출됩니다. |
on break: | 플레이어가 블럭을 부술 때 호출됩니다. |
이외에도 다양한 이벤트들이 존재합니다.
(2.2) 커맨드
이벤트와 비슷하게 사용되는 구문이 있습니다. 바로 새로 명령어를 만들 수 있는 command 구문이 존재합니다. command 구문은 command /명령어: 꼴로 사용됩니다. 뒤에 argument(이하 arg)로 타입들이 붙을 수 있습니다. command /명령어 [<player>] [<text>] [<block>]: 처럼 arg 는 명령어 뒤에 몇 개든 붙을 수 있고 나타낼 때는 arg 1, arg 2 이런 식으로 나타냅니다. command 구문 뒤에는 trigger: 가 무조건 따라와야 작동합니다.
cooldown 에도 익스프레션이 존재합니다.
remaining time | 남은 쿨타임 시간을 나타냅니다. |
elapsed time | 최근 사용한 시간으로부터 지난 시간을 나타냅니다. |
last usage | 마지막으로 사용한 시간을 나타냅니다. |
cooldown | 명령어의 쿨타임을 나타냅니다. |
cooldown bypass | 쿨타임을 무시할 수 있는 권한을 나타냅니다. |
(3) 컨디션(Conditions)이란?
컨디션은 만약 ~~ 라면 의 뜻으로 비교를 하거나 판단할 때 사용되는 구문입니다. 몇개의 예로는
%player% is op | 만약 해당 플레이어가 op 일때 이 뒤의 구문들이 실행됩니다. |
%player% is sneaking | 만약 해당 플레이어가 쉬프트를 누른 채로 있다면 이 뒤의 구문들이 실행됩니다. |
%entities% is on ground | 만약 해당 엔티티가 땅에 발을 딛고 있다면 이 뒤의 구문들이 실행됩니다. |
%inventory/strings/objects% contain %itemtypes/strings/objects% | 여러 개의 값을 가진 것이나 텍스트에 아이템, 텍스트, 오브젝트가 포함되어있다면 이 뒤의 구문들이 실행됩니다. |
이외에도 많은 컨디션들이 존재합니다. 컨디션은 보통 if ~: 의 형태로 사용됩니다.else: 를 사용하여 ~~이 아닐 때의 형태로도 사용할 수 있고, else if ~: 를 사용하여 ~가 아니고 ~일때 로 사용할 수 있습니다..여기서 잘 이해하기 어려우시다면 마지막에 예문들이 있으니 그걸 보고 이해하시면 되겠습니다.
(4) 익스프레션(Expressions)이란?
익스프레션은 무엇을 표현하는 표현식이라고 생각하시면 됩니다. 플레이어의 이름, 아이템의 개수, 모든 플레이어의 수, 혹은 특정 이벤트에서만 사용할 수 있는 익스프레션도 존재합니다. 같은 구문인데도 전혀 다르게 쓰이는 경우가 많아 익스프레션은 예를 보여주기보다는 찾아보시는게 좋습니다.몇몇개는 외워두셔야 편합니다
(5) 이펙트(Effects)란?
이펙트는 수행할 동작을 말합니다. 스크립트에서 가장 많이 쓰이는 구문 종류입니다.
Set/Add/Remove/Delete/Reset %objects% (to/to/from %objects%) | 특정 오브젝트를 설정/추가/제거/삭제/초기화 합니다. |
send %string% to %player% | 플레이어에게 메세지를 보냅니다. |
cancel event | 이벤트의 동작을 취소합니다. |
teleport %entities% to %location% | 해당 엔티티를 원하는 위치로 텔레포트합니다. |
create explosion of %number% at %location% | 폭발을 일으킵니다. 이외에도 터질 때 땅에 불이 붙을 것인지, 데미지를 입지 않는 가짜 폭발을 일으킬 것인지 설정할 수 있습니다. |
등등 많습니다.
(6) 타입(Types)이란?
타입은 종류를 나타냅니다.
Enchantment | 모든 인챈트의 종류를 나타냅니다. |
Boolean | 참과 거짓을 나타냅니다. |
Item type | 아이템의 타입을 나타냅니다. |
Number | 유리수라고 생각하시면 편합니다. |
Entity type | 엔티티의 타입입니다. player, zombie 등을 포함하고 있습니다. |
Text/String | 문자열을 나타냅니다. 기본적인것은 "~" 로 나타내고 " 를 쓰기 위해서는 두 개를 붙여 사용합니다. """" = " 출력. 익스프레션은 %% 사이에 넣어 사용합니다. 마찬가지로 %를 사용하기 위해서는 두 개를 붙여 사용합니다. "%%" = % 출력 |
(7) 함수(Functions)란?
함수는 익스프레션과 비슷한 기능을 합니다.함수 대부분은 수학과 관련된 함수들입니다.
location(x, y, z, world) | 좌표를 나타냅니다. Teleport 혹은 좌표를 확인할 때 많이 사용합니다. |
ceil(number) | 소수점 올림한 값을 반환합니다. |
floor(number) | 소수점 내림한 값을 반환합니다. |
round(number) | 소수점 반올림한 값을 반환합니다. |
sqrt(number) | 루트 값을 나타냅니다. 소수점 넷째 자리까지만 보여집니다. |
이외에도 수학 관련된 함수가 많아 잘 아시는 분들은 유용하게 사용할 수 있습니다.
(8) 구문 작성
위에 배운 구문들로 간단한 기능을 만들어보겠습니다.
위는 간단한 구문
위는 조금 심화된 구문입니다. 이해는 하실 수 있을겁니다. 스크립트는 기본적으로 영어만 좀 알면 할 수 있기 때문에...
오늘 강좌는 여기서 마치도록 하겠습니다. 다음에는 아마 변수 강좌가 되지 않을까 싶습니다. 스크립트 질문은 여기 오셔서 질문해주시면 저나 다른 분들이 도움주실 수 있으니 참고하시길 바랍니다. 궁금한 점 있으시면 댓글 남겨주시면 감사하겠습니다.
명이
2021.07.27오 스크립트의 여러 구성 요소들을 알려주시네요