[wizs] 套裝的寫法說明

看板mud_sanc (Sanctuary - 聖殿)作者 (眼鏡男)時間18年前 (2007/02/11 11:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
// 定義一個共通名字(可定義可不定義, 定義是為了方便起見) #define ORIGIN_EQ_NAME HIB"石精戒"NOR inherit ARMOR; // 先繼承 ARMOR 或 WEAPON inherit NEWSUIT; // 再繼承套裝用物件, 該物件 = /std/suit.c void create() { seteuid(getuid(this_object())); // 原則上, 套裝不變更 ID, 只變更名字 set("id",({"stone spirit leftring","leftring"})); set("short",ORIGIN_EQ_NAME+"(Stone Spirit Leftring)"); // 套裝嚴格限定必須設定 chi_name 與 name, 且這兩個名字必須 // 與套裝的中文名一樣 set("chi_name",ORIGIN_EQ_NAME); set("name",ORIGIN_EQ_NAME); set("long",@LONG 相傳石化人在古代曾經擁有兩只戒指, 據說是石化之神配戴的裝 備, 其中一只戴在左手上的, 就是石精之戒, 能呼喚出最強的石 之精靈. LONG ); // 武防一般設定區 set("mass",200); set("value",100000); set("level",120); set("type","leftring"); set("no_break",99); set("armor",200); set("race","stoneman"); // 一直到這裡都是武防一般設定區 // 套裝嚴格規定必須認主 set("sdata",({"names"})); set("effect",(["stat-fel":25, "stat-str":35, "stat-dex":-15])); // origin_effect 為裝備的初始屬性 // 不可使用底下寫法 // set("origin_effect",query("effect")); // 嚴格禁止上述寫法(會產生bug) set("origin_effect",(["stat-fel":25, "stat-str":35, "stat-dex":-15])); // 設定各項 origin 參數, 這些參數的用意在存放裝備的原始名稱資料 set("origin_short",ORIGIN_EQ_NAME+"(Stone Spirit Leftring)"); set("origin_chi_name",ORIGIN_EQ_NAME); set("origin_name",ORIGIN_EQ_NAME); // 設定套裝裝備齊全後,該裝備要替換的名字 set("suit_name",HIB"石化人套裝"HIW"─"NOR+ORIGIN_EQ_NAME); // 設定套裝相關資料 set("suit_data",([ // 該套裝獨一無二的識別ID "suit_kind" : "stone", // 該套裝全部包含幾種 type 的武防 "suit_total" : ({"ring","leftring","body"}), // 目前這件裝備的 type 屬於哪一種 "suit_type" : "leftring", // 裝備好該套裝後, 各項屬性的增減 // 例如以這個為例, 原先是 str+35, 這裡又增設 str+15 // 這代表套裝裝備齊全後, 該裝備的 str+35 就會變成 str+35+15=str+50 "suit_effect" : (["stat-str":15, "stat-con":25, "stat-dex":15]), // 裝備好該套裝後, 該件裝備的最終屬性 // 例如剛剛就計算出最終 str 會 +50 // 這是指單就這項裝備而言 "suit_ok_effect" : (["stat-fel":25, "stat-str":50, "stat-con":25]), ])); } 根據上述,就可以得知,雷格防具=>完全不雷格套裝亦可套用上述 的設定。 設定項目繁雜的原因,則是為了避免「繁雜的計算」,也就是說若 你可以事先就將資料設進去(例如 suit_ok_effect),那麼將來在裝 備套裝時,該資料就可以直接設進去,而不用再加一道計算的手續。 而且它的另一個好處是,在 view 時若要增加顯示套裝的資訊,那 麼它也可以很方便地做各種資料的讀取,而不需要計算一些有的沒 的。 在 wear all 與 remove all 的情況下,「套裝判斷」亦只會執行 一次。 若下午或晚上我精力夠的話,我會開始修改雷格套裝,畢竟這是一 個包含20件防具左右的套裝,足以實驗 suit.c 是否有能力做為繼 承用物件的價值。 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.225.19.200
文章代碼(AID): #15pexjYm (mud_sanc)
文章代碼(AID): #15pexjYm (mud_sanc)