leitai.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 451 行 · 第 1/2 页
C
451 行
// Room: /city/leitai.c
// Date: Feb.27 1998 by Java
#include <ansi.h>
inherit ROOM;
string look_shelf();
string do_quit(string arg);
string look_gaoshi();
string look_pai();
string clear_title(string arg);
void add_title(object me,string arg);
void create()
{
set("short", "擂台");
set("long", @LONG
这是一个四丈见方的擂台。粗壮结实的木柱撑起一片平台,四角的支柱上
高挂着四副对联,四面的观众都能清楚地看到台上的手起脚落。擂台角上有个
兵器架(shelf) ,刀剑鞭棒样样俱全。主持人请看公吿版(pai)
LONG );
set("outdoors", "city");
set("item_desc", ([
"shelf" : (: look_shelf :),
"pai" : (: look_pai :),
]));
set("exits", ([
"up" : __DIR__"wudao",
"eastdown" : __DIR__"wudao1",
"westdown" : __DIR__"wudao2",
"southdown" : __DIR__"wudao3",
"northdown" : __DIR__"wudao4",
]));
set("objects", ([
__DIR__"npc/referee": 1,
// "/u/zmud/gongping": 1,
]));
set("no_npc",1);
set("no_clean_up", 0);
set("no_openshelf", 1);
setup();
}
string look_pai()
{
return
"\n
"HIR"start "HIY"---- 擂台上之玩家开始比武。
"HIR"allow <player id> "HIY"---- 设定允许上擂台之玩家。
"HIR"deny <player id> "HIY"---- 取消玩家上台资格。
"HIR"load <player id> "HIY"---- 拉玩家上擂台。
"HIR"kick <player id> "HIY"---- 踢玩家下擂台。
"HIR"heal <player id> "HIY"---- 给擂台上玩家九花玉露丸。
"HIR"life <player id> "HIY"---- 送被杀玩家上天堂恢复。
"HIG"titles <player id> 01 "HIY"---- 赠玩家幼年天下第一 (15以下)。
"HIG"titles <player id> 02 "HIY"---- 赠玩家幼年天下第二 (15以下)。
"HIG"titles <player id> 11 "HIY"---- 赠玩家少年天下第一 (20以下)。
"HIG"titles <player id> 12 "HIY"---- 赠玩家少年天下第二 (20以下)。
"HIG"titles <player id> 21 "HIY"---- 赠玩家天下第一侠少 (30以下)。
"HIG"titles <player id> 22 "HIY"---- 赠玩家天下第二侠少 (30以下)。
"HIG"titles <player id> 31 "HIY"---- 赠玩家天下第一侠客 (40以下)。
"HIG"titles <player id> 32 "HIY"---- 赠玩家天下第二侠客 (40以下)。
"HIG"titles <player id> 41 "HIY"---- 赠玩家天下第一大侠 (40以上)。
"HIG"titles <player id> 42 "HIY"---- 赠玩家天下第二大侠 (40以上)。
\n"NOR;
}
string look_shelf()
{
return
"\n
一个很有年头的兵器架,红漆都剥落得差不多了。
架上摆满了:
钢刀(blade) 长剑(sword)
钢杖(staff) 长鞭(whip)
铁锤(hammer) 长棍(club)
暗器(throwing) 短兵(dagger)
钢甲(armor)
参加比武者可以按需要,随便拿取(take)使用。
侠客行擂台 敬启
\n";
}
void init()
{
// add_action("do_yun","yun");
// add_action("do_yun","exert");
// add_action("do_quit","hit");
// add_action("do_quit","fight");
// add_action("do_quit","qiecuo");
// add_action("do_quit","kill");
// add_action("do_quit","quit");
add_action("do_quit","exit");
add_action("do_quit","dazuo");
add_action("do_quit","exercise");
add_action("do_quit","learn");
add_action("do_quit","xue");
add_action("do_quit","practice");
add_action("do_quit","lian");
add_action("do_quit","study");
add_action("do_quit","du");
add_action("do_take","take");
add_action("do_open","open");
add_action("do_close","close");
add_action("do_start", "start");
add_action("do_allow", "allow");
add_action("do_deny", "deny");
add_action("do_load", "load");
add_action("do_kick", "kick");
add_action("do_heal", "heal");
add_action("do_life", "life");
add_action("do_titles", "titles");
}
int valid_leave(object me, string dir)
{
if( dir=="up" && !wizardp(me) && !userp(me))
return notify_fail("裁判席只有被特邀才能进去。\n");
me->set_temp("view_leitai",1);
return ::valid_leave(me, dir);
}
int do_yun(string arg)
{
if (arg=="roar")
{
write(this_player()->query("name")+",专心比武吧!\n");
return 0;
}
return 1;
}
int do_open()
{
if(wizardp(this_player()))
{
message_vision("$N把兵器架启封了。\n", this_player());
this_object()->delete("no_openshelf");
return 1;
}
else return 0;
}
int do_close()
{
if(wizardp(this_player()))
{
message_vision("$N拿了条封条把兵器架给封了。\n", this_player());
this_object()->set("no_openshelf", 1);
return 1;
}
else return 0;
}
int do_take(string arg)
{
object obj,ob;
ob = this_player();
if(this_object()->query("no_openshelf"))
{
message_vision("非大比武的时候,兵器架给封住了。\n", ob);
return 1;
}
if( !arg || arg=="" )
{
message_vision("$N站在兵器架前,还没想好要什么兵器。\n", ob);
return 1;
}
switch (arg)
{
case "sword":
obj = new("/clone/weapon/changjian");
obj -> move(ob);
message_vision("$N从兵器架上取下一口长剑。\n",ob);
break;
case "blade":
obj = new("/clone/weapon/gangdao");
obj -> move(ob);
message_vision("$N从兵器架上取下一口钢刀。\n",ob);
break;
case "staff":
obj = new("/clone/weapon/gangzhang");
obj -> move(ob);
message_vision("$N从兵器架上取下一杆钢杖。\n",ob);
break;
case "whip":
obj = new("/clone/weapon/changbian");
obj -> move(ob);
message_vision("$N从兵器架上取下一条长鞭。\n",ob);
break;
case "club":
obj = new("/clone/weapon/qimeigun");
obj -> move(ob);
message_vision("$N从兵器架上取下一条齐眉棍。\n",ob);
break;
case "hammer":
obj = new("/clone/weapon/hammer");
obj -> move(ob);
message_vision("$N从兵器架上取下一把铁锤。\n",ob);
break;
case "throwing":
obj = new("/clone/weapon/lianzi");
obj -> move(ob);
message_vision("$N从兵器架上取下一包铁莲子。\n",ob);
break;
case "dagger":
obj = new("/clone/weapon/dagger");
obj -> move(ob);
message_vision("$N从兵器架上取下一把匕首。\n",ob);
break;
case "armor":
obj = new("/clone/weapon/tiejia");
obj -> move(ob);
message_vision("$N从兵器架上取下一副铁甲。\n",ob);
break;
default:
message_vision("$N站在兵器架前,还没想好要什么兵器。\n", ob);
}
return 1;
}
int do_start()
{
int i,j;
object *allob, ob, me;
string wiz_status;
me = this_player();
wiz_status = SECURITY_D->get_status(me);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?