개인 자료란 (JE)

  서버 커뮤니티

한국 마인크래프트 포럼

마인크래프트 자료 및 커뮤니티 플랫폼

전체 회원수 122,998명 ( +40명 )

※ 장기간 미활동 회원 제외

Profile 유타 대표칭호 없음

Yuta_BOT 98fe88f0ea7149eab88ad13ea3509175

Profile

커뮤니티new 개발자란new 개발자 강좌new 스크립트

스크립트(Skript) 강좌 [ 2. 이벤트, 컨디션, 익스프레션, 이펙트, 타입,함수 ]

2021.07.25 조회 수 359 추천 수 1

스크립트(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: 가 무조건 따라와야 작동합니다. 

080c5432a0f65f38ab543ecf8ed02d00.PNG

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) 구문 작성 

위에 배운 구문들로 간단한 기능을 만들어보겠습니다.

1d7835db2f17966696a2e54a93b8a1b6.PNG

위는 간단한 구문d487d77f1b5e01b853fa9d056ee42d23.PNG

위는 조금 심화된 구문입니다. 이해는 하실 수 있을겁니다. 스크립트는 기본적으로 영어만 좀 알면 할 수 있기 때문에...

오늘 강좌는 여기서 마치도록 하겠습니다. 다음에는 아마 변수 강좌가 되지 않을까 싶습니다. 스크립트 질문은 여기 오셔서 질문해주시면 저나 다른 분들이 도움주실 수 있으니 참고하시길 바랍니다. 궁금한 점 있으시면 댓글 남겨주시면 감사하겠습니다.


1개의 댓글

명이
2021.07.27

오 스크립트의 여러 구성 요소들을 알려주시네요

컨텐츠
https://www.koreaminecraft.net/files/thumbnails/180/890/002/262x150.crop.jpg?20211025201038

시험지

한마탐 5주차 (한마포 마인크래프트 탐구 영역) (10 / 25) 3

베개냥이

2021-10-25

2

https://www.koreaminecraft.net/files/thumbnails/291/881/002/262x150.crop.jpg?20211021165153

데일리픽

초간단 전투기 만들기 8

megat88

2021-10-20

4

https://www.koreaminecraft.net/files/thumbnails/850/878/002/262x150.crop.jpg?20211018191640
(포션 시리즈) 3편 - 비 3

GlassesFilm

2021-10-18

4