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

스크립트 기초 이론 6편(루프)

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

 

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

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

 

우선 루프에는 여러가지 종류가 있습니다.

더 많은 것들이 있지만, 이번 시간에는 이 3가지만 알려드리도록 하겠습니다.

loop ~ times:

loop all players:

loop {배열변수::*}:

 

 

 

또한, 루프 출력값에도 여러가지가 있습니다.

loop-value = 루프한 배열변수의 값

loop-index = 루프한 배열변수의 변수이름

loop-number = 루프한 횟수

loop-player = 루프한 플레이어

 

우선 루프를 크게 보자면, ~번 반복하다, ~를 훑어보다 정도로 해석할 수 있겠습니다.

 

우선 첫번째로 loop ~ times: 부터 설명드리겠습니다.

loop ~ times는, ~ 횟수만큼 구문을 반복한다는 뜻입니다.

예를 들어,

 

command /test: #/test 라는 명령어 생성
    trigger:
        loop 5 times: #5번 반복한다
            send "ㅜㅘ!" #"ㅜㅘ!" 라고 명령어를 사용한 대상에게 보낸다

라고 구문을 만들고 실험해보겠습니다.

 

 

이렇게 "ㅜㅘ!" 라는 값이 5번 출력되는것을 알 수 있습니다.

 

 

이 loop ~ times를 loop-number와 섞어서 사용해보면,

 

command /test: #/test라는 명령어 생성
    trigger:
        loop 5 times: #5번 반복한다
            send "%loop-number%" #반복한 횟수를 명령어를 실행한 대상에게 보낸다

 

와 같이 구문을 만들고 실험해보겠습니다.

 

 

이렇게 1번째 반복할땐 1, 2번째 반복할땐 2, 5번째 반복할땐 5 와 같이 반복한 횟수를 출력하는것을 볼 수 있습니다.

 

 

자 그러면 이제 loop all players: 에 대해 알아보겠습니다.

loop all players: 는, 모든 플레이어를 한번씩 훑어본다고 생각하시면 됩니다.

 

 

command /test: #/test 라는 명령어 생성
    trigger:
        loop all players: #모든 플레이어를 훑어본다
            send "%loop-value%" to loop-player #모든 플레이어를 훑어본 값(모든 플레이어들의 닉네임)을 루프한 플레이어에게 보낸다

 

위와 같이 스크립트를 만들고 테스트해보겠습니다.

 

 

이렇게 제 마인크래프트 닉네임이 잘 출력되는것을 볼 수 있습니다. 만약 서버에 저 말고 다른 사람이 있었다면, 그 사람 닉네임까지 포함되어서 저랑 그 사람에게 출력되었을겁니다.

 

마지막으로, loop {배열변수::*}: 에 대해서 알아보도록 하겠습니다.

loop {배열변수::*} 는, {배열변수::*}를 한번 훑어본다는 뜻입니다.

저번 쿨쿠리 마인크래프트 스크립트 기초 이론 강좌5편(배열변수) 에서, {배열변수::*}의 값들을 설정해놓았습니다.

이번에는 loop {배열변수::*} 를 이용해 그 값들을 차례대로 출력해보도록 하겠습니다.

 

command /test: #/test 라는 명령어 생성
    trigger:
        loop {배열변수::*}: #"배열변수" 라는 이름의 배열변수를 한번 훑어본다
            send "{배열변수::%loop-index%} = %loop-value%" #[변수명] = [변수값] 의 형태로 명령어를 실행한 대상에게 출력한다

 

위와 같이 스크립트를 만든뒤, 한번 실험해보겠습니다.

 

 

 

위와 같이 변수명과 변수값이 설정해놓은대로 잘 출력되는것을 볼 수 있습니다.

 

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

다음 시간에는 옵션에 대해서 알아보도록 하겠습니다.

 

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

 

 

댓글