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

📄 jinwu.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
字号:
///NOV.13.2000 by lucas// jinwu.c 金乌堕地/*由于劈断对方武器的功能是这个perform最大的威力,但为了保持独孤九剑在这一方面的第一地位,特地对发挥这一威力的条件,在程序中做了如下限制希望以后的巫师不要更改这些设定,毕竟在weapon武功中,不能超越lonely-sword的地位。*/#include <ansi.h>#include <combat.h>inherit F_SSERVER;int perform(object me){        string msg;        object weapon, weapon2,target,*inv;        int skill, ap, dp, neili_wound, qi_wound,equip,skill1,skill2,skill3,skill4;int attack_time,i;        me->clean_up_enemy();        target = me->select_opponent();        skill  = me->query_skill("jinwu-blade",1);        skill1 = me->query_skill("xueshan-sword",1);        skill2 = me->query_skill("bingxue-xinfa",1);        skill3 = me->query_skill("blade",1);        skill4 = me->query_skill("unarmed",1);        if( !(me->is_fighting() ))            return notify_fail("「"+HIR"金乌堕地"NOR+"」只能对战斗中的对手使用。\n");        if (!objectp(weapon = me->query_temp("weapon"))        || (string)weapon->query("skill_type") != "blade")            return notify_fail("你使用的武器不对。\n");        if( skill < 100)            return notify_fail("你的金乌刀法等级不够, 不能使用「"+HIR"金乌堕地"NOR+"」!\n");        if(me->query_skill("bingxue-xinfa",1)<100)            return notify_fail("你的冰雪心法等级不够, 不能使用「"+HIR"金乌堕地"NOR+"」!\n");         if( me->query("neili") < 700 )            return notify_fail("你的内力不够,无法运用「"+HIR"金乌堕地"NOR+"」!\n");        if( random(me->query("combat_exp")) > (int)target->query("combat_exp")/4 ) {attack_time = random((int)me->query_skill("jinwu-blade", 1) / 30);me->start_busy(2);if (attack_time > 9 ) attack_time=9;        for(i = 0; i < attack_time; i++){         msg = HIR "$N把手上的钢刀舞成了"+HIW"雪花"+HIR"一般,突然从雪花中劈出一刀来!\n" NOR;me->set_temp("noauto",1);       COMBAT_D->do_attack(me,target, weapon, TYPE_REGULAR,msg);me->delete_temp("noauto");me->add("neili",-50);          }}        msg = HIY    "$N纵身跃起,使出"+HIR"「金乌堕地」"NOR+""+HIY",挥舞"NOR""+weapon->name()+""NOR+HIY"从半空中挥刀直劈下来,\n刀锋离地尚有数尺,地下已是尘沙飞扬,败草落叶被刀风激得团团而舞,\n将$n逃遁退避的空隙封的严严实实。\n"NOR;        message_combatd(msg, me, target);        ap = random(me->query("combat_exp") + skill*5);        dp = target->query("combat_exp")/2;        if( dp < 1 )            dp = 1;        if( ap > dp )        {            if(userp(me))                 me->add("neili",-250);            msg = HIC"$n避无可避,只觉一股刚猛之极的劲风扑面而来,使人直欲窒息。\n$n极力后退隔挡,却只见"NOR""+weapon->name()+""HIC"刀光一闪,毫不停息,一刀正中面门。\n"NOR;            qi_wound = (int)me->query_skill("jinwu-blade",1)+(int)me->query_skill("blade",1)+(int)me->query_str()*10;            qi_wound = random(qi_wound*2);// if(qi_wound > target->query("qi")) qi_wound = 100; ?  damage limit is wrong (by xbd)            if(qi_wound > target->query("qi"))                 qi_wound = target->query("qi") > 100 ? target->query("qi") - 100 : target->query("qi");if (qi_wound < 10) qi_wound=10;            target->receive_damage("qi", qi_wound);// 4 pfm all npc die, too power? please consider it. (by xbd)            target->receive_wound("qi", target->query("qi")/3);target->apply_condition("ill_shanghan",50);target->apply_condition("iceshock",50);target->apply_condition("xuantian_han",50);target->apply_condition("xuanming_poison",50);            target->start_busy(2+random(1));            me->start_busy(1+random(2));        objectp(weapon2 = target->query_temp("weapon"));         if(me->query("str")>=20                                 //先天臂力必须不小于于20       && objectp(weapon2 = target->query_temp("weapon"))       && me->query_str() >= 45                                 //后天臂力必须不小于45       && me->query("max_neili") > 2500                        //最大内力必须大于2800       && !me->query("betrayer")                               //必须没叛过师       && (me->query("neili") - me->query("max_neili")) > 300  //现有内力必须比最大内力多300,由于在上面会减掉550,实际必须大于550       && skill > 200                                           //冰雪心法必须大于200级       && skill1 > 200                                          //基本拳脚必须大于200级       && skill2 > 200                                          //雪山剑法必须大于200级       && skill3 > 200                                          //金乌刀法必须大于200级       && skill4 > 200                                          //基本刀法必须大于200级       && !weapon2->query("no_drop")                           //下面这些是确保神兵及自铸武器不被砍断       && !weapon2->query("no_get")        && !weapon2->query("no_put")       && !weapon2->query("no_beg")       && !weapon2->query("no_steal")       && !weapon2->query("no_give")        )       {		inv = all_inventory(target);		for(equip=0; equip<sizeof(inv); equip++)        {            if(inv[equip]->query("weapon_prop") && ((string)inv[equip]->query("equipped")=="wielded"))		{msg += HIW "$N力道未尽,手中刀势不绝,连带$n手上"NOR""+inv[equip]->query("name")+HIW"一起劈断。\n只听当的一声,$n手上的"NOR""+inv[equip]->query("name")+HIW"已被劈成两半,掉在了地上!\n"NOR;        message_combatd(msg, me,target);			inv[equip]->unwield();			inv[equip]->reset_action();			inv[equip]->move(environment(target));			inv[equip]->set("name", "断掉的"+ inv[equip]->query("name") );			inv[equip]->set("value", 0);			inv[equip]->set("weapon_prop", 0);			inv[equip]->set("long", "一把破烂武器,从中断开,破口整齐,看来是被高手一刀劈开的。\n");			}		}          return 1;         }        }        else        {            if(userp(me))                 me->add("neili",-100);            msg = HIW"可是$n轻轻往旁边一闪,闭过了$N这必杀的一刀。\n"NOR;            me->start_busy(2);}//        }        message_combatd(msg, me, target);        return 1;}

⌨️ 快捷键说明

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