ES2 MUD LIB :: 東方故事二(ES2) 天朝帝國 mudlib 瀏覽展示
/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)