xiaodao.c

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

C
118
字号
// /u/beyond/mr/xiaodao.c// this is made by beyond// update 1997.6.20#include <ansi.h>#include <room.h>#define SHIP_TO	__DIR__"matou"inherit ROOM;  void check_trigger();void on_board();void arrive();void close_passage();int do_yell(string arg);void reset();void create(){         set("short",HIB"小岛边"NOR);         set("long",@long你一跨上岸去, 见疏疏落落四五座房舍, 建造在一个不知名的小岛或半岛上。岛上树木葱绿,亭宇轩榭错落有秩,处处飘来一阵幽香。这里的一切无一不透出江南水秀山清,建筑小巧别致的特色。一位老艄公左在岸边(bian)。long);         set("exits", ([             "south" : __DIR__"xiaoshe",]));                                                                          set("item_desc",([         "bian" : "你向老艄公(yell)一下,他就回载你出太湖。\n"         ]));         setup();//       replace_program(ROOM);}                                               void init(){    add_action("do_yell", "yell");}void check_trigger(){    object room;    if(!query("exits/enter") ) {        if( !(room = find_object(__DIR__"zhou1-0")) )            room = load_object(__DIR__"zhou1-0");        if( room = find_object(__DIR__"zhou1-0") ) {            if((int)room->query("yell_trigger")==0 ) {                room->set("yell_trigger", 1);                set("exits/enter", __DIR__"zhou1-0");                room->set("exits/out", __FILE__);                message("vision", "一叶扁舟缓缓地驶了过来,艄公将一块踏脚"                    "板搭上堤岸,以便乘客\n上下。\n", this_object() );                message("vision", "艄公将一块踏脚板搭上堤岸,形成一个向上"                    "的阶梯。\n", room);                remove_call_out("on_board");                call_out("on_board", 15);            }            else                message("vision", "只听得湖面不远处隐隐传来:“别急嘛,"                  "这儿正忙着呐……”\n",this_object() );        }        else            message("vision", "ERROR: boat not found\n", this_object() );    }    else         message("vision", "岸边一只小舟上的老艄公说道:正等着你呢,上来吧。\n",            this_object() );}void on_board(){    object room;    if( !query("exits/enter") ) return;    message("vision", "艄公把踏脚板收了起来,竹篙一点,扁舟向湖中驶去。\n",        this_object() );    if( room = find_object(__DIR__"zhou1-0") )    {        room->delete("exits/out");       message("vision", "艄公把踏脚板收起来,说了一声“坐稳喽”,"            "竹篙一点,扁舟向\n湖中驶去。\n", room );    }    delete("exits/enter");    remove_call_out("arrive");    call_out("arrive", 20);}void arrive(){    object room;    if( room = find_object(__DIR__"zhou1-0") )    {        room->set("exits/out", __DIR__"matou");        message("vision", "艄公说“到啦,上岸吧”,随即把一块踏脚板"            "搭上堤岸。\n",room );    }    remove_call_out("close_passage");    call_out("close_passage", 20);}void close_passage(){    object room, *ob;	int i;    if( room = find_object(__DIR__"zhou1-0") ) {		tell_room(room, "艄公轻声说道:“都下船吧,我也要回去了。”\n", ({}));		ob = all_inventory(room);		for(i = 0; i < sizeof(ob); i++) {			if (userp(ob[i])) {				if (!living(ob[i])) tell_room(room, "艄公把$N抬下了船。\n", ob[i]);				else tell_room(room, "$N听了艄公的话,乖乖地下了船 

⌨️ 快捷键说明

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