// 飞天御剑流.喧哗流拳法
#include <ansi.h>
inherit SKILL;
string *order = ({""HIY"", ""HIG"", ""RED"", ""MAG"", ""YEL"", ""HIC"", ""HIW"", ""HIR"",""HIB"", ""CYN"",""WHT"",""HIM"",""BLU""});
mapping *action = ({
([ "action" : "$N盘膝而坐,二手合十,一式"+(order[random(13)])+"「翔」"NOR",双拳蓄势而发,击向$n的$l",
"force" : 180,
"dodge" : 5,
"damage": 200,
"lvl" : 0,
"skill_name" : "翔",
"damage_type" : "瘀伤"
]),
([ "action" : "$N一式"+(order[random(13)])+"「霞」"NOR",双掌轮流下击,拳势如焰,吡啪爆响",
"force" : 200,
"dodge" : 5,
"damage": 170,
"lvl" : 2,
"skill_name" : "霞",
"damage_type" : "瘀伤"
]),
([ "action" : "$N腾空飞起,一式"+(order[random(13)])+"「息吹」"NOR",双手双腿齐出,令$n无可躲藏",
"force" : 230,
"dodge" : 15,
"damage": 200,
"lvl" : 4,
"skill_name" : "息吹",
"damage_type" : "瘀伤"
]),
([ "action" : "$N腾空飞起,一式"+(order[random(13)])+"「息吹」"NOR",双手双腿齐出,令$n无可躲藏",
"force" : 230,
"dodge" : 15,
"damage": 200,
"lvl" : 10,
"skill_name" : "息吹",
"damage_type" : "瘀伤"
]),
([ "action" : "$N双掌虚含,掌缘下沉,一式"+(order[random(13)])+"「无明」"NOR",缓缓向$n推出",
"force" : 200,
"dodge" : 5,
"damage": 220,
"lvl" : 20,
"skill_name" : "无明",
"damage_type" : "瘀伤"
]),
([ "action" : "$N双掌虚含,掌缘下沉,一式"+(order[random(13)])+"「无明」"NOR",缓缓向$n推出",
"force" : 170,
"dodge" : 5,
"damage": 100,
"lvl" : 30,
"skill_name" : "无明",
"damage_type" : "瘀伤"
]),
([ "action" : "$N双掌虚含,掌缘下沉,一式"+(order[random(13)])+"「无明」"NOR",缓缓向$n推出",
"force" : 270,
"dodge" : 5,
"damage": 220,
"lvl" : 60,
"skill_name" : "无明",
"damage_type" : "瘀伤"
]),
([ "action" : "$N一臂前伸,一臂后指,一式"+(order[random(13)])+"「无常」"NOR",攻向$n的身前身后",
"force" : 320,
"dodge" : 10,
"damage": 115,
"lvl" : 80,
"skill_name" : "无常",
"damage_type" : "瘀伤"
]),
([ "action" : "$N一式"+(order[random(13)])+"「刹那」"NOR",两手十指虚点$n的全身三十六道要穴",
"force" : 380,
"dodge" : 25,
"damage": 225,
"lvl" : 90,
"skill_name" : "刹那",
"damage_type" : "瘀伤"
]),
([ "action" : "$N两目内视,双手内笼,一式"+(order[random(13)])+"「不动击」"NOR",四面八方响起震人心魄的
龙吟",
"force" : 450,
"dodge" : 15,
"damage": 135,
"lvl" : 100,
"skill_name" : "不动击",
"damage_type" : "瘀伤"
]),
([ "action" : "$N似笑非笑,双拳无形无定,一式"+(order[random(13)])+"「影分生」"NOR",骤然击向$n的前胸",
"force" : 530,
"dodge" : 20,
"damage": 250,
"lvl" : 60,
"skill_name" : "影分生",
"damage_type" : "瘀伤"
]),
(["action" :"$N双臂一挥,第一式"+(order[random(13)])+"「影舞」"NOR"打出,以通臂之势,拳消力不消,劲风直逼$n而去",
"force" : 150,
"dodge" : 15,
"damage": 215,
"lvl" : 5,
"skill_name" : "影舞",
"damage_type" : "瘀伤"
]),
(["action" :"$N躬腰曲背,左臂一抡,架起一道气墙,接着右手握拳,对着$n,一招"+(order[random(13)])+"「山岗」"NOR"穿墙而出",
"force" : 200,
"dodge" : 110,
"damage": 215,
"lvl" : 15,
"skill_name" : "山岗",
"damage_type" : "瘀伤"
]),
(["action" :"$N一个马步式"+(order[random(13)])+"「龙椎旋」"NOR",双拳凝力,跟着两臂相并,对准$n$l一式挥出,劲力异常",
"force" : 220,
"dodge" : 115,
"damage": 115,
"lvl" : 25,
"skill_name" : "龙椎旋",
"damage_type" : "瘀伤"
]),
(["action" :"$N使出一招"+(order[random(13)])+"「受流」"NOR",双臂连连挥动,拳风伴着口中的狮子吼,如猛兽下山般袭向$n",
"force" : 240,
"dodge" : 120,
"damage": 215,
"lvl" : 45,
"skill_name" : "受流",
"damage_type" : "瘀伤"
]),
(["action" :"$N单臂抡起一式"+(order[random(13)])+"「直式」"NOR"打出,接着又是一拳相随,后浪推前浪,两波劲力合击$n",
"force" : 260,
"dodge" : 115,
"damage": 215,
"lvl" : 65,
"skill_name" : "直式",
"damage_type" : "瘀伤"
]),
(["action" :"$N挥出数拳,正当$n质疑这花拳之势时,一股劲风爆出,正对$p胸口,是招虚实的"+(order[random(13)])+"「必至」"NOR"",
"force" : 280,
"dodge" : 110,
"damage": 115,
"lvl" : 75,
"skill_name" : "必至",
"damage_type" : "瘀伤"
]),
(["action" :"$N口颂佛经,打出一招"+(order[random(13)])+"「斜式」"NOR",直轰$n前胸,拳风至刚至阳,正大光明,不带丝毫阴气",
"force" : 300,
"dodge" : 115,
"damage": 215,
"lvl" : 85,
"skill_name" : "斜式",
"damage_type" : "瘀伤"
]),
(["action" :"只见$N合十而立,以这"+(order[random(13)])+"「伏式」"NOR"一招为本,以身为拳,劲力布满全身,重重压向$n",
"force" : 450,
"dodge" : 115,
"damage": 215,
"lvl" : 105,
"skill_name" : "伏式",
"damage_type" : "瘀伤"
]),
});
int valid_enable(string usage) { return usage=="cuff" || usage=="unarmed" ||usage=="parry"; }
int valid_combine(string combo) { return combo=="enmeiryu"; }
int valid_learn(object me)
{
if (me->query_temp("weapon") || me->query_temp("secondary_weapon"))
return notify_fail("练喧哗流拳法必须空手。\n");
if ((int)me->query_skill("aikido", 1) < (int)me->query_skill("xuanhualiu-quanfa", 1))
return notify_fail("你的空手道火候不够,无法学。\n");
if ((int)me->query_skill("shayi-xinfa", 1) < 10)
return notify_fail("你的杀意心法火候不够,无法学喧哗流拳法。\n");
if ((int)me->query("max_neili") < 50)
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"];
}
mixed hit_ob(object me, object victim, int damage_bonus, int factor)
{
int lvl;
int flvl;
string msg;
int level, jiali, time,level2;
object weapon;
lvl = me->query_skill("shayi-xinfa", 1);
flvl = me->query("jiali");
if (me->query_skill_mapped("force") == "shayi-xinfa" && lvl > 300 && random(8)==0)
{
flvl=random(lvl)*3+150;
msg = HIR"「二重劲!」$N以极快速的连击,在第一击后,$n没产生抵抗力时给予第二击! \n"NOR;
if (random(3)==0) msg = HIR"「隔空击物!」。$N将二重劲的威力传至远方攻击的$n,用以弥补远距离攻击的不足 。\n"NOR;
if (random(3)==1) msg = HIR"「喷射火焰!」。$N胃装油袋,用火石制的假牙点火喷出火焰,$n被极大的火焰打中!! \n"NOR;
if (random(3)==2) msg = HIR"「仙鹤飞腿!」。$N使出丑鬼直接传授的拳法之一踢向$n! 这踢法已独创一格!!\n"NOR;
if (victim->query("qi") > flvl)
{
victim->start_busy(2+random(3));
victim->add("qi",-flvl);
victim->add("eff_qi",-flvl);
}
return msg;
}
weapon = me->query_temp("weapon");
level = (int) me->query_skill("unarmed",1);
level2= (int) me->query_skill("shayi-xinfa",1);
jiali = me->query("jiali");
if (!me) return;
if (!victim) return;
if (!level2) return;
if (!jiali) jiali=10;
if( damage_bonus > 50 && random(level2)>150 ) {
victim->receive_wound("qi", (random(jiali)+100));
return RED"只见$n$l上鲜血直流,已被无形拳劲切了开来!\n"NOR;
}
}
mapping query_action(object me, object weapon)
{
int i, level;
object ob;
ob = me->select_opponent();
if (!ob) {
for(i = sizeof(action); i > 0; i--)
if(level > action[i-1]["lvl"])
return action[NewRandom(i, 20, level/5)];
}
if (!me) {
for(i = sizeof(action); i > 0; i--)
if(level > action[i-1]["lvl"])
return action[NewRandom(i, 20, level/5)];
}
level = (int) me->query_skill("xuanhualiu-quanfa",1)/10;
if (!ob) return action[NewRandom(i, 20, level/5)];
if ( me->query_skill_mapped("unarmed") == "xuanhualiu-quanfa"
&& ! me->query_temp("weapon")
&& !me->is_busy()
&&living(ob)
&& !me->query_temp("dsauto")
&& !me->query_temp("sc_hama")
&& random(me->query_skill("xuanhualiu-quanfa",1))> 180
)
{
message_vision(HIW"\n「二重劲!」$N以极快速的连击,在第一击后,$n没产生抵抗力时给予第二击! \n"NOR, me,ob);
me->set_temp("dsauto",1);
me->add_temp("apply/attack", (level*2));
me->add_temp("apply/damage", (level*4));
if (random(2)==0) ob->start_busy(3);
COMBAT_D->do_attack(me, ob, me->query_temp("weapon"));
me->add_temp("apply/attack", -(level*2));
me->add_temp("apply/damage", -(level*4));
me->delete_temp("dsauto");
}
for(i = sizeof(action); i > 0; i--)
if(level > action[i-1]["lvl"])
return action[NewRandom(i, 20, level/5)];
}
int practice_skill(object me)
{
if ((int)me->query_skill("shayi-xinfa", 1) < 30)
return notify_fail("你的杀意心法火候不够。\n");
if ((int)me->query("qi") < 70)
return notify_fail("你的体力太低了。\n");
if ((int)me->query("neili") < 70)
return notify_fail("你的内力不够练喧哗流拳法。\n");
me->receive_damage("qi", 50);
me->add("neili", -30);
return 1;
}
string perform_action_file(string action)
{
return __DIR__"xuanhualiu-quanfa/" + action;
}
|