任務系統
任務系統需要事件系統,先有事件才有任務。事件系統可以看成是一個超大型狀態機 玩家存檔資料,由 1. 一堆 bit flags (標籤 2. 一堆 counter (計數籤 組成,這些標記都有 index,之後會再提到 index,這些東西相當於變數。 編輯事件資料,基本上有三個部分 1. triggers,觸發器,例如是由某種地塊去觸發 2. conditions,檢查計數、有沒有某個標籤、triggers 的 ID 之類的 3. actions ,滿足條件後要做什麼事,例如執行兩個 effect,把某個標籤變 1,把某個計數籤遞增 1 這些資料可以只用 excel 表完成編輯,要怎麼串檔給程式用,程式可以自己決定,例如串成 JSON。 有事件系統的話,actions 還可以執行其他效果 (effect)。事件系統本身只驅動事件邏輯資料,不會真正做各個行為,具體執行內容是其他系統負責執行的,例如生成 NPC、給道具、補血、加錢等等。 前面提到的 index,可以想像成是變數,相當於變數 ID。