书剑网络游戏官方论坛 » □- 古墓派 » 有关古墓武功更新

 
作者:
标题: 有关古墓武功更新 上一主题 | 下一主题
剑流星(ster@cq)
头衔:神风堂堂主



  注册日期: 2003-11-30
  上次连线: 2004-8-18
  注册情况: 贵宾注册
  所属帮派: 联剑风云门长老(7)
  来自哪里: bj
  发贴数量: 1213
  总信誉分: 100
  论坛积分: 627 / 1447
  精华文章: 7篇  
  在线状态: 离线
第 1 楼

有关古墓武功更新

ciwei 前两天说让我们自己想自己的门派武功
现在我贴出来几个gm男弟子用的new skills吧


第一是玄铁剑法

// 玄铁剑法

#include <ansi.h>;
#include <combat.h>
inherit SKILL;
#include <combat_msg.h>

string  *msg = ({
"$N当胸平平刺出一剑,看似毫无变化,却有轰轰之声,$n只觉一股大力由剑身直逼周身",
"$N凌空跃起,身随剑起,借助下行之势向下猛劈一剑,将$n周身笼于剑气之下",
"$N轻叹一声,随手横劈一剑,缓缓指向$n,当真平淡中蕴涵所有变化,无招胜有招",
"$N迅疾挑出一剑,此剑之快,匪夷所思,$n惊恐之际一染、已然无法分辨剑路来去",
"$N提剑顺刺,逆击,横削,倒劈,无不是剑法的入门,当真返朴归真,已不存任何破绽",
"$N仰首长啸,令风云变幻,旋及剑气弥漫于$n周身各处,$n但觉身处惊涛骇浪之中",
"$N祭起手中之剑,左手捏成剑诀,咄喝一声,空中满是剑影,宛若千道银链,在$n身边游动",
"$N连出十余剑,一时迅疾如流星划空,一时凝重迟缓,招招无迹可寻,平淡至极又匪思至极",
"$N剑势如虹,无可当锋,$n惊怖中更觉剑力有如海潮一般,一波一浪阵阵涌来,绵延不绝",
"$N手中$w向前挑出,看似无甚劲力,启知剑势将老,内力却如海潮一般汹涌,向$n袭去",
"$N远远挥出一剑,$n不料气劲如此之强,防范一疏,一股大力劈头而来",
"$N深吸一口气,手中$w挟带风声,平平淡淡的挥向$n。风声越来越响,竟如同暴风之中一般",
"$N一凝神,$w居然发出淡淡的一层暗青色光芒,如狂风怒潮一边,向$n卷去",
});

string *xtjf_msg = ({
"$N一剑剑平平淡淡的向$n刺去,来回来去只有这一招,$n却能听到有海潮的声音,怎么也躲不开剑招",
});

string *parry_msg = ({
"$p不挡不架,手中$w向$P胸口直刺,$N眼见攻击即将得手,却不得不避开$w的锋芒。\n",
"$p算准$P攻势,一剑横在胸前,$P只得变招后退。\n",
"$p力灌剑身,猛力一击,$P的招式还未近身,便尽数震开。\n",
"$p随手一点,无招无式,只是劲力强极,$P只得弃攻转守,以求自保。\n",
"$p料敌机先,$P处处受制,没一招能够使全,如同小儿习武,手忙脚乱一般。\n",
});

int valid_enable(string usage)
{
        return usage == "sword" || usage == "parry";
}

mixed hit_ob(object me, object target)
{
        int i, j,damage,p,neili,neili1;
        string msg;
        i = me->query_skill("xuantie-jianfa", 1);
        j = me->query_skill("sword");
        neili = me->query("neili");
        neili1 = target->query("neili");
        if ( me->query_skill_mapped("sword") != "xuantie-jianfa" || (int)me->query_temp("auto_hc")) return 0;

        if ( random(me->query_skill("xuantie-jianfa", 1)) < target->query_skill("dodge", 1)/3  ||

me->query_skill("xuantie-jianfa", 1) < 100 || neili < 300 )
                return 0;
        if ( random(me->query_skill("xuantie-jianfa", 1)) > (int)target->query_skill("dodge", 1) / 10 && random(10) > 2) {
                if ( me->query_temp("weapon")->id("xuantie jian") && (int)me->query_skill("xuantie-jianfa", 1) > 180 ) {
                        msg = HIY"这时$N手中的玄铁剑挟巨浪潮涌之势,玄铁剑法的威力在这一刻,发挥的淋漓尽致,反复两次,\n"+"向

$n席卷而去。\n"NOR;           
                        message_vision(msg, me, target);
                        me->add_temp("apply/strength", i/3);
                        me->set_temp("auto_hc", 1);
                        me->add_temp("apply/attack", j*2);
                        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 1);
                        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 1);
                        me->add_temp("apply/strength", -i/3);
                        me->add_temp("apply/attack", -j*2);
                        me->delete_temp("auto_hc");
                        me->add("neili", -random(50)+100);
                        me->add("jingli", -10);
                        return 1;
                }
                else {
                        message_vision(HIC"$N低吟一声,手中" + me->query_temp("weapon")->name() +
                                HIC"随心一划,刹那间,有招却似无招,无招又胜似有招,一股海潮般汹涌的内力,\n"+"直向$n席卷而去

。\n"NOR, me, target);
                        damage = i;
                        damage += j;
                        damage = damage*2 + random(damage)*4;
                        target->start_busy(2+random(2));
                        target->receive_damage("qi", damage);
                        target->receive_wound("qi", damage/2);
                        p = (int)target->query("qi")*100/(int)target->query("max_qi");
                        me->add("neili", -random(50));
                        me->add("jingli", -10);
                        message_vision(RED"那一股内力汹涌而来,将$n"RED"震的前伏后仰,狼狈不坎!\n"NOR, me, target);
                        return 1;
                }
        }
}
mapping query_action(object me, object weapon)
{
            int i, j, level, damage;
            i = me->query_skill("force")/2 + random(me->query_str() + me->query_con()) + me->query("max_neili")/100;
            damage = (random(6)+1)*35;
            level = me->query_skill("sword", 1);
            j = random(40)-5;
            if( i < 100) i = 100;
            if( i > 600) i = 550+random(50);
            if( level > 350 )
                    return ([
                            "action": CYN + xtjf_msg[random(sizeof(xtjf_msg))] + NOR,
                            "damage": level/2 + damage,
                            "damage_type": "刺伤",
                            "dodge":  j+100,
                            "parry":  50 + random(50),
                            "force":  me->query_skill("force") + damage,
                            ]);
            if(me->query_temp("xtjf_pfm")){
                    return ([
                            "action":HIB+msg[random(sizeof(msg))]+NOR,
                            "damage":(random(5)+3)* 230,
                            "dodge": random(15)-5,
                            "force": i,
                            "parry":35-random(20),
                            "damage_type":"刺伤",
                            ]);
            }
        return ([
                "action":msg[random(sizeof(msg))],
                "damage":(random(5)+3)* 180,
                "dodge": random(10)-5,
                "force": i - random(100) - 50,
                "parry":40 - random(20),
                "damage_type":"刺伤",
                ]);
}

int practice_skill(object me)
{   
        object weapon;
        int lvl;
        if (!objectp(weapon = me->query_temp("weapon"))
        || (string)weapon->query("skill_type") != "sword")
          return notify_fail("你使用的武器不对。\n");
        if((lvl = me->query_skill("xuantie-jianfa", 1)) < 200 )
          return notify_fail("你的玄铁剑法还不够熟练,需要在山洪中继续修炼。\n");
        if ((int)me->query("jingli") < 60+ lvl/10)
          return notify_fail("你的体力不够练玄铁剑法。\n");
        if ((int)me->query("neili") < 20+lvl/10)
          return notify_fail("你的内力不够练玄铁剑法。\n");
        if(lvl>400) lvl += random(lvl)/2;
        me->receive_damage("jingli", 20+ lvl/10);
        me->add("neili", -(10+lvl/20));
        return 1;        
}

int valid_learn(object me)
{
        if (me->query_skill("xuantie-jianfa", 1) < 200 )
          return notify_fail("玄铁剑法先期只能通过在山洪中修炼来提高技艺。\n");
          return 1;
}

string perform_action_file(string action)
{
        return __DIR__"xuantie-jianfa/" + action;
}

第二是黯然掌

// anran-zhang.c 黯然销魂掌

#include <ansi.h>
inherit SKILL;
#include <combat_msg.h>
mapping *action = ({
([  "action" :"$N身影陡转,如鬼魅般忽前忽后,瞬左瞬右,一式「徘徊空谷」掌风已至$n的$l",
    "force" : 250,
    "dodge" : 20,
    "lvl" : 0,
    "skill_name" : "徘徊空谷",
    "damage_type" : "瘀伤"
]),
([  "action" :"$N长叹一声,身形凝重,一招「力不从心」,诱得$n全力进击之际,反手直拍$n的$l",
    "force" : 350,
    "dodge" : 10,
    "lvl" : 30,
    "skill_name" : "力不从心",
      "damage_type" : "瘀伤"
]),
([  "action" :"$N面目僵然,四肢挺直,无弯无折,似「行尸走肉」般,刀臂剑腿,横斩直刺$n的$l",
    "force" : 400,
    "dodge" : -20,
    "lvl" : 50,
    "skill_name" : "行尸走肉",
    "damage_type" : "瘀伤"
]),
([  "action" :"$N一式「庸人自扰」,左手锤胸,一边晃首不止,倏忽间绕敌身后,右掌暴击$n的$l",
    "force" : 280,
    "dodge" :-5,
    "lvl" : 60,
    "skill_name" : "庸人自扰",
    "damage_type" : "瘀伤"
]),
([  "action" :"$N突然头下脚上,倒过身子,手代足行,只手一招「倒行逆施」闪电般拍向$n的$l",
    "force" : 300,
    "dodge" : -20,
    "lvl" : 70,
    "skill_name" : "倒行逆施",
    "damage_type" : "瘀伤"
]),
([  "action" :"$N左手成掌,缓缓推出一招「废寝忘食」,$n只觉一股强劲无伦的掌管风横压而至",
    "force" : 300,
    "dodge" : 0,
    "lvl" : 80,
    "skill_name" : "废寝忘食",
    "damage_type" : "瘀伤"
]),
([  "action" : "$N单臂负后,凝目远眺,一式「孤形只影」,$n略一迟疑,浑身已为$N掌力所绕",
    "force" : 350,
    "dodge" : -10,
    "lvl" : 90,
    "skill_name" : "孤形只影",
    "damage_type" : "瘀伤"
]),
([  "action" : "$N左掌一招「饮恨吞声」将$n裹在掌风之中。$n犹如身陷洪涛巨浪,随着$N的掌风转动",
    "force" : 300,
    "dodge" : 5,
    "lvl" : 100,
    "skill_name" : "饮恨吞声",
    "damage_type" : "瘀伤"
]),
([  "action" : "却见$N翻身坐倒,旋及旋向空中,凭空一式「六神不安」砸向$n,威力骇人,无法硬接",
    "force" : 300,
    "dodge" : -10,
    "lvl" : 120,
    "skill_name" : "六神不安",
    "damage_type" : "瘀伤"
]),
([  "action" : "$N右手在$n脸前一拂,一招「穷途末路」击到$n胸前半尺之处,突然转弯,击在$n的$l",
    "force" : 350,
    "dodge" : 10,
    "lvl" : 140,
    "skill_name" : "穷途末路",
    "damage_type" : "瘀伤"
]),
([  "action" : "$N脸上喜怒哀乐,怪状百出,乘$n心神难以自制之际,一招「面无人色」攻向$n的$l",
    "force" : 400,
    "dodge" : 10,
    "lvl" : 160,
    "skill_name" : "面无人色",
    "damage_type" : "瘀伤"
]),
([  "action" : "$N忽然狂笑不止,忽又颠哭阵阵,$n正迷沉恍惚中,$N已一式「想入非非」攻向$n的$l",
    "force" : 450,
    "dodge" : -20,
    "lvl" : 180,
    "skill_name" : "想入非非",
    "damage_type" : "瘀伤"
]),
([  "action" : "突见$N身形晃动,已攻至$n身畔,一式「呆若木鸡」,乘$n惊愕之时,疾打$n的$l。",
    "force" : 500,
    "dodge" : 5,
    "lvl" : 200,
    "skill_name" : "呆若木鸡",
    "damage_type" : "瘀伤"
]),
});

int valid_enable(string usage)
{
        return usage == "strike" || usage == "parry";
}

int valid_learn(object me)
{
       int skill = me->query_skill("anran-zhang", 1);
       if ((int)me->query_temp("weapon") || (int)me->query_temp("secondary_weapon"))
               return notify_fail("练黯然销魂掌必须空手。\n");
       if ((int)me->query("max_neili") < 1500)
               return notify_fail("你的内力不够。\n");
       if ((string)me->query_temp("xinjing/bonus") == "apply/strength")
               return notify_fail("你正默念心经字诀,无法安心学习黯然销魂掌。\n");
       if ((int)me->query_str() < 30 )
               return notify_fail("你没有强劲的膂力无法学黯然消魂掌。\n");
       if (( me->query("con") + me->query_skill("force", 1)/10 ) < 30 )
               return notify_fail("你没有雄厚的体质无法学黯然消魂掌。\n");
       if ((int)me->query_skill("yunu-xinjing", 1) < (skill-30)
        && (int)me->query_skill("anran-zhang", 1) < 230)
               return notify_fail("你的玉女心经火候太浅。\n");      
        return 1;
}

string query_skill_name(int level)
{
        int i;
        for(i = sizeof(action)-1; i >= 0; i--)
                if(level >= action["lvl"])
                        return action["skill_name"];
}

mapping query_action(object me, object weapon)
{
        int i, j, level,tmp;
        object target;         
        string msg;
        
        level = (int) me->query_skill("anran-zhang",1);
        tmp = 1 + random(level/10);
        
        if( me->query("gender") != "男性")
                tmp /= 2;
               
        for(i = sizeof(action); i > 0; i--) {
                if(level > action[i-1]["lvl"]) {
                        j = NewRandom(i, 20, level/5);
                        target = offensive_target(me);   
                        if(me->query_temp("anran")){
                                switch(me->query_temp("anran")){
                                        case 2: msg = HIY"$N心下万念俱灰,没精打采的挥袖卷出,拍出一掌,只听得噗的一声,这一掌正好击向$n肩头"NOR; break;
                                        case 1: msg = HIR"紧跟着$N踢出一脚。这一脚发出时恍恍惚惚,隐隐约约,若有若无。砰的一响,向$n胸口袭去"NOR; break;
                                        default: msg = HIC"$N心下万念俱灰,没精打采的挥袖卷出,拍出一掌,只听得噗的一声,这一掌正好击向$n肩头"NOR; break;
                                }
                                me->add_temp("anran", -1);      
                                return ([
                                        "action":msg,
                                        "force" : level+ 3 * tmp,
                                        "damage" : level+ tmp,
                                        "dodge": level/10 + tmp,
                                        "parry": tmp,
                                        "damage_type" : "瘀伤",
                                ]);
                        }
                        if(me->query_temp("anran1")){
                                switch(me->query_temp("anran1")){
                                        case 3: msg = HIB"$N一式「魂不守舍」,倏忽间绕敌身后,右掌暴击$n的$l,面目间却仿佛没有在意这突发的一招"NOR; break;
                                        case 2: msg = HIB"$N突然头下脚上,倒过身子,手代足行,只手一招「倒行逆施」闪电般拍向$n的$l,\n然而这一招却与平时不同,初时轻飘飘若有若无,刚一触及$n身体,$N的内力便犹如海潮汹涌澎湃至刚至阳,无坚不摧"NOR; break;
                                        case 1: msg = HIC"$N忽然低头不语,忽又仰天长啸,$n正迷沉恍惚中,$N已一式「若有所失」攻向$n的$l,\n$N招到半途一声轻叹,脸上忽喜忽忧,招式若有若无,劲力吞吐开盍绵绵不绝,仿佛巨浪滔天方圆丈皆在这一掌内力之中"NOR; break;
                                        default: msg = HIB"$N一式「魂不守舍」,倏忽间绕敌身后,右掌暴击$n的$l,面目间却仿佛没有在意这突发的一招"NOR; break;

                                }
                                me->add_temp("anran1", -1);      
                                return ([
                                        "action":msg,
                                        "force" : level/3*2 + 3 * tmp,
                                        "dodge": level/10 + tmp,
                                        "parry": tmp,
                                        "damage_type" : "瘀伤",
                                ]);
                        }
                        if( me->query_temp("xiaohun")
                        && me->query("jiali")
                        && random(10) >= 5 ){
                                return ([
                                        "action" : random(2)? HIB+action[j]["action"]+NOR :MAG+action[j]["action"]+NOR,
                                        "force" : action[j]["force"]+ 3 * tmp,
                                        "dodge": action[j]["dodge"]+ tmp,
                                        "damage_type" : "割伤",
                                ]);
                        }
                        return action[j];
                }
        }
}

int practice_skill(object me)
{
        int lvl = me->query_skill("anran-zhang", 1);
        int i = sizeof(action);
        while (i--) if (lvl == action["lvl"]) return 0;
        if ((int)me->query("jingli") < 50)
                return notify_fail("你的体力不够练黯然销魂掌。\n");
        if ((int)me->query("neili") < 20)
                return notify_fail("你的内力不够练黯然销魂掌。\n");
        me->receive_damage("jingli", 40);
        me->add("neili", -15 );
        return 1;
}

string perform_action_file(string action)
{
        return __DIR__"anran-zhang/" + action;
}

mixed hit_ob(object me, object victim, int damage_bonus)
{
        string msg;
        int j;
        
        if( damage_bonus < 100 ) return 0;
        j = me->query_skill("anran-zhang", 1);
        if (me->query_temp("anran",1) == 1 ) me->set_temp("anran_att",1);
          if ( (random(10)>6)
        && !victim->is_busy()
        && j > 140
        && me->query("neili") > victim->query("neili")
        && me->query_skill_mapped("parry") == "anran-zhang"
        && me->query("neili") > 1000
        && me->query("max_neili") > 1500
        && j > random(victim->query_skill("dodge",1))){
                switch(random(3)){
                        case 0 :
                                  msg = YEL"$N抬头向天,浑若不见,呼的一掌向头顶空空拍出,手掌斜下,掌力化成弧形,四散落下!\n"NOR;
                                  msg += HIR"结果$n被这一招「杞人忧天」带得别说挣扎,竟连站定脚步也是不能。\n"NOR;
                                break;
                        case 1 :
                                  msg = HIB"$N右手云袖飘动,宛若流水,左掌却重滞之极,便似带着几千斤泥沙一般!\n"NOR;
                                  msg += HIR"结果$n被这一招「拖泥带水」带得犹如身陷洪涛巨浪,跌跌撞撞。\n"NOR;
                                break;
                        case 2 :
                                  msg = HIG"突然间$N手足齐动,左掌右袖、双足头锤、连得胸背腰腹尽皆有招式发出!\n"NOR;
                                  msg += HIR"结果$n被这一招「无中生有」带得自身全然身不由主的境地。\n"NOR;
                                break;               
                }        
                  victim->start_busy(2+random(2));
                message_vision(msg, me, victim);
        }
}

int ob_hit(object ob, object me, int damage)
{
        object wp,wp1;
        string msg;
        int p,j,skill, neili, neili1, exp, exp1;
        wp = me->query_temp("weapon");
        wp1 = ob->query_temp("weapon");
        skill = me->query_skill("anran-zhang", 1);
        neili = me->query("neili");
        neili1 = ob->query("neili");
        exp = me->query("combat_exp");
        exp1 = ob->query("combat_exp");

        if ( me->query_temp("weapon") || me->query_temp("secondary_weapon")) return 0;
        if ( me->query_skill_prepared("strike") != "anran-zhang") return 0;
        if( me->query("jiali")
         && random(skill)+10 > random(ob->query_skill("parry", 1))
         && random(exp) > exp1/2
         && skill > 150
         && me->query_skill_mapped("parry") == "anran-zhang"
         && neili > 1500
         && living(ob)
         && !me->is_busy()){
          if(wp1){
           msg = HIY"那知$w"HIY"刚要触到$N身上,突觉$N小腹肌肉颤动,同时胸口向内一吸,倏地弹出。\n"NOR;
           msg = replace_string(msg, "$w", wp1->name());
           if(neili >= neili1+random(neili1)+damage){
              if(random(me->query_str()) > ob->query_str()/2 && skill > 140){
                  msg += HIW"结果$n一个抵挡不住,手中"+wp1->name()+HIW"脱手飞出!\n"NOR,
                  me->add("neili", -50);
                  wp1->unequip();
                  wp1->move(environment(ob));
                  j = -(damage);
              }
              else{
                  ob->receive_damage("qi", damage/2);
                  ob->receive_wound("qi", damage/10);
                  p = ob->query("qi")*100/ob->query("max_qi");
                  msg += damage_msg(damage/2, "伤害");
                  msg += "( $n"+eff_status_msg(p)+" )\n";
                  j = -(damage+skill);
              }
           }
           else if(neili >= random(neili1)+damage){
              msg += "结果基本上卸掉了$n的力道。\n";              
              j = -(damage);
           }
           else{
              j = damage/2+random(damage/2);
              if(j<damage/2) msg += "结果卸掉了一些$n的力道。\n";
              else msg += "结果卸掉了$n大半的力道。\n";
              j = -j;
           }
           message_vision(msg, me, ob);
           return j;
          }
          else{
           msg = HIY"那知刚要触到$N身上,突觉$N小腹肌肉颤动,同时胸口向内一吸,倏地弹出。\n"NOR;
           if(neili >= neili1+random(neili1)+damage){
              ob->receive_damage("qi", damage/2);
              ob->receive_wound("qi", damage/10);
              p = ob->query("qi")*100/ob->query("max_qi");
              msg += damage_msg(damage, "内伤");
              msg += "( $n"+eff_status_msg(p)+" )\n";
              j = -(damage+skill);
           }
           else if(neili >= random(neili1)+damage){
              msg += "结果基本上卸掉了$n的力道。\n";              
              j = -(damage);
           }
           else{
              j = damage/2+random(damage/2);
              if(j<damage/2) msg += "结果卸掉了一些$n的力道。\n";
              else msg += "结果卸掉了$n一半的力道。\n";
              j = -j;
           }           
           message_vision(msg, me, ob);
           return j;
          }
        }
}

int help(object me)
{
        write(WHT"\n黯然销魂掌:"NOR"\n\n");
        write(@HELP
        杨过自和小龙女在绝情谷断肠崖前分手,不久便由神雕带着在海潮之中练功,
        数年之后,除了内功循序渐进之外,别的无可再练,心中整日价思念小龙女,
        渐渐的形销骨立,了无生趣。一日在海滨悄然良久,百无聊赖之中随意拳打脚
        踢,其时他内功火候已到,一出手竟具极大威力,轻轻一掌,将海滩上一只大
        海龟的背壳打得粉碎。他由此深思,创出了一套完整的掌法,出手与寻常武功
        大异,厉害之处,全在内力,一共是一十七招。他生平受过不少武学名家的指
        点,自全真教学得玄门正宗内功的口诀,自小龙女学得【玉女心经】,在古墓
        中见到【九阴真经】,欧阳锋以蛤蟆功和逆转经脉,洪七公与黄蓉授以打狗棒
        法,黄药师授以弹指神通和玉箫剑法,除了一阳指之外,东邪、西毒、北丐、
        中神通的武学无所不窥,而古墓派的武学又于五大高人之外别创蹊径,此时融
        会贯通,已是卓然成家。只因他单剩一臂,是以不在招数变化取胜,反而故意
        与武学通理相反。他将这套掌尘定名为“黯然销魂掌”,取的是江淹【别赋】
        中那一句“黯然销魂者,唯别而已矣”之意。
        
武功名称:
        黯然销魂掌(anran-zhang)
            
特殊攻击:   
        黯然销魂(Perform anran);      
        销魂绝技(Perform xiaohun)。
        嫉世愤俗(Perform jishi)
        
要求:
        最大内力 1500;
        后天根骨 30;
        后天膂力 30;
        黯然销魂掌 230 级前大于玉女心经 30 级。

HELP
        );
        return 1;
}

然后是黯然掌pfm anran

// 黯然销魂

/*    杨过心知今日已然无幸,非但救不了郭襄,连自己这条性命也要赔在台上,凄然向小龙
女望了一眼,叫道:“龙儿,别了,别了,你自己保重。”便在此时,法王铁轮砸向他的脑
门。杨过心下万念俱灰,没精打采的挥袖卷出,拍出一掌,只听得噗的一声,这一掌正好击
在法王肩头。
    忽听得台下周伯通大声叫道:“好一招‘拖泥带水’啊!”杨过一怔,这才醒觉,原来
自己明知要死,失魂落魄,随手一招,恰好使出了“黯然销魂掌”中的“拖泥带水”。这套
掌法心使臂、臂使掌,全由心意主宰。那日在万花谷中,周伯通只因无此心情,虽然武术精
博,终是领悟不到其中的妙境。杨过既和小龙女重逢,这路掌法便已失却神效,直到此刻生
死关头,心中想到便要和小龙女永诀,哀痛欲绝之际,这“黯然销魂掌”的大威力才又不知
不觉的生了出来。
    法王本已稳操胜券,突然间肩头中掌,身子一晃,惊怒交集,立即和身扑上。杨过退步
避开,跟着“魂不守舍”、“倒行逆施”、“若有所失”,连出三招,跟着是一招“行尸走
肉”,踢出一脚。这一脚发出时恍恍惚惚,隐隐约约,若有若无,法王那里避得过了?砰的
一响,正中胸口。法王大叫一声,一口鲜血喷出,翻下高台。
*/
#include <ansi.h>
#include <combat.h>

inherit F_SSERVER;
void attack_ob(object me, object target,int i);
void attack_ob1(object me, object target,int i);

int perform(object me, object target)
{
        int lvl, i;
        lvl = me->query_skill("anran-zhang", 1) /4;

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

        if( !target
         || !me->is_fighting(target) )
                return notify_fail("「黯然销魂」只能在战斗中使用。\n");

        if( me->query_temp("weapon"))
                return notify_fail("你拿着武器怎么能使用「黯然销魂」!\n");   

        if( (int)me->query_skill("anran-zhang", 1) < 150 )
                return notify_fail("你的黯然销魂掌还不够娴熟,使不出「黯然销魂」绝技。\n");

        if( (int)me->query_skill("yunu-xinjing", 1) < 150 )
                return notify_fail("你的玉女心经等级还不够,使不出「黯然销魂」绝技。\n");

        if ( me->query_skill_mapped("strike") != "anran-zhang"
         || me->query_skill_mapped("parry") != "anran-zhang"
         || me->query_skill_prepared("strike") != "anran-zhang")
                return notify_fail("你现在无法使用「黯然销魂」绝技!\n");

        if((int)me->query("eff_qi") == 0 )
                return notify_fail("你现在无法使用「黯然销魂」绝技。\n");
        message_vision(HIW"$N心知今日已然无幸,凄然向$n望了一眼,立时想起自己心中的百般伤感,便在此时,$n攻向$N的脑门。"NOR,me,target);

        me->add_temp("anran", 2);
        i = (int)me->query("qi") / (int)me->query("eff_qi");
        if (i>3) i=3;
        if( i < 1 ) i = 1;

        if( i > 1 ){
           me->add_temp("apply/strength",lvl/6);
           me->set_temp("hurt", 1);
        }
        
        me->add_temp("apply/damage", lvl/2);
        me->add_temp("apply/attack", lvl);
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), i);
        me->add_temp("apply/attack", -lvl);
        me->add_temp("apply/damage", -lvl/2);

        if(me->query_temp("hurt")){
            me->add_temp("apply/strength", -lvl/6);
            me->delete_temp("hurt");
        }
        me->add("neili", -(me->query_skill("force") + random(lvl)));
        me->add("jingli", -50);
        me->delete_temp("anran");
        me->start_perform(4,"黯然销魂");
        if (me->query_temp("anran_att",1)) {
                call_out("attack_ob",1,me,target,i);
                me->delete_temp("anran_att");
        }
        return 1;
}
void attack_ob(object me, object target,int i)
{
        int lvl;
        if (!me) return ;
        if (!target || !living(me) || !living(target) || !me->is_fighting(target)) {
                return ;
        }
        lvl = (int)me->query_skill("anran-zhang",1)/6;
        message_vision(HIR"\n$n本已稳操胜券,突然间肩头中掌,身子一晃,惊怒交集,立即和身扑上。\n"
                                "$N退步避开,跟着“魂不守舍”、“倒行逆施”、“若有所失”,连出三招,\n"NOR,me,target);
        me->add_temp("anran1", 3);
        me->add_temp("apply/damage", lvl/2);
        me->add_temp("apply/attack", lvl);
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), i);
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), i);
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), i);
        me->add_temp("apply/damage", -lvl/2);
              me->add_temp("apply/attack",-lvl);
        me->delete_temp("anran1");
        call_out("attack_ob1",1,me,target,i);
}
void attack_ob1(object me, object target,int i)
{
        int j;
        if (!me) return ;
        if (!target || !living(me) || !living(target) || !me->is_fighting(target)) {
                return ;
        }

        if (!target->is_busy()) {
                call_out("attack_ob1",1,me,target,i);
                me->start_perform(2,"黯然销魂");
                return;
        }
        j = me->query("jiali",1);
        me->set("jiali",j*i*(me->query("neili",1)/1000));
        me->add_temp("anran", 1);
        me->add_temp("apply/damage", me->query_skill("force",1)/10);
        me->add_temp("apply/attack", me->query_skill("force",1)/10);
        COMBAT_D->do_attack(me, target, me->query_temp("weapon"), i);
        me->add_temp("apply/damage", -me->query_skill("force",1)/10);
        me->add_temp("apply/attack", -me->query_skill("force",1)/10);
        me->delete_temp("anran");
        me->set("jiali",j);
         me->start_perform(2,"黯然销魂");
        return;
}

还有黯然掌pfm xiaohun

// 销魂

#include <ansi.h>
#include <combat.h>
inherit F_SSERVER;
string *pictures=({
"心惊肉跳","杞人忧天","无中生有","拖泥带水","徘徊空谷","力不从心","行尸走肉", "庸人自扰"
});

int perform(object me)
{
        object target;
        string picture;
        int i,j;      
        i = me->query_skill("anran-zhang", 1)/2;
        if( me->query("eff_qi") > 0)
        j = me->query("max_qi") / me->query("eff_qi");
        else j = 0;
        picture = pictures[random(sizeof(pictures))];

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

        if( !target
         || !me->is_fighting(target) )
               return notify_fail("「销魂」只能在战斗中对对手使用。\n");

        if( me->query_temp("weapon"))
                return notify_fail("你拿着武器怎么能使用「销魂」绝技!\n");   

        if( me->query_skill_prepared("strike") != "anran-zhang"
         || me->query_skill_mapped("strike") != "anran-zhang"
         || me->query_skill_mapped("parry") != "anran-zhang"
         || me->query_skill_mapped("force") != "yunu-xinjing")
               return notify_fail("你现在难以使用「销魂」绝技!\n");

        if((int)me->query_skill("anran-zhang", 1) < 150 )
               return notify_fail("你的黯然销魂掌法火候不够,使不出「销魂」绝技。\n");

        if((int)me->query_skill("strike", 1) < 150 )
               return notify_fail("你的基本功还不够娴熟,使不出「销魂」绝技。\n");

        if((int)me->query_skill("force") < 200 )
               return notify_fail("你的内功等级不够,使不出「销魂」绝技。\n");
        if((int)me->query_str() < 30)
               return notify_fail("你的膂力还不够强劲,使不出「销魂」绝技。\n");

        if((int)me->query_dex() < 30)
                return notify_fail("你的身法还不够迅猛,使不出「销魂」绝技。\n");

        if((int)me->query_skill("yunu-xinjing", 1) < 150 )   
                return notify_fail("你的玉女心经修为不够,无法使用「消魂」绝技。\n");  

        if((int)me->query_temp("xiaohun"))
                return notify_fail("你现在正在使用「消魂」绝技。\n");

        message_vision(HIB"\n$N使出扬过自创之黯然销魂掌,一时空气之中充盈了无尽的思念,哀伤,凄凉之意,$n不禁被勾起心底无数往事追忆,,\n"+
                         "只觉得突然万念俱灰,凄然之意由心而生,只觉人生如浮云,一切功名利禄皆粪土。\n"+
                         "人生如雾亦如电,情如朝露去匆匆。$n不由得心神恍惚,茫茫然不只所措。\n"NOR,me,target);

        j *= i;
        if ( j > 350 ) j = 350;

        me->add("neili", -i*2);
        me->add("jingli", -i/2);
        me->add_temp("apply/attack", 100);
        me->add_temp("apply/damage", 100);
        me->start_perform(2,"消魂绝技");
        me->set_temp("xiaohun", j );
        call_out("check_fight", 1 , me, target);
        return 1;
}

void check_fight(object me,object target)
{
        int time;
        if (!me) return;
        time = me->query_skill("force")/5;
        if (me->query_temp("weapon")
         || me->query_temp("secondary_weapon")
         || me->query_skill_prepared("strike") != "anran-zhang" ){
            me->add_temp("apply/attack", - me->query_temp("xiaohun"));
            me->delete_temp("xiaohun");
            tell_object(me, HIR"\n你「消魂」绝技运行完毕,气回丹田.\n" NOR);
            return;
        }
        if ( ! target
         || time < 1
         || ! me->is_fighting(target)) {
        me->add_temp("apply/attack", -100);
        me->add_temp("apply/damage", -100);
            me->delete_temp("xiaohun");
            tell_object(me, HIR"\n你「消魂」绝技运行完毕,气回丹田.\n" NOR);
            return;
        }
        call_out("check_fight", 1, me, target,time -1);
}

最后是玄铁剑法pfm shipo

// 石破天惊

#include <ansi.h>
#include <combat.h>
inherit F_SSERVER;
#include "/kungfu/skill/eff_msg.h";

int perform(object me, object target)
{
        int cost, damage, jianfa, lvl, p, hurt;
        object weapon;
        string msg;
        weapon = me->query_temp("weapon");

        if ( !target ) target = offensive_target(me);
        if ( !target || !me->is_fighting(target) ) return notify_fail("「玄铁剑法」的「石破天惊」只能在战斗中对对手使用。
\n");
        if ( !weapon || weapon->query("skill_type") != "sword" ) return notify_fail("你必须使用武器才能使用「石破天惊」。
\n");
        if ( (int)me->query_skill("xuantie-jianfa", 1) < 160 ) return notify_fail("你的「玄铁剑法」还不够娴熟,使不出「石破天

惊」绝技。\n");
        if ( (int)me->query_skill("yunu-xinjing", 1) < 180 ) return notify_fail("你的「玉女心经」等级还不够,使不出「石破天惊

」绝技。\n");
        if ( (int)me->query_skill("force") < 180 ) return notify_fail("你的内功等级不够,不能使用「石破天惊」。\n");
        if ( (int)me->query_str() < 42 ) return notify_fail("你的膂力还不够强劲,使不出「石破天惊」来。\n");
        if ( me->query_temp("pfm/shipo") ) return notify_fail("你正在使用「石破天惊」。\n");
        if ( me->query("gender")=="女性" ) return notify_fail("你乃一女子,不适合使用这样刚猛的武功。\n");
        if ( me->query_skill_mapped("sword") != "xuantie-jianfa" && userp(me) ) return notify_fail("你现在无法使用「石破天惊

」。\n");
        if ( me->query_skill_mapped("parry") != "xuantie-jianfa" && userp(me) ) return notify_fail("你现在无法使用「石破天惊

」。\n");
        if ( me->query("max_neili") < 3000 ) return notify_fail("你现在内力太弱,使不出「石破天惊」。\n");
        if ( me->query("neili") < 1000 ) return notify_fail("你现在内力太弱,使不出「石破天惊」。\n");

        lvl = PFM_D->get_pfm_lvl(me, "xuantie-jianfa.shipo");
        jianfa = (int)me->query_skill("xuantie-jianfa", 1);
        damage = PFM_D->get_att_damage(me, target, "xuantie-jianfa", "sword", 4, "str");
        damage += random ( (int)me->query("jiali") * 2 );
        cost = PFM_D->get_pfm_cost(me, 4, 2);
        if ( weapon->query("id") == "xuantie jian" ) damage += 1000;
        msg = HIW"$N"HIW"大喝一声,手中" + weapon->query("name") + HIW"急速舞动,剑气咄咄毕人,有如晴天霹雳,石破天惊一

般。\n";
        me->start_busy(2);
        target->start_busy(2);
        if ( PFM_D->check_pfm_if(me, target, "xuantie-jianfa") ) {
                msg += WHT"$n"WHT"只觉$N"WHT"的剑气笼罩自己全身,刹那间,身上已经被$N"WHT"的剑气捅了几个窟窿。\n"NOR;
                if ( jianfa > 300 ) hurt = damage * 5 / 6 + random( damage / 6);
                else if ( jianfa > 240 ) hurt = damage / 2 + random( damage / 6);
                else hurt = damage / 3 + random( damage / 6);
                target->receive_wound("qi", hurt);
                target->receive_damage("qi", damage);
                me->add("neili", -cost);
                p = (int)target->query("qi")*100 / (int)target->query("max_qi");
                msg += damage_msg(damage, "内伤");
                msg += "( $n"+eff_status_msg(p)+" )\n";
                message_vision(msg, me, target);
                if(wizardp(me)) tell_object(me,"DAMAGE:"+damage+"。\n");
                if ( jianfa > 190 ) call_out("sec_hit", 1, me, target, damage);
        }
        else {
                msg += WHT"$n"WHT"只觉$N"WHT"的剑气笼罩自己全身,炽热的气浪几乎将自己掀翻,$n"WHT"急忙运功抵御。\n";
                target->start_busy(random(3)+2);
                me->add("neili", - ( cost / 2 ));
                message_vision(msg, me, target);
        }
        me->set_temp("pfm/shipo", 1);
        me->start_perform(3, "「石破天惊」");
        call_out("remove_effect", jianfa/40, me);
        return 1;
}
void sec_hit(object me, object target, int damage)
{
        int cost, p, hurt, jianfa;
        string msg;
        object weapon;

        jianfa = (int)me->query_skill("xuantie-jianfa", 1);
        weapon = me->query_temp("weapon");
        if (!me) return;
        if ( !target || !target->is_character() || !me->is_fighting(target) ) return;
        if ( !weapon || weapon->query("skill_type") != "sword" ) return;
        cost = PFM_D->get_pfm_cost(me, 4, 2);
        damage = damage + random(damage / 2);
        if ( jianfa >= 300 ) damage = damage + random(damage);
        msg = HIC"说是迟、那是快,$N" + weapon->query("name") + HIC"前刺,无形的内力波涛汹涌地袭来。\n"NOR;
        if ( PFM_D->check_pfm_if(me, target, "xuantie-jianfa") ) {
                if ( jianfa > 300 ) hurt = damage * 5 / 6 + random( damage / 6);
                else if ( jianfa > 240 ) hurt = damage / 2 + random( damage / 6);
                else hurt = damage / 3 + random( damage / 6);
                target->receive_wound("qi", hurt);
                target->receive_damage("qi", damage);
                me->add("neili", -cost);
                p = (int)target->query("qi")*100/(int)target->query("max_qi");
                msg += damage_msg(damage, "内伤");
                msg += "( $n"+eff_status_msg(p)+" )\n";
                message_vision(msg, me, target);
        }
        else {
                msg += WHT"$n"WHT"急忙闪身,躲过了$N"WHT"的攻击。\n";
                me->add("neili", - ( cost / 2 ));
                message_vision(msg, me, target);
        }
}
void remove_effect(object me)
{
        if ( !me ) return;
        me->delete_temp("pfm/shipo");
}

没了 就这些  希望wiz们能考虑录用
威力你们可以随便调整的 主要是描述和特色



2004-5-29 20:36
查看资料  搜索该用户的全部帖子  发短消息     编辑帖子  引用回复
黛儿(latitude@cq)
头衔:平平淡淡
绰号:孟婆



  注册日期: 2003-11-15
  上次连线: 2004-8-19
  注册情况: 贵宾注册
  发贴数量: 316
  总信誉分: 100
  论坛积分: 393 / 323
  在线状态: 离线
第 2 楼 沙发

Re:有关古墓武功更新

大大的顶啊。。。。
2004-6-17 16:58
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
月野兔(yohji@ln)
头衔:勉勉强强



  注册日期: 2001-12-15
  上次连线: 2004-8-4
  发贴数量: 1498
  总信誉分: 100
  论坛积分: 48 / 1398
  在线状态: 离线
第 3 楼 小板凳

Re:有关古墓武功更新

GM一直在更新,越更新越弱
2004-6-17 19:23
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
卡缪(winner@ln)
头衔:Moderator
绰号:『古墓最后的剑客』



  注册日期: 1999-11-5
  上次连线: 2004-8-19
  注册情况: 贵宾注册
  发贴数量: 575
  总信誉分: 100
  论坛积分: 727 / 707
  精华文章: 4篇  
  在线状态: 在线
第 4 楼

Re:有关古墓武功更新

设计的剑法我试了一下 感觉很不错 特别是哪个auto 希望wiz采纳。




问世间,情是何物,直教生死相许!
2004-6-19 01:23
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
自行车(xiaolian@ln)
头衔:自己能行走的车
绰号:养蛇专业户



  注册日期: 2001-4-17
  上次连线: 2004-8-4
  发贴数量: 1014
  总信誉分: 100
  论坛积分: 986 / 1136
  精华文章: 9篇  
  在线状态: 离线
第 5 楼

Re:有关古墓武功更新




2004-6-19 14:14
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
轻舞飘雪(xlongnv@cq)
头衔:勉勉强强
绰号:此情不悔



  注册日期: 2004-7-2
  上次连线: 2004-8-7
  注册情况: 贵宾注册
  发贴数量: 176
  总信誉分: 100
  论坛积分: 178 / 178
  精华文章: 1篇  
  在线状态: 离线
第 6 楼

Re:有关古墓武功更新

看不懂啊...

请勿灌水,回复必须八个汉字以上。
2004-7-4 23:30
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
(xxln@ln)
头衔:平平淡淡
绰号:〖上流美〗



  注册日期: 2001-2-5
  上次连线: 2004-8-18
  来自哪里: 新加坡
  发贴数量: 329
  总信誉分: 100
  论坛积分: 452 / 382
  精华文章: 4篇  
  在线状态: 离线
第 7 楼

Re:有关古墓武功更新

新人来扫墓,大家说偶美吗?wink
2004-7-5 13:34
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
销魂客(kingwu@cq)
头衔:勉勉强强



  注册日期: 2004-7-10
  上次连线: 2004-7-23
  发贴数量: 92
  总信誉分: 100
  论坛积分: 91 / 92
  在线状态: 离线
第 8 楼

Re:有关古墓武功更新

都看不懂,能否说点实用的
2004-7-13 00:15
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
中国制造(zhizao@ln)
头衔:勉勉强强



  注册日期: 2004-7-8
  上次连线: 2004-7-18
  发贴数量: 124
  总信誉分: 100
  论坛积分: 114 / 124
  在线状态: 离线
第 9 楼

Re:有关古墓武功更新

啊?自己写的?不知道wiz会不会用



2004-7-13 00:17
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
轻舞飘雪(xlongnv@cq)
头衔:勉勉强强
绰号:此情不悔



  注册日期: 2004-7-2
  上次连线: 2004-8-7
  注册情况: 贵宾注册
  发贴数量: 176
  总信誉分: 100
  论坛积分: 178 / 178
  精华文章: 1篇  
  在线状态: 离线
第 10 楼

Re:有关古墓武功更新


没女id用得啊。。
另外,,请通俗一点。。



Mud效果:

为了容貌 灌水不止


2004-7-13 00:33
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
雪椰(xueye@ln)
头衔:勉勉强强



  注册日期: 2004-5-16
  上次连线: 2004-8-8
  注册情况: 贵宾注册
  发贴数量: 21
  总信誉分: 100
  论坛积分: 19 / 19
  在线状态: 离线
第 11 楼

Re:有关古墓武功更新

支持楼上的,
另外有个想法,可否在野外有树的地方允许女弟子在树上睡觉,当然前提是有绳子一根。是不是也算做小龙女弟子的特色呢?
2004-7-17 23:58
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
黑寡妇(huirongr@ln)
头衔:举世无双



  注册日期: 2003-4-22
  上次连线: 2004-8-19
  发贴数量: 1493
  总信誉分: 100
  论坛积分: 1186 / 2497
  在线状态: 在线
第 12 楼

Re:有关古墓武功更新

男的阿?为winner定制的?



ace和ciwei在gm的宝宝
据有一半的巫师血统
我的话就可以代表半个ciwei

2004-7-20 10:40
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
淘气宝宝(per@ln)
头衔:勉勉强强



  注册日期: 2001-8-17
  上次连线: 2004-8-18
  发贴数量: 32
  总信誉分: 100
  论坛积分: 92 / 82
  在线状态: 离线
第 13 楼

Re:有关古墓武功更新

看不懂,楼主可以做WIZ了。
2004-8-9 14:17
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复
(kallon@ln)
头衔:勉勉强强
绰号:护法



  注册日期: 2002-1-18
  上次连线: 2004-6-30
  发贴数量: 133
  总信誉分: 100
  论坛积分: 121 / 121
  在线状态: 离线
第 14 楼

Re:有关古墓武功更新

深奥,我弄不出来,winner 解释一下吧



2004-8-15 15:28
查看资料  搜索该用户的全部帖子  发短消息   编辑帖子  引用回复

 

可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题


论坛跳转:



< 联系我们 - 合作联系 - 分站联系 - 完全新手教程在线玩家 - 在线十大高手 - 在线门派势力 - 详细在线玩家 - 美女排名 - 杀手排名 >
www. ShuJian.com 书剑网络游戏开发小组(1996---2004) Discuz! 2.0 COML