xiuxishi.vns

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

VNS
117
字号
// Room: xiuxishi.c

inherit ROOM;

void init();
void close_men();
int do_open(string);
int do_close(string);


void create()
{
        set("short", "华山小筑");
        set("long", @LONG
        这是间整洁的厢房,因门窗常闭着,光线很昏暗。房里别无他物,
只有中间放着一张收拾得舒舒服服的大床,看着就让人想睡觉。
LONG
        );

        set("sleep_room", 1);
        set("no_fight", 1);

        setup();
}

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

void close_men()
{
	object room;

	if(!( room = find_object(__DIR__"xiaolu2")) )
		room = load_object(__DIR__"xiaolu2");
	if(objectp(room))
	{
		delete("exits/west");
			message("vision", "门咿咿呀呀地自己合上了。\n", this_object());
		room->delete("exits/east");
		message("vision", "门咿咿呀呀地自己合上了。\n", room);
	}
}

int do_close(string arg)
{
	if (!query("exits/west"))
		return notify_fail("门已经是关着的了。\n");

	if (!arg || (arg != "men" && arg != "door"))
		return notify_fail("你要关什么?\n");

	message_vision("$N想把门关上。\n", this_player());

	remove_call_out("close_men");
	call_out("close_men", 2);

	return 1;
}

int do_open(string arg)
{
	object room;
	object me = this_player();

	if (query("exits/west"))
		return notify_fail("大门已经是开着了。\n");

	if (!arg || (arg != "men" && arg != "door" && arg != "west"))
		return notify_fail("你要开什么?\n");

	if(!( room = find_object(__DIR__"xiaolu2")) )
		room = load_object(__DIR__"xiaolu2");
	if(objectp(room))
	{
		set("exits/west", __DIR__"xiaolu2");
		message_vision("$N轻手轻脚地把门打开。\n", this_player());
		room->set("exits/east", __FILE__);
		
		if (me->query_temp("sleeped"))
		{
		message("vision", "吱地一声,"+me->query("name")+"精神焕发地从里面把门打开了。\n",
		room);
		} else 
		{
		message("vision", "梆地一声,"+me->query("name")+"从里面把门打开,一脸的不耐烦。\n",
			 room);
		}	
		
		remove_call_out("close_men");
		call_out("close_men", 10);
	}

	return 1;
}


int valid_leave(object me, string dir)
{
	object room;

	if ( !::valid_leave(me, dir) ) 
		return 0;
	
	if(!(room = find_object(__FILE__)) )
		room = load_object(__FILE__);
	if(objectp(room))
	{
		room->add_temp("person_inside", -1);	
		if ((int)room->add_temp("person_inside", -1) <= 0)
			room->delete_temp("person_inside");	
	}
	
	return 1;
}

⌨️ 快捷键说明

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