作者laechan (小太保)
看板mud_sanc
标题Re: [建议] 副本相关
时间Fri Apr 11 10:48:22 2014
※ 引述《laechan (小太保)》之铭言:
: 出差刚回来。
: ※ 引述《justinj (黑旋风)》之铭言:
: : 看看能不能拥有这些功能
: : 1.限时副本(就是副本只能存活n分钟)
: 这个在 instance_data 里面新增参数来判断即可,时间一到就是
: 全员脱出不能再跑。
: 从这里可以看出还能增加一个 instance_comm 的栏位,也就是所
: 谓的「共通设定」。
/std/new_ob/instance/instance_ob.c 不备份添加修改。
1.更动 iroom 读取资料的方式为 mapping 做法。
2.新增 instance_comm 栏位,用来做共通设定。
3.在 instance_data 设定串里面增加 "del-" 的做法,代表
可删除特定栏位的资料,例如 "del-light":1(值可任意接)
它就会做 delete("light") 的动作。
instance_comm 亦支援 "del-" 的做法。
这里要加一个备忘,就是「原始基底房间」的资料,究竟要预载到
什麽程度,目前仅 short, long, item_desc, exits/hide_exits
: : 2.任务:击杀副本的怪几只之类的
一般来说,能识别新旧副本的关键有两个
1.instance_player 谁呼叫的
2.instance_time 什麽时候产生的
我新增了一个 instance_time 用来纪录副本产生的时间。那理论上
打死每一只副本怪是可以在 instance_rooms 新增纪录,这个纪录
将会随着副本的消灭而消失,这是办得到的,但前提必须是该副本
怪物没有自订 die。
那於是有两种情况
1.怪物没有自订 die
修改 /adm/daemons/mob_d.c 即可,我刚刚已经改了。
if(me && me->query("instance_name"))
instance_rooms->mob_record("set",({me,killer}));
2.怪物有自订 die
则 wizs 想统计玩家在该副本打死了多少怪物,针对有自订 die
的怪物必须额外修改,不然 instance_rooms 无法统计到这类怪
物的被杀数量。
// 正常区域下的该怪物不会有 instance_name 参数
if(mob->query("instance_name"))
if(!catch(instance_rooms=find_object_or_load(
"/std/new_ob/instance/instance_rooms")))
instance_rooms->mob_record("set",mob,this_player());
/std/new_ob/instance/instance_rooms.c 也已做了相对映修改,
新增了 mob_record 函数。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.61.157.53
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/mud_sanc/M.1397184505.A.43D.html
1F:→ laechan :下午又一堆障碍 04/11 15:36
※ 编辑: laechan (125.230.96.69), 04/12/2014 08:11:41
2F:→ laechan :要新增 questing 的使用方式,不过等副本改完再弄 04/12 08:12
3F:→ laechan :暂时的资讯取得方式用 instance_rooms->mob_record( 04/12 08:12
4F:→ laechan :"query",({"副本creater","怪物mark","玩家id"})) 04/12 08:13
5F:→ laechan :要查怪物时,玩家id那栏给0; 要查玩家时,怪物mark给0 04/12 08:13