[閒聊] 為什麼不做屬性攻擊

看板mud_mars (瑪爾斯群英傳)作者 (Eplis)時間12年前 (2012/12/07 11:58), 編輯推噓9(909)
留言18則, 5人參與, 最新討論串1/1
很多人提過這個東西,攻擊附帶了火系傷害之類的,聽起來很簡單, 做起來貌似也不難,但是那是要看基於什麼架構底下。來談談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
b( ̄︿ ̄)d辛苦了ep
12/07 12:27, 1F

12/07 12:38, , 2F
b( ̄︿ ̄)d辛苦了ep
12/07 12:38, 2F

12/07 12:51, , 3F
還有誰想了解什麼我趕快講一講 解釋清楚
12/07 12:51, 3F

12/07 12:55, , 4F
多幾個被動技能? :D 像是死神協定那種的 XDDD
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
合擊是兩個mob一起打暴你嗎XD
12/07 13:00, 8F

12/07 13:00, , 9F
mob做合擊會比玩家容易..戛a的狀況比較特殊
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
從 Mob 開始也不錯,或許哪天玩家就也有了 XD
12/07 13:47, 13F

12/07 13:47, , 14F
那 連續技哩? XDDD
12/07 13:47, 14F

12/07 13:50, , 15F
畫面已經夠洗了 XD
12/07 13:50, 15F

12/07 13:53, , 16F
從結構下去解決才是根本之道,只是比較辛苦,加油!!
12/07 13:53, 16F

12/07 14:48, , 17F
戰鬥中看到死神協定超有成就感得不是嗎XD
12/07 14:48, 17F

12/07 16:51, , 18F
是阿 超有成就感的 XDDD
12/07 16:51, 18F
文章代碼(AID): #1GmMbsU- (mud_mars)
文章代碼(AID): #1GmMbsU- (mud_mars)