#include "../forest.h"
inherit ROOM;
void create()
{
::create();
seteuid(getuid(this_object()));
set("short",HIM"迷霧"HIW"之"HIG"森"NOR); // 房間中文名,短敘述。
set("long",@NORR // 房間敘述
在濃厚的霧中依稀可以看到有一座宏偉的祭壇(temple)聳立在樹
林中央的一塊空地上,看來你這趟旅途並沒有白走。你仔細觀察
了一下祭壇四周,雖然毫無人影存在,但總有一股被監視的感覺
,所以你行事最好還是要小心一點比較好,以免有性命之憂。
NORR);
// 出口設置
set ("exits",([
"north":FR"021",
"east" :FR"031",
"west" :FR"045",
"south":FR"048",
]));
// 怪物設置
set("objects",([
FM"phantom":1+random(2),
FM"shadow":1+random(2),
]));
// 物件設置
set("item_desc",(["temple":HIC"一座巨大的祭壇,祭壇中央有個"HIP"黯淡"HIW"的
"HIM"魔法陣"+
HIG"("HIY"cycle"HIG")"HIC",像是失去效力一樣。
"NOR,
"cycle":HIC"一個神秘的六芒星魔法陣,似乎需要一些媒介才能
"HIG"重新啟動"+
HIY"("HIW"activate"HIY")"HIC"它。"NOR]));
set("no_sneak",1); // 不可潛行
set("no_recall",1); // 不可recall
set("no_quit",1); // 不可quit
set("no_attack",1); // 不可戰鬥
set("no_longsee",1); // 該格不會被遠見術看到
set("hide_exits/enter",FR"022",); // 隱藏出口設置
set("pre_exit_func/west","inter"); // 對該出口做特殊判斷
set("no_look_exits",1); // 無法觀看周圍房間情況
reset(); // 房間自動更新
}
void init()
{
add_action("activate_cycle","activate"); // 自訂指令
add_action("look_none","look");
}
// 出口特數判斷的程式段
int inter()
{
write(HIR"前方設置了一道魔法屏障,使你無法向前!\n"NOR);
return 1;
}
// 讓人不能看到west的出口。
int look_none(string str)
{
if(str=="west"||str=="w")
{
write(HIR"前方設置了一道魔法屏障,使你無法看清裡面的景色!\n"NOR);
return 1;
}
}
int activate_cycle(string str)
{
object ob1,ob2,ob3,ppl=this_player();
int i;
// 判斷指令的目標是否正確。
if(!str || str!="cycle")
return notify_fail(HIC"你到底是要啟動什麼啦?不要耍笨行不行= =+\n"NOR);
// 判斷玩家身上是否有這三樣物品
i=0;
if(ob1=present("norr_forest_crystal",ppl)) i++;
if(ob2=present("norr_forest_leaf",ppl)) i++;
if(ob3=present("norr_forest_sand",ppl)) i++;
if (i!=3)
{
write(HIR"你收集的物品不夠完全唷!\n"NOR);
return 1;
}
ob1->remove();
ob2->remove();
ob3->remove();
write(HIC"\n光芒幻化成一座通往"HIC"天際"HIW"的"HIY"光之梯"HIM"。\n"NOR);
set("exits/walk",FR"054"); // 新增出口
return 1;
}