ES2 MUD LIB :: 東方故事二(ES2) 天朝帝國 mudlib 瀏覽展示

/doc/build/equip

HOME :: doc :: build :: equip
□ 如何寫可以裝備的物件

在 es2 mudlib 中﹐所有可裝備的物件都屬於同一種物件﹐事實上﹐可裝備的物
件在我們的定義中相當於 ITEM 這個標準物件加上 F_EQUIP 這個特性﹐你可以用
ilist 這個巫師指令來檢查你手邊的武器或護具﹐就可以得知這些物件繼承了哪
些物件。

也許你已經注意到﹐我用的是「可裝備的物件」這個奇怪的統稱﹐而不是你所熟
悉的武器、防具等傳統稱呼﹐沒錯﹐在 es2 mudlib 中並沒有故意去區分武器跟
防具﹐這兩種物件其實繼承了完全相同的物件﹐只有在 create() 時設定的屬性
不同而已﹐換句話說只要你正確地設定了該有的東西﹐一個物件可以同時是武器
跟防具(你可以 wear 或 wield 它)。

當然﹐如果你還是一個新巫師的話﹐可以先不必管那麼多﹐以下我先用一些例子
來說明如何寫一個武器或防具。

□ 武器

#include 

inherit F_SWORD;

void create()
{
    set_name("長劍", ({ "longsword", "sword" }) );
    set_weight(3000);
    setup_sword(2, 11, 30, 0);

    if( !clonep() ) {
        set("unit", "把");
        set("value", 500);
        set("long", "一把普通的長劍。\n");
        set("wield_as", "sword");
        set("rigidity", 20);
    }
    setup();
}

以上就是一個簡單的武器寫法﹐看起來似乎比一個房間複雜了一點﹐不過不必緊
張﹐前面我們說過像武器這種可裝備的物件是 ITEM 加上 F_EQUIP 的特性﹐因此
有一半以上的指令是用來設定 ITEM 的基本屬性的﹐如果你忘了的話﹐請你看看
寫 ITEM 的那一篇文件。

以下這裡只說明專門針對裝備的幾行做說明﹐首先是 setup_sword(2, 11, 30, 0);
這一個函數設定這個武器的攻擊力﹐四個參數的意義請參考 help weapon。

接下來是 set() 設定的屬性部份﹕

"wield_as"    這是這樣武器可以使用哪些武器技能﹐這個屬性可以是單一個字串或
              一個字串陣列﹐如
                  set("weild_as", ({ "sword", "secondhand sword"}));
              可以設定這個武器當 sword 跟 secondhand sword 使用。
              裝備可以使用的技能跟它繼承的武器特性有關﹐如 F_SWORD 提供
              sword 跟 secondhand sword 兩種技能。

By Annihilator (04/24/96)
HOME :: doc :: build :: equip