⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 up4.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// Room: carol/heimuya

inherit ROOM;
void check_trigger();
void on_board();
void arrive();
void close_passage();
void reset();
int do_insert(string arg);

void create()
{
	set("short", "悬崖");
	set("long", @TEXT
又一座陡峭的悬崖立在了你的面前。悬崖上仿佛有座白色的
建筑,可云烟缭绕,看不清晰。崖上又垂下一条绳索(rope),看
上去象是悬崖上下互通消息的工具,要想办法找其他的牌子啊。
绳索的上面似乎隐约有一个吊篮(basket),悬崖的墙上似乎有一
个匣子(xiazi)。
TEXT );

    set("exits", ([
	"westdown" : __DIR__"up3",
    ]));

    set("item_desc", ([
        "basket": "那是一个掉篮,看样子有些古怪。\n",
        "rope"  : "绳子就是绳子,可能是向上的工具。\n",
        "xiazi" : "这是一个匣子,看样子是一个开关,匣子的侧面有一个插孔。\n",
    ]));
     set("no_clean_up", 0);
    setup();
}

void init()
{
    add_action("do_insert", "insert");
}

void check_trigger()
{
    object room;

    if(!query("exits/enter") ) {
        if( !(room = find_object(__DIR__"basket")) )
            room = load_object(__DIR__"basket");
        if( room = find_object(__DIR__"basket") ) {
            if((int)room->query("insert_trigger")==0 ) {
                room->set("insert_trigger", 1);
                set("exits/enter", __DIR__"basket");
                room->set("exits/out", __FILE__);
                message("vision", "只见一个掉篮(basket)从天而降,你不禁一怔!\n"
                    , this_object() );
                set("item_desc", ([
                    "basket" : "这是一个掉篮,是传说中的交通工具。\n",
                ]));
                remove_call_out("on_board");
                call_out("on_board", 15);
            }
            else
                message("vision", "看样子你得等下拨儿。\n",this_object() );
        }
        else
            message("vision", "ERROR: basket not found\n", this_object() );
    }
}

void on_board()
{
    object room;

    if( !query("exits/enter") ) return;
    message("vision", "只见掉篮缓缓向上,四周无限美好,\n"
             "你似乎置身于一处人间仙境无异。\n", this_object() );

    if( room = find_object(__DIR__"basket") )
    {
        room->delete("exits/out");
    }
    delete("exits/enter");

    remove_call_out("arrive");
    call_out("arrive",20);
}

void arrive()
{
    object room;
    if( room = find_object(__DIR__"basket") )
    {
        room->set("exits/out", __DIR__"chengdedian");
        message("vision", "你眼前一亮,一幢幢白色建筑屹立眼前,霎是辉煌。\n",room );
    }
    remove_call_out("close_passage");
    call_out("close_passage", 20);
}

void close_passage()
{
    object room;
    if( room = find_object(__DIR__"basket") ) {
        room->delete("exits/out");
        room->delete("insert_trigger");
    }
}

int do_insert(string arg)
{
    string dir;
    object ob;
    object me;

    me=this_player();

    if( !arg || arg=="" ) return 0;
    if( arg=="卡" ) arg = "card4";   
    if( arg=="card4")
    {
	if( !objectp(ob = present(arg, me)) )
		return notify_fail("你身上没有这样东西。\n");

        if( !me->query_temp("mark/cards") )
                me->set_temp("mark/cards",1);

        if( me->query_temp("mark/cards")==4)
        {
                check_trigger();
		me->delete_temp("mark/cards");
        }
        else    {
                me->add_temp("mark/cards",1);
                message("vision", "噔的一声,你看到掉篮向下一节。\n",me );
        }
    }
    return 1;
}

⌨️ 快捷键说明

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