∇ 스크립트 강좌

 ▼ 스크립트와 맵의 연동

N/A

소스無


앞의 절차를 거쳐서 스크립트를 읽었다면 이제는 스크립트가 실행되는 시점에 대해서 생각해 보아야 한다. 스크립트의 목적은 이벤트나 대화를 쉽게 처리하기 위해서 있는 것이라고 했다. 그렇다면 이벤트는 어떤 것이 있는가 생각해보자.

롤플레잉 게임 속에서 일어나는 이벤트는 게임 개발 시에 미리 정의 되어져 있는 것이며 사용자가 어떤 조건을 만족 했을 때 발생하게 된다. 보통 사용자가 특정 영역에 들어 서거나 특정 영역에 들어와서 일정 시간이 경과했을 때 많이 발생하게 된다. 즉, 이벤트는 맵과 깊은 관계를 가지고 있는 것이다. 앞서 설명한 스크립트에서도 스크립트가 실행될 구체적인 위치를 명시했었다.

추가적인 설명은 단행본에서 계속 (물론 단행본은 나오지 않을 것이다.)

1. 스크립트 예약어 샘플 (funtions)

    예약어

    파라미터

    내용

    equal to

    (i,j)

    (i == j)

    greater than

    (i,j)

    (i > j)

    less than

    (i,j)

    (i < j)

    greater equal

    (i,j)

    (i >= j)

    less equal

    (i,j)

    (i <= j)

    event is set

    (i)

    i번 이벤트가 설정되어 있는가

    event is

    (i)

    현재 발생한 이벤트의 종류가 i인가

    event number is

    (i)

    현재 발생한 이벤트의 번호가 i인가

    event map is

    (x,y)

    현재 발생한 이벤트의 위치가 (x,y)인가

    you talked

    (i)

    지금 말하고 있는 대사가 i번 대사인가

    flag is set

    (i)

    지금 말하고 있는 대사가 i번 대사인가

    time is

    (..)

    이벤트 발생 시간이 이 집합 안에 있는가(집합형 파라미터를 받음)

    win a victory

    ()

    최근 전투에서 승리했는가

    in a room

    ()

    현재 실내에 있는가

    person in map

    (x,y)  

    그 좌표에 사람이 있는가

    special condition

    (i)

    i번 특수 상태는 TRUE 인가

    parameter is

    (Num,i)

    공통 파라메터 Num은 i 인가

2. 스크립트 예약어 샘플 (procedures)

    예약어

    파라미터

    내용

    test value

    (i)

    디버그용 숫자를 출력

    debug value

    (i)

    디버그용 숫자를 메시지 출력

    exit talk

    ()

    대화를 강제 종료

    set flag

    (i)

    플래그 세팅

    reset flag

    (i)

    플래그 리셋

    set var

    (num,value)

    광역 변수 세팅

    get var

    (num)

    광역 변수 읽기

    add var

    (num,value)

    광역 변수 더하기

    run script

    (s,x,y)

    새로운 스크립트 실행

    print hangul

    (s)

    한글 출력

    talk

    (s)

    대화를 출력

    write map

    (attr,x,y,i)

    맵에 i를 씀

    write event map

    (attr,x,y,b)

    맵에 i를 씀

    fill map

    (attr,x1,y1,x2,y2,i)

    맵을 i로 채움

    set event time

    (n,hour,min,sec)

    이벤트 시간 설정

    direct hangul

    (x,y,s,r,g,b)

    (x,y)에 (r,g,b)의 색으로 한글 직접 출력

    direct hangul ex

    (y,s,r,g,b)

    위와 같지만 자동으로 중간 정렬 x값을 설정

    delay

    (mSec)

    1/1000 * mSec 초만큼 딜레이

    clear backscreen

    ()

    백버퍼를 검은색으로 지움

    initialize talk

    ()

    대화를 초기화 시킴

    add talk

    (i,s)

    대화 목록 추가

    remove talk

    (i)

    대화 목록 제거

    remove all talk

    ()

    대화 목록 전부 제거

    set color

    (r,g,b)

    RGB 대화 색 설정

    default color

    (r,g,b)

    디폴트 대화색 설정

    press any key

    ()

    디폴트 대화색 설정

    wait any key

    ()

    키를 누를 때까지 대기, 단 백버퍼만 갱신

    pass time

    (Hour,Minute,Second)

    시간 경과

    modify time

    (Hour,Minute,Second)

    시간 강제 설정

    set master

    (Person,i)

    사람 내부 인수 설정 : person = 0 이면 자신

    set parameter

    (Num,i)

    파라메터를 설정

    clear parameter

    ()

    파라메터를 전부 소거

    get number

    (s)

    s 라는 이름을 가진 캐릭터의 번호 읽기

    set internal

    (sPer,Num|s,i)

    sPer의 Num 내부변수를 i 로 설정, s 는 옵션

    get internal

    (sPer,Num|s,s)

    sPer의 Num 내부변수를 읽기, s 는 옵션

    add internal

    (sPer,Num|s,i)

    sPer의 Num 내부변수를 i만큼 증가, s 는 옵션

    delay only

    (mSec)

    Flip 만 수행하는 딜레이 루틴