Re: [閒聊] 戰役系統

作者: laechan (揮淚斬馬雲)   2017-02-09 16:47:05
寫到現在,有幾個問題。
首先是怪物的定義部份,戰役系統應該支援「虛擬怪物設定」,這部份
我打算借用區域產生器的做法,讓 wiz 在設定戰爭時就同時設定好怪
物資料,但是又不會產生實體檔案。
也就是 clone 出怪物 sample 檔,再 set 值進去給怪物,然後再將設
值好的怪物 move 到指定位置。
然後,戰役系統也應該支援「借用實體怪物的資料來設定」,這部份很
簡單就是只要給的值是 file 類型,就先 clone 出怪物 sample 檔,再
clone 出該 file 所指向的怪物出來,然後把它的資料設定到 sample
mob,再將設值好的 sample mob move 到指定位置。
而不應該直接將「實體存在的怪物」clone 出來後 move 到指定位置,
否則:
1.wiz 就必須先寫出實體怪物
2.大家都寫實體怪物的結果就是戰爭怪物將難以控管
但是虛擬化設定有其它問題,當怪物需設定的資料很多時,會變得難以
腳本化。而且怪物若無實體檔,將來要做 all mob list 時也會漏掉戰
爭怪物的部份。
我再研究一下這部份怎麼做比較理想。原則仍是「一場戰役只需撰寫一
個腳本,腳本檔內就包含了這場戰役所需要的所有設定,這樣才能單純
化。若以這個做為前提的話,「共通戰爭怪物繼承檔」就變成必定會做
的事情,然後該繼承檔包含
1.如果怪物會四處走動時的處理
2.如果怪物有特攻時的處理
3.如果怪物陣亡時會做特殊事情時的處理
然後目錄資料結構可能會變成
/open/cmds/war/ 主目錄
/open/cmds/war/分類/ 分類目錄
/open/cmds/war/分類/戰役/ 戰役主目錄
/open/cmds/war/分類/戰役/腳本檔 該戰役的腳本檔
/open/cmds/war/分類/戰役/腳本物件檔 該戰役的腳本物件檔(以 war read 產生)
/open/cmds/war/分類/戰役/各怪物檔 該戰役會用到的所有怪物(戰役執行中產生)
同一個戰役下的所有東西都會在同一個目錄,然後同分類的戰役
也會在同一目錄。前者的好處就是在做怪物列表時,依照怪物檔
名就能知道它是屬於哪一個戰役,後者的好處就是比方分類名使
用的是 wiz 名,那該分類下的所有戰役就是該 wiz 寫的&管理
,列表時就很清楚。
然後配套措施就是要寫一個管理系統。
LAechan

Links booklink

Contact Us: admin [ a t ] ucptt.com