[閒聊] 為什麼不做屬性攻擊
很多人提過這個東西,攻擊附帶了火系傷害之類的,聽起來很簡單,
做起來貌似也不難,但是那是要看基於什麼架構底下。來談談Mars吧!
Mars的每一個系技能是在一個skill table裡面,每個系技能有各種招式
(這邊統稱spell,無論是物理或法術,事實上任何東西都叫spell)
當承受攻擊時會去統計身上該系的抗性,例如我被火系攻擊就會去統計
火系的總抗性是多少,再來做加減。Mars的每個spell都是規類在skill
底下,所以劍系的招就是對應在劍系的抗性底下。
所以抗性到底實作上如何觸發?
每個skill都有所謂的sn,也就是skill_number,當你使用這系的招式時
就會去觸發抗性計算,你身上有這個sn的抗性就會進行減免
fireball火球術 -> 屬於 Fire -> sn_fire -> 呼叫抗性減免計算(sn_fire)
所以無法在各招裡面分別設定是什麼抗性。
如果真的要做,當然不是不行,畢竟程式絕對辦得到,問題是你要怎麼寫
有一定程式經驗的人都知道,去維護別人的code是很累人的,如果架構寫
得好、夠彈性,那就算輕鬆,如果是一堆程式規範外的特例,那保證日後
維護會搞死人。而且程式這種東西,每日隨便寫都是幾百行以上,昨天的
想法搞不好到今天就會忘記了,所以會要求開發者要下註解,至目前為止
我看Mars的註解只有泡麵有在做,雖然還是很少很不清楚,但是相對之下
算是好的了,其他像是只會寫 by xxx 這種註解就算了吧!是代表說這我
寫的不准刪除嗎?還是這我寫的有問題可以找我?
什麼叫做特例很難維護?
範例一:
各職業在每個等級、每種陣營都有自己的稱號,例如滿等正義的武士就是
真武大將,這些內容統一寫在一個table內,放在一個職稱的檔案。在顯示
職稱時會呼叫這個檔案內的table,然後找到對應的職稱顯示出來,偏偏就
有人喜歡在呼叫的時後加入一個判斷,例如 ID = xxx 的時後另外顯示自
己定義的職稱。所以這應該怎麼維護?要修改職稱不是應該去找存放職稱
的檔案嗎?變得要改一個東西需要去搜尋其他檔案看他放在哪。
範例二:
一定有很多MOB無法被一擊必殺吧!像是不能被call death or weakhit
這些東西原本是沒有所謂的tag的,也就是說你要寫出不能被一擊殺的MOB
需要進程式裡面,找到 call_death 這招的程式,加入一個例外判斷,這
判斷叫做 if(ID = xxx) { 一擊殺無效; } 這樣。那請問未來無法接觸
程式碼的開發者需要如何做這種區域MOB?這也就是先天很大的缺陷,很
多創意性的功能都因為要修改程式,變得必須要捨棄。這種東西很好解決,
只要在定義檔新增一個 免疫一擊殺 的標籤,接著在招式裡面遇到MOB有
這種標籤就免疫。接下來任何開發者就可以直接在怪物定義檔裡設定這個
標籤,即使不需修改程式也能達到目的!
所以很多功能不是不做,是現階段程式碼寫得太死。很長一段時間我都在
修改架構,所以很少再新增區域。目的是為了讓想做創意區域、技能等的
人有更大的發揮空間。
--
Mars-瑪爾斯群英傳,為一種多人的地下城文字網路遊戲(MUD),
以西方魔法奇幻風格為背景,讓玩家扮演各種職業進行冒險、解謎。
IP:220.135.242.105:8888 討論板: PTT mud_mars
Eplis @ Mars
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.71.24
推
12/07 12:27, , 1F
12/07 12:27, 1F
推
12/07 12:38, , 2F
12/07 12:38, 2F
→
12/07 12:51, , 3F
12/07 12:51, 3F
推
12/07 12:55, , 4F
12/07 12:55, 4F
→
12/07 12:56, , 5F
12/07 12:56, 5F
→
12/07 12:57, , 6F
12/07 12:57, 6F
→
12/07 13:00, , 7F
12/07 13:00, 7F
→
12/07 13:00, , 8F
12/07 13:00, 8F
→
12/07 13:00, , 9F
12/07 13:00, 9F
推
12/07 13:01, , 10F
12/07 13:01, 10F
→
12/07 13:01, , 11F
12/07 13:01, 11F
→
12/07 13:01, , 12F
12/07 13:01, 12F
推
12/07 13:47, , 13F
12/07 13:47, 13F
推
12/07 13:47, , 14F
12/07 13:47, 14F
推
12/07 13:50, , 15F
12/07 13:50, 15F
推
12/07 13:53, , 16F
12/07 13:53, 16F
→
12/07 14:48, , 17F
12/07 14:48, 17F
推
12/07 16:51, , 18F
12/07 16:51, 18F
mud_mars 近期熱門文章
10
10
PTT遊戲區 即時熱門文章