Re: [建议] 副本相关

楼主: laechan (挥泪斩马云)   2014-04-11 10:48:22
※ 引述《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

Links booklink

Contact Us: admin [ a t ] ucptt.com