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

📄 donglang2.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// Room: donglang2.c 东厢走廊inherit ROOM;void init();int close_men();int force_open(object room);int do_push(string arg);int do_knock(string arg);int valid_leave(object me, string dir);string look_men();void create(){    set("short", "东厢走廊");    set("long", @LONG你走在一条走廊上,隐约可以听到东边传来呼吸声,似乎有人正在那里练功,北边有一扇门(men),好象是虚掩着。南边是间竹子扎就的屋子,十分的素雅,里面飘出一阵阵的茶香,有人轻声细语地不知说那些什么,引得女孩子"吃吃"笑出声来。LONG );    set("exits", ([        "east" : __DIR__"liangongfang",        "south" : __DIR__"chashi",        "west" : __DIR__"donglang1",    ]));    set("item_desc",([        "men"        :    (: look_men :),    ]));    set("no_clean_up", 0);    setup();}void init(){    add_action("do_knock", "knock");    add_action("do_push", "push");}int close_men(){    object room;    if(!( room = find_object(__DIR__"xiuxishi")) )        room = load_object(__DIR__"xiuxishi");    if(objectp(room))    {        delete("exits/north");        message("vision", "门吱吱呀呀地自己合上了。\n", this_object());        room->delete("exits/south");        message("vision", "门吱吱呀呀地自己合上了。\n", room);    }    else message("vision", "ERROR: men not found(close).\n", room);}int do_knock(string arg){    object room;    if (query("exits/north"))        return notify_fail("大门已经是开着了。\n");    if (!arg || (arg != "door" && arg != "men"))        return notify_fail("你要敲什么?\n");    if(!( room = find_object(__DIR__"xiuxishi")) )        room = load_object(__DIR__"xiuxishi");    if(objectp(room))    {    if ((int)room->query_temp("sleeping_person") > 0)    {        message_vision(        "$N刚轻轻地敲了一下门,就听见里面传出一阵雷鸣般的鼾声,\n"        "显然里面的人睡得跟死猪似的,怎么敲都没用了\n",        this_player());    } else if ((int)room->query_temp("person_inside") > 0)    {        switch( random(2) )        {        case 0:                message_vision(                "$N轻轻地敲了敲门,只听见里面有人很不耐烦地吼到:\n"                "刚躺下就来敲门!我睡着了,听不见!!!\n",                this_player());        case 1:                message_vision(                "$N轻轻地敲了敲门,只听见里面有些响动,\n"                "好象有人在踱来踱去,拿不定主意是否开门。\n",                this_player());                break;        }    } else    {        room->delete_temp("sleeping_person");        message_vision("$N轻轻地敲了敲门:咚、咚、咚...咚、咚、咚...\n",            this_player());    }    }    if(objectp(room))        message("vision",        "外面传来一阵敲门声,你从门缝往外一瞧,是"+this_player()->query("name")+"一脸焦急地站在门外,\n"        "看样子也想进来休息。\n", room);    return 1;}int do_push(string arg){    object room;    if (query("exits/north"))        return notify_fail("门已经是开着了。\n");    if (!arg || (arg != "door" && arg != "men"))        return notify_fail("你要推什么?\n");    if(!(room = find_object(__DIR__"xiuxishi")))        room = load_object(__DIR__"xiuxishi");    if(objectp(room))    {//    if((int)room->query_temp("person_inside")<=0)//    {        room->delete_temp("person_inside");        set("exits/north", __DIR__"xiuxishi");        message_vision("$N轻轻地把门推开。\n", this_player());        room->set("exits/south", __FILE__);//      message("vision", "有人从外面把门推开了。\n", room);        remove_call_out("close_men");        call_out("close_men", 10);//    } else//    {//        message_vision("$N想把门推开,却发觉门被人从里面闩上了。\n",//                this_player());//    }    }    return 1;}string look_men(){    object room;    if (query("exits/north"))        return ("门上挂了个牌子:南柯梦处\n");    if(!( room = find_object(__DIR__"xiuxishi")) )        room = load_object(__DIR__"xiuxishi");    if( objectp(room) )    if( (int)room->query_temp("person_inside") > 0 )    {        return ("门上挂了个牌子:请毋打扰\n");    }    return ("门上挂了个牌子:休息室\n");}int valid_leave(object me, string dir){        object room;        if(!( room = find_object(__DIR__"xiuxishi")) )                room = load_object(__DIR__"xiuxishi");        if(objectp(room) && dir == "north")        {                room->add_temp("person_inside", 1);                // will open the door if ppl inside stay too long                remove_call_out("force_open");                call_out("force_open", 599, room);        }        return ::valid_leave(me, dir);}int force_open(object room){        if ( !objectp(room) ) return 0;    if((int)room->query_temp("person_inside")<=0) return 0;/***    if((int)room->query_temp("sleeping_person")>0)    {                remove_call_out("force_open");                call_out("force_open", 599, room);                return 0;        }***/        room->delete_temp("person_inside");    set("exits/north", __DIR__"xiuxishi");    room->set("exits/south", __FILE__);    message("vision", "外面突然响起粗重的脚步声,由远而近,到门前停了下来...\n"        "张松溪啪地把门打开,伸个头进来,一脸狐疑:呆大半天了还不出去,搞什么鬼

⌨️ 快捷键说明

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