作者laechan (小太保)
看板mud_sanc
标题[wizs] vobjs 虚拟物品的 use
时间Tue Jan 8 00:35:10 2013
这个我已经写了,wiz 可参考,说明及使用方式如下:
一、统一指令: ob use [虚拟物品名称] 或 [序号]
> ob
你的物品栏带着 10/99 种物品:
─────────────────────────────────────
1.蓝色晶矿 ( 10) 2.黄宝石 ( 1) 3.毒蛇的牙齿 ( 4)
4.圣诞礼物箱 ( 10) 5.绿宝石 ( 1) 6.紫宝石 ( 1)
> ob use 4 <= 支援用你所看到的编号方式(或"圣诞礼物箱"也可)
你开启了礼物箱,里面装了一颗%力量大补丸%(Str Pill)。
二、使用 vobjs 指令去设定你想要让玩家可 use 的物品
,节庆物品请统一设在 f 区,其它就看你觉得该物品
可以使用哪一区。
请自行参考 vobjs 相关设定。vobjs 支援快速设定。
三、撰写该虚拟物品的「实体支援物件」。例如圣诞礼物
箱 f802 的实体物件为 /d/event/xmas/box.c,它只
有一个关键函数:
int ob_use_func(object ppl)
{
object ob;
string str;
switch(random(6))
{
case 0:
write("你开启了礼物箱,结果箱子里是空的。\n"+
"你: ......\n");
.
.
跟以前撰写的实体物件有底下差异:
1.inherit
ROOM;
2.不需要 void init() 去 add_action,直接写函数
3.函数名需统一为 ob_use_func(object ppl)
你可自行参看并拷贝 /d/event/xmas/box.c 去改。
四、在 ob view 4 时会看到如下
────────────────────────────
圣诞礼物箱
────────────────────────────
单位:个
型态:节庆物
携带:9 / 10
价格:10
一个礼物箱,你可以使用 ob use 圣诞礼物箱 指令来开启它。
────────────────────────────
物品资讯:虚拟物品
该物品被识别为可 use 的条件就是该物品的叙述被
设定为"完整档名路径",这样 ob use 才能依据叙述
去找实体物件。
最後虚拟物件的简单概念,就是不再「clone」出一个一
个实体的物件给玩家下指令去使用,例如现在的大补丸就
是这样的模式。
以後改成大家都以 ob use 指令去使用,并统一呼叫同一
个物件(房间)。这样单一物件就可以给多位玩家同时使用
,而且可以一直重覆用,系统永远只载入一个物件。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.224.240.189
1F:推 justinj :档案路径...全部都一样.../d/obj/vobj....amem 01/08 08:43
2F:→ laechan :嗯? 01/08 08:46
3F:→ hlead :这方法不错...vobj目录其实可以产表列出中文啦.. 01/08 11:20
4F:→ laechan :原则上目前的 vobjs -ext 理论上应改成显示完整档名 01/08 11:37
5F:→ laechan :而非去读取该档名指向的物件之 long 做为 desc. 01/08 11:37
6F:→ laechan :(因为 vobjs 是 wiz 内部使用的东西应显示原始内容) 01/08 11:38
7F:→ laechan :这个最近会变更 01/08 11:38
8F:→ kaedeju :测试无法成功ob use 红字部份都做了 ack 01/09 18:15
9F:推 kaedeju :已解决。 01/09 19:59