[wizs] 未鑑定防具設定備忘

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間12年前 (2013/09/07 05:00), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
這篇是寫給自己看的也是寫給 wiz 們看的。 首先所有新型態區域的「群式怪物」都繼承 /std/new_ob/gmonster.c ,而該檔案有自訂 die 函數,換言之只要是沒有自訂 die 函數的新型 態區域怪物,陣亡時都會 follow /std/new_ob/gmonster.c 的 die。 (當然它裡頭該 return 1 的都有 return 1) 在各新型態區域的 area.h 裡會定義怪物的陣列資料串,其中會掉防具 的怪物它資料串裡頭會多一個東西,一般是 ({ }),有設定時就變成像 是 ({"cape"}) 這樣。 比方某怪設定會掉 cape,這時它就會找 /std/new_ob/cape.c 並clone 出來當做未定名防具的實體檔。 所以 /std/new_ob/ 目錄下沒有的防具要自己新增,以 cape 為例 /std/new_ob/cape.c 防具實體檔 /std/new_ob/cape_set.c 防具設定檔 more cape.c 即可知道它只有幾行(無視 /* */),大部份的設定都放在 cape_set.c 這才是重點。 mixed return_ob_effect(string ftype) { switch(ftype) { case "鎖妖塔": switch(random(3)) { case 0:return ({"syt" ,"雪羽披風", 50,-30, 50, 0, 30, 40, 0}); break; case 1:return ({"syt" ,"銀狐披肩", 45,-30, 40, 0, 40, 45, 0}); break; case 2:return ({"syt" ,"白靈肩甲", 40,-30, 30, 0, 50, 50, 0}); break; } break; default :return ({"sanc" ,"聖殿披肩", 50,-30, 40, 0, 40, 40, 0}); break; } } 所以其實很簡單,比方說我希望菲里德古堡研究館的某隻有設定會掉 cape 的怪物會掉 cape,那就新增底下 case "菲里德古堡研究館": case 0:return ({"syt" ,"OOOO披風", 50,-30, 50, 0, 30, 40, 0}); break; case 1:return ({"syt" ,"XXXX披肩", 45,-30, 40, 0, 40, 45, 0}); break; case 2:return ({"syt" ,"$$$$肩甲", 40,-30, 30, 0, 50, 50, 0}); break; break; 一般準備三種名字不一樣(稱呼也不一樣)的 cape,比方你也可以仿 已設定的去給披風、披肩及肩甲,或給新的。 後面的七個數字第七個就是 Int,一般防具不給 +Int。 前六個數字依 score l 的順序 Fel Str Dex Air Con Mag,代表初 始的屬性。比方我可以設定研究院某 cape 是 +mag -con 的,那就 可以設成像是 30, 10, 50, 10, 50, -20, 0 而 identify 則有機率可以做底下的事情 完整: 五個正屬性都在 無遐: 扣屬性的消失 堅固: 增加 armor 值 高屬: 隨機挑屬性高屬 高屬: 隨機挑屬性再高屬 所以初始值不需要很高,可參考目前玩家有拿到「最高」屬性的防 具,比方它是 arm 類,再去 more /std/new_ob/arm_set.c,依照 它是哪裡產的(例如蛇窟或鎖妖塔),再看它的名子(如臂甲),就可 以知道它的設定: "蛇王臂甲", 0, 50,-50, 50, 50, 35, 0 然後要注意一件事就是要給「default」設定: default :return ({"sanc" ,"聖殿臂甲", 50,-30, 40, 0, 40, 40, 0}); break; searchobj 可發現有些玩家有聖殿臂甲,這是因為有些防具並不是 依正規做法產生的,這時防具就沒有 ftype 標記,因此而需要一 個 default: 的判斷。 理念就是讓各 xxx_set.c 檔來控管所有的新型態防具,而因為它 是 xxx_set.c 這時就能 call xxx_set;某函數 去讀取其資料,就 能寫管理用程式。(可參考 norr 寫的 npc 指令做法) Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.61.157.53

09/07 06:39, , 1F
早上五點還沒睡 !!
09/07 06:39, 1F

09/07 11:54, , 2F
加班到五點半啊~
09/07 11:54, 2F
文章代碼(AID): #1IAa9TD1 (mud_sanc)
文章代碼(AID): #1IAa9TD1 (mud_sanc)