作者laechan (眼鏡男)
看板mud_sanc
標題[wizs] 套裝的寫法說明
時間Sun Feb 11 11:35:06 2007
// 定義一個共通名字(可定義可不定義, 定義是為了方便起見)
#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