xikou.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 94 行
C
94 行
#include <ansi.h>
inherit ROOM;
void check_trigger();
void on_board();
void create()
{
set("short", "溪口");
set("long", @LONG
你迎着阵阵海风来到了溪口,这里是自古代以来兵家必挣之地,这里连
接着与海外的贸易,岸边停泊着的几艘大帆船在夕阳的照射下,船帆显得分
外美丽。岸边有几个老艄公正等着拉客人,也许你上前询问一下就能雇船出
海。
LONG);
set("outdoors", "宁波");
set("exits",([
"west" : "/u/beyond/ningbo/aywsi",
"south" : "/u/beyond/ningbo/dongqianhu",
]));
set("objects",([
"/d/mingjiao/bhd/npc/shao" : 1,
]));
setup();
}
void init()
{
add_action("do_yell", "yell");
}
void check_trigger()
{
object room;
object thisroom = this_object();
if(!query("exits/enter") ) {
if(!(room = find_object(__DIR__"haichuan")))
room = load_object(__DIR__"haichuan");
if(room = find_object(__DIR__"haichuan")){
if((int)room->query("yell_trigger")==0 ) {
room->set("yell_trigger", 1);
set("exits/enter", __DIR__"haichuan");
room->set("exits/out", __FILE__);
message("vision", "一名壮年艄公将一块踏脚板搭上堤岸,以便乘客上下。\n", thisroom);
message("vision", "壮年艄公将一块踏脚板搭上堤岸,形成一个向上的阶梯。\n", room);
remove_call_out("on_board");
call_out("on_board", 15);
}
else message("vision", "只见一名老艄公摇了摇头:等等吧,刚出海去了。\n", thisroom);
}
else message("vision", "ERROR: boat not found\n", thisroom);
}
else message("vision", "海船上的艄公说道:正等着你呢,上来吧。\n", thisroom);
}
void on_board()
{
object room;
if( !query("exits/enter") ) return;
message("vision", "壮年艄公把踏脚板收了起来,拉开帆,海船缓缓驶了出去。\n", this_object());
if(room = find_object(__DIR__"haichuan")){
room->delete("exits/out");
room->set_temp("stepw", 14);
room->set_temp("steps", 15);
message("vision", "艄公把踏脚板收起来,说了一声“开船喽”,把帆啦开,向大海驶去。\n", room);
}
delete("exits/enter");
}
int do_yell(string arg)
{
string dir;
object me = this_player();
if (!arg) return 0;
if (arg == "chuan"){
message_vision("$N对着海船叫了一声:“船家,出海!”\n", me);
if(!me->query_temp("haichuan_paid")){
message_vision("海船上的艄公对$N理都不理。\n", me);
return 1;
}
check_trigger();
return 1;
}
else message_vision("$N对着大海大叫一声:“" + arg + "~~~”\n", me);
return 1;
}
int valid_leave(object me, string dir)
{
object ob;
if(!me->query_temp("haichuan_paid") && objectp(present("shao gong", environment(me))) && dir == "enter")
return notify_fail("艄公闪身拦在你面前:上船要先给钱啊!\n");
return ::valid_leave(me, dir);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?