zhonglou1.c

来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 119 行

C
119
字号
// Room: /d/shaolin/zhonglou1.c
// Date: YZC 96/01/19

#include <ansi.h>

inherit ROOM;

void close_passage();
string look_floor();
//int do_open();
int do_open(string arg);

void create()
{
	set("short", "钟楼一层");
	set("long", @LONG
这里是塔楼的底层,一缕缕阳光从墙上的花砖缝隙里透射
进来,在青砖地上投下别致的光影,如同一格格棋盘相似。往
上看,长长的木楼梯盘绕而上,似乎永无尽头。墙角,梯级都
相当洁净,看来经常有僧人打扫。
LONG );
	set("exits", ([
		"up" : __DIR__"zhonglou2",
		"out" : __DIR__"zhonglou",
	]));
	set("item_desc",([
		"floor"		:	(: look_floor :),
	]));
	set("objects",([
		__DIR__"npc/saodi-seng" : 1,
	]));
//	set("no_clean_up", 0);
	setup();
}


void init()
{
	add_action("do_open", "open");
}

int do_open(string arg)
{
	object room, me;

	if( !arg || arg=="" )
		return 0;

	if( arg=="brick" && !present("blade", this_player()))
		return notify_fail("空手挖? 恐怕不行吧!\n");

	if( arg=="brick" && !query("exits/down") )
	{
		message_vision( 
		"$N走到楼梯下,趴在地上,试着用戒刀伸进青砖缝里,慢慢的撬着……\n"
		"等到青砖一块块地起了出来,地上露出一个大洞,几排石阶往下伸去,\n"
		"从这里分明通向一个暗道。\n", this_player());

		set("exits/down", __DIR__"andao3");
		if( room = find_object(__DIR__"andao3") ) 
		{
			room->set("exits/up", __FILE__);
			message("vision", "天花板忽然发出轧轧的声音,露出一个向上的阶梯。\n",
				room );
		}
		remove_call_out("close_passage");
		call_out("close_passage", 3);
		return 1;
	}
	return 0;
}

void close_passage()
{
	object man, room, *ob;
	int i;

	if( !query("exits/down") )
		return;

	message("vision", 
	"只听乒地一声响,钟楼小门被推了开来,一群僧兵一涌而入。\n"
	"他们有的砌砖,有的拌浆,七手八脚地用砖块把洞口封了起来,\n"
	"再在砖缝间浇入烧红的铁汁。\n", this_object() );

	man=new(__DIR__"npc/seng-bing3");
	man->move(this_object());
	man=new(__DIR__"npc/seng-bing3");
	man->move(this_object());
	man=new(__DIR__"npc/seng-bing3");
	man->move(this_object());
	man=new(__DIR__"npc/seng-bing3");
	man->move(this_object());

	ob = all_inventory(this_object());
	for(i=0; i<sizeof(ob); i++) {
		if( !living(ob[i]) || !userp(ob[i]) || ob[i]==man ) continue;
		if( userp(ob[i]) ) { 
			man->set_leader(ob[i]);
			man->kill_ob(ob[i]);
			ob[i]->fight_ob(man);
		}
	}

	if( room = find_object(__DIR__"andao3") ) {
//		room->delete("exits/up");
		message("vision", 
	"只听乒,乓几声巨响,接着几滴滚烫的铁水滴了下来。\n"
	"向上的洞口被人用砖块严严实实地封了起来。\n", room );
	}
	delete("exits/down");
}

string look_floor()
{
	return
	"一片结实平整的青砖地面,只在楼梯下的一角处略显凹凸不平。\n";
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?