申请个公共特殊类武功
本帖最后由 jion 于 2011-9-29 14:46 编辑锤法
作为特殊的存在
虽然稀有
但是怎么可以没有一门公共武功呢
强力要求阿姨开放一门以上....公共锤法
名称
开天辟地杵(锤)
开天式
辟地式
毁灭式 你想达到什么目标? 好武功废动态武器嘿嘿 参考代码
#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["lvl"])
return action["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=="claw") continue;
a = skill;
b = pre];
me->prepare_skill(skill);
}
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["lvl"])
return action;
}
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;
} 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;
}
代码来自海洋三 雷霆锤法?
雷霆斧 改造
有武功, 没有绝招哦 好吧.. 如果可能就加个pfm...thank
膜拜阿姨
页:
[1]