player.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 381 行 · 第 1/2 页
C
381 行
(["id":"bird","title":"傀儡人公主","name":"蓝鸟","sex":1,]),
(["id":"bingxueer","title":"可爱的食尸鬼","name":"冰雪儿","sex":1,]),
(["id":"bmr","title":"娇艳之神怪","name":"雪儿","sex":1,]),
(["id":"budai","title":"元素人","name":"有来有去",]),
(["id":"bullet","title":"魔鬼骑士","name":"小鱼",]),
(["id":"admire","title":"食腐爬行者","name":"雾云",]),
(["id":"aka","title":"黑暗精灵","name":"阿卡",]),
(["id":"akan","title":"魔化兽人","name":"莫柯无量",]),
(["id":"amejio","title":"菜鸟魔法侍女","name":"娟娟","sex":1,]),
(["id":"amy","title":"黑夜之女杀手","name":"阿宝","sex":1,]),
(["id":"ant","title":"美丽之银魔导士","name":"不悔","sex":1,]),
(["id":"anran","title":"魔军司令","name":"我心黯然",]),
(["id":"aoe","title":"魔族长","name":"渡奥",]),
(["id":"axax","title":"魔剑使指挥官","name":"白玉京",])
});
string *order = ({""HIY"", ""HIG"", ""RED"", ""MAG"", ""YEL"", ""HIC"", ""HIW"", ""HIR"",""HIB"", ""CYN"",""WHT"",""HIM"",""BLU""});
void create()
{
mapping npc;
string sex;
npc=data[random(sizeof(data))];
sex=npc["sex"];
set_name(npc["name"]+NOR,({ npc["id"] }));
set("title",(order[random(13)])+(npc["title"])+NOR);
if (sex)
set("gender", "女性" );
else set("gender", "男性" );
set("pubmaster",1);
set("age", 34);
set("str", 30);
set("cor", 30);
set("cps", 30);
set("int", 30);
set("per", 30);
set("agi",25);
set("dex",80);
set("con",80);
set("str" ,80);
set("dex",80);
set("int",80);
set("per",80);
set("kar",80);
set("age", 22+random(40));
set("chat_chance", 4);
set("chat_msg", ({
(: random_move :),
}) );
set("attitude","friendly");
set("pubmaster",1);
set("max_neili", 35000);
set("neili", 35000);
set("jing",6000+random(10000));
set("max_jing",6000+random(10000));
set("eff_jing",6000+random(10000));
set("qi",6000+random(10000));
set("max_qi",6000+random(10000));
set("eff_qi",6000+random(10000));
set_skill("parry", 320);
set_skill("dodge", 320);
set_skill("force", 300);
set_skill("literate", 300);
set_skill("sword", 300);
set_skill("unarmed",380);
set("combat_exp",28000000+random(9000000));
set_skill("force",400+random(300));
set_skill("unarmed",400+random(300));
set_skill("sword",400+random(300));
set_skill("club",400+random(300));
set_skill("whip",400+random(300));
set_skill("throwing",400+random(300));
set_skill("parry",400+random(300));
set_skill("spells",300+random(300));
set_skill("magic-unarmed", 400+random(300));
set_skill("magic-sword", 400+random(300));
set_skill("magic-fire", 400+random(300));
set_skill("magic-water", 400+random(300));
map_skill("sword", "magic-sword");
map_skill("unarmed", "magic-unarmed");
map_skill("parry", "magic-unarmed");
set("magicset",1);
set("zhuanbest",1);
set("no_get",1);
set("vendetta/authority",1);
if (random(2)==0)
{
map_skill("spells", "magic-water");
set("magicgift",2);
set("chat_chance_combat", 60);
set("chat_msg_combat", ({
(: perform_action, "spells.door" :),
(: perform_action, "spells.iceball" :),
(: perform_action, "spells.resistance" :),
(: perform_action, "spells.crystal" :),
(: perform_action, "spells.icebolt" :),
(: perform_action, "spells.storm" :),
(: perform_action, "spells.summon" :),
(: perform_action, "spells.zeroring" :),
}) );
}
else {
map_skill("spells", "magic-fire");
set("magicgift",1);
set("chat_chance_combat", 60);
set("chat_msg_combat", ({
(: perform_action, "spells.light" :),
(: perform_action, "spells.fireball" :),
(: perform_action, "spells.resistance" :),
(: perform_action, "spells.immolation" :),
(: perform_action, "spells.firebolt" :),
(: perform_action, "spells.meteor" :),
(: perform_action, "spells.incinerate" :),
}) );
}
set_temp("apply/attack", 100);
set_temp("apply/defense", 100);
set_temp("apply/armor", 400);
set_temp("apply/damage", 300);
setup();
carry_object(__DIR__"obj/sword")->wield();
carry_object(__DIR__"obj/cloth")->wear();
}
void init( )
{
object ob;
remove_call_out("hunting");
if( interactive(ob = this_player()) ) {
ob->start_busy(1);
call_out("hunting",0);
}
if(!environment()->query("no_fight"))
call_out("hunting",0);
}
void hunting()
{
int i;
object *ob;
ob = all_inventory(environment());
for(i=sizeof(ob)-1; i>=0; i--) {
if( !ob[i]->is_character() || ob[i]==this_object() || !living(ob[i])) continue;
if(ob[i]->query("vendetta/authority")) continue;
kill_ob(ob[i]);
ob[i]->fight(this_object());
}
}
void die()
{
object ob, me, corpse;
int i;
ob = this_object();
me = query_temp("last_damage_from");
if (!me) return;
me->add("score",1);
message_vision(RED"$N,倒地而亡,不动弹了。\n"NOR,ob,me);
if((int)me->query("combat_exp") < ob->query("combat_exp")) {
message("vision", me->name() + HIG"成功杀死"+ob->query("name")+",增加了200经验和100潜能。\n"NOR, me);
me->add("combat_exp",200);
me->add("potential",100);
me->add("score",1);
if (random(5)==0 && me->query("zhuanbest"))
{
if (random(2)==0)
{
i=(random(5)+4);
corpse=new("/clone/magic/obj/w"+i);
corpse->move(me);
message("vision", me->name() + HIG"找到了"+corpse->query("name")+"。\n"NOR, me);
}
else
{
i=(random(5)+4);
corpse=new("/clone/magic/obj/s"+i);
corpse->move(me);
message("vision", me->name() + HIG"找到了"+corpse->query("name")+"。\n"NOR, me);
}
}
destruct(ob);
}
destruct(ob);
return;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?