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

📄 jianzhi.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
//剑指战决
#include <ansi.h>
#include <skill.h>
#include <weapon.h>
#include <combat.h>

inherit F_SSERVER;
#include "/kungfu/skill/eff_msg.h"; 
int perform(object me, object target)
{
        string msg;
	int extra;
	object weapon,ob;
int damage,p;
	if(me->is_busy())
		return notify_fail("你现在没空!!\n");
	extra = me->query_skill("six-finger",1);
        if( !target ) target = offensive_target(me);

	if (me->query_temp("weapon") || me->query_temp("secondary_weapon"))
		return notify_fail("只能空手使用。\n");		

	if(me->is_busy())
		return notify_fail("你现在没空!!\n");

	if( (int)me->query("neili") < 2000  ) 
		return notify_fail("你的内力不够。\n");

	if( !target
	||	!target->is_character()
	||	!me->is_fighting(target) )
		return notify_fail("这门绝学只能对战斗中的对手使用。\n");

	if( (int)me->query("neili") < me->query("max_neili")/7+200 ) 
		return notify_fail("你的内力不够。\n");

       if( !wizardp(me) &&(int)me->query_skill("six-finger", 1) < 500 )
		return notify_fail("你的本门外功不够!不能贯通使用!\n");

       if( !wizardp(me) &&(int)me->query_skill("yiyang-zhi", 1) < 500 )
		return notify_fail("你的本门外功不够!不能贯通使用!\n");

	if(!wizardp(me) && (int)me->query_skill("kurong-changong", 1) < 500 )
		return notify_fail("你的本门内功不够高!不能贯通使用!\n");

	if(!wizardp(me) && (int)me->query_skill("jiuyin-zhengong", 1) )
		return notify_fail("你的杂学太多,无法对本门武功贯通使用!\n");

        if (!wizardp(me) && !me->query("guard/flag"))
		return notify_fail("你的江湖经验还不够,无法对本门武功贯通使用!\n");

        if (!wizardp(me) && !me->query("guard/ok"))
		return notify_fail("你还没有通过华山论剑! 无法对本门武功贯通使用!\n");

        if ( !wizardp(me) && me->query_skill_mapped("force") != "kurong-changong")
                return notify_fail("不使用本门内功,如何使用本门绝学!\n");

        msg = HBWHT "$N贯通大理武学,使出了大理的绝学之精髓!\n" NOR;
	me->add("neili", -me->query("max_neili")/7);
        message_vision(msg, me, target);   
	me->add_temp("apply/attack",extra);
	me->add_temp("apply/damage",extra*3);
	weapon = me->query_temp("weapon");

        msg = CYN "$N心思涣乱,朝$n隔空遥指了几下,不料却使出了六脉剑法的精髓"HIY"[六脉惊神]"CYN"!" NOR;
       	         message_vision(msg, me, target);                
	 msg =  RED  "-------------------------------少商剑!" NOR;
	        COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
        msg = GRN   "-------------------------------商阳剑!" NOR;
               COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
        msg =  MAG  "-------------------------------中冲剑!" NOR;
               COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
        msg = YEL   "-------------------------------关冲剑!" NOR;
             	COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
        msg = WHT   "-------------------------------少泽剑!" NOR;
          COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
        msg = BLU   "-------------------------------少冲剑!" NOR;
          COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
	me->add_temp("apply/attack",-extra);
	 me->add_temp("apply/damage",-extra*3);
        me->add("neili", -500);
        me->start_busy(4);
        if ((target->query_skill_mapped("force")=="hamagong" || 
            target->query_skill_mapped("strike") == "hamagong")){
            msg = YEL "\n$N背向$n,凝气于指,一式「阳关三叠」反手缓缓点出,纯阳指力直袭$n胸口!\n" NOR;
         if (random(me->query_skill("force",1)) > target->query_skill("force",1) /3 
         || random(me->query("combat_exp")) > target->query("combat_exp")/2 ){
                target->start_busy(1);
                damage = (int)me->query_skill("yiyang-zhi", 1);
//                damage = (int)me->query_skill("qiantian-yiyang", 1) +damage;
                damage = (int)me->query_skill("kurong-changong", 1) +damage;
                damage = random(damage)+550;
                target->receive_damage("qi", damage*2);
                target->receive_wound("qi", damage);               
                me->add("neili", -100);
                p = (int)target->query("qi")*100/(int)target->query("max_qi");
                msg += HIR "$n一见之下,大为失色,发现这似乎正是自己的克星!\n"NOR;   
                msg += damage_msg(damage, "内伤");
                msg += "( $n"+eff_status_msg(p)+" )\n";
                } 
         else {       
           
                msg += HIY"$p见这反手点穴似乎正是蛤蟆功的克星,识得厉害,危及之中一个铁板桥,上身向后一倒,艰难的躲过这一招。\n"NOR;
                }
         }
       else{
         msg = YEL "\n$N凝气于指,一式「阳关三叠」点出,但听得嗤嗤声响,一股纯阳的内力直袭$n胸口!\n" NOR;
          if (random(me->query_skill("parry")) > target->query_skill("parry") / 3)
             {
                target->start_busy(2);
                damage = (int)me->query_skill("yiyang-zhi", 1);
  //              damage = (int)me->query_skill("qiantian-yiyang", 1) +damage;
                damage = (int)me->query_skill("kurong-changong", 1) +damage;
       damage = damage + random(damage);
                target->receive_damage("qi", damage*2);
                target->receive_wound("qi", damage*2);               
                p = (int)target->query("qi")*100/(int)target->query("max_qi");
                msg += damage_msg(damage, "内伤");
                msg += "( $n"+eff_status_msg(p)+" )\n";
                if(me->query_skill("yiyang-zhi", 1) > 180)
                call_out("perform2", 0, me, target);    
              } 
         else {       

                msg += HIY"可是$p一个巧云翻身,远远的躲了开去。\n"NOR;
              }
         }         
        message_vision(msg, me, target);
        return 1;
}

int perform2(object me, object target)
{
        string msg;

        if (!me)
{
 return notify_fail("你已经断线了。\n");
}

        if (!target)
{
        me->delete_temp("yyz_hama");
         return notify_fail("敌人已经不在了。\n");
}
        if (!me || !target) return 0;
        if(!living(target)) 
          return notify_fail("对手已经不能再战斗了。\n");  

        if( (int)me->query("neili", 1) < 600 )
                return notify_fail("你待要再出第二指,却发现自己的内力不够了!\n");     
       
        msg = YEL "\n接着$N踏前一步,出第二指隔空点向$n胸前“玉堂穴”,认穴竟无厘毫之差!\n"NOR;
        if (random(me->query_skill("dodge")) > target->query_skill("dodge") / 3){                
                msg += HIR "结果一指点中,$n只觉得全身气脉通道阻塞,真气立受干挠!\n"NOR;   
                target->start_busy(me->query_skill("force",1)/50+2);
//else            msg += HIG "结果一指点中,但$n已经全身气脉通道阻塞,看来没有什么效果!\n"NOR;   
                if((int)me->query_skill("yiyang-zhi", 1) > 249)
                call_out("perform3", 0, me, target);    
                } 
        else {
           target->add("neili", -50);
           msg += HIY"\n$p眼看逼无可逼,便也一指点去,两根指尖相碰,$p顺势跳了开去。\n" NOR;
           }
        message_vision(msg, me, target);
        return 1;
}

int perform3(object me, object target)
{
        int skill;
        string msg;
        if (!me)
{
 return notify_fail("你已经断线了。\n");
}

        if (!target)
{
        me->delete_temp("yyz_hama");
         return notify_fail("敌人已经不在了。\n");
}
        if (!me || !target) return 0;
        skill = (int)me->query_skill("yiyang-zhi", 1);                
        skill = skill/10;
       
        if(!living(target)) 
          return notify_fail("对手已经不能再战斗了。\n");

        if( (int)me->query("neili", 1) < 400 )
                return notify_fail("你待要再出第三指,却发现自己的内力不够了!\n");     

        msg = YEL "\n紧跟着$N一阳指第三次点出,以纯阳内力,同时透入$n体内任脉紫宫穴、
阴维脉大横穴、冲脉幽门穴、带脉章门穴和阴跤脉晴明穴!\n"NOR;        
        if (random(me->query_skill("force")) > target->query_skill("force") / 3){                
                msg += HIR "$n只觉体内奇经八脉中内息为之一怠,全身气力竟然提不起来了!\n" NOR;
                target->add_temp("apply/attack", -100);
                target->add_temp("apply/dodge", -100);
                target->add_temp("apply/parry", -100);  
                target->add("neili", -500);                 
                call_out("back", 3 + skill, target);
                } 
        else {
                msg += HIY"\n$p喘息未定,见$P指力如狂风般点来,连忙又跃开数尺,狼狈地避开。\n" NOR;
             }
        message_vision(msg, me, target);
        return 1;
}

void back(object target)
{
    if (!target) return;
        target->add_temp("apply/attack", 100);
        target->add_temp("apply/dodge", 100);
        target->add_temp("apply/parry", 100);
}

⌨️ 快捷键说明

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