마히커에서는 반달을 방지하기 위해 비 로그인 사용자의 편집을 제한하고 있습니다. 기여하시려면 로그인하세요.

VariableTriggers (스크립트 설명)

마인크래프트 세계를 여행하는 히치하이커를 위한 안내서
이동: 둘러보기, 검색

스크립트는 이벤트나 플레이어에 의해 활성화되어 실행되기 전까지는 그저 텍스트 한 줄에 지나지 않습니다. 각 스크립트 라인은 한 번에 하나의 스크립트 커맨드 매개 변수를 갖습니다. 하지만, 필요하다면 트리거에 원하는 만큼 스크립트 라인을 추가할 수 있습니다. 트리거 및 스크립트 데이터는 쉽게 접근 가능한 YAML 형식으로 저장됩니다. 모든 트리거와 스크립트는 게임 내에서 만들어지며, 수동으로 YAML 파일을 편집할 필요는 없습니다. 만약 당신이 스크립트를 직접 편집하는 것을 더 좋아하는 사람이라면, YAML 파일을 편집할 때 주의해야 할 사항이 있습니다:

  • TAB을 쓰지 마세요. YAML은 들여쓰기에 TAB을 허용하지 않습니다.
  • 모든 줄은 작은 따옴표(') 혹은 큰따옴표(")로 묶어야 합니다.
  • 한 따옴표 안에서 같은 따옴표를 쓸 경우에는 ( '' )처럼 두 번 써서 이스케이프해야 합니다. 마찬가지로, 큰 따옴표 안에서 큰 따옴표를 쓰는 경우에도 ( "" )처럼 두 번 써야 합니다.
  • 잘못된 작성은 YAML 파일이 로드될 때 에러를 유발합니다.

또한, 이 점을 주의하세요:

  • 공백은 스크립트 줄에 치명적입니다. 절대로 이중 공백을 파라미터 사이에 사용하지 마세요.

YAML 포맷에 대해 더 알고 싶다면 다음 링크를 참고하세요: https://learnxinyminutes.com/docs/yaml/ (영문)

스크립트 명령어에서 목록을 볼 수 있습니다.

트리거 파일에 스크립트 저장하기

새 트리거를 만들거나 이미 있는 것에 추가할 때는 이렇게 합니다.

/vtwalk @ENTITY ZOMBIE 1 <triggerloc>

이 스크립트 라인은 WalkTriggers.yml 파일에 트리거의 일부로 저장됩니다. 클릭 트리거 스크립트는 ClickTrigger.yml 에 저장됩니다.

개별 스크립트 파일

물론 개별 파일 filename.script.yml 에 스크립트를 저장할 수도 있습니다. 저장된 스크립트는 서버 소프트웨어가 실행될 때 VariableTriggers가 *.script.yml 형식의 파일명을 자동으로 검색하여 읽어와, 인터프리터에서 빠르게 불러옵니다. 함수형 플레이스홀더 <relativeloc:arg1:arg2> 와 함께 사용하면 플레이스홀더 <triggerloc> 나 <playerloc> 에 대해 재사용 가능한 스크립트를 작성할 수 있습니다.

추가 스크립트를 실행하기 위해서는 아래의 스크립트 명령어를 사용합니다:

- '@CALL [filename:script]'

스크립트 내에서 다른 스크립트를 실행할 때에는, 파일 이름 인수에 filename.script.yml 처럼 확장자를 적지 말아주세요.

예제

스크립트 파일 myscripts.script.yml이 있고, 이 안에 abc와 TempleTP 라는 두 스크립트가 있습니다.

Scripts:
  abc:
    Script:
    - '@PLAYER Hello <playername>'
    - '@PLAYER I know my ABC''s. Wanna sing with me?'
  TempleTP:
    Script:
    - '@PLAYER Teleporting in 2 seconds.'
    - '@PAUSE 2'
    - '@TP $loc.temple'

여기서 TempleTP를 다른 곳에서 사용하기 위해서는

/vtclick @CALL myscripts:TempleTP

를 실행하거나, 또는 이것을 스크립트에 직접 추가해주세요:

- '@CALL myscripts:TempleTP'

VariableTriggers의 호출 스택 크기는 20입니다. 다른 말로 하면, 만약 한 스크립트 내에서 다른 스크립트를 호출하게 되면 20번 이상 깊게 호출되어서는 안 됩니다. 호출 깊이는 한 스크립트 내에서 다른 스크립트를 호출할 때마다 1씩 늘어나고, 리턴될 때마다 1씩 줄어듭니다.

직접 만들어 보기 전에 http://dev.bukkit.org/bukkit-plugins/variabletriggers/forum/sharescripts/ 에서 다른 사람들의 스크립트를 보고 문법을 참고해보세요.