[wizs] 戰爭腳本系統研究
戰爭系統一般由底下幾個元件構成
一、stepX_shout 每一流程的 shout msg
二、stepX_clone 每一流程的 clone mob
三、stepX_times 每一流程的 call time
四、cycleX_check 某一個流程的 repeat check
五、end_count 最終流程
六、怪物設定區
七、控制指令區
戰爭的訊息通常是帶色碼的,因此腳本需支援色碼;戰爭
的訊息也通常是置中的,可能\t,也可能\t\t,因此腳本
也需支援置中;戰爭的訊息通常也可能會隔行,可能\n,
也可能\n\n,因此腳本也需支援。
因為腳本化的緣故,「怪物不需要(也不應該)自己寫」,
因此採呼叫語法的方式,例如..
clone_mob("哪隻",幾隻,"哪裡")
而 "哪隻" 則定義在怪物設定區,例如...
#define MOBS ([\
"MOB_1":([\
"level":等級,"race":"種族","name":"id","chi_name":"怪物",\
"short":"怪物(id)","ethic":道德,"wealth":錢財,"warexp":戰功,\
.
.
]),\
])
這部份可以獨立成一個 .h 檔,戰爭的怪物都定義在此。
times 則有兩個控制方式,一是傳統 call out 式,一是
仿任務的做法,設定一個統一控制物件來控制,我比較傾
向後者。
cycle_check 的部份,是指任務進入某一步驟後,就開始
進行 cycle_check,這裡是程式碼,這是因為用程式來進
行腳本循環控制是最直接、最彈性的。
end_count 指的就是戰爭結束時的一些統計,這裡也是程
式碼。
換言之,整個腳本由三部份組成...
一、定義區
二、腳本區
三、程式碼區
那麼,所有的戰爭腳本,都會集中到一個目錄存放,在該
目錄下將有一個控制物件,該物件可控制戰爭的開啟、暫
停、中止,並觀看戰爭的執行狀況。
最後,會有一個 wiz 使用的 war 指令,用來將腳本變成
物件檔,並可遠隔呼叫控制物件執行相關指令。
Laechan
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.165.186.209
→
02/21 12:58, , 1F
02/21 12:58, 1F
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
13
30