MUD-武林MUD资料站-武侠MUD游戏

 找回密码
 注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

申请个公共特殊类武功

[复制链接]
跳转到指定楼层
1# .
jion 发表于 2011-9-29 14:31:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 jion 于 2011-9-29 14:46 编辑

锤法
作为特殊的存在
虽然稀有
但是怎么可以没有一门公共武功呢
强力要求阿姨开放一门以上....公共锤法
名称
开天辟地杵(锤)
开天式
辟地式
毁灭式
MUD - MUD游戏 - 文字MUD - 武林MUD - 长期、稳定、高速、互助、活跃、更新的武侠MUD站点,一起MUD吧!
7# .
 楼主| jion 发表于 2011-10-14 10:11:05 | 只看该作者
好吧.. 如果可能就加个pfm...thank
膜拜阿姨
6# .
是开碧落 发表于 2011-10-14 10:01:19 | 只看该作者
雷霆锤法?

雷霆斧 改造

有武功, 没有绝招哦
5# .
 楼主| jion 发表于 2011-10-14 09:42:53 | 只看该作者
pfm 代码参考
#include <ansi.h>
#include <combat.h>
inherit F_DBASE;
inherit F_SSERVER;

int perform(object me, object target)
{
        object weapon;
        int damage, club, i,ap,pp;

        if( !target && me->is_fighting() ) target = offensive_target(me);

        if( !target
         || !target->is_character()
         || !me->is_fighting(target) )
                return notify_fail("「超度极乐」只能对战斗中的对手使用。\n");

        if( !objectp(weapon = me->query_temp("weapon"))
         || weapon->query("skill_type") != "club" )
                return notify_fail("你手中无棍,怎能运用「超度极乐」?!\n");

        if( me->query_temp("sl_chaodu") )
               return notify_fail("「超度极乐」是少林密技,太过刚猛有违天和,不可多用!\n");



        if((int)me->query_skill("weituo-chu", 1) < 300 )
               return notify_fail("你「韦陀杵」修为还不够,还未能领悟「超度极乐」!\n");

        if((int)me->query_str()-(int)me->query_temp("apply/strength")<50)
               return notify_fail("你的膂力不够,无法用出「超度极乐」\n");

        if((int)me->query("con")+(int)me->query_skill("force",1)/10<50)
               return notify_fail("你的根骨不够,无法承受「超度极乐」的金刚大力。\n");

        if((int)me->query_skill("buddhism",1) < 200)
               return notify_fail("你禅宗修为还不够,还未能领悟「超度极乐」!\n");


        if( me->query_skill("yijinjing", 1) < 300 )
                return notify_fail("你的内功修为火候未到,施展只会伤及自身!\n");

        if( me->query_skill_mapped("force") != "yijinjing")
                return notify_fail("你所用的内功与「超度极乐」心法相悖!\n");

        if (me->query_skill_mapped("club") != "weituo-chu"
         )
                return notify_fail("你现在无法使用「超度极乐」进行攻击。\n");

        if( me->query("max_neili") < 5000 )
                return notify_fail("你的内力修为不足,劲力不足以施展「超度极乐」!\n");

        if( me->query("neili") <= 2000 )
                return notify_fail("你的内力不够,劲力不足以施展「超度极乐」!\n");

        if( me->query("jing") <= 500 )
                return notify_fail("你的精力有限,不足以施展「超度极乐」!\n");

        message_vision(BLU"\n突然$N面露佛光:「超度极乐」,身形暴涨,如同韦陀尊者再世一般,右拳突出击在"+weapon->name()+BLU"当中,“哄”的一声,"+weapon->name()+"被打的粉碎象千颗流星飞向$n!\n" NOR, me,target);
        weapon->move(environment(me));
        weapon->set("name", weapon->query("name")+"的碎片");
        weapon->unequip();
        weapon->set("value", 0);
        weapon->set("weapon_prop", 0);
        damage = (int)me->query_skill("club") + (int)me->query_skill("buddhism",1);
        club = me->query_skill("club")/3;
        i = 10+random(me->query_skill("buddhism",1)/20);
        damage = damage*i;
        if(me->is_killer(target->query("id")))
                       damage = damage *2/3;
        if(!target->is_killer(me->query("id")))
                       damage = damage *2/3;
        if (wizardp(me))
                   write(sprintf("damage = %d\n",damage));
        ap = COMBAT_D->skill_power(me,"club",SKILL_USAGE_ATTACK);
        pp = COMBAT_D->skill_power(me,"parry",SKILL_USAGE_DEFENSE);
        if(target->is_busy())
                pp /= 2;
        if(me->query("real_yjj"))
                {
                        damage *=2;
                        ap *= 2;
                        pp /= 2;
                }
        me->set_temp("sl_chaodu",1);
        if(random(ap+pp)>pp)
        {
                  me->add("neili", -1000);
                  me->add("jing", -200);
                  target->receive_damage("qi",damage);
                  target->receive_wound("qi",damage/2);
                    message_vision(HIY"\n$n哪里见过这么刚猛霸道的招式,招架不及,被拳力击中,肋骨当即根根断裂!\n" NOR, me,target);
                    COMBAT_D->report_status(target);
if (random(6)==0 && target->query("int") > 30 && target->query("qi") < 200)
{
                   message_vision(HIY"\n$n脑中一片悬晕!一片空白!\n" NOR, me,target);
target->add("int",-1);
}
else if (random(6)==0 && target->query("str") > 30 && target->query("qi") < 200)
{
                   message_vision(HIY"\n$n全身一阵麻木!身体一松!\n" NOR, me,target);
target->add("str",-1);
}

                    me->start_busy(1+random(2));
                    call_out("remove_effect2", club*2/3, me);
       }
       else {
                  message_vision(HIY"\n$n眼见$N来势凶狠,不及招架,身体贴地滑行,倒滑出数丈,躲过了这致命一击!\n" NOR, me,target);
                  me->add("neili", -1000);
                  me->add("jing", -200);
                  me->start_busy(1+random(2));
                  call_out("remove_effect2", club*2/3, me);
       }
       return 1;
}

void remove_effect2(object me)
{
        if (!me) return;
        me->delete_temp("sl_chaodu");
        tell_object(me, HIG"\n你经过一段时间修心养性,又可以再使用「超度极乐」了。\n"NOR);
}

int help(object me)
{
        write(
@HELP
超度极乐
       是佛门神功--「韦陀杵」的特殊攻击,将手中兵器击碎,化成千万片碎片攻击对手。
       乃是「韦陀杵」的终极招式。
HELP
        );
        return 1;
}

代码来自海洋三
4# .
 楼主| jion 发表于 2011-10-14 09:42:13 | 只看该作者
参考代码
#include <ansi.h>
inherit SKILL;

mapping *action = ({
([
"action":"$N跃在半空,一招「仙鹤展翅入灵山」,手中$w已化成无数棍影,令$n眼花缭乱,不知所措,连连倒退",
         "force" : 380,
         "dodge" : 20,
         "parry" : 20,
        "damage": 620,
         "lvl" : 0,
         "skill_name" : "仙鹤展翅入灵山",
         "damage_type":"挫伤"
]),
([
"action":"$N挺$w将$n的招式架住,顺势一招「玉马衔环拜仙宫」,$w上下左右飞快搅动,身随棍走,向$n压了下来",
         "force" : 300,
         "dodge" : 10,
         "parry" : 15,
        "damage": 630,
         "lvl" : 30,
         "skill_name" : "玉马衔环拜仙宫",
         "damage_type":"挫伤"
]),
([
"action":"$N一招「鸣鹿踏蹄觅仙草」,屈膝俯身,手中$w连点$n下盘,却未等招数用老,猛的一提,向$n的胸腹间戳去",
         "force" : 320,
         "dodge" : 15,
         "parry" : 20,
        "damage": 640,
         "lvl" : 60,
         "skill_name" : "鸣鹿踏蹄觅仙草",
         "damage_type":"挫伤"
]),
([
"action":"$N突然滚到在地,$n错愕间,一招「金鲤跃水潜天池」,竟从$n的裆下窜过,更不回头,$w反手扫向$n的$l",
         "force" : 640,
         "dodge" : 120,
         "parry" : 25,
        "damage": 660,
         "lvl" : 80,
         "skill_name" : "金鲤跃水潜天池",
         "damage_type":"挫伤"
]),
([
"action":"$N一招「灵猿献果赴蓬莱」,身形如电,绕着$n飞快奔跑,手中$w一招快似一招,刹那间向$n连打出十六棍",
         "force" : 680,
         "dodge" : 130,
         "parry" : 30,
        "damage": 680,
         "lvl" : 100,
         "skill_name" : "灵猿献果赴蓬莱",
         "damage_type":"挫伤"
]),
([
"action":"$N大踏步上前,劲贯双臂,手中$w大开大阖,呼呼风声中一招「飞鹰盘旋扫乾坤」扫向$n的腰间",
         "force" : 660,
         "dodge" : 130,
         "parry" : 40,
        "damage": 600,
         "lvl" : 120,
         "skill_name" : "飞鹰盘旋扫乾坤",
         "damage_type":"挫伤"
]),
([
"action":"$N大喝一声,一招「天龙出水腾宇宙」,$w脱手飞出,夹着劲风射向$n的前心,随即抢到$n的身后,伸手又把$w抄在手中",
         "force" : 600,
         "dodge" : 120,
         "parry" : 30,
        "damage": 680,
         "lvl" : 130,
         "skill_name" : "天龙出水腾宇宙",
         "damage_type":"挫伤"
]),
([
"action":"$N双目圆睁,口中默诵真言,一招「白象卷云憾天柱」,$w似有千斤,缓缓举起,又缓缓向$n的当头砸落",
         "force" : 550,
         "dodge" : 120,
         "parry" : 30,
        "damage": 500,
         "lvl" : 150,
         "skill_name" : "白象卷云憾天柱",
         "damage_type":"挫伤"
]),
});

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

int valid_learn(object me)
{
           mapping fam  = me->query("family");
         if ((int)me->query("max_neili") < 1500)
                return notify_fail("你的内力不够。\n");
         if ((int)me->query_skill("yijinjing", 1) < 160)
                return notify_fail("你的易筋经内功火候太浅。\n");
         if((int)me->query_skill("zui-gun",1) <120)
                      return notify_fail("你的醉棍火候不足,难以领悟韦陀杵。\n");
         if((int)me->query_skill("zui-gun",1) <120)
                      return notify_fail("你的醉棍火候不足,难以领悟韦陀杵。\n");

         if((int)me->query_skill("longzhua-gong",1) <120)
                      return notify_fail("你的龙爪功不足,难以领悟韦陀杵。\n");

         if((int)me->query_skill("weituo-gun",1) <120)
                      return notify_fail("你的韦驮棍不足,难以领悟韦陀杵。\n");
         return 1;
}

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

mapping query_action(object me, object weapon)
{
         int i, level, lvl;
         object target;
         mapping pre;
         string *skill, a, b;
         
         level   = (int) me->query_skill("weituo-chu",1);
         lvl = (int)me->query_skill("longzhua-gong", 1);
         
         
         if ( level >= 200 && lvl >= 200 && random(level) > lvl / 2
         &&  !me->is_busy()
         && objectp(target = me->select_opponent())
         && objectp(weapon = me->query_temp("weapon"))
         && me->query_skill_mapped("claw") == "longzhua-gong"
         && me->query_skill_prepared("claw") == "longzhua-gong"
         && me->query("neili") > 300 && me->query("jing") > 100 ) {
                 pre = me->query_skill_prepare();
                skill = keys(pre);     
                for (i=0; i<sizeof(skill); i++){
                        if(skill[i]=="claw") continue;
                        a = skill[i];
                        b = pre[skill[i]];
                        me->prepare_skill(skill[i]);
                }
               
                weapon->unequip();
                COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 2);
                COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 2);
                COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 2);
                weapon->wield();
                me->prepare_skill(a,b);
                me->add("neili", -25);
  
         }
        


         for(i = sizeof(action); i > 0; i--)
                 if(level >= action[i-1]["lvl"])
                         return action[NewRandom(i, 20, level/5)];
}
mixed hit_ob(object me, object victim, int damage_bonus, int factor)
{
        int level, jiali, time,level2,damage;
        object weapon;
        weapon = me->query_temp("weapon");
        level = (int) me->query_skill("unarmed",1);
        level2= (int) me->query_skill("yijinjing",1);
damage= (int) me->query("neili",1)/10;
if (random(8)==0 && level2>=300 && me->query_skill_mapped("force") == "yijinjing")
{
if (victim->query("qi")>= damage )
{
victim->receive_damage("qi", damage);
        victim->receive_wound("qi", damage);
}
        return HIR"只见$n$l闷哼一声,吐出一口鲜血,已被易筋经的护体真气给击伤!\n"NOR;
}
if (damage_bonus <80) damage_bonus=80;
      if( random(me->query_skill("weituo-chu",1)) > 50 )
{
          victim->receive_wound("qi", (damage_bonus)/2+120);
        return HIR "$n被棍风的巨力打中,发出一阵骨碎的声音!\n" NOR;
}
}

int practice_skill(object me)
{
         object weapon;
         if((int)me->query_skill("zui-gun",1) <=120)
                      return notify_fail("你的醉棍火候不足,难以领悟韦陀杵。\n");

         if((int)me->query_skill("longzhua-gong",1) <=120)
                      return notify_fail("你的龙爪功不足,难以领悟韦陀杵。\n");

         if((int)me->query_skill("weituo-gun",1) <=120)
                      return notify_fail("你的韦驮棍不足,难以领悟韦陀杵。\n");
                     
         if (!objectp(weapon = me->query_temp("weapon"))
                  || (string)weapon->query("skill_type") != "club")
                return notify_fail("你使用的武器不对。\n");
         if ((int)me->query("jing") < 70)
                return notify_fail("你的体力不够练韦陀棍。\n");
         if ((int)me->query("neili") < 40)
                return notify_fail("你的内力不够练韦陀棍。\n");
               
me->receive_damage("jing", 30);           
         if((int)me->query_skill("weituo-chu",1)> 200)
me->add("neili",-10);

         return 1;
}
3# .
 楼主| jion 发表于 2011-10-7 19:45:48 | 只看该作者
好武功废动态武器嘿嘿
2# .
是开碧落 发表于 2011-10-7 17:03:44 | 只看该作者
你想达到什么目标?

Archiver|武林MUD资料站 ( 鲁ICP备17038480号 本站关键词:mud 武林mud mud游戏 文字mud

GMT+8, 2024-11-24 20:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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