콘텐츠로 이동

변수 · 함수 · 데이터타입

월드 로직 규칙은 변수로 값을 기억하고 계산합니다. 점수 · 남은 시도 횟수 · 퀘스트 단계 같은 값을 씁니다. 함수는 여러 규칙이 함께 쓰는 동작 묶음입니다. enum 과 데이터타입은 값을 정해진 모양으로 묶습니다.

기능하는 일쓰는 type
변수값을 기억합니다.동작 「변수 정하기」(set_var) · 조건 「비교」(compare) · 식 {이름}
함수다른 동작이 불러야만 실행되는 규칙입니다.트리거 「함수」(function) · 부르는 동작 5종
enum정해진 값 중 하나만 가지는 형입니다.변수 · 데이터타입 칸의 형
데이터타입칸 여러 개로 된 형입니다(클래스와 비슷함).변수의 형
무엇어디서
변수 · enum · 데이터타입 창월드 로직 패널 왼쪽 위 「변수」 단추
변수 정하기 · 비교 · 함수 type월드 로직 패널 「동작 추가」 · 「조건 추가」 · 트리거 type 메뉴의 「변수 · 함수」 묶음, 또는 로직 그래프 노드 추가 창

플레이어마다 점수를 세고 10점이 되면 제목을 띄웁니다.

  1. 월드 로직 패널의 「변수」를 누릅니다.
  2. 「변수」 탭에서 「변수 더하기」를 누릅니다.
  3. 이름 score, 형 int, 범위 「플레이어」, 처음 값 0 으로 둡니다.
  4. 「적용」을 누릅니다(Ctrl+Z 한 단계).
  5. 점수를 주는 규칙에 동작 「변수 정하기」를 더합니다. 변수 score, 계산 add, 값 1 로 둡니다.
  6. 같은 규칙에 동작 「갈림(만약)」을 더합니다. 왼쪽 {score}, 비교 >=, 오른쪽 10 으로 둡니다.
  7. 로직 그래프에서 「참이면」 줄의 노란 핀을 빈 곳에 놓습니다. 새 「함수」 규칙(func_1)이 생깁니다.
  8. 그 함수 규칙에 동작 「화면 제목」을 더합니다.

「변수」 탭의 한 줄이 변수 하나입니다.

칸뜻
이름식에서 {이름} 으로 씁니다.
형기본 형 · enum · 데이터타입 중 하나
범위전역(씬 하나에 값 하나) · 플레이어(사람마다 값 하나)
처음 값비면 형의 0 값입니다.
형값 예처음 값(비었을 때)
booltrue · falsefalse
int30
float2.50
string안녕빈 글
player플레이어 이름빈 글
actor액터 id빈 글
positionx y z(빈칸으로 나눔)0 0 0
enum그 enum 의 값 하나첫 값
데이터타입칸마다 값(아래)칸마다 처음 값

값은 모두 글로 저장됩니다. 수는 소수 셋째 자리까지 씁니다.

선언하지 않은 이름도 쓸 수 있습니다. 그 이름은 전역 글 변수가 됩니다. 조건 「플래그」 · 동작 「플래그 정하기」와 같은 저장소를 씁니다. 선언은 형 · 플레이어 범위 · 처음 값이 필요할 때 합니다.

값 칸(「변수 정하기」의 값, 「비교」의 왼쪽 · 오른쪽 등)에는 식을 씁니다.

  1. {이름} 을 그 값으로 바꿉니다.
  2. 남은 글이 수와 + - * / % ( ) 만이면 계산합니다(예: {score} * 2 + 1).
  3. 아니면 바꾼 글을 그대로 씁니다(예: {player} 님 환영).
  • 나누기 0 은 0 입니다.
  • 모르는 이름은 빈 글이 됩니다.

이름을 찾는 순서는 지역 변수(함수 인자 · {index}) → 플레이어별 변수 → 전역 변수 → 특별한 이름입니다.

특별한 이름값
{player}트리거한 사람 이름
{player_x} · {player_y} · {player_z}트리거한 사람 자리
{player_pos}트리거한 사람 자리 x y z
{time}씬이 시작된 뒤 지난 초
{random}0~1 사이 무작위 수
{index}「되풀이」 안에서 지금 번호(0, 1, 2 …)

동작 「변수 정하기」(set_var)의 칸입니다.

칸값뜻
변수이름데이터타입 변수면 hero.hp 처럼 칸까지 씁니다.
범위auto · global · player · localauto = 선언대로. 선언이 없으면 같은 이름 지역 변수가 있을 때 지역, 아니면 전역. local = 이 실행 안에서만
계산아래 표
값식
계산뜻
set값으로 바꿉니다.
add · sub · mul · div · mod더하기 · 빼기 · 곱하기 · 나누기 · 나머지. 0 으로 나누면 0 입니다.
min · max지금 값과 비교해 작은 · 큰 쪽
append글을 뒤에 붙입니다.
toggletrue ↔ false 를 뒤집습니다(값은 쓰지 않음).

지금 값이 수가 아니면 수 계산에서는 0 으로 봅니다.

조건 「비교」(compare)와 동작 「갈림(만약)」은 왼쪽 · 비교 · 오른쪽 칸으로 비교합니다.

비교뜻
== · !=둘 다 수면 수로, 아니면 글로 비교합니다(대소문자 구분).
< · <= · > · >=수만 비교합니다. 수가 아니면 거짓입니다.
contains왼쪽 글에 오른쪽 글이 들어 있음
starts_with왼쪽 글이 오른쪽 글로 시작함

함수는 트리거가 「함수」인 규칙입니다. 스스로 일어나지 않습니다. 부르는 동작이 이름으로 불러야 실행됩니다.

「함수」 트리거 칸뜻
함수 이름부를 때 쓰는 이름입니다.
인자 이름쉼표로 나눈 이름(예: amount, target). 부를 때 준 값이 지역 변수 {amount} 가 됩니다.
  • 함수는 부른 쪽의 트리거한 사람을 이어받습니다.
  • 함수 규칙의 조건이 거짓이면 그 함수만 건너뜁니다.
  • 함수 규칙에는 거르기(한 번만 · 쿨다운 · 권한)가 쓰이지 않습니다.
동작type칸하는 일
함수 부르기call함수 · 인자(이름=식, …)함수를 실행하고 끝나면 다음 동작
순서대로(시퀀스)sequence함수들(쉼표)함수 여러 개를 차례로. 앞 함수가 끝나야 다음 함수
갈림(만약)branch왼쪽 · 비교 · 오른쪽 · 참이면 · 거짓이면비교해서 함수 하나를 부름. 비어 있는 쪽이면 아무것도 안 함
되풀이repeat횟수(1~100) · 함수함수를 횟수만큼 차례로. {index} = 0, 1, 2 …
플레이어마다for_each_player받는 사람 · 함수받는 사람마다 그 사람을 트리거한 사람으로 함수를 차례로
  • 부른 함수가 「기다리기」를 만나면 부른 쪽도 같이 기다립니다. 함수가 끝나야 다음 동작으로 갑니다.
  • 함수가 함수를 부르는 깊이는 16 까지입니다. 넘으면 끊고 오류를 기록합니다(재귀 고리).
  • 인자 식은 부를 때 계산합니다.

0.9.11 부터: 부르기 칸 하나에는 함수 하나만 씁니다. 여러 함수를 쓰면 검사 오류입니다. 차례로 부르려면 「순서대로(시퀀스)」를 씁니다. 같은 이름의 함수 규칙이 둘 이상이어도 검사 오류입니다.

함수신호
부르는 동작함수 부르기 · 순서대로 · 갈림 · 되풀이 · 플레이어마다신호 보내기
받는 쪽그 이름의 「함수」 규칙 하나그 이름의 「신호를 받을 때」 규칙 모두(방송)
기다림함수가 끝날 때까지 기다림(wait 포함)기다리지 않음
그래프노란 함수 핀 — 핀 하나에 선 하나신호 핀 — 받는 규칙 모두에 선

0.9.11 부터: 「변수」 창이 탭 셋(변수 · enum · 데이터타입)으로 바뀌었습니다.

「enum」 탭에서 「enum 더하기」를 누릅니다.

칸예
이름Job
값들(쉼표로)warrior, mage, archer
  • 변수 · 데이터타입 칸의 형으로 고를 수 있습니다.
  • 그 형 변수의 처음 값은 정한 처음 값, 없으면 첫 값입니다.
  • enum 밖의 처음 값이나 「변수 정하기」 값은 검사 주의가 납니다.

「데이터타입」 탭에서 「데이터타입 더하기」를 누르고, 「칸 더하기」로 칸을 더합니다.

칸예
데이터타입 이름Hero
칸 이름 · 칸 형 · 처음 값hp · int · 20 / job · Job / gold · int

칸 형은 기본 형 · enum · 다른 데이터타입입니다.

데이터타입 변수는 칸마다 값으로 펼쳐집니다. 변수 hero(형 Hero)는 다음처럼 씁니다.

쓰는 곳예
식{hero.hp} · {hero.job}
「변수 정하기」 변수 칸hero.hp
「비교」 왼쪽{hero.job}
겹친 데이터타입{hero.stats.str}
  • 범위는 변수 선언을 따릅니다.
  • hero 를 통째로 「변수 정하기」 하면 검사 오류입니다. 칸을 고릅니다.
  • 데이터타입 변수의 처음 값은 칸마다(데이터타입 탭) 정합니다. 변수 줄의 처음 값은 쓰이지 않습니다.

「적용」을 누르면 검사하고 문제를 알림으로 보여 줍니다.

종류내용
오류이름 규칙(영문자로 시작, 영문자 · 숫자 · _) · 이름 겹침(기본 형 · enum · 데이터타입끼리) · 값이 없는 enum · 칸이 없는 데이터타입 · 없는 형 · 자기 자신을 품는 데이터타입(고리) · 데이터타입 통째로 「변수 정하기」 · 겹친 변수 선언
주의enum 밖 처음 값 · enum 밖 「변수 정하기」 값 · 데이터타입 변수 줄의 처음 값

함수 쪽 검사는 다음과 같습니다.

종류내용
오류없는 함수 이름 · 같은 이름의 함수 규칙 · 부르기 칸 하나에 함수 여럿
주의부르는 동작이 없는 함수 · 함수 규칙에 켠 거르기

「월드 로직 변수 · enum · 데이터타입」 창의 단추입니다.

단추하는 일
변수 더하기 · enum 더하기 · 데이터타입 더하기새 줄을 더합니다.
칸 더하기데이터타입에 칸을 더합니다.
빼기(휴지통)그 줄 · 칸을 뺍니다.
적용세 탭을 한꺼번에 저장합니다. 되돌리기 한 단계입니다.
닫기저장하지 않고 닫습니다.
키동작
Esc창 닫기(적용하지 않은 것은 버림)
Ctrl+Z「적용」 되돌리기
  • 「적용」을 누르기 전에는 아무것도 저장되지 않습니다.
  • 플레이 중 변수 값은 플레이의 월드 로직 기록(「변수 이름 = 값」 줄)에서 볼 수 있습니다.
  • 서버 플러그인도 같은 규칙으로 변수 · 함수를 실행해야 합니다. 서버 쪽 지원은 서버 플러그인 판을 확인합니다.
  • 서버에는 데이터타입 변수가 펼친 이름(hero.hp 등)으로 저장됩니다.