VNAP (비공식) 관리위원회

블로그 이미지
VNAP Unofficial Support Page.
by pilza2

ARTICLE CATEGORY

전체 (47)
보관 (18)
정보 (5)
강좌 (16)
작품 (6)
  • 52,765Total hit
  • 0Today hit
  • 0Yesterday hit

이번 강좌에서는 비주얼 노벨류에서 나타나는 여러 엔딩을 구현하는 방법에 대해 알아보도록 합시다.

[Lecture 10. 다중 시나리오 만들기.]

멀티 엔딩 만들기.

멀티 엔딩은 하나의 엔딩으로 끝이 나는 소설과는 달리 여러개의 엔딩을 제공하는 비주얼 노벨에서 자주 있습니다.
VNAP에서도 여러 엔딩을 만들어 있습니다.
일단 예시를 들어 멀티 엔딩을 만들어보도록 합시다   

케릭터 1,2,3 이야기가 있다고 합시다. 그렇다면 엔딩의 갯수는 최소 3개이겠군요.
엔딩의 내용을 준비하며, 파일의 구성은 아래와 같이 합니다   

케릭터 1 이야기, 엔딩.  - ch1.txt - ch1_end.txt
케릭터 2 이야기, 엔딩.  - ch2.txt - ch2_end.txt
케릭터 3 이야기, 엔딩.  - ch3.txt - ch3_end.txt 
   

각자의 케릭터의 이야기 파일과 엔딩 파일을 준비했으면 구조는 아래와 같습니다   

구조를 만든 뒤에 작품을 만드시면 보수와 수정이 용이합니다 :D
스크립트는 첨부한 파일에서 참조해 보세요   

케릭터를 선택하여 이야기 전개하기.    

간혹 처음부터 케릭터를 고를수 있어서, 케릭터의 시점으로 플레이하거나
케릭터의 이야기를 보여주는 메뉴를 지닌 작품을 있을 것입니다

VNAP에서도 이런 형태의 메뉴를 제공가능합니다   

 
                                     
<오픈마인드 월드의 Replay 4>   

scenario.txt 파일에서 타이틀을 불러옵시다
타이틀 파일을 title.txt 이라고 하면, 타이틀 화면에서 시작을 누르면 케릭터를 고르는 화면으로 넘어갈 있도록 하는데,
여기서
일종의 트릭(?) 이용합니다.

, 메뉴(Menu)명령어로 한번더 케릭터 선택에 대한 파일을 불러오는 입니다  

케릭터 선택에 관한 파일을 char_sel.txt 하겠습니다.
char_sel.txt파일에 아래와 같이 메뉴명령어를 사용합니다   

   

sel_menu.txt에는 케릭터 CG 메뉴의 버튼처럼 만든 것입니다.

메뉴 스크립트에서 메뉴 스크립트를 다시 한번 불러옴으로써 위와 같은 사용이 가능한 것입니다.
가장 아래의 스크립트는 다시 메뉴로 돌아갈 있도록 하는 메뉴입니다 :D   

첨부 파일을 뜯어 보시면서 익혀보세요  

처음 프롤로그를 있게 , 메뉴에서 다시 프롤로그를 있게 하기   

많은 작품들은 작품의 시작부(프롤로그) 제공하고 있는데요,
가장 먼저 프롤로그가 나타나고 메뉴가 나오는 구성은 이미 많은 작품이 채용하고 있습니다  

또한 다시 메뉴에서 프롤로그를 보는 것도 가능하지요.
VNAP
에서도 그런 것이 가능합니다.(가능한것만 이야기하고 있다는...-_-;;) 
   

이야기로 한다면 매우 복잡할거 같아서 아예 전체적인 구조를 만들었습니다(힘들었어요 .   

일단 senario.txt 파일부터 설명하겠습니다  

1행의 init readplog = 0 부분은 변수입니다.
변수를 이용하였나 하면 나중에 나올 프롤로그를 볼것인가 스킵할것인가 때문에 만들어 것입니다.
일단 선언을 해야겠지요.  
  

3행의 ifflag intro_read 7 5 에서는 플레그가 발생했는지 체크하는 것입니다.
당연히
처음 실행했을때는 플레그가 없지요, 그래서 5행으로 넘어가서 intro.txt 파일, 프롤로그 파일을 불러옵니다
   

7행의 loadsnr intro.txt 부분은 두번째 실행부터(intro.txt에서 플레그가 체크 되면프롤로그를 넘기고
바로 title.txt 파일, 타이틀 화면을 불러옵니다
  

다음, 프롤로그 파일인 intro.txt 설명하겠습니다  

5행의 setflag intro_read 플레그를 설정하는 것입니다. 프롤로그 읽었어요~ 하고 체크하는 것입니다. :D    

7행의 if (readplog = 1) 9 11 변수를 체크하는 것인데요,
앞에서 변수를 설정하고 값이 변하지 않았으므로( 변수 readplog 값은 여전히 0이므로) 11행으로 가게 만드는 것입니다
  

9행의 loadsnr snr01.txt 시나리오 파일(snr01.txt) 불러오게 하는 것인데, 이는  변수 readplog값이 1일때만 불러옵니다.

프롤로그를 볼것인가 물을때( 파일의 내용은 p_log_check.txt 있어요.) 프롤로그를 보여주고나서,
시나리오 파일(snr01.txt) 보여주는 것입니다.  
   

11행의 menu title.txt 처음 실행했을때 여전히 변수 값이 0 그대로이므로 7행의 if에서 연결되어, 타이틀 화면을 불러오게 하는 것입니다   

title.txt 파일에서는 타이틀 화면을 불러오는 것이라 메뉴만들기 강좌를 참고해 주시구요 ^^;
시작 버튼을 눌렀을때 p_log_check.txt 파일을 읽는다는 점을 알고 가시면 됩니다  

p_log_check.txt 파일의 내용은 프롤로그를 읽을 것인지 넘길 것인지 선택해야 하는 선택지가 있습니다.
프롤로그를 읽는다고 하면 read_p_log.txt 파일로 넘어가서 senario.txt 파일에 선언되었던 변수 readplog 값이 1 되면서,
intro.txt 불러오게 하는데요, 이때 변수 값이 1이므로 intro.txt 파일의 7행에서 9행으로 넘어가게 됩니다.

그렇게 하면 프롤로그를 후에 시나리오(snr01.txt) 연결됩니다.
물론 프롤로그를 읽지 않는다고 하면 시나리오 파일(snr01.txt) 불러오게 됩니다 ^^       

엄청나게 복잡해 보이지만, 플레그와 변수를 이용하는 예시라고 있습니다.
첨부파일을 뜯어보며 공부하시길 바랍니다 ^^;;;    

엔딩 바뀌는 타이들 만들기.

KEY사의 Air 플레이해본 분이라면 처음의 이야기인 Dream편을 클리어하고 나면
타이틀이 바뀌면서 Summer편으로 넘어가는 것을 아실 것입니다
                                        


                                                   < GIF파일로 만들어봤어요 >_< ! >

VNAP 공식 홈페이지에서 제공하고 있는 작품, 햇님 달님에서도 채용되어 있는 기능인데요,
쉬운 이해를 위해 준비해 보았습니다.
일단 메뉴는 3개를 준비했습니다. 바꾸고 싶은 만큼 메뉴를 추가하셔도 좋습니다.


처음 타이틀 파일을 first_title.txt 두번째 타이틀 파일을 second_title.txt 세번째 타이틀 파일을 third_title.txt 라고 합시다.
각각의 타이틀 파일에서 나올 이야기들의 엔딩 파일 (여기서는 ch1_end.txt ch2_end.txt ch3_end.txt 라고 하겠습니다.) 플레그를 설정해둡니다   

여기서는
ch1_end.txt
마지막에는 read_first 라는 플레그
ch2_end.txt
마지막에는 read_second 라는 플레그
ch3_end.txt 마지막에는 read_third 라는 플레그를 설정합니다.
scenario.txt파일에는 플레그를 체크하는 명령어를 써둡니다.
(flag 체크하는 것은 가장 나중에 나올 플레그 기준으로 합니다.)     

, 플레그가 기록된 역순으로 체크합니다.    

첫번째 실행때는 아무 플레그가 없기 때문에
1
행의 ifflag read_third 13 3 에서 당연히 3행으로 넘어갑니다
3행에서의 ifflag read_second 11 5 에서 역시 플레그가 없기 때문에 5행으로 넘어갑니다
5행에서의 ifflag read_first 9 7 에서 역시나 플레그가 없기 때문에 7행의 menu title.txt 타이틀을 불러오게 됩니다.
7행은 menu title.txt 첫번째 타이틀을 불러옵니다.

9행은 두번째 실행부터 작동하는데요,
첫번째 이야기의 엔딩을 보고 후면, read_first 플레그가 체크되어 있어서  5행에서 9행으로 넘어오게 되어
menu second_title.txt
명령어가 실행되어 두번째 타이틀을 불러오게 됩니다
   

11 역시 마찬가지로, 두번째 이야기를 보고 후면, read_second 플레그가 체크되어 있어서3행에서 11행으로 바로 넘어오게 되어
 menu third_title.txt
명령어가 실행되어 세번째 타이틀을 불러오게 됩니다
   

13행은 뒤에 나올 부분인데 같은 파일로 다루겠습니다.
세번째 이야기를 보고 후면(그리고 모든 엔딩을 ), 1행에서 바로 13행으로 넘어오게 되어
menu special_title.txt 명령어가 실행되면서 특별 타이틀을 불러오게 됩니다
   

모든 엔딩을 후에 스페셜 엔딩 나오게 하기.

지금까지 멀티 엔딩에 대해 알아보았는데요, 작품들 중에서는 기존의 엔딩(배드엔딩 포함) 모두 보았을때
새로운
엔딩이나 진엔딩이 나오는 경우도 있지요.

그러면, 각기 엔딩을 보게 되었을때 플레그들이 하나씩 활성화되게 됩니다.
그렇지만, 순서에 관계없이 모두 볼수 있게 하려면 플레그를 체크할수 있도록 해야겠죠.

그래서 항목과 같이 senario.txt파일을 구성했습니다.
( 항목만 이해하신다면 과정은 껌입니다 ^^;;)   

그리고 새로운 메뉴 파일과 엔딩파일을 준비했지요.
항목에서 다른 이야기와 엔딩, 타이틀을 준비했다고 생각하는 것이 가장 쉽습니다 ^^;
특별한 내용이 있는 것도 아니구요 ^^   

   

강좌 파일은 기준으로 준비해 두었습니다. 항목 역시 포함이 되므로 그렇게 했답니다.

강좌 파일을 테스트 하실때 초기화하려면 아래의 cfg 파일을 지우시면 됩니다.
(정확히는 제목없음.cfg 파일입니다. 나중에 제목을 붙이게 되면 게임제목.cfg 파일이 되겠습니다.)  

     

강좌 파일 

   

Copyright 2005-2009. 아우름이. All rights Reserved.
미디어 연구소(http://mediastudio.tistory.com/) 

TRACKBACK 0 AND COMMENT 0



강좌를 시작하기에 앞서, 스크립트 파일에 대하여 언급을 하겠습니다.
VNAP에서는 3가지의 스크립트가 있는데요,
(show), 메뉴(menu), 시나리오(scenario)스크립트입니다.

자세한 것은 14 VNAP Helper Book 참조해주시고, 강좌에서는 메뉴에 대해 알아보고자 합니다.     

[Lecture 09. 메뉴의 구성.]    

먼저 각종 상용 작품들의 메뉴, 타이틀을 살펴보고 시작하도록 하지요   

 
    
<버튼이 가로로 정렬되어있는 Fate/stay night(왼쪽). 버튼이 세로로 정렬되어있는 CLANNAD(오른쪽)>    

앞서 이야기드린 메뉴스크립트는 바로 타이틀을 만들기 위해 존재하는 스크립트입니다.
, 직접 만들어보도록 합시다   

먼저 메뉴의 구조를 아셔야 합니다.
메뉴는 배경화면 버튼으로 이루어져 있습니다.

 
<예제는 제가 작업했던 White Album Dramatic Edition :: Snowy Memory ::입니다.>    

배경화면과 버튼이  이미지 파일은 여러분이 직접 포토샵을 이용해서 만드셔야 합니다.
만들어야 이미지 파일은 버튼당 최소 1개입니다만 좋은 모양을 위해서 2개를 준비합시다.
(누르기 전의 버튼의 모습과 누른 후의 버튼 모습.)    

일단 scenario.txt 파일에 아래와 같이 title.txt 라는 파일을 menu명령어로 부릅시다.
(14 VNAP Helper Book강좌 필수 참고!)     

 

그리고 title.txt라는 파일을 만듭시다. 파일의 내용은 아래와 같습니다  

 이해의 도움을 위해서 아래에 풀어썼습니다   

<3번째 설명>
파란 줄로 그어진 button 버튼을 만드는 명령어입니다.
()안에 담겨있는 것은  (,,오른,아래) 좌표지만, 실제로는 ,위의 좌표만 알고 있으면 산수문제입니다(또냐!)    

"좌표에 대해 알아봅시다" 게시물에서 소개했듯이 좌표는 왼쪽 가장 위가 기준입니다   

예제에 쓰인 버튼 파일의 크기는 200*40 픽셀의 사이즈입니다.
위와 같이 위치를 지정해 두고 왼쪽 가장 위의 좌표를 보니 380,270이로군요.

x좌표는 오른쪽으로 갈수록, y좌표는 아래로 내려갈수록 커지는 것을 숙지하고 계산을 하셔야 합니다 ^^    

x좌표 : 380에서 버튼 크기의 가로길이가 200픽셀이므로 +200하면 오른쪽의 좌표가 나옵니다
          380+200=580

y좌표 : 270에서 버튼 크기의 세로길이가 40픽셀이므로 +40하면 아래의 좌표가 나옵니다
           270+40=310    

따라서 첫번째 버튼의 좌표는 (380,270,580,310) 되겠습니다.
다른 버튼 역시 같은 식으로 계산을 하시면 됩니다.
하나 나오면 버튼 사이의 간격을 생각하고 산수로 구해버리는 겁니다 ^^;    

그런데 보시면 공통된 숫자가 계속 사용되고 있는것이 보이시죠?

(380,270,580,310)

(380,310,580,350)

(380,350,580,390)

위와 같은 버튼 배치는 위와 같은 식으로 바뀌는 겁니다.
2번째와 4번째는 버튼의 크기의 높이(세로)만큼의 숫자만 더해지는 것이죠   

위의 예제에서는 버튼이 세로로 정렬되어 있기 때문에 모두 왼쪽, 오른쪽의 좌표가 각각 380, 580으로 동일하고,
, 아래의 좌표만이 바뀜을 아실수 있을겁니다. ( 초기에 상당히 헤맸습니다.-_-;;)   

버튼을 가로로 정렬하려면 ,아래를 고정하고 산수로 왼쪽,오른쪽을 고치시면 되겠습니다^^    

ex) 첨부 파일의 title_another.txt를 참조하세요 ^^
가로 정렬의 좌표입니다. 위, 아래 좌표가 고정되어 있는 것을 볼 수 있습니다.

(10,270,210,310)

(220,270,420,310)

(430,270,630,310)


                                          <가로 정렬된 버튼 모습>

그리고 3개의 파일명이 적혀있는데요.

차례로

버튼이
눌리지 않은 상태에 그림파일
/버튼이 눌린 상태에 그림파일
/버튼위에 마우스 커서가 놓였을 그림파일 입니다만  

위에서 언급했듯이 그림파일은 1개만 있어도 되지만, 보통 버튼이 눌린 상태와 버튼위에 마우스 커서가 놓였을 그림파일은 같이 쓰는 경우가 많습니다(...라는 것은 귀차니즘을 정당화?!)  

그래서 위에 예시에 버튼 그림들은 2개씩 준비되어 있지요 ^^   

<4번째 설명>
LOAD 그대로 세이브한 내용을 불러내어 이어서 플레이 있도록 해줍니다.
나머지는 3번째 줄과 동일합니다  

<5번째 설명>
END 작품을 종료하는 명령어입니다.
나머지는 3번째 줄과 동일합니다   

강좌 파일을 참조해서 이리 저리 버튼의 위치를 옮겨보세요^^ 

강좌 파일

  

Copyright 2005-2009. 아우름이. All rights Reserved.
미디어 연구소(http://mediastudio.tistory.com/)

TRACKBACK 0 AND COMMENT 1
  1. Favicon of http://sarablog.oa.to/ 처음들어가보는 2014.09.01 23:23 address edit/delete reply

    저기 배경, 브금 등의 파일은 따로 두는 곳을 만들어 둘 수 없나요?




혹시 게임북이라는 도서 장르를 아시나요?
1980~1990년도에 유행한 어드벤처(모험) 책을 읽으면서 느끼게 있었던 장르였습니다.
어느 특정 내용을 읽고 갈림길이 나오지요, "~페이지로 가세요" 류의 책들을 많이 아실 것이라 생각합니다.
최근에도 나오고 있더군요(최근 유행하는 마법 천자문 시리즈로 나오는 것을 보았습니다.)

비주얼
노벨의 원류는 텍스트 어드벤처이며, 게임북 / 텍스트 어드벤처 작품들이 가지고 있었던 갈림길은
"선택지" 표현됩니다.


    <탐정퀴즈 게임, 각 페이지마다 이동지시가 나오고, 선택에 따라 다른 결말이 나온다. >    

 
                                              <KEY社의 클라나드  

선택지 시스템은 일본식 텍스트 어드벤처의 가장 특징적인 부분으로, 한방향이 아닌 여러갈레의 이야기가 나올 있게 만들어져 있습니다.
그렇기
때문에 선택지는 필수 사항이 되었습니다
   

자세한 것은 연구실 메뉴의 글을 참조해 주시고, 강좌에서는 분기, 그리고 변수와 플레그(flag) 이용한 분기를 알아 보도록 하겠습니다   

[Lecture 08. 분기 만들기.]    

select    

선택하다는 뜻의 명령어는 선택지를 만들수 있는 명령어입니다.
먼저, 명령어를 사용하기 전에, 강좌에서 들었던 내용을 다시 언급하겠습니다   

지금까지는 scenario.txt 파일에 모든 명령어를 적었던 것에 비해, 분기는 다른 텍스트 파일을 필요 합니다.
(물론 무조건 그렇게 하지 않아도 됩니다만, 수정을 시에 매우 어렵습니다.)    

분기이기 때문에 2 이상의 다른 텍스트 파일이 필요합니다.
그리하여 예제에서는 snr01.txt snr02.txt 라는 다른 텍스트 파일 2개를 준비했습니다      

   

   

   

      

위에 예를 들었던 것처럼 선택지가 나타났음을 있습니다.

"
유키에게 말을 건다" 선택하면 snr1.txt 내용이 나타나고,
"교실에 간다" 선택하면 snr2.txt 내용이 나타납니다.    

추후에도 계속 다루겠지만, 시나리오 파일을 불러오는 명령어인 loadsnr 개념이 비슷하다는 것을 확실히 인지하셔야 합니다.

[명령어 Check]  
loadsnr 텍스트파일


: 다른 텍스트 파일을 읽어온다.
이 명령어가 실행되면 지정된 파일을 읽게 되고, 추가적인 조치를 취하지 않는 이상 원래 파일로 돌아오지 않는다.

선택지를 추가시키시려면 다음 줄에 + snr3.txt 전화를 건다. 라는 식으로 추가를 시키시면 됩니다.     

 
< 경우에는 windowsize FULL 넣어서 화면에서 선택지를 넣으면 좋겠지요.>    

여기서 좋은 모양으로 선택지를 나타낼 수도 있습니다.
바로 ncselect 명령어입니다   

아래와 같이 scenario.txt 파일에 적고, 실행시켜 봅시다   

    

    

사용법은 완전히 동일합니다만, ncselect 출력된 부분이 이해도 쉽고 보기가 좋기 때문에
개인적으로는 분기 명령어를 ncselect 사용하는것을 추천합니다(^^)    

, 가장 기본적인 분기방법을 배웠습니다
하지만, 좀더 나가서 변수를 점목시켜서 분기를 짜게되면, 더욱 치밀한(!) 구성이 가능해집니다   

init

명령어는 미소녀 게임에서는 특정 이벤트가 발생하기 위한 값을 의미합니다.
변수 미소녀 게임에서 주로 호감도 사용되는 요소입니다.    

가령 예를 들어 소녀1이라는 케릭터를 공원에서 만나고, 다음날 다시 공원에서 만나는 경우
그녀와의 새로운 이벤트가 발생하게
되는 경우가 그런 것입니다  

앞에서 배웠던 분기의 개념과 특정 조건을 만족했을 때만 특정한 이벤트가 발생하게 만드는 것이야말로
진정한
의미의 분기의 목적
이라고 있겠습니다 :) 
   

프로그래밍을 공부하셨다면 변수 선언을 알고 계실겁니다. 안배우셨다고 하더라도 걱정은 붙들어매십시오.
매우 간단히 사용이 가능하니까요 ^^    

변수의 사용은 다음 순서에 따릅니다   

  변수 선언
  변수에 대입
  if구문을 이용하여 변수값에 맞는 결과를 출력

머리가 지끈거린신다구요?
괜찮습니다. 이게 전부입니다 ^^; 
그림으로 쉽게 설명해 드리겠습니다   

변수의 선언    

init 명령어가 이용됩니다   

사용법은    

init 변수이름 = 초기값    

으로 이용하게 됩니다   

변수이름 : 사용할 변수의 이름입니다. 예제에서는 호감도를 표현하기 위해 like라고 지정했습니다.
초기값 : 변수가 선언될때 가장 초기의 입니다. 후에 변수에 값이 들어갑니다
             숫
(정수) 문자가 들어갈 있습니다   

변수에 대입

set 명령어가 이용됩니다  

사용법은    

set 선언한 변수이름 = 변수값

이용하게 됩니다  

선언한 변수이름 : init 선언한 변수의 이름입니다. 역시 예제에서는 like입니다 ^^;
변수값 : 여기서는 공원에 같이 갔을때 고백이 성공하게 하려합니다   

그러므로 공원에 갔을때(선택문에서 공원에 간다 선택시 snr1_1.txt 가게 되겠지요?)
변수를 변화시켜야 합니다.

여기서는 1 대입시켰습니다   

if구문을 이용하여 변수값에 맞는 결과를 출력    

if 명령어가 이용됩니다.
앞에서도 배웠지만, 어떤 조건에 맞는지 검사하는 명령어입니다.

여기서는 공원에 갔다면 호감도(여기서 선언한 변수 like) 올랐을때(여기서 공원에 간다를 선택시 like 1 되었죠?)
고백 이벤트가 성공하고, 집에 갔다면 호감도에는 변화가 없기 때문에 고백 이벤트는 실패합니다   

변수가 이용되었지만 if 명령어의 기본적인 사용법과 동일하게 괄호 안의 내용이 참이면 첫번째로,
거짓이면 두번째의 파일 내지는 라인을 읽게 됩니다   

snr2.txt파일을 참고하세요.    

참조
변수는 게임이 시작될때마다 값이 초기화 되기 때문에 사용자가 if 명령어가 나오기 전에 세이브 하고
다시 플레이하면 값이 초기값 그대로이기 때문에 이를 주의해서 시나리오 양을 조절하셔야 하셔야 합니다.    

게임 저장을 하고 로드를 하시면 변수까지 저장됩니다만, 그것을 이용하여 스크립트를 짜시면 문제 없지만
개인적으로는 조금 더 어려워도 앞으로 배울 Flag명령어가 오류를 원천적으로 막는 방법이라 생각이 듭니다.


 Flag
    

깃발이라는 뜻의 명령어는 어드벤처 게임에서는 특정 이벤트가 발생하기 위한 조건 의미합니다. 
변수를 이용하는 것과 같이, 분기를 만드는 쌍두마차라고 있겠습니다(거창하군요 ^^;)   

먼저 준비해야 것을 들자면 아래와 같습니다  

  구상도.
  상황에 맞는 텍스트 파일.    

구상도라는 것은 이벤트의 흐름을 어떻게 것인가를 정해놓은 입니다.
저는 보통 분기를 만들때 아래와 같이 미리 그려두고 작업을 시작합니다   

위와 같이 개요를 만들어 두고, 분기를 짜야 치밀하고도 쉽게 만들 있습니다.
간단한 같아보이지만, 뒤에는 수많은 본인의 포크레인질이 있었습니다(침묵[...])
... 강요는 아니지만 삽질은 피하는 것이 좋은겁니다 _    

개요를 만든 뒤에는 그에 맞는 내용을 준비해야겠지요.

snr1.txt
에서 선택지가 2개입니다.
그렇기 때문에 snr1.txt 라는 파일에서 선택할 2개의 파일을 각각 snr1_1.txt snr1_2.txt 라고 해두었습니다.
그리고 파란 표시를 해둔곳을 플레그를 설정하기 위하여 미리 적어두었습니다   

snr2.txt에서는 snr1.txt 에서 무슨 선택지를 선택했는가에 따라 내용이 달라지게 설정해두었습니다.
그렇기 때문에 빨간 표시를 해둔곳을 플레그가 설정되어 있는지 체크하기 위하여 미리 적어두었습니다   

위의 구상도를 실제로 옮겨보도록 합시다
                                               * setflag : snr1_1.txt 파일에 있는 빨간 줄은 플레그를 설정하는 명령어입니다
   ifflag : snr2.txt 파일에 있는 빨간 줄은 플레그를 체크하는 명령어입니다
   

ifflag park 뒤에 파일명이 2개가 적혀 있는데,
플레그가
설정되어 있으면 앞의 파일을 읽고,
없으면 뒤의 파일을 읽도록 되어있습니다.    

따라서, 공원에 갔을때 park라는 플레그가 설정되어서(setflag), snr2.txt에서 플레그를 체크하여(ifflag)
snr2_1.txt 읽게 되어 고백 이벤트가 성공합니다   

공원에 가지 않고 집에 가면 park 플레그가 설정되지 않아서 snr2_2.txt 파일을 읽게 되어 고백 이벤트가 실패합니다   

 첨부한 파일에 강좌를 참고하여 명령어를 바꾸어 시험해보세요^^    

위의 분기 방법은 플레그를 이용한 방법이기 때문에 테스트 해보실때 공원에 간다를 먼저 누르시게 되면
플레그의 특성상 지워지지 않으므로, 나중에 다시 선택문에 돌아와서 집으로 간다고 선택문을 누른다 해도
고백 이벤트가 성공하는 알고리즘적 버그[...] 있습니다.    

이와 같은 버그를 방지하기 위하여 아래와 같이 수정하시면 해결됩니다만, 이해가 어려우신 분들은 일단 개념만을 익히시고,
나중에
익숙해지시면 도전해보시면 되겠습니다.
 
   

논리적 플레그 사용법    
: 아래의 "더 보기"를 눌러주세요.

강좌 파일

 
Copyright 2005-2009. 아우름이. All rights Reserved.
미디어 연구소(http://mediastudio.tistory.com/) 

TRACKBACK 0 AND COMMENT 4
  1. 입문 2010.11.23 19:24 address edit/delete reply

    이쪽부터가 어렵네요. 다행히 RPG만들기나 워크, 스타 맵 에디터를 많이 다뤄바서 변수쪽에서는 친숙한 감이... ㄷ

  2. 처음 2013.06.16 03:55 address edit/delete reply

    init에 변수를 대입할때 기호는 = 만 사용가능하고 > 나 < 는 사용 불가능 한가요? 그리고 set 에서 + - 를 설정했을때 적용되나요?

  3. 처음들어가보는 2014.09.01 23:05 address edit/delete reply

    타이틀 부터라는 느낌으로 해보지만.... 멀었네요 ^^ 열심히 노력해보고자 합니다. 이글을 올리시고, 지우지 않아주셔서 감사합니다.

  4. Favicon of http://blog.naver.com/kdzdsyygijfs?22136 하이 2016.06.08 13:50 address edit/delete reply

    좋은 정보 잘보고 갑니다