[wizs] 副本 (多层式副本)

楼主: laechan (挥泪斩马云)   2018-05-13 22:16:24
// 简单副本
// /std/new_ob/instance/laechan/006.c
#include "../instance.h"
inherit INSTANCE_OB;
void create()
{
string tmp;
int i;
::create();
seteuid(getuid(this_object()));
set("pre_clean",1);
instance_cd_times=INSTANCE_CD_TIMES;
// 设定区开始
// 理论上多张地图可画在同一 map2data 中, 重点在新增出口串接
// 同一副本下模拟其为多个副本的适当做法应该就是这样, 结案
[email protected]
501
|
502
|
503
LONG
;
instance_names="测试串接副本1";
instance_comm=(["xxxxx":1]);
instance_data=([
"503":([
"instance_check":1,
]),
]);
instance_paths="/u/l/laechan/area/felid/room/"; // 副本实际区域目录
instance_ob=base_name(this_object()); // 固定
// 副本区域房间范围, 第一个 room (如083) 固定为起点
instance_files=({
"501","502","503",
});
// 底下固定
foreach(tmp in instance_files)
instance_files[i++]=instance_paths+tmp;
// 怪物资料 files 必备, 其它就是 short, long, ... 等可自订
instance_mob_datas=([
"corps1":(["files":"/u/l/laechan/area/whitetile/mob/corps1",
"level":150,
]),
]);
// 副本各房间生怪资料, 所生的怪在 instance_mob_datas 都要有定义
instance_mobs=([
"5":([
"501":({"corps1","corps1"}),
"086":({"corps1","corps1"}),
"087":({"corps1","corps1"}),
]),
]);
// 设定区结束
}
int instance_check(string files,object room)
{
int flags,t;
switch(files)
{
case "503":
flags=(int)room->query("instance_flags");
t=time();
switch(flags)
{
case 0:
// 工兵都被消灭时
if(!present("felid corps",room))
room->set("instance_flags",1);
break;
default:
// 这里主要实验串接其它副本, how?
// 1.用出口?(如何设 pre_exit_func? 要用 next 这样的确定出口?)
// 2.呼叫 npc 出来处理?(较简单)
// 3.直接处理不等待?(即满足条件马上就串)
break;
}
break;
}
return 1;
}
[编辑中...]

Links booklink

Contact Us: admin [ a t ] ucptt.com