今天花了一點時間找當初有寫好一部份雛形的戰役系統。
(我同時也有發現 sgz 跟 soe,這個等 11 月過後有空再寫)
目前看起來應該是在 /open/cmds/war/ 目錄,架構大概是
/open/cmds/war/war.c 戰役物件繼承檔
才寫了 118 行,我想重寫大概也可以。(主要是我忘記怎麼寫的)
/open/cmds/war/mob.c, gmob.c 呼叫出來的怪物樣本檔
這個保留大概可以。
/open/cmds/war/control.c 戰爭控制檔
這個應該可以重寫,因為 times_check.c 已經完成了,時間的相關
控制以後交給 times_check 去管理即可,control.c 的主要程式碼
大概都是 times_check 的部份。
/open/cmds/war/felid1
菲里德戰爭的腳本檔
title=塔塔克高地奪還戰##
author=laechan##
date=2013/02/19##
def=
#define PIC1 "/open/cmds/war/pic/sanctuary"
#define PATHS "/d/tatak/room/"
#define MOBS ([\
"MOB1":([\
"level":100,"race":"坦克","id":({"felid tanks","tanks"}),\
"short":HIG+"菲里德坦克連"+HIW+"(Felid Tanks)"+NOR,\
"name":"tanks","chi_name":HIG+"菲里德坦克連"+NOR,\
"warexp":50,"ethic":-100,"wealth":500,"member":10,\
]),\
])##
step1_title=戰爭片頭##
step1_shout=
<PIC1>##
step1_times=10##
step2_title=坦克連,出動!##
step2_shout=
\n\t\g菲里德遠征軍戰敗的消息,傳回了菲里德國內!\o\n
\n\t\g梅可中將:\w坦克連出動!將高地奪回來!\o\n\n##
step2_clone=
set_mob("gmob",MOBS["MOB1"],3,PATHS+"016")
set_mob("gmob",MOBS["MOB1"],3,PATHS+"017")
set_mob("gmob",MOBS["MOB1"],3,PATHS+"018")##
step2_times=30##
上面可發現一些問題
一、腳本檔的怪物定義內容太雜亂
二、定義的引用不太直覺
三、訊息的部份是個問題
四、我當初沒規劃 demo 的部份
不過大致上我已經知道我當初的想法是怎樣。
這東西我在 11 月後也會開始寫,這個也是擴大玩家參與創作的
重要系統之一,事實上玩家現在透過現有工具已經能參與底下的
創作:
一、區域(只需提供設定稿)
二、任務(只需寫腳本)
三、副本(只需提供區域大致路線圖及流程)
以後我的構想是連「戰役」也能參與創作,只需提供如上類似的
腳本即可,戰役系統寫好後我打算以星海戰爭做為樣本。
最後可以確定的是,這東西要寫就要一氣呵成去寫,不然無法完
工。
Laechan