切換
舊版
前往
大廳
主題

【程式】NScripter自製系統範本(0924更新)

汜羽荃 | 2011-09-21 00:06:16 | 巴幣 10 | 人氣 2177

【一】前言與下載

大家好,這邊是汜羽荃。

之前弄遊戲程式的時候,因為一知半解,卡了很久都在跟系統糾纏不清…
然而,與它的邂逅讓一切問題迎刃而解──

是的,就是這套NScripter自製系統範本!

此範本由日方的貴史(貴史たま+ME)所製作。
AVG該有的基本功能通通內建在裡面,而且是免費下載的。

因此,希望能讓更多人使用到這個便利的範本,汜羽將它翻譯成中文。

http://w1.loxa.com.tw/dtfin/platform_cht.zip (9.36MB)

最新版本為9.36MB。
主要是「bw.dll」這個檔案有變更,但之前版本其實也可以使用。
詳情可參考下面2011/09/22的更新事項。

※      ※      ※

【二】內容物

壓縮檔裡面,一共有三個資料夾。

§ 01_apl
就是自製系統的本體,修改程式、置換圖片都從這邊來。當中的NScripter執行檔是由NiSeLoLi提供的2.94中文化版本

§ 02_使用說明書
如同字面,就是存放說明書的資料夾,簡介範本的內容。
原作者還在銳意補完中。

§ 09_BACKUP
本資料夾裡的內容,因為資料龐大加上無必要性,故沒有翻譯成中文,還請諒解。
另外,有個叫做「backup.bat」的批次處理,點擊之後就會把「01_apl」的內容複製到這個備份資料夾裡面。

其他包含在資料夾裡面的內容,敬請參考「使用說明書.txt」這個檔案。
另外,「delete.bat」這個批次處理是砍掉「01_apl」當中「savedata」資料夾裡面的記錄檔。

※      ※      ※

【三】系統情報

這個範本裡面包含了一般AVG會使用到的功能,大致列舉如下:

(1)對話框上的「快捷按鈕」,以及「右鍵圖像選單」
(2)可播放人物配音的「劇本回顧系統」
(3)包含畫面預覽、日期時間、劇本節錄的「自製存檔系統」
(4)音樂、CG等「鑑賞模式」
(5)「事件回想、劇本跳躍功能」,但必須使用內建的劇本管理結構(有限狀態自動機)。

諸如此類,還有其他效果可供使用。
以AVG的標準來說,以上功能真的相當充足。

※      ※      ※

【四】使用注意

關於使用上的注意事項,原作者貴史並沒有放棄著作權。

音樂的作曲者則另有他人,故不能任意轉載使用。

不過,這個範本的程式碼(包括LUA)以及圖畫的部份,是可以自由使用的。
換言之,不必跟作者報備,亦不強制註明來源網站──當然,如果能告知一聲也不錯。

最後,歡迎製作遊戲的各位應用這個範本喔~~^_^
如果發現有翻譯錯誤或語意不通之處,甚至遇上了bug,敬請留言或寫信告知汜羽。

p.s.
有防毒軟體會判定「09_BACKUP」裡面一個叫做「bw.dll」的檔案有木馬程式。
但它其實是無害的,請各位切莫驚慌害怕。
不過,為了保險起見,這邊提供沒有上述檔案的版本。
原作者在新版有修正了這個問題,所以放在「01_apl」資料夾裡面的「bw.dll」應該沒有以上的問題。

※      ※      ※

2011/09/22 PM13:30

原作者網站更新,修正bw.dll需要依賴msvcr100.dll才能運作的問題。

http://w1.loxa.com.tw/dtfin/bw.zip
由此可下載更新檔。(17.3KB)

使用方法:
解壓縮可以得到bw.dll這個檔案,請直接覆蓋「01_apl」裡面「dll」資料夾當中的bw.dll
成功覆蓋之後,即可刪除「01_apl」資料夾當中的msvcr100.dll
如果是在九月二十二日之後才下載本範例,則沒有此問題。

目前最新版本:
http://w1.loxa.com.tw/dtfin/platform_cht.zip (9.36MB)

去除木馬嫌疑dll檔版本:
http://w1.loxa.com.tw/dtfin/platform_cht2.zip (9.35MB)

※      ※      ※

2011/09/24 PM14:40

【五】基本調教事項

雖然講得有點慢了,要使用這個範本的前提是──必須對NScripter有一定的了解。
關於這個程式,可以參考戀模板精華區的「 Nscripter全攻略(原作Count D)」,該系列詳盡解說了NScripter的基本功能。
如果已有使用經驗,以下簡介這個範本「最低底限需要變更的地方」。


〈00.txt〉
系統設定。
(*rmode)可以調整右鍵選單的項目,其他可以忽視。


〈01.txt
存讀檔畫面的設定。
基本上沒什麼需要改的,跳過。


〈02.txt
這邊是系統設定=Option的程式碼。
(*option)這個標籤裡面擺了各種設定項目,不需要的就直接砍掉。


〈03.txt
04.txt
05.txt
跳過。


06.txt
AVG不可缺少的CG鑑賞模式。解釋一下顯示的語法:
lsp CGMODE_SEL00,(ev1a)ev1s cg_dummy,%0+%1 * 0,%2 + %3 * 0
按鈕名稱,(CG的路徑)縮圖路徑 還未看過的示意圖,X座標,Y座標

另外,這邊之所以寫成「ev1a」、「ev1s」或「cg_dummy」,是因為原作者預先幫圖檔寫了捷徑,才能像這樣直接指定,捷徑則是寫在【08.txt】裡面。
如果不打算給圖檔建立捷徑,就要用以下的格式來指定CG:
lsp CGMODE_SEL00,("資料夾\檔案名稱.副檔名")":c;資料夾\檔案名稱.副檔名" cg_dummy,265,112

附帶一提,這個CG鑑賞模式,可以在同一個預覽圖之下顯示複數的CG。
if %0=CGMODE_SEL00 mov $1,ev1a:mov $2,ev1b:mov $3,ev1c:mov %1,3
同樣請注意,原作者在這邊使用了預設捷徑。
%0的數值是CG按鈕的編號,使用「mov $張數,CG路徑」可以不斷串接下去,但務必在最後加上「mov %1,顯示CG的總張數」。


07.txt
音樂鑑賞模式,跳過。


08.txt
(*define)
各種基本設定。遊戲標題、版本情報、預設字體、畫面效果、出現在遊戲視窗上的橫條目錄…都能在這邊修改。

可以替變數命名,便於管理。例如要建立A君的好感度:
numalias a_love        ,200
命名語法 變數名稱 ,變數編號

也可以設定各種圖檔的捷徑,例如剛剛的CG:
stralias ev1a,"bg\bg_1.jpg"
捷徑語法 捷徑名稱 ,"檔案位置\名稱.副檔名"


09.txt
(*start)
遊戲劇本的起點。
如果有好感度設定,記得要在這邊讓變數歸零,不然就會一直累計下去。
例如剛剛設定的A君好感度,每次都要把它清掉才行,所以寫在這邊:

mov %a_love,0

(*logo)
一開始轉轉轉的那個LOGO圖片是從這邊操控。

(*title)
標題畫面。
從這邊通往劇本、存讀檔、或是回想模式等。


10.txt〉
(*main)
在標題畫面點選"開始"之後,就會從這邊開始執行程式。

(*scenario_rpt)
這個要處理/解說起來滿複雜的,筆者也跟它不太熟…
因此,這邊來解說當初應變的方法──

只要從*main開始寫路線分歧就可以了!


當然,偷懶的代價是需要自行處理事件回想,也不能使用預設的劇本跳躍功能。
以下是實例說明:

*main
    saveon
    bg black,10
    gosub *S000
goto *start

*S000
今晚的選擇是哪一位?!
osel "深情男,*A001,純爺們,*B001,小壞壞,*C001"
if $%sel_result == "*A001" goto *A001
if $%sel_result == "*B001" goto *B001
if $%sel_result == "*C001" goto *C001
return

*A001
bg bg1a,27
得到了「深情男」!
bg black,10
return

*B001
bg bg2a,35
得到了「純爺們」!
bg black,10
return

*C001
bg bg3a,12
得到了「小壞壞」!
bg black,10
return

實例到此結束。這個管理劇本的原則是:
(一)使用「gosub」語法跳到子事件(共通劇情、個別人物劇情);
(二)假如某個事件需要A君的好感度為1才能啟動,可以在*main這樣寫「if %a_love=1 gosub *A002」。如果需要A跟B的好感度皆為1,就寫成「if %a_love=1 & %b_love=1 gosub *A002」。
(三)每個子事件的最後要加上「return」;
(四)子事件裡面的選項分歧,絕對不能用「gosub」,要用「goto」,不然會造成階層混亂,示意圖如下。

這是個人覺得比較容易理解的劇本管理模式。
另外,子事件如果已經到結局了,也可以使用「goto」跳躍到*start,結束這一個回合。
解說到此為止,有什麼邏輯上的錯誤或建議之處請多指教!

創作回應

更多創作