找回密码
 注册
搜索
查看: 1435|回复: 12

【讨元宝】小怜横陈解析

  [复制链接]
门派:不明
发表于 2010-9-9 22:24:16 | 显示全部楼层 |阅读模式
#include <ansi.h>
#include <combat.h>
inherit F_SSERVER;
#include <combat_msg.h>

int perform(object me, object target)
{
        object weapon;
        string msg;
        int lvl;

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

        if(!target
        || !target->is_character()
        || !me->is_fighting(target) )
                return notify_fail("「小怜横陈」只能在战斗时使用!\n");

        if(me->query("family/master_id")!="hong antong")
                return notify_fail("「小怜横陈」只有拜了教主后才能用!\n");

        if(!objectp(weapon=me->query_temp("weapon"))
        || weapon->query("skill_type") != "dagger")
             return notify_fail("你手上没有匕首,如何使用「小怜横陈」。\n");
        
        if((int)(me->query("dex")+me->query_skill("dodge",1)/10) < 30 )
                return notify_fail("你身法不够,使用「小怜横陈」,恐怕会伤到自己!\n");

        if((int)me->query_skill("tenglong-bifa", 1) < 150 )
                return notify_fail("你的腾龙匕法还不够熟练,不能使用「小怜横陈」!\n");

        if((int)me->query_skill("huagu-mianzhang",1) < 150)
                return notify_fail("你的化骨绵掌不够熟练,不能使用「小怜横陈」!\n");

        if(me->query_skill_mapped("strike") != "huagu-mianzhang"
        || me->query_skill_prepared("strike") != "huagu-mianzhang")
                return notify_fail("你现在没有做好准备,无法使用「小怜横陈」!\n");

        
        if(me->query_skill_mapped("dagger") != "tenglong-bifa")
                return notify_fail("只有使用腾龙匕法时才能使用「小怜横陈」!\n");

        if( (int)me->query_skill("dulong-dafa", 1) < 150 )
                return notify_fail("你的毒龙大法功力不足,不能用「小怜横陈」。\n");

        if((int)me->query("jingli", 1) < 800)
                return notify_fail("你现在精力不足,不能使用「小怜横陈」!\n");

        if((int)me->query("neili", 1) < 1500)
                return notify_fail("你现在内力不足,不能使用「小怜横陈」!\n");

        if(me->query("gender") == "男性" )
                return notify_fail("不是女人怎么能使用「小怜横陈」呢!\n");

        if( me->query_skill_mapped("force") != "dulong-dafa")
                return notify_fail("你现在所使用的内功同毒龙大法相互抵触,不能使用「小怜横陈」。\n");

        msg = HIR"$N乘$n稍稍走神之机,拼尽全力使出苏夫人不传之绝技--「小怜横陈」"NOR;
        msg +=MAG "\n$N使出一招「小怜横陈」,脑袋蓦地向自己胸口钻落,顺势在地上一个斛斗,\n从$n胯下钻过,握着兵器的右手成拳向$n后心连捶数下。\n"NOR;

小怜的状态提升基数是 腾龙匕法的等级除以5
        lvl = me->query_skill("tenglong-bifa",1)/5;

        message_vision(msg,me,target);
        me->receive_damage("jingli",100);
        me->receive_damage("neili",300);
提升攻击和伤害,数值是刚刚说到的基数
        me->add_temp("apply/attack",lvl);
        me->add_temp("apply/damage",lvl);

        me->set_temp("sld/pfm/xiaolian",1);
一招普通匕首伤害攻击
        COMBAT_D->do_attack(me,target,weapon,TYPE_RIPOSTE);

        if(objectp(target) && me->is_fighting(target))
        {
                weapon->unequip();
一招普通空手伤害攻击
                COMBAT_D->do_attack(me,target,0,TYPE_RIPOSTE);
                weapon->wield();
        }
        if(objectp(target) && me->is_fighting(target))
又一招普通匕首伤害攻击
                COMBAT_D->do_attack(me,target,weapon,TYPE_RIPOSTE);
        if(objectp(target) && me->is_fighting(target))
        {
如果自己exp的随机值大于目标经验的一半,来一招3倍普通匕首伤害
                if(random(me->query("combat_exp"))>target->query("combat_exp")/2)
                        COMBAT_D->do_attack(me,target,weapon,TYPE_SUPER);
                else
如果不满足上述条件,则来一招普通匕首伤害
                        COMBAT_D->do_attack(me,target,weapon,TYPE_RIPOSTE);
        }
        me->delete_temp("sld/pfm/xiaolian");
取消提升的伤害
        me->add_temp("apply/attack",-lvl);
        me->add_temp("apply/damage",-lvl);
自身busy 2 - 4 秒
        me->start_busy(2+random(2));
pfm busy 2 - 4 秒
        me->start_perform(2+random(2),"「小怜横陈」");
        return 1;
}

因为没有伤害上限,所以武器damage越高,伤害越高,大家努力提升武器吧~

评分

1

查看全部评分

门派:不明
发表于 2010-9-9 22:33:02 | 显示全部楼层
普通匕首伤害

。。。。


TYPE_RIPOSTE  这个是普通攻击的意思吗?
门派:不明
发表于 2010-9-10 01:29:16 | 显示全部楼层
用非本站的code解析,容易误导新人 不过还是很感谢您的解析
门派:不明
发表于 2010-9-10 07:01:45 | 显示全部楼层
不错,知道xiaolian为啥这么垃圾了。。。。。。。。。
门派:不明
 楼主| 发表于 2010-9-10 08:35:55 | 显示全部楼层
我觉得都差不多的。

一般程序员拿到源code,都是进行略微修改,增删改,绝对不会重做。
门派:不明
 楼主| 发表于 2010-9-10 08:37:16 | 显示全部楼层
原帖由 ppclark@ts 于 2010-9-9 22:33 发表
普通匕首伤害

。。。。


TYPE_RIPOSTE  这个是普通攻击的意思吗?


这是定义在 combat_b 文件中的一个常量, 固定值是 1.  super 是 3 , 还有一个什么来着,忘记了, 它是2 。

用在武器上,就是1 倍武器伤害, 2倍武器伤害, 3倍武器伤害。
门派:不明
发表于 2010-9-10 09:20:35 | 显示全部楼层
TYPE_RIPOSTE并不是普通攻击 而是反击 从RIPOSTE字面意思可以看出来

#define TYPE_REGULAR        0
#define TYPE_RIPOSTE        1
#define TYPE_QUICK        2
#define TYPE_SUPER        3
#define TYPE_BUSY        4

0那个才是普通攻击  依次往下 是反击  快速攻击  super攻击 和 busy攻击
门派:不明
发表于 2010-9-10 09:23:42 | 显示全部楼层
增加会心一击即暴击或双倍攻击设定
暴击率计算公式:
暴击率=(有效身法-对方有身法)*0.0125
最小值为0,最大值为25%
反击和快速攻击时暴击率翻倍

依照新手说明里的说法 xiaolian如果有好的武器还是可以job的啊 只不过没见人拿xiaolian job过 或者本站已经改了code
门派:不明
发表于 2010-9-10 11:26:42 | 显示全部楼层
好像相当不怎么样呀
门派:不明
发表于 2010-9-10 11:51:51 | 显示全部楼层
我贴在本区的小莲log,是用的极其可怕的匕首,30sf 20gg 20bl 10wx 的属性。
匕首本身加身法,首饰加身法。

效果见本区 log ...... 难道只能用 top1 dagger job 才能看出效果吗?不知道图啥。
最近有点严重失去兴趣和激情。沉了,爱咋咋滴吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-8 10:24 , Processed in 0.042148 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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