?? river-bei.c
字號:
// Room: /d/lanzhou/river-bei.c
// Date: netkill 98/08/17
inherit ROOM;
#define SHIP_TO __DIR__"river-nan"
void check_trigger();
void on_board();
void arrive();
void close_passage();
int do_yell(string arg);
void reset();
void create()
{
set("short", "黃河北岸");
set("long", @LONG
你來到一條河(river)邊,黃色的河水洶涌的向下流去。這就是中國的
母親河---黃河。你看了一下四周,還好不遠處有一個小渡口,剛好有一艘
渡船,船上已經有幾個人,老船夫(chuanfu)正看著你,好象等你上來以
后就馬上要開船了。
LONG
);
set("exits", ([
"north" : "/d/jyguan/roadjyg",
]));
set("item_desc", ([
"river" : "近岸處有一葉小舟,也許喊(yell)一聲船家就能聽見。\n",
"chuanfu" :"一個老老實實的中年漢子,坐他的船應該不會有什么問題吧。\n",
]));
set("outdoors", "shaolin");
setup();
}
/*在此付錢擺渡或買魚吃*/
/*(等)渡船靠了岸,付了錢,船家一聲吆喝,客人們一涌
* 而入,小小渡船片刻間便越過波瀾濤濤的漢江,靠上北岸
*/
void init()
{
add_action("do_yell", "yell");
}
void check_trigger()
{
object room;
if(!query("exits/enter") ) {
if( !(room = find_object(__DIR__"duchuan")) )
room = load_object(__DIR__"duchuan");
if( room = find_object(__DIR__"duchuan") ) {
if((int)room->query("yell_trigger")==0 ) {
room->set("yell_trigger", 1);
set("exits/enter", __DIR__"duchuan");
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__"duchuan") )
{
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__"duchuan") )
{
room->set("exits/out", __DIR__"river-nan");
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__"duchuan") ) {
room->delete("exits/out");
message("vision","船夫把踏腳板收起來,把扁舟駛向江心。\n", room);
room->delete("yell_trigger");
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", ob[i]);
ob[i]->move(SHIP_TO);
if (!living(ob[i])) tell_room(SHIP_TO, ob[i]->name() + "被抬下了船。\n", ({ob[i]}));
else tell_room(SHIP_TO, ob[i]->name() + "走下了船。\n", ({ob[i]}));
}
}
}
}
int do_yell(string arg)
{
string dir;
if( !arg || arg=="" ) return 0;
if( arg=="boat" ) arg = "船家";
if( (int)this_player()->query("neili") < 300 )
message_vision("$N使出吃奶的力氣喊了一聲:“" + arg + "”\n",
this_player());
else if( (int)this_player()->query("neili") > 600 )
message_vision("$N吸了口氣,一聲“" + arg + "”,聲音中正平和地遠遠傳"
"了出去。\n", this_player());
else
message_vision("$N鼓足中氣,長嘯一聲:“" + arg + "!”\n",
this_player());
if( arg=="船家")
{
check_trigger();
return 1;
}
else
message_vision("江面上遠遠傳來一陣回聲:“" + arg +
"~~~”\n", this_player());
return 1;
}
void reset()
{
object room;
::reset();
if( room = find_object(__DIR__"duchuan") )
room->delete("yell_trigger");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -