beilin2.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 194 行
C
194 行
// Room: /d/shaolin/beilin2.c
// Date: YZC 96/01/19
inherit ROOM;
void check_trigger();
void close_passage();
void reset();
int do_push(string arg);
int do_say(string arg);
string look_tower();
string look_stone();
void create()
{
set("short", "西碑林");
set("long", @LONG
这里是一大片碑林。虽说是碑林,主要是少林历代高僧的
佛塔灵藏(tower)。一座座佛塔约有二三人高,有汉白玉的,
花冈石的,精工雕凿,薄薄的浮雕面上飞禽走兽,佛谒禅诗,
诸佛众生,可谓无所不包。底座有须弥座的,也有莲花座的,
各态纷呈。佛塔间疏疏落落的立着几块碑(stone),有的题着
几句诗。
LONG );
set("exits", ([
"east" : __DIR__"taijie",
]));
set("outdoors", "shaolin");
set("item_desc",([
"tower" : (: look_tower :),
"stone" : (: look_stone :),
]));
set("no_clean_up", 0);
setup();
}
void init()
{
add_action("do_push", "push");
add_action("do_pull", "pull");
add_action("do_say", "say");
}
void check_trigger()
{
object room;
if( (int)query("up_trigger")==4
&& (int)query("down_trigger")==3
&& !query("exits/down") ) {
message("vision", "佛塔忽然发出轧轧的声音,向一侧缓缓移开,"
"向下露出一个黑洞洞的入口。\n", this_object() );
set("exits/down", __DIR__"beilin3");
if( room = find_object(__DIR__"beilin3") ) {
room->set("exits/up", __FILE__);
message("vision",
"头顶上的石板忽然发出轧轧的声音,露出一个光亮亮的洞口。"
"一块块踏脚石从墙壁中凸了出来,形成一个向上的阶梯。\n",room );
}
delete("poem_said");
delete("up_trigger");
delete("down_trigger");
remove_call_out("close_passage");
call_out("close_passage", 10);
}
}
void close_passage()
{
object room;
if( !query("exits/down") ) return;
message("vision", "佛塔忽然发出轧轧的声音,缓缓地移回原处,"
"将向下的洞口盖住了。\n", this_object() );
if( room = find_object(__DIR__"beilin3") ) {
room->delete("exits/up");
message("vision", "头顶上的石板忽然发出轧轧的声音,"
"墙上的石块又缓缓地收了回去,阶梯消失了。\n", room );
}
delete("exits/down");
}
int do_pull(string arg)
{
string dir;
if( !arg || arg=="" ) return 0;
if( arg=="stone" && (int)query("poem_said")==1 ) {
write("你试着扳动这块石碑,发现可以往上抬......\n");
return 1;
}
if( sscanf(arg, "stone %s", dir)==1 && (int)query("poem_said")==1 ) {
if( dir=="up" ) {
message_vision("$N将石碑往上抬...,忽然「喀」一声石碑又移回原位。\n",
this_player());
add("up_trigger", 1);
check_trigger();
return 1;
} else {
write("你要将石碑推向那个方向?\n");
return 1;
}
}
}
int do_push(string arg)
{
string dir;
if( !arg || arg=="" ) return 0;
if( arg=="stone" && (int)query("poem_said")==1 ) {
write("你试着扳动这块石碑,发现可以往下压......\n");
return 1;
}
if( sscanf(arg, "stone %s", dir)==1 && (int)query("poem_said")==1 ) {
if( dir=="down" ) {
message_vision("$N将石碑往下压...,忽然「喀」一声石碑又移回原位。\n",
this_player());
add("down_trigger", 1);
check_trigger();
return 1;
} else {
write("你要将石碑推向那个方向?\n");
return 1;
}
}
}
int do_say(string arg)
{
string dir;
if( !arg || arg=="" ) return 0;
if( arg=="清晨入古寺,初日照高林" ) {
write("你可真有诗兴 !\n");
return 1;
}
if( arg=="上报四重恩,下济三途苦" ) {
write("只听四周的佛塔,石碑发出隆隆隆的响声,地面猛烈震动起来。\n");
add("poem_said", 1);
return 1;
}
}
void reset()
{
::reset();
delete("poem_said");
delete("up_trigger");
delete("down_trigger");
}
string look_tower()
{
return
"\n"
" ※※※※※※※※※※※※※※※※※※※※※※\n"
" ※※※※ ※※※※\n"
" ※※※※ 一切世界佛,悉发菩提心, ※※※※\n"
" ※※※※ ※※※※\n"
" ※※※※ 上报四重恩,下济三途苦, ※※※※\n"
" ※※※※ ※※※※\n"
" ※※※※ 无边大法力,渡劫升极乐, ※※※※\n"
" ※※※※ ※※※※\n"
" ※※※※ 愿以此功德,庄严佛净土。 ※※※※\n"
" ※※※※ ※※※※\n"
" ※※※※※※※※※※※※※※※※※※※※※※\n";
}
string look_stone()
{
return
"\n"
" ※※※※※※※※※※※※※※※※※※※※※※\n"
" ※※※※※※※※※※※※※※※※※※※※※※\n"
" ※※※※ ※※※※\n"
" ※※※※ 清晨入古寺,初日照高林。 ※※※※\n"
" ※※※※ ※※※※\n"
" ※※※※ 曲径通幽处,禅房花木深。 ※※※※\n"
" ※※※※ ※※※※\n"
" ※※※※ 山光悦鸟性,潭影空人心。 ※※※※\n"
" ※※※※ ※※※※\n"
" ※※※※ 万籁此俱寂,惟闻钟磐音。 ※※※※\n"
" ※※※※ ※※※※\n"
" ※※※※※※※※※※※※※※※※※※※※※※\n"
" ※※※※※※※※※※※※※※※※※※※※※※\n";
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?