|
LPC代码: [Copy to clipboard]
// /kungfu/skill/xuantie-jianfa/shipo.c 石破天惊
#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");
}
建议巫师给xtjf 加一个这样的pfm吧。。。。 |
|