본문 바로가기
마인크래프트/Skript 기초 이론편

스크립트 기초 이론 4편(이벤트)

by 스터디립트 2022. 2. 19.

스터디립트의 마인크래프트 스크립트 기초 이론편의 4번째 시간입니다.

이번 시간에는 이벤트에 대해서 알아보도록 하겠습니다.

 

스크립트에서의 이벤트란, "어떠한 일이 일어났을때" 라는 것을 의미합니다.

예를 들어 플레이어가 들어왔을 때, 라는 것을 스크립트에서 만든다면

 

 

on join:
    [구문]

과 같은 형식으로 만들어질것입니다.

이벤트문은 커스텀 명령어와는 달리 "trigger:" 를 넣지 않습니다.

이벤트문에도 여러가지가 있습니다. 여러 이벤트문들은 기초 이론 강좌/기초 활용 강좌에서 알려드릴 예정입니다.

 

스크립트 기초 이론 2편(커스텀 명령어) 에서 제가 send 구문을 알려드릴때, 보내는 대상이 명확하지 않는 구문일 시에는 오류가 날 수 있다고 알려드렸습니다. 그 보내는 대상이 명확하지 않는 구문중 많은 것들이 이벤트문에 속합니다.

예를 들어서, 데미지를 입었을때 라는 내용의 이벤트문을 예를 들어서 설명드리겠습니다.

데미지를 입었을때 "아이쿠!" 라는 내용의 채팅이 출력되게 해볼까요?

많은 분들이

 

on damage:
    send "아이쿠!"

라고 생각하실겁니다.

하지만 이 구문은 오류가 납니다. 그 이유는, 명령어를 실행한 대상이 명확하지 않기 때문입니다.

이벤트문에서는 반드시 구문뒤에 대상을 써주어야 합니다.

다른 이벤트문이라면,

 

 

send "아이쿠!" to player
 

와 같은 형식으로 구문을 작동시키겠지만, on damage 이벤트문은, player 대신에 victim을 사용해야 합니다.

(+) victim = 공격을 받은 사람 / attacker = 공격을 한 사람

왜냐하면 그냥 player로 사용을 해버리면, 구문의 player가 공격을 한 플레이어인지, 공격을 받은 플레이어인지가 명확하지 않기에 오류가 나기 때문입니다.

따라서 배운것을 토대로 다시 만들어보면,

 

on damage:
   send "아이쿠!" to victim

와 같은 형식으로 만들게 됩니다.

실제로 이대로 구문을 만들어서 테스트를 해보면,

 

 

이렇게 데미지를 입었을때, 데미지를 입은 대상에게 "아이쿠!" 라는 메시지가 출력되는것을 볼 수 있습니다.

 

스터디립트의 마인크래프트 스크립트 기초 이론편 4편은 여기서 끝입니다.

다음 시간에는 배열변수에 대해서 알아보도록 하겠습니다.

 

질문이 있으시다면 이 글의 댓글에 적어주시면 답변해드리겠습니다

 

댓글