作者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