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

📄 dashouyin.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// dashouyin dashou-yin perform// by dubei#include <ansi.h>#include <combat.h>#include "/kungfu/skill/eff_msg.h";inherit F_SSERVER;int perform(object me, object target){      string msg, dodge_skill;                                      int damage, jiali, attack, defense, p;      object armor;            if( !target ) target = offensive_target(me);           if( !target || !me->is_fighting(target) || !living(target) )           return notify_fail("「大手印」只能在战斗中对对手使用。\n");                    if( (int)me->query_skill("dashou-yin",1) < 120 )           return notify_fail("你的大手印不够娴熟,不会使用密宗神功「大手印」!\n");            if( (int)me->query_skill("hand",1) < 120 )           return notify_fail("你的基本手法不够娴熟,不会使用密宗神功「大手印」!\n");      if( (int)me->query_skill("longxiang",1) < 120 )           return notify_fail("你的龙象般若功等级不够,不能使用「大手印」!\n");              if( (int)me->query_str() < 35 )           return notify_fail("你的臂力不够强,不能使用「大手印」!\n");            if( (int)me->query("max_neili") < 1000 )           return notify_fail("你的内力太弱,不能使用「大手印」!\n");            if( (int)me->query("neili") < 800 )           return notify_fail("你的内力太少了,无法使用出「大手印」!\n");                if( (int)target->query_condition("dashouyin"))           return notify_fail("对方早已身中「大手印」绝技了!\n");               if ( me->query_skill_mapped("hand") != "dashou-yin"        || me->query_skill_mapped("parry") != "dashou-yin")           return notify_fail("你现在无法使用「大手印」!\n");                   if( objectp(me->query_temp("weapon")) )           return notify_fail("你必须空手使用「大手印」!\n");                                                                                                 jiali = me->query("jiali")+1;      attack = me->query("combat_exp")/1000;      attack += me->query_skill("hand");      attack += me->query("neili")/5;      defense = target->query("combat_exp")/1000;      defense += target->query_skill("dodge");      defense += target->query("neili")/7;      attack = (attack+random(attack+1))/2;            damage = me->query_skill("dashou-yin", 1)/40 * jiali;      if(damage > 1500) damage = 1500;            message_vision(BLU"\n$N突然面色怪异,低声默念密宗真言,双臂骨节一阵爆响,猛然腾空而起,伸手向$n胸前按去,好一式密宗「大手印」!\n"NOR,me,target);       if( attack > defense ) {       	 if( objectp(armor = target->query_temp("armor/cloth"))      	    && armor->query("armor_prop/armor") < 1500      	    && damage > 500){                	message_vision(HIY"只见这斗大的手印正好印在$N的$n"HIY"上,越变越大,竟将它震得粉碎,裂成一块块掉在地上!\n"NOR, target, armor);                        armor->unequip();                        armor->move(environment(target));                        armor->set("name", "破碎的" + armor->query("name"));                            armor->set("value", 0);                        armor->set("armor_prop/armor", 0);                        target->reset_action();                        }      	 tell_object(target, RED"你只觉得霍的胸口一阵剧痛,已经被拍中了前胸!\n"NOR);      	 target->apply_condition("dashouyin", 1+(me->query_str()/8));      	 target->receive_damage("qi", damage,  me);          target->receive_wound("qi", damage, me);         p = (int)target->query("qi")*100/(int)target->query("max_qi");         msg = damage_msg(damage, "内伤");         msg += "( $n"+eff_status_msg(p)+" )\n";         message_vision(msg, me, target);         me->add("neili", -jiali);      	}      else {      	 dodge_skill = target->query_skill_mapped("dodge");	 if( !dodge_skill ) dodge_skill = "dodge";         message_vision(SKILL_D(dodge_skill)->query_dodge_msg(target, 1), me, target);         }      me->add("neili", -200);      me->start_busy(2);                  return 1;} 

⌨️ 快捷键说明

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