剑流星(ster@cq)
头衔:神风堂堂主
      
注册日期: 2003-11-30 |
上次连线: 2004-8-18
|
注册情况: 贵宾注册
|
所属帮派: 联剑风云门长老(7) |
来自哪里: bj |
发贴数量: 1213 |
总信誉分: 100
|
论坛积分: 627 / 1447
|
精华文章: 7篇
|
在线状态:
离线
|
|
有关古墓武功更新
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们能考虑录用
威力你们可以随便调整的 主要是描述和特色
 |
| 
 |
|