Re: [閒聊] 戰役系統

看板mud_sanc作者 (揮淚斬馬雲)時間4年前 (2019/10/15 19:39), 編輯推噓0(001)
留言1則, 1人參與, 4年前最新討論串4/4 (看更多)
抱歉,今晚大概仍無法改什麼,但可以打些東西。 首先,每一個戰爭都是一個房間檔,都會 inherit 特定的檔案, 並有自己的 void create 宣告,也會仿照任務腳本的形式做一些 宣告,本身也會有 times_check 函數。 宣告的變數會是 mapping 的型式,主 keys 盡量比照任務腳本, 戰爭基本上仍會是 step by step。 從 stepA→stepB 有以下幾種型式 1.固定秒數後跳到下一步 2.固定秒數後判斷是否滿足跳到下一步的條件,否的話循環判斷, 3.固定秒數後若發現仍沒有滿足跳到下一步的條件就做某事 a.跳到其它步驟 b.中止戰爭 c.從頭開始 上面三個可簡化為兩種呼叫 1.固定秒數[n1]秒之後呼叫特定判斷用函數[f1] 2.固定秒數[n2]秒之後呼叫特定判斷用函數[f2] 也就是說每一個步驟都要設定 2~3 種秒數,n1 是第一次呼叫 f1 的秒數,n2 是呼叫 f2 的秒數,還有 n3 是循環呼叫 f1 的秒數 假設某步驟,設定者只設定 n1,那就會簡單判斷為 n1 秒後跳到 下一步。 戰爭中最怕遇到 reset,因此用 times_check 來跑仍是不得不的 選擇,這時 n1~n3 時間都不能設定太短,至少 30 秒是比較好的 做法;每一 step 至多有兩條 times_check 在跑,至少一條,會 有個判斷機制,當下一步驟順利呼叫時,就會清除上一步驟的所有 呼叫。 循環判斷是比較棘手的部份,例如說執行到某一步驟時,已經陸續 召喚出了三群魔兵,每一群都包含一隻魔將,然後該步驟的循環判 斷是「三隻魔將是否全部陣亡」或是「三隻魔將是否已死一隻」甚 至是「符合條件的玩家們是否已抵達特定地點」... 這種東西要怎麼寫? 因為有千奇百怪的判斷,所以這部份一定是自訂,但理論上也應該 提供方便的判斷做法。 再來是戰爭的結算,當初也有卡在這個地方。 首先,為避免不必要的問題,玩家打死戰爭怪的當下就會得到報酬 ,另外也會有個參數儲存,它會在戰爭結束的當下秀出哪些玩家得 到了什麼報酬的總畫面。前者玩家一定會拿到,後者則不一定會正 常顯示(但是不影響已拿到的報酬)。 這是因為我盡可能不想 save_object 戰爭物件的緣故。 最後,是戰爭的地點,以及宣告的方式。宣告會採取跟星海戰爭類 似的做法,玩家可得知要怎麼前往,以及初期要在哪裡待命,這時 地點的選擇就能夠多元化(例如菲里德監獄暴動事件)。 當房間存在戰爭怪時,我也會讓 reborn system 盡可能不要去重置 這些房間,這時有個應該要遵守的前提,就是這些房間原本就不應 該有 mob。 設定稿大致是這樣。 怪物的部份,不難,任何怪物都能叫過來當戰爭怪,這部份仿照副 本的設定即可,在怪物的名字前面會有 [戰爭] 字樣。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.66.104 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/mud_sanc/M.1571139547.A.F63.html

10/15 19:49, 4年前 , 1F
待會要躺床了..
10/15 19:49, 1F
文章代碼(AID): #1TfQ_RzZ (mud_sanc)
文章代碼(AID): #1TfQ_RzZ (mud_sanc)