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