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

📄 backyard.c

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

#include <ansi.h>
inherit ROOM;

void create()
{
        set("short", "后院");
        set("long", @LONG
后院是一大片开阔的草地,绿草如荫,几朵野花点缀其间,草
地中间放着一块大石刻成的棋盘,一个黄眉老僧和一个青袍客正在
下棋。北边有一间石屋,门口被一块大石头挡住了。
LONG
        );
        set("outdoors", "wanjiegu");
        set("exits", ([ /* sizeof() == 1 */
            "south" : __DIR__"hall",
        ]));
        set("objects", ([
            __DIR__"npc/monk" : 1,
            __DIR__"npc/duan_yanqing" : 1,
        ]));
        set("no_clean_up", 0);
        set("item_desc", ([ /* sizeof() == 2 */
            "大石头" : "一块很大的石头,挡住了石屋的入口。\n",
            "rock" : "一块很大的石头,挡住了石屋的入口。\n",
        ]));

        setup();
}

void init()
{
        add_action("do_push","push");
}

void check_trigger()
{
        object room;
        if( (int)query("trigger")==9
        &&      !query("exits/north") ) {
                message("vision",
HIW "大石终于被推开了,露出通向石屋的通道。\n" NOR,
                        this_object() );
                set("exits/north", __DIR__"stone_room");

                delete("trigger");
        }
}

int do_push(string arg)
{
        string dir;
        object me = this_player();

        if( me->is_busy() ) {
             message_vision("你的上一个动作还没有完成!\n", me);
             return 1;
        }

        if( !arg || arg=="" )
        {
             write("你要干什么?\n");
             return 1;
        }

        if( arg=="rock" || arg == "大石头" ) {
             if ( me->query("str") + me->query("neili_factor") < 15 ) {
                tell_object(me,"你的力气太小了,用点内力试试看!\n");
                return 1;
             }
             me->start_busy(2);
             message_vision(HIW "$N气运丹田,发内力推动大石头。\n" NOR,me);
             call_out("pushstone",2,me);
             me->stop_busy();
             check_trigger();
             return 1;
             }
}

int pushstone(object me)
{
        if(me->query("neili") >= me->query("neili_factor") ) {
                message_vision(HIW "大石头动了一下。\n" NOR,me);
                me->add("neili",- me->query("neili_factor") );
                add("trigger", 1);
                return 1;
        } else {
                tell_object(me, "你的内力不够了,休息一会再推吧!\n");
                return 1;
        }
}

void reset()
{
        ::reset();
        delete("trigger");
        delete("exits/north");
}

⌨️ 快捷键说明

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