Re: [建议] 副本相关

楼主: laechan (挥泪斩马云)   2014-04-27 19:34:53
副本物件设定部份
// 005.c
// Laechan@Sanc add in 2014/04/26
// 模拟幻想○域的地狱裂痕副本
#include "../instance.h"
inherit INSTANCE_OB;
void create()
{
string tmp;
int i;
::create();
seteuid(getuid(this_object()));
set("pre_clean",1);
// 设定区开始
instance_map2data=@LONG
003-004-005
| |
002 006
| |
001 007
|
008
LONG
;
instance_paths="/std/ob/";
instance_virtual="/std/ob/room";
instance_ob=base_name(this_object()); // 固定
instance_names="幻想神域地狱裂痕副本";
instance_comm=(["short":"废弃的矿坑",
"long":"一座荒废已久的矿坑,里头透著不寻常的气息!\n\n",]);
instance_data=([
"002":(["instance_check":1,
"cant_go":(["north":1]),
]),
"003":(["instance_check":1,
"long2":HIR"\n* 这个地方现在出现了一个小型的空间裂缝。"NOR"\n\n",
"cant_go":(["east":1]),
]),
"005":(["instance_check":1,
"long2":HIR"\n* 这个地方现在出现了一个中型的空间裂缝。"NOR"\n\n",
"cant_go":(["south":1]),
]),
"008":(["instance_check":1,
"long2":HIR"\n* 这个地方现在出现了一个大型的空间裂缝。"NOR"\n\n",
]),
]);
// 副本区域房间范围, 第一个 room (如083) 固定为起点
instance_files=({
"001","002","003","004","005","006","007","008"
});
// 底下固定
foreach(tmp in instance_files)
instance_files[i++]=instance_paths+tmp;
// 怪物资料 files 必备, 其它就是 short, long, ... 等可自订
instance_mob_datas=([
"bat1":(["files":"/u/p/ppl/hiei/felid/forest1/mob/mob1",
"level":150,
"chi_name":"异界吸血蝙蝠",
"id":({"ej bat","bat"}),
"mob_drop":(["m004":500]),
]),
"giant1":(["files":"/d/dfire/caresa/mob/mgiant",
"level":175,
"killer":1,
"chi_name":"异界噬血巨人",
"id":({"ej giant","giant"}),
"mob_drop":(["m009":500]),
]),
"master1":(["files":"/d/dfire/caresa/mob/mgiant",
"level":220,
"killer":1,
"short":"异界噬血巨人─阿克罕(Akerhan)",
"chi_name":"阿克罕",
"id":({"giant","akerhan"}),
]),
]);
// 副本各房间生怪资料, 所生的怪在 instance_mob_datas 都要有定义
instance_mobs=([
"003":({"bat1","bat1","bat1"}),
"005":({"bat1","bat1","bat1","giant1","giant1","giant1"}),
"008":({"giant1","giant1","giant1","giant1","giant1","giant1","master1"}),
]);
// 设定区结束
}
int instance_check(string files,object room)
{
int flags,t;
object ob;
flags=(int)room->query("instance_flags");
t=time();
switch(files)
{
// 西尔克交待任务
case "002":
switch(flags)
{
case 0:
birth_npcs(room,INSTANCE_NPC,
({"short","不幸的魔法师─西尔克(Sealker)",
"chi_name","不幸的魔法师─西尔克"}));
room->set("instance_data/enter_msgs",
({HIW"西尔克:你就是...来帮助我的人吧!"NOR"\n",
HIW"西尔克:请帮助我打倒矿坑内的魔物吧!"NOR"\n",
}));
room->set("instance_next_times",12+t);
room->set("instance_flags",1);
break;
case 1:
if(t>room->query("instance_next_times"))
{
room->delete("cant_go/north",1);
room->set("instance_flags",2);
room->set("already_ended",1);
}
break;
}
break; // end of 002
case "003":
switch(flags)
{
case 0:
if(!present("INSTANCE_MOB",room))
{
if(ob=room->query("exits/south"))
{
if(ob=present("INSTANCE_NPC",ob))
ob->move(room);
}
if(!present("INSTANCE_NPC",room))
birth_npcs(room,INSTANCE_NPC,
({"short","不幸的魔法师─西尔克(Sealker)",
"chi_name","不幸的魔法师─西尔克"}));
room->set("instance_flags",1);
room->set("instance_data/enter_msgs",
({HIW"西尔克:现在就让我施法,将这个裂缝关闭吧!"NOR"\n",
HIW"只见西尔克对着裂缝唸出了一长串的咒语......"NOR"\n",
HIW"裂缝缓缓地关闭了!"NOR"\n",
HIW"西尔克:请继续扫荡矿坑里的魔物,拜托了!"NOR"\n",
}));
room->set("instance_next_times",21+t);
room->set("instance_flags",1);
}
break;
case 1:
if(t>(int)room->query("instance_next_times"))
{
room->delete("cant_go/east",1);
room->delete("long2");
room->set("instance_flags",2);
room->set("already_ended",1);
}
break;
}
break; // end of 003
case "005":
switch(flags)
{
case 0:
if(!present("INSTANCE_MOB",room))
{
if(ob=room->query("exits/west"))
{
if(ob=ob->query("exits/west"))
{
if(ob=present("INSTANCE_NPC",ob))
ob->move(room);
}
}
if(!present("INSTANCE_NPC",room))
birth_npcs(room,INSTANCE_NPC,
({"short","不幸的魔法师─西尔克(Sealker)",
"chi_name","不幸的魔法师─西尔克"}));
room->set("instance_flags",1);
room->set("instance_data/enter_msgs",
({HIW"西尔克:现在就让我施法,将这个裂缝关闭吧!"NOR"\n",
HIW"只见西尔克对着裂缝唸出了一长串的咒语......"NOR"\n",
HIW"裂缝缓缓地关闭了!"NOR"\n",
HIW"西尔克:请继续扫荡矿坑里的魔物,拜托了!"NOR"\n",
}));
room->set("instance_next_times",21+t);
room->set("instance_flags",1);
}
break;
case 1:
if(t>room->query("instance_next_times"))
{
room->delete("cant_go/south",1);
room->delete("long2");
room->set("instance_flags",2);
room->set("already_ended",1);
}
break;
}
break; // end of 005
case "008":
switch(flags)
{
case 0:
if(!present("INSTANCE_MOB",room))
{
if(ob=room->query("exits/north"))
{
if(ob=ob->query("exits/north"))
{
if(ob=ob->query("exits/north"))
{
if(ob=present("INSTANCE_NPC",ob))
ob->move(room);
}
}
}
if(!present("INSTANCE_NPC",room))
birth_npcs(room,INSTANCE_NPC,
({"short","不幸的魔法师─西尔克(Sealker)",
"chi_name","不幸的魔法师─西尔克"}));
room->set("instance_flags",1);
room->set("instance_data/enter_msgs",
({HIW"西尔克:这就是最后的裂缝了!现在就让我施法吧.."NOR"\n",
HIW"只见西尔克对着裂缝唸出了一长串的咒语......"NOR"\n",
HIW"裂缝缓缓地关闭了!"NOR"\n",
HIW"西尔克:终于将所有的裂缝关闭了,感谢你的协助!"NOR"\n",
}));
room->set("instance_next_times",21+t);
room->set("instance_flags",1);
}
break;
case 1:
if(t>room->query("instance_next_times"))
{
room->set("exits/out","/d/wiz/room/disc");
room->delete("long2");
room->set("instance_flags",2);
room->set("already_ended",1);
foreach(ob in (mixed)room->query("instance_members"))
{
if(ob && environment(ob)==room)
{
tell_object(ob,
CSI"1;37;44m[ 你协助了西尔克,得到 200 点战功\声望! ]"NOR"\n");
ob->add_warexp(200);
}
}
}
break;
}
break; // end of 008
}
return 1;
}
副本实测部份
* 你进入了地狱裂痕副本。
> look
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: north.
> n
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: north 和 south.
Lv255.不幸的魔法师─西尔克(Sealker)
> n
你现在无法往 north 这个方向离开喔!
西尔克:你就是...来帮助我的人吧!
西尔克:请帮助我打倒矿坑内的魔物吧!
> n
☆☆☆ 战 斗 开 始 ☆☆☆
你发觉异界吸血蝙蝠对你展开攻击!
你发觉异界吸血蝙蝠对你展开攻击!
你发觉异界吸血蝙蝠对你展开攻击!
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: south 和 east.
* 这个地方现在出现了一个小型的空间裂缝。
[副本怪] [飘浮中]异界吸血蝙蝠(Instance ej bat) [17群异界吸血蝙蝠]气血充足,丝毫
没有任何外伤. 正在攻击 抠顶机器(Laechan:进阶法师)。
[副本怪] [飘浮中]异界吸血蝙蝠(Instance ej bat) [17群异界吸血蝙蝠]气血充足,丝毫
没有任何外伤. 正在攻击 抠顶机器(Laechan:进阶法师)。
[副本怪] [飘浮中]异界吸血蝙蝠(Instance ej bat) [17群异界吸血蝙蝠]气血充足,丝毫
没有任何外伤. 正在攻击 抠顶机器(Laechan:进阶法师)。
.
.
异界吸血蝙蝠发出一声惨叫!!
异界吸血蝙蝠慢慢的倒在地上死了...你得到 7590点的经验值。
你得到了(2)点学习点数。
你取得了一个牙齿。
你拿起[副本怪] [飘浮中]异界吸血蝙蝠(Instance ej bat) [17群异界吸血蝙蝠]身上所有
的东西。
○○○ 这场战斗结束了! ○○○
> l
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: south 和 east.
* 这个地方现在出现了一个小型的空间裂缝。
Lv255.不幸的魔法师─西尔克(Sealker)
西尔克:现在就让我施法,将这个裂缝关闭吧!
只见西尔克对着裂缝唸出了一长串的咒语......
裂缝缓缓地关闭了!
西尔克:请继续扫荡矿坑里的魔物,拜托了!
> e
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: east 和 west.
> e
☆☆☆ 战 斗 开 始 ☆☆☆
你发觉异界吸血蝙蝠对你展开攻击!
你发觉异界吸血蝙蝠对你展开攻击!
你发觉异界吸血蝙蝠对你展开攻击!
你发觉异界噬血巨人对你展开攻击!
你发觉异界噬血巨人对你展开攻击!
你发觉异界噬血巨人对你展开攻击!
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: south 和 west.
* 这个地方现在出现了一个中型的空间裂缝。
[副本怪] [飘浮中]异界吸血蝙蝠(Instance ej bat) [17群异界吸血蝙蝠]气血充足,丝毫
没有任何外伤. 正在攻击 抠顶机器(Laechan:进阶法师)。
[副本怪] [飘浮中]异界吸血蝙蝠(Instance ej bat) [17群异界吸血蝙蝠]气血充足,丝毫
没有任何外伤. 正在攻击 抠顶机器(Laechan:进阶法师)。
[副本怪] [飘浮中]异界吸血蝙蝠(Instance ej bat) [17群异界吸血蝙蝠]气血充足,丝毫
没有任何外伤. 正在攻击 抠顶机器(Laechan:进阶法师)。
[副本怪] 异界吸血巨人(Giant)气血充足,丝毫没有任何外伤. 正在攻击 抠
顶机器(Laechan:进阶法师)。
[副本怪] 异界吸血巨人(Giant)气血充足,丝毫没有任何外伤. 正在攻击 抠
顶机器(Laechan:进阶法师)。
[副本怪] 异界吸血巨人(Giant)气血充足,丝毫没有任何外伤. 正在攻击 抠
顶机器(Laechan:进阶法师)。
.
.
异界噬血巨人发出一声惨叫!!
异界噬血巨人慢慢的倒在地上死了...你得到 7590点的经验值。
你拿起[副本怪] 异界噬血巨人(Giant)身上所有的东西。
> l
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: south 和 west.
* 这个地方现在出现了一个中型的空间裂缝。
Lv255.不幸的魔法师─西尔克(Sealker)
西尔克:现在就让我施法,将这个裂缝关闭吧!
只见西尔克对着裂缝唸出了一长串的咒语......
裂缝缓缓地关闭了!
西尔克:请继续扫荡矿坑里的魔物,拜托了!
> s
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: north 和 south.
> s
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: north 和 south.
> s
☆☆☆ 战 斗 开 始 ☆☆☆
你发觉异界噬血巨人对你展开攻击!
你发觉异界噬血巨人对你展开攻击!
你发觉异界噬血巨人对你展开攻击!
你发觉异界噬血巨人对你展开攻击!
你发觉异界噬血巨人对你展开攻击!
你发觉异界噬血巨人对你展开攻击!
你发觉阿克罕对你展开攻击!
> look
[副本怪] 异界噬血巨人─阿克罕(Akerhan)气血充足,丝毫没有任何外伤. 正在攻击
抠顶机器(Laechan:进阶法师)。
[副本怪] 异界噬血巨人(Giant)气血充足,丝毫没有任何外伤. 正在攻击 抠顶机器
(Laechan:进阶法师)。
[副本怪] 异界噬血巨人(Giant)气血充足,丝毫没有任何外伤. 正在攻击 抠顶机器
(Laechan:进阶法师)。
[副本怪] 异界噬血巨人(Giant)气血充足,丝毫没有任何外伤. 正在攻击 抠顶机器
(Laechan:进阶法师)。
[副本怪] 异界噬血巨人(Giant)气血充足,丝毫没有任何外伤. 正在攻击 抠顶机器
(Laechan:进阶法师)。
[副本怪] 异界噬血巨人(Giant)气血充足,丝毫没有任何外伤. 正在攻击 抠顶机器
(Laechan:进阶法师)。
[副本怪] 异界噬血巨人(Giant)气血充足,丝毫没有任何外伤. 正在攻击 抠顶机器
(Laechan:进阶法师)。
.
.
阿克罕发出一声惨叫!!
阿克罕慢慢的倒在地上死了...你得到 7590点的经验值。
你得到了(2)点学习点数。
你拿起[副本怪] 异界噬血巨人─阿克罕(Akerhan)身上所有的东西。
> look
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: north.
* 这个地方现在出现了一个大型的空间裂缝。
Lv255.不幸的魔法师─西尔克(Sealker)
西尔克:这就是最后的裂缝了!现在就让我施法吧..
只见西尔克对着裂缝唸出了一长串的咒语......
裂缝缓缓地关闭了!
西尔克:终于将所有的裂缝关闭了,感谢你的协助!
[ 你协助了西尔克,得到 200 点战功声望! ]
> l
废弃的矿坑
一座荒废已久的矿坑,里头透著不寻常的气息!
明显出口有: north 和 out.
Lv255.不幸的魔法师─西尔克(Sealker)
> out
巨型高塔
这里是罗德斯镇的巨型高塔,是人们与神最为接近的地方,每天
都会有人来这里游荡,他们时常从高塔上俯瞰美丽的风景。
west : 次元传送镜
east : 药水店
north : 防具店
south : 武器店
up : 云端的梦幻国度
down : 罗德斯广场
明显出口有: south, north, east, down, west, 和 up.
Lv250.‘你可以跟我 adv 属性’小卤蛋(Lodao)

Links booklink

Contact Us: admin [ a t ] ucptt.com