找回密码
 注册
搜索
查看: 2298|回复: 3

教你如何看懂LPC(五)

[复制链接]
门派:不明
发表于 2012-4-30 22:33:34 | 显示全部楼层 |阅读模式
    应斑竹的要求,这一讲继续 perform 的讲解。这次我们来对比一下 huashan-jianfa 中lianhuan 和 songshan-jianfa 中feiwu ,看看两个pfm 的威力、命中相对比如何。
    在对比之前,我想先说明一下:其实在mud 中,所有的skills 运用到战斗中,最终都是数值化的。比如:你用huashan-jianfa 中的"有凤来仪" 这一招攻击目标,那么底层中是将你的攻击转换成一个数值,假定为100。那对手的招架和躲闪也同样数值化,假定为60和70,那判定命中与否就是比较 攻击数值的随机数是否大于躲闪和招架数值的随机数(不同的底层对此有不同的设定,具体要看code中如何确定)

下面是lianhuan 的code
------------------------------------------------------------------------------------
// lianhuan.c for huashan-jianfa
// by tiantian@SJ 11/05/2000.

#include <ansi.h>

inherit F_SSERVER;
#include "/kungfu/skill/eff_msg.h";

int perform(object me,object target)
{
    object weapon;
   
    if( !target ) target = offensive_target(me);
     
    if( !target || !me->is_fighting(target) || !living(target)
        || environment(target)!=environment(me))
                return notify_fail("夺命连环三仙剑只能对战斗中的对手使用。\n");

    if(me->query_skill_mapped("force") != "zixia-gong")
                return notify_fail("你的内功不是紫霞功,无法使用夺命连环三仙剑!\n");
    if( (int)me->query_skill("zixia-gong", 1) < 160 )
                return notify_fail("你的内功还未练成,不能使用夺命连环三仙剑!\n");
    if( (int)me->query_skill("huashan-jianfa", 1) < 160 )
                return notify_fail("你的剑法还未练成,不能使用夺命连环三仙剑!\n");
    if((int)me->query_skill("sword", 1) < 160 )
                return notify_fail("你的基本剑法不够娴熟,不能在剑招中使用夺命连环三仙剑。\n");
    if (!objectp(weapon = me->query_temp("weapon")) || weapon->query("skill_type") != "sword"
        || me->query_skill_mapped("sword") != "huashan-jianfa")
                return notify_fail("你手里无剑,如何使用夺命连环三仙剑?\n");
               
    if((int)me->query("max_neili") < 2500 )
                return notify_fail("你的内力修为不够,不能使用夺命连环三仙剑!\n");
    if((int)me->query("neili") < 2000 )
                return notify_fail("你现在真气不足,不能使用夺命连环三仙剑!\n");
    if((int)me->query_temp("wudui"))
                return notify_fail("你正在使用无双无对!\n");

        message_vision(MAG"\n$N"MAG"长啸一声,使出平生绝技,连环三击,正是华山剑宗绝学“夺命连环三仙剑”"MAG"!\n"NOR, me,target);

    me->start_perform(4,"「夺命连环三仙剑」");
    me->add("neili", -300);
        me->add_temp("apply/attack",  me->query_skill("huashan-jianfa", 1));

    COMBAT_D->do_attack(me, target, me->query_temp("weapon"),3);
    if (me->is_fighting(target))
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"),3);
    if (me->is_fighting(target))
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"),3);
        me->add_temp("apply/attack", - me->query_skill("huashan-jianfa", 1));

    me->start_busy(1);
    target->start_busy(1);
    return 1;
}
门派:不明
 楼主| 发表于 2012-4-30 22:47:44 | 显示全部楼层
if(me->query_skill_mapped("force") != "zixia-gong")
                return notify_fail("你的内功不是紫霞功,无法使用夺命连环三仙剑!\n");
    if( (int)me->query_skill("zixia-gong", 1) < 160 )
                return notify_fail("你的内功还未练成,不能使用夺命连环三仙剑!\n");
    if( (int)me->query_skill("huashan-jianfa", 1) < 160 )
                return notify_fail("你的剑法还未练成,不能使用夺命连环三仙剑!\n");
    if((int)me->query_skill("sword", 1) < 160 )
                return notify_fail("你的基本剑法不够娴熟,不能在剑招中使用夺命连环三仙剑。\n");
    if (!objectp(weapon = me->query_temp("weapon")) || weapon->query("skill_type") != "sword"
        || me->query_skill_mapped("sword") != "huashan-jianfa")
                return notify_fail("你手里无剑,如何使用夺命连环三仙剑?\n");

这都是一些对于lianhuan 使用的限制,需要zxg、hsjf 、sword大于160,enable zxg hsjf 并手拿jian 类武器才能使用lianhuan。

   if((int)me->query("max_neili") < 2500 )
                return notify_fail("你的内力修为不够,不能使用夺命连环三仙剑!\n");
    if((int)me->query("neili") < 2000 )
                return notify_fail("你现在真气不足,不能使用夺命连环三仙剑!\n");
    if((int)me->query_temp("wudui"))
                return notify_fail("你正在使用无双无对!\n");

这个是需要最大内力2500、当前内力2000,并没有处于wudui 的pfm busy 中

me->start_perform(4,"「夺命连环三仙剑」");  这个就是pfm_busy

me->add_temp("apply/attack",  me->query_skill("huashan-jianfa", 1)); 增加临时攻击 为玩家huashan-jianfa 的等级

这里我们对比一下feiwu 的临时增获益
me->add_temp("apply/attack", me->query_skill("sword")/5 + 10*focus); —— 玩家临时增加sword 等级除5 再加上 10乘focus 的攻击 (其实这个就是增加命中)
me->add_temp("apply/damage", me->query_skill("sword")/6); ——玩家临时增加 sword等级除6的伤害
me->add_temp("ss/focus", random(lv/200)+1); 增加 "ss/focus"  寒冰真气的等级除200 再加1 的随机数

这里我们可以清楚地看到lianhuan 所增加的临时攻击是要大于feiwu 的,但feiwu 略微增加了一些伤害。至于哪个效果好一些,笔者倾向于增加攻击,毕竟能打中才是硬道理啊。当然有人会说如果ss id一直yun juhan,命中不就上来了? 可是在1pfm over 的年代,有多少回合让你yun juhan?

    COMBAT_D->do_attack(me, target, me->query_temp("weapon"),3);
    if (me->is_fighting(target))
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"),3);
    if (me->is_fighting(target))
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"),3);

吼吼,这里是3个强力攻击!对比一下feiwu 1个普通攻击、1个快速攻击、最后是一个强力攻击,可以说feiwu 比lianhuan 是差了不只一个等级

me->start_busy(1);
target->start_busy(1);

这个也很有意思,pfm 结束的时候 pfm 使用者和目标都要强制busy 1回合,大家想到了什么?TK

综上所述,feiwu 不论在job 还是pk 中,其实用性都远远不如lianhuan。

评分

1

查看全部评分

门派:不明
发表于 2012-5-2 15:04:26 | 显示全部楼层
怪不得老站的lianhuan pk那么猛啊。。。。。。。
门派:不明
发表于 2012-5-2 17:50:44 | 显示全部楼层
不知道这里feiwu是啥,反正根据很不给力,居然还要160和气度。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-27 09:16 , Processed in 0.019476 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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