[闲聊] 20170503修改事项

楼主: laechan (挥泪斩马云)   2017-05-03 08:05:51
早上六点多利用上班前的时间,先完成了公司交办事项,今天应该
仍会有零星时间可 coding。
(除非被叫去开会,最近障碍颇多)
一、指令 ob 修改
备份档: /cmds/std/ob.20170503
可使用 ob use 指令的虚拟物品,其指向的实体物件档,可自
订两种类的对映函数
第一类: special_use_fun
special_use_func
以上只是名称不同,当 ob use 侦测到实体物件档有
这两个函数时就会呼叫,而且不会扣该物品数量 1。
第二类: use_fun
use_func
ob_use_func <= 尽量少用这个函数
以上只是名称不同,当 ob use 侦测到实体物件档有
这两个函数时就会呼叫,而且默认扣该物品数量 1。
以上函数在实体物件档里头“理论上”只会存在一个,第一类
函数具有优先的呼叫权。比方当 special_use_fun 与 use_fun
同时存在时,只有 special_use_fun 会有作用。
vobjs -export 可以秀出目前现存各物品的快速设定指令。
> vobjs -export
其中两行如下
vobjs -quick 生命水晶;s001;颗;水晶类;/adm/daemons/eq/s001;10;1;1;1;
vobjs -quick bueq纪录卡;s002;张;系统类;/adm/daemons/eq/bueqcard;10;1;1;1;
上面各字段对映如下
vobjs -quick 物品名称;种类标头;unit;kind;desc;value;carry;no_sell;no_trade
比方我今天要新增一颗 s003=贤者之石的东西,不可交易,不可贩卖,
最大携带量 1,实体档 /std/new_ob/s/s003.c
vobjs -quick 贤者之石;s003;颗;系统类;/std/new_ob/s/s003;10;1;1;1;
复制上面,贴到 mud 当做指令下下去,就新增该物品完成。
这样当玩家 ob view 该物品 时,其看到的物品叙述就会直接读取其指
向的实体物件档所设定的 long,例如
ob view 生命水晶
────────────────────────────
生命水晶(物品编号: s001)
────────────────────────────
单位:颗
型态:水晶类
携带:9 / 1
价格:10
掉落:无
贩卖:不可
交换:不可
一颗清澈无暇的水晶,包含着诸神的魔力在里面。 <= 这个即是读取实体物件
────────────────────────────
实体档没有指定位置,wiz 可依自己方便或是考量物品分类来做存放。
二、

Links booklink

Contact Us: admin [ a t ] ucptt.com