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

📄 jiushi.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
// jiushi.c 九式合一

#include <ansi.h>
#include <skill.h>
#include <weapon.h>
#include <combat.h>

inherit F_SSERVER;

int perform(object me, object target)
{
    int damage , zhao;
    string msg;
    object weapon;
    int extra;
    int i;
    
string  *pfattack_msg = ({
                       HIG"「倒剑式」$N突然将所有剑式倒转为施,但见$n顿时被逼得手忙脚乱,自己向$N的长剑撞将上来。\n"NOR,
                       HIR"「逆剑式」$N将长剑交到左手,剑招变的左右颠倒,$n一时没有弄懂被刺个正着。\n"NOR,
                       HIC"「落剑式」$N腾身而起,成头下脚上势,从空中攻向$n,$n防备不及结果被$N的刺中。\n"NOR,
                       HIY"「摇剑式」只见$N的长剑有如灵蛇一般左右迂回着,$n不知剑要攻向自己的什么位置,站在原地发呆,结果被刺中。\n"NOR,
                       HIW"「荡剑式」$N的剑招突然变得犹如风中柳絮,飘忽不定,$n只觉眼前一花,胸口已被刺中。\n"NOR,
                       HIB"「浪剑式」犹如大海狂涛,又四面向$n压去,$n只觉置身于$N的剑招的狂风暴雨之中,不知不觉已经被刺中。\n"NOR,
                       YEL"「挫剑式」$n与$N互相一搓身,只见$N将长剑轻轻一带,$n的小腹已中了$N的一剑。\n"NOR,
                       HIG"「离剑式」只见$N将手中长剑随手抛向空中,长剑剑光暴长,急若流星飞向$n,$n躲避不及被长剑刺中。\n"NOR,
                       HIW"$N手中长剑虚空一点,"+HIR"「剑气式」"+HIW"应手而出,三丈之内剑气纵横连绵不绝袭向$n,$n急忙腾空而起但已经太晚,剑气已经贯胸而过。\n"NOR
                       });

string *pfparry_msg = ({
                      HIG"$p看破了$P的企图,挺剑而上,一圈一点破解了$P的这招。\n"NOR,
                      HIB"$p腾身而起,$P的剑招险险从脚下擦过。\n"NOR,
                      HIY"$P突然从左方攻去一剑,早以被$p料到,身体轻轻向右飘出丈余,化解了这招。\n"NOR,
                      });

    if (!target ) target = offensive_target(me);

    if (!objectp(weapon = me->query_temp("weapon"))
        || (string)weapon->query("skill_type") != "sword")
        return notify_fail(RED"开什么玩笑,没装备剑就想使「九式合一」?\n"NOR);

//        if(me->query("family/master_id") != "feng qingyang"
//        && userp(me))
//           return notify_fail("你不是风清扬的弟子,不能使用绝招!\n");

    if (!target || !target->is_character() || !me->is_fighting(target) )
        return notify_fail("「九式和一」只能对战斗中的对手使用。\n");

    if ((int)me->query_skill("lonely-sword", 1) < 250 )
        return notify_fail(WHT"你独孤九剑不够娴熟,使不出「九式合一」。\n"NOR);

    if ((int)me->query("max_neili")<2000)
        return notify_fail(RED"你内力修为不足,无法运足内力。\n"NOR);

     if( (int)me->query_skill("zixia-shengong",1)<100)
            return notify_fail("独孤九剑必须配合紫霞神功。\n");

    if ((int)me->query("neili")<800)
    {
        return notify_fail(HIC"你现在内力不够,没能将「九式合一」使完!\n"NOR);
    }

//    msg += HIR"「九式合一」"+HIW+"剑光左右飘忽,上下不定,直向$n卷去!\n\n"NOR;
//if ((int)me->query_skill("zixia-shengong",1) > (int)me->query_skill("lonely-sword",1))
//if (random(2)==0)
if ((int)me->query_skill("zixia-shengong",1) >= (int)me->query_skill("lonely-sword",1))
{
    msg = HIW "$N以气御剑手中长剑剑芒跃动,剑光暴长,剑尖颤动使出独孤九剑的,独门绝技\n"NOR;
    msg += HIR"「九式合一」"+HIW+"剑光左右飘忽,上下不定,直向$n卷去!\n\n"NOR;

for (zhao=0;zhao<9;zhao++)
{ 

    if (random(me->query("combat_exp")) > (int)target->query("combat_exp")/3)
    {
        me->start_busy(3);
  if( !target->is_busy() )
{
        target->start_busy(random(2));
}
        damage = (int)me->query_skill("lonely-sword", 1) + (int)me->query_skill("sword", 1);
        damage = 100 + damage + random(damage);
        target->receive_damage("qi", damage/2);
        target->receive_wound("qi", damage/4);
      msg += pfattack_msg[random(sizeof(pfattack_msg))];
        me->add("neili", -damage/5);
    } else
    {
    me->start_busy(3);
 
      msg += pfparry_msg[random(sizeof(pfparry_msg))];
   }
}
    message_combatd(msg, me, target);
}
else
{
	extra = me->query_skill("lonely-sword",1) / 20;
	extra += me->query_skill("zixia-shengong",1) /20;
	me->add_temp("apply/attack", extra);	
	me->add_temp("apply/damage", extra);
      msg = HIW "$N剑气冲霄,使出「"HIG"独孤九剑"HIW"」绝技,身法陡然加快,猛地连出9招!\n"NOR;
        message_vision(msg, me, target);
        me->add("neili", -500);
        msg = HIC"第一剑!「"HIG"独孤九剑"HIY"飞星式"HIC"」"NOR;
        COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);
        msg = HIW"第二剑!「"HIG"独孤九剑"HIC"落沙式"HIW"」"NOR;
        COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);
        msg = HIY"第三剑!「"HIG"独孤九剑"HIW"奔流式"HIY"」"NOR;
        COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);
        msg = HIR"第四剑!「"HIG"独孤九剑"BBLU+HIW"行空式"NOR+HIR"」"NOR;
        COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);
        msg = BLU"第五剑!"HIB"「"HIG"独孤九剑"HIR"横扫式"BLU"」"NOR;
        COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);
        msg = HIG"第六剑!「"HIG"独孤九剑"RED"直刺式"HIG"」"NOR;
        COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);
        msg = CYN"第七剑!「"HIG"独孤九剑"HIY"绝情式"NOR+CYN"」"NOR;
        COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);
        msg = HIW+BLK"\n第八剑!「"HIG"独孤九剑"HIB"斜劈式"HIW+BLK"」"NOR;
        COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);
        msg = MAG"第九剑!"HIR"「"HIG"独孤九剑"HIY"之"U+HIG"九"HIW"天"HIY"御"HIW+BLK"剑"HIR"术"NOR+HIR"」"NOR;
        COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);
           msg = HIW"\n结果$n被$N攻了个措手不及。\n"NOR;
           message_vision(msg, me, target);
        me->start_busy(3);
	me->add_temp("apply/attack", -extra);	
	me->add_temp("apply/damage", -extra);
}        	
	
    if(!target->is_fighting(me)) target->fight_ob(me);
    return 1;
}

⌨️ 快捷键说明

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