找回密码
 注册
搜索
查看: 419|回复: 5

dzxy照理说应该有auto parry的效果,如何才能出这个效果?

[复制链接]
门派:不明
发表于 2010-3-6 12:39:34 | 显示全部楼层 |阅读模式
看老代码,好像是要拿兵器,且和对方的兵器种类一样,即sword对sword,blade对blade才可以

不知道本mud还有auto parry效果吗? 怎么出这个效果?
门派:不明
发表于 2010-3-6 15:38:08 | 显示全部楼层
dzxy 的auto parry 是看wx 出的,wx10==没有
门派:不明
 楼主| 发表于 2010-3-6 21:10:55 | 显示全部楼层
哦? 有这种说法? ...........那太悲剧了 现在都是低wx
门派:不明
发表于 2010-3-8 17:36:41 | 显示全部楼层
dzxy 的auto parry要多少级才能出?
空手和拿武器有区别吗?
门派:不明
发表于 2010-3-8 18:03:54 | 显示全部楼层
「七剑连环指」:

        要求:  当前内力 800 以上;
                最大内力 1000 以上;
                当前精力 500 以上;
                慕容剑法等级 100 以上;
                神元功等级 100 以上;
                参合指等级 100 以上;
                激发剑法为慕容剑法;
                激发招架为慕容剑法或斗转星移;
                激发指法为参合指;
                激发内功为神元功。
在你招架是斗转的时候应该能随机出
我记在哪个站玩的时候就能随机触发
门派:不明
 楼主| 发表于 2010-3-9 12:13:50 | 显示全部楼层
楼上,俺们不是说这个。。。

老code是这样的:
int ob_hit(object ob, object me, int damage)
{
        object weapon, weapon1;
        string msg, *limbs, limb, attack_skill, str, str1;
        int ap, dp, skill, size, i;

        if( ob->query("env/invisibility") ) return 0;

        if( me->query_temp("fanzhen")){
                me->delete_temp("fanzhen");
                return 0;
        }

        weapon1 = me->query_temp("weapon");

        if (me->query_skill("douzhuan-xingyi", 1) < 150
         || me->query_skill_mapped("parry") != "douzhuan-xingyi"
         || me->query_skill("shenyuan-gong", 1) < 150
         || me->query("combat_exp") < ob->query("combat_exp")/2 )
                return 0;

        skill = me->query_skill("douzhuan-xingyi", 1);
        weapon = ob->query_temp("weapon");

        if ( weapon) str = weapon->query("skill_type");
        if ( weapon1) str1 = weapon1->query("skill_type");
        if ( str != str1 ) return 0;

        if(objectp(weapon))
                msg = weapon->query("skill_type");
        else {
                mapping prepare = ob->query_skill_prepare();
                if (!sizeof(prepare)) msg = "unarmed";
                else msg = keys(prepare)[0];
        }

        if ( me->query("neili") < ob->query("neili")/5 ) return 0;

        if ( weapon ){
                attack_skill = weapon->query("skill_type");
                attack_skill = ob->query_skill_mapped(str);
        }
        else
                attack_skill = ob->query_skill_prepared(msg);

        if (! attack_skill ) return 0;

        ap = COMBAT_D->skill_power(ob, msg, SKILL_USAGE_ATTACK) / 1000;
        if ( weapon ) ap *= 2;
        if ( ob->query("neili") > me->query("neili") * 2 ) ap += ap/2;
        if ( me->is_busy()) ap /= 2;

        dp = COMBAT_D->skill_power(me, "parry", SKILL_USAGE_DEFENSE) / 1000;
        if ( me->query("neili") > ob->query("neili") * 2 ) dp *= 2;
        else if ( me->query("neili") > ob->query("neili") / 2 * 3 ) dp += dp/2;

        ap = ABS(ap);
        dp = ABS(dp);

        if ( wizardp(me)) tell_object(me, sprintf("ap: %d, dp: %d\n", ap ,dp ));

        if ( random(dp + ap) > ap && random(2)) {
                limbs = ob->query("limbs");
                limb = limbs[random(sizeof(limbs))];
                size = sizeof(parry_msg);
                i = random(size);
                msg = parry_msg;
                msg += SKILL_D(attack_skill)->query_action(ob, weapon)["action"];
                msg = replace_string( msg, "$l", limb);
                if (weapon1)
                        msg = replace_string( msg, "$w", weapon1->name()+colors) + "!\n"NOR;
                else
                        msg += "!\n"NOR;
                if (userp(ob) && !userp(me) && damage > 1800)
                        damage = 1800 + random (50);
                ob->receive_damage("qi", damage + me->query("jiali")*2, me);
                ob->receive_wound("qi", damage/2, me);
                if (! weapon1)
                        msg += COMBAT_D->damage_msg(damage, "瘀伤");
                else
                        msg += COMBAT_D->damage_msg(damage, "刺伤");
                msg = replace_string( msg, "$l", limb);
                if (weapon1)
                        msg = replace_string( msg, "$w", weapon1->name());
                message_vision(msg, me, ob);
                COMBAT_D->report_status(ob, ob->query("qi") >= 0 || ob->query("eff_qi")+ob->query_temp("apply/qi") < 0);
                me->set_temp("fanzhen", 1);
                return -6000;
        }
        return 0;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-5-8 08:16 , Processed in 0.019463 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表