⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 magic-sword.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
//npc武功,不开放!!#include <ansi.h>inherit SKILL;  #include <ansi.h>#include <combat.h>//inherit F_SSERVER;#include "/kungfu/skill/eff_msg.h";string *order = ({""HIY"", ""HIG"", ""RED"", ""MAG"", ""YEL"", ""HIC"", ""HIW"", ""HIR"",""HIB"", ""CYN"",""WHT"",""HIM"",""BLU""});mapping *action = ({   ([   "action":"$N手中$w向$n的$l直劈过来。",     "dodge":     100,     "parry":                300,     "damage":     600,     "damage_type":   "刺伤"   ]),   ([   "action":"$N手中$w向$n的$l斜劈过来。",     "dodge":     100,     "parry":                300,     "damage":     600,     "damage_type":   "割伤"   ]),   ([   "action":"$N手中的$w划了一个三角,向$n的$l刺了过去。",     "dodge":     100,     "parry":                300,     "damage":     600,     "damage_type":   "刺伤"   ]),   ([   "action":"$N手中的$w划了个大圆,向$n的$l刺了过去。",     "dodge":     100,     "parry":                300,     "damage":     600,     "damage_type":   "刺伤"   ]),   ([   "action":"$N手中的$w对着$n的$l旋了过去。",     "dodge":     100,     "parry":                300,     "damage":     600,     "damage_type":   "刺伤"   ]),});int valid_learn(object me){   object ob;   if( !(ob = me->query_temp("weapon"))   ||   (string)ob->query("skill_type") != "sword" )     return notify_fail("你必须先找一把剑才能练剑法。\n");   return 1;}int valid_enable(string usage){   return usage=="sword" || usage=="parry";}string query_skill_name(int level){        int i;        for(i = sizeof(action)-1; i >= 0; i--)                if(level >= action[i]["lvl"])                        return action[i]["skill_name"];}mapping query_action(object me, object weapon){        int i, level;        level = (int)me->query_skill("magic-sword", 1);        for(i = sizeof(action); i > 0; i--)                if(level > action[i-1]["lvl"])                        return action[NewRandom(i, 20, level/5)];}int practice_skill(object me)        {   if( (int)me->query("qi") < 300   ||   (int)me->query("neili") < 300 )     return notify_fail("你的内力或气不够,没有办法练习西洋剑法。\n");   me->receive_damage("qi", 300);   me->add("neili", -300);   write("你按著所学练了一遍西洋剑法。\n");   return 1;}mixed hit_ob(object me, object victim,int damage_bonus)        {	        int i, level;        object target;object weapon;        level   = (int) me->query_skill("magic-sword",1);//        target = me->select_opponent();        weapon = me->query_temp("weapon");	if( random(4)==1 && random(level) > 260)	{        if (userp(victim))        victim->start_busy(3+random(2));else    victim->start_busy(2);        return HIC "「冰晶术!!」!$N突然念咒,用了一个魔法,$n被冰冻住暂时不能动了!!\n" NOR;	}  	if( random(4)==1 && random(level) > 200 && victim->query("qi") > 50  	&& victim->query("eff_qi") > 50)	{        if (userp(victim)){        if (victim->query("qi")/15 > 20)        victim->add("qi",-victim->query("qi")/15);        if (victim->query("eff_qi")/15 > 20)        victim->add("eff_qi",-victim->query("eff_qi")/25);}else {        victim->add("qi",-100);        victim->add("eff_qi",-100);}        return HIB "「暗黑核融术!!」!$N突然念咒,用了一个魔法,$n被炸得飞了起来!!\n" NOR;	} 	if( random(4)==1 && random(level) > 150 && victim->query("jing") > 50 	&& victim->query("eff_jing") > 50)	{        if (userp(victim)){        if (victim->query("jing")/20 > 20)        victim->add("jing",-victim->query("jing")/20);         if (victim->query("eff_jing")/20 > 20)        victim->add("eff_jing",-victim->query("eff_jing")/30);}else {        victim->add("jing",-100);        victim->add("eff_jing",-100);}        return HIW "「流星光矢!!」!$N突然念咒,用了一个魔法,$n被打中后觉得头痛无比!!\n" NOR;	}if (damage_bonus < 10) damage_bonus=10;	if( damage_bonus > 100 ) {        victim->receive_wound("qi", damage_bonus );        return HIR "突!!一阵剑影!!!一股鲜血从$n的身子喷出\n" NOR;	}        if( damage_bonus < 75 ) {        victim->receive_wound("qi", damage_bonus );	        return YEL "刺!!一阵剑影!!!$n闷哼一声,身子晃了两晃!\n" NOR;}else{               victim->receive_wound("qi", damage_bonus );	        return HIM "劈!!一阵剑影!!!你听到「嗤啦」一声轻响,脸上竟溅到一些血滴!\n" NOR;}}int ob_hit(object ob, object me, int damage){	object weapon = me->query_temp("weapon");        string msg,dodge_skill,*limbs;        int i, j, level, p, q;                limbs = ob->query("limbs");        level = me->query_skill("magic-sword", 1);//        if( me->is_busy()) return 1;        if( damage < 100 ) return 1;        if (  random(level) > 150          ){         msg = RED"$N面对$n的攻势。身形一闪,突然施放魔法!!!。\n"NOR;            message_vision(msg, me, ob);            if ( random(4) == 0 && random(level) > 260){         msg = YEL"「 地精附身! 」。$N突然念咒,用了一个魔法,$n感觉被大地吸住不能动了!!。\n"NOR;//             if (!ob->is_busy())        if (userp(ob) && ob->query("qi") > 50        && ob->query("eff_qi") > 50){             ob->start_busy(3+random(2));if (ob->query("qi")/20 > 20)             ob->add("qi",-ob->query("qi")/20);if (ob->query("eff_qi")/20 > 20)             ob->add("eff_qi",-ob->query("eff_qi")/25);}else{             ob->start_busy(3);             ob->add("qi",-100);             ob->add("eff_qi",-100);}msg += damage_msg(damage, "瘀伤");            }else  if (random(4)==1&& random(level) > 200){         msg = HIR"「火炎球!」。$N突然念咒,用了一个魔法,$n被一个火球打中了!!\n"NOR;        if (userp(ob) && ob->query("qi") > 50        && ob->query("eff_qi") > 50){if (ob->query("qi")/15 > 20)             ob->add("qi",-ob->query("qi")/15);if (ob->query("eff_qi")/15 > 20)             ob->add("eff_qi",-ob->query("eff_qi")/25);}else {             ob->add("qi",-200);             ob->add("eff_qi",-200);}msg += damage_msg(damage, "瘀伤");            }else  if (random(4)==2&& random(level) > 150){         msg = HIC"「霹雳闪电!」。$N突然念咒,用了一个魔法,$n被一个闪电打中了!!\n"NOR;        if (userp(ob) && ob->query("qi") > 50         && ob->query("jing") > 50 && ob->query("eff_qi") > 50        && ob->query("eff_jing") > 50){if (ob->query("qi")/30 > 20)             ob->add("qi",-ob->query("qi")/30);if (ob->query("eff_qi")/30 > 20)             ob->add("eff_qi",-ob->query("eff_qi")/30);if (ob->query("jing")/30 > 20)             ob->add("jing",-ob->query("jing")/30);if (ob->query("eff_jing")/30 > 20)             ob->add("eff_jing",-ob->query("eff_jing")/30);}else{             ob->add("qi",-100);             ob->add("eff_qi",-100);             ob->add("jing",-100);             ob->add("eff_jing",-100);}msg += damage_msg(damage, "瘀伤");            }else           msg = HIG"$n抢先出招,使$N的念咒失败了!。\n"NOR;            message_vision(msg, me, ob);            return damage;        }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -