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

📄 xuemei.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
//雪梅笑
#include <ansi.h>

#include <combat.h>
inherit F_SSERVER;

int perform(object me)
{
        string msg;
        object weapon, target;
        int skill, ap, dp, neili_wound, qi_wound;
        int i, attack_time,damage,extra,p;

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

        skill = me->query_skill("xueshan-sword",1);
        extra = me->query_skill("xueshan-sword",1);
        if( !target
        ||      !target->is_character()
        ||      !me->is_fighting(target) )
                return notify_fail(HIC"只能对战斗中的对手使用。\n"); 

        if (!objectp(weapon = me->query_temp("weapon"))
        || (string)weapon->query("skill_type") != "sword")
            return notify_fail("你使用的武器不对。\n");
	if(me->is_busy())
		return notify_fail("你现在没空!!\n");

	if( (int)me->query("neili") < 2000  ) 
		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("jinwu-blade", 1) < 500 )
		return notify_fail("你的本门外功不够!不能贯通使用!\n");

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

	if(!wizardp(me) && (int)me->query_skill("bingxue-xinfa", 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") != "bingxue-xinfa")
                return notify_fail("不使用本门内功,如何使用本门绝学!\n");


        msg = HBWHT "$N贯通凌霄城武学,使出了凌霄城的绝学之精髓!\n" NOR;
	me->add("neili", -me->query("max_neili")/7);
        message_vision(msg, me, target);          

         attack_time = random((int)me->query_skill("xueshan-sword", 1) / 30);
if (attack_time > 9 )attack_time=9;
        for(i = 0; i < attack_time; i++){
	me->add_temp("apply/attack",extra/3);
	me->add_temp("apply/damage",extra*2);
         msg = HIW "$N在漫漫雪花中,一技梅花刺了出来!\n" NOR;
       COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);
	me->add_temp("apply/attack",-extra/3);
	me->add_temp("apply/damage",-extra*2);
                        }


        msg = HIW 
    "$N长啸一声,使出「万梅飘零」,手中兵器疾卷,掀起万朵雪花向前铺天盖地的撒去。\n"
    "在白茫茫的一片中,忽然出现万朵梅花形剑花,穿透雪幕,朝四面八方狂射而出。\n" NOR;
        message_combatd(msg, me, target);

        ap = me->query("combat_exp") + skill;
        dp = target->query("combat_exp") / 3;
        if( dp < 1 )
            dp = 1;
        if( random(ap) > dp )
        {
        msg = HIC 
    "无数梅花光华,幻出道道剑气,将$n全身上下罩得严严实实。$n身在其中,\n"
    "只觉剑光束束,在自己身上丝丝划过,一时全身剧痛,鲜血飞溅得到处都是。如同凌迟之刑,\n"
    "惨不堪言。\n" NOR; 
        COMBAT_D->report_status(target);
            qi_wound = (int)me->query_skill("xueshan-sword",1)+(int)me->query_skill("sword",1);
            qi_wound = qi_wound/2 + random(qi_wound);
            if(qi_wound > target->query("qi"))
                 qi_wound = target->query("qi");
           if (qi_wound <50) qi_wound = 50;
            target->receive_damage("qi", qi_wound*2);
            target->receive_wound("qi", qi_wound);
            target->receive_damage("jing", qi_wound/3);
            target->receive_wound("jing", qi_wound/5);
        }
        else
        {
            msg = "可是$n轻捷地往旁边一闪,避过了这一剑。\n"NOR;
        }

        msg = HIC "$N回剑旋舞,剑势不断加快,剑气呼啸四散,如片片雪花遇风,飘然而出。\n形成一个雪花形旋涡,将$n裹在内里。\n";
        if(random(me->query("combat_exp")) > (int)target->query("combat_exp")/3) {
                msg +=HIG "$n只觉得四周压力越来越大,道道暗流缠绕周身,几乎动弹不得。\n" NOR;
target->apply_condition("cold_poison", 10 +
			target->query_condition("cold_poison"));
            target->receive_damage("qi", qi_wound*2);
            target->receive_wound("qi", qi_wound);
        } else {
                msg +=HIR "可是$n运足内力,雪花顿时全部溶解,一片不剩,脱出重围。\n" NOR;

        }

        me->start_busy(4);
        message_combatd(msg, me, target);

        return 1;
}

⌨️ 快捷键说明

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