aobai7.c

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

C
91
字号
#include <room.h>
inherit ROOM;

void close_gate();
int do_unlock(string arg);

void create()
{
	set("short", "鳌拜书房");
	set("long", @LONG
这里是鳌拜书房,却没有一本书。各种古玩琳琅满目,商周青铜、汉瓦
当、唐三彩,珍珠宝石,应有尽有,只要拥有一件,就够你吃一辈子了。北
面墙上有一副画。书桌上有一本书。
LONG );
	set("item_desc", ([
		"picture" : "\n这张画很一般,不知为什么挂在这儿。\n",
		"book" : "\n这就是那本害得庄允城家破人亡的《明史辑略》。\n",
	]));
	set("exits", ([
		"south" : __DIR__"aobai4",
	]));
	set("objects", ([
		"/d/city2/obj/picture" : 1,
		"/d/city2/obj/bookming" : 1,
	]));
//	set("no_clean_up", 0);
	setup();
}

void init()
{
	add_action("do_unlock", "unlock");
	add_action("do_unlock", "open");
}

void close_gate()
{
    object room;

    if(!( room = find_object(__DIR__"aobai9")) )
        room = load_object(__DIR__"aobai9");
    if(objectp(room))
    {
        delete("exits/north");
        message("vision","只听乒地一声,暗门自动关上了。\n",
            this_object());
        message("vision","你脑海中闪过一个念头:哎哟!又进不去了!\n" ,
			this_object());
        room->delete("exits/south");
        message("vision","只听乒地一声,暗门自动关了起来。\n", room);
        message("vision","你脑海中闪过一个念头:坏了!出不去了!\n" ,
			room );
     }
}


int do_unlock(string arg)
{
	object ob,room;
	if (query("exits/north"))
		return notify_fail("暗门已经是打开的。\n");
	if (!arg || (arg != "door"))
		return notify_fail("你要打开什么?\n");
	if (!(ob = present("anmenkey", this_player())))
		return notify_fail("你不会撬锁。\n");
	message_vision(
	"$N用一把钥匙打开了秘门,可是钥匙却断了.\n", this_player());
       	if (!ob->is_character())  
{
	destruct(ob);
}
	if (this_player()->query_temp("doorisok"))        
        {
	set("exits/north", __DIR__"aobai9");
	if(!( room = find_object(__DIR__"aobai9")) )
        room = load_object(__DIR__"aobai9");
	if(objectp(room))
    	{
        set("exits/north", __DIR__"aobai9");
        message_vision("$N轻轻地推门,只听吱地一声,门开了。\n",this_player());
        room->set("exits/south", __FILE__);
        message("vision","只听吱地一声,暗门从外面打开了。\n", room);
		remove_call_out("close_gate");
		call_out("close_gate", 10);
    	}
        this_player()->set_temp("doorisok",0);
        } 
	return 1;
}

⌨️ 快捷键说明

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