shulin2.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 110 行
C
110 行
//shulin.c树林
//diabio(青云)2001.3.30
#include <ansi.h>
#include <room.h>
#include <command.h>
inherit ROOM;
int consider_lv(object ob,int a);
void create ()
{
set ("short", "树林");
set ("long", @LONG
这是一片树林,林子很密,只有这一条小路穿林而过,一些阳光透
过密林射在地上,到了晚上这里基本是伸手不见五指的。在前面隐约
可以看见一个小房间。
LONG);
set("exits", ([
"east" : __DIR__"pubu",
"west" : __DIR__"shulin"+(1+random(4)),
"south" : __DIR__"shulin"+(1+random(4)),
"north" : __DIR__"shulin"+(1+random(4)),
]));
set("outdoors", "feitian");
setup();
}
void init()
{
object me, ob;
mapping myfam;
me = this_player();
myfam = me->query("family");
if (!myfam) return;
if ( myfam = me->query("family") && (myfam["family_name"] == "飞天御剑流") && random(100) < 25
&& !me->query_temp("shirenok"))
{
message_vision(HIW"突然树上传来一阵狞笑,伴一阵风势,一个蒙面人犹如一道利刃向你刺来.......\n"NOR, me);
message_vision(HIW"蒙面人大喝一声:御剑流的通通的死,今天落到我手里算你倒霉,纳命来吧!!!\n"NOR, me);
ob = new(__DIR__"npc/shiren");
ob->set("combat_exp",me->query("combat_exp") * 9 / 10);
ob->set("max_qi",me->query("max_qi"));
ob->set("eff_qi",me->query("max_qi"));
ob->set("qi",me->query("max_qi"));
/*
ob->set("max_jingli",me->query("max_jingli"));
ob->set("eff_jingli",me->query("max_jingli"));
ob->set("jingli",me->query("max_jingli"));
ob->set("max_neili",me->query("max_neili"));
ob->set("neili",me->query("max_neili"));
*/
ob->set_skill("force", consider_lv(ob, 8));
ob->set_skill("unarmed", consider_lv(ob, 8));
ob->set_skill("xuanhualiu-quanfa",consider_lv(ob, 8));
ob->set_skill("dodge", consider_lv(ob, 8));
ob->set_skill("blade", consider_lv(ob, 8));
ob->set_skill("aikido", consider_lv(ob, 8));
ob->set_skill("wuxing-dun", consider_lv(ob, 8));
ob->set_skill("shayi-xinfa", consider_lv(ob, 8));
ob->set_skill("parry", consider_lv(ob, 8));
ob->set_skill("literate", consider_lv(ob, 8));
ob->set_skill("feitian-yujianliu", consider_lv(ob, 8));
ob->map_skill("parry", "aikido");
ob->map_skill("unarmed", "aikido");
ob->map_skill("dodge", "wuxing-dun");
ob->map_skill("force", "shayi-xinfa");
ob->map_skill("blade", "feitian-yujianliu");
ob->move(environment(me));
ob->kill_ob(me);
me->kill_ob(ob);
me->start_busy(1);
me->set_temp("shiren",1);
me->set_temp("shirenok",1);
}
return;
}
int consider_lv(object ob,int a)
{
int level;
float exper;
exper = to_float(ob->query("combat_exp"));
level = ceil( pow( exper*10.0, 0.333333) );
level = level * a / 10;
return level;
}
int valid_leave(object me, string dir)
{
if ( ((dir == "south")||(dir == "north")||(dir == "west")||(dir == "east"))
&& me->query_temp("shiren") == 1
&& objectp(present("bang zhong", environment(me))) )
{
message_vision("蒙面人一闪身将你拦了下来:想走?没那么容易!!!", me);
return notify_fail("\n");
}
me->delete_temp("shiren");
return ::valid_leave(me, dir);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?