📄 longshan.c
字号:
// longshan 龙闪降
#include <ansi.h>
#include <skill.h>
#include <weapon.h>
#include <combat.h>
#include "/kungfu/skill/eff_msg.h";
inherit F_SSERVER;
int perform(object me, object target)
{
object weapon, ob;
string msg,dodge_skill;
int extra,damage,p;
extra = me->query_skill("feitian-yujianliu",1);
if( !target ) target = offensive_target(me);
if( !target
|| !target->is_character()
|| !me->is_fighting(target) )
return notify_fail("只能在战斗中使用。\n");
if (!objectp(weapon = me->query_temp("weapon"))
|| (string)weapon->query("skill_type") != "blade")
return notify_fail("你使用的武器不对。\n");
if(me->is_busy())
return notify_fail("你现在没空!!\n");
if( (int)me->query("neili") < 2000 )
return notify_fail("你的内力不够。\n");
if( (int)me->query("neili") < me->query("max_neili")/7+200 )
return notify_fail("你的内力不够。\n");
if( !wizardp(me) &&(int)me->query_skill("xuanhualiu-quanfa", 1) < 500 )
return notify_fail("你的本门外功不够!不能贯通使用!\n");
if(!wizardp(me) && (int)me->query_skill("feitian-yujianliu", 1) < 500 )
return notify_fail("你的本门外功不够高!不能贯通使用!\n");
if(!wizardp(me) && (int)me->query_skill("shayi-xinfa", 1) < 500 )
return notify_fail("你的本门内功不够高!不能贯通使用!\n");
if(!wizardp(me) && (int)me->query_skill("jiuyin-zhengong", 1) )
return notify_fail("你的杂学太多,无法对本门武功贯通使用!\n");
if (!wizardp(me) && !me->query("guard/flag"))
return notify_fail("你的江湖经验还不够,无法对本门武功贯通使用!\n");
if (!wizardp(me) && !me->query("guard/ok"))
return notify_fail("你还没有通过华山论剑! 无法对本门武功贯通使用!\n");
if ( !wizardp(me) && me->query_skill_mapped("force") != "shayi-xinfa")
return notify_fail("不使用本门内功,如何使用本门绝学!\n");
msg = HBWHT "$N贯通飞天御剑流武学,使出了御剑流的绝学之精髓!\n" NOR;
me->add("neili", -me->query("max_neili")/7);
message_vision(msg, me, target);
extra = me->query_skill("feitian-yujianliu",1) / 15;
extra += me->query_skill("feitian-yujianliu",1) /15;
me->add_temp("apply/attack", 100);
me->add_temp("apply/damage", extra*4);
message_vision(RED"$N本来死灰色的眼睛中突然出现了生的光彩$n。\n"NOR,me,target);
msg = HIR "$N速度突然加快!向九个方使出了九种不同的招术! $n尽然感到无法防御和躲避!!\n" NOR;
message_vision(msg, me, target);
msg = HIG "壹!唐竹!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
msg = HIC "贰!袈裟斩!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
msg = HIB "叁!逆袈裟!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
msg = HIY "肆!左刺!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
msg = HIR "伍!右刺!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
msg = HIM "陆!左切上!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
target->receive_wound("qi",random((int)me->query_skill("shayi-xinfa",1)));
msg = HIW "柒!右切上!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
target->receive_wound("qi",random((int)me->query_skill("shayi-xinfa",1)));
msg = CYN "捌!逆风!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
target->receive_wound("qi",random((int)me->query_skill("shayi-xinfa",1)));
msg = BLU "玖!刺突剑!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
target->receive_wound("qi",random((int)me->query_skill("shayi-xinfa",1)));
me->add_temp("apply/attack", -100);
me->add_temp("apply/damage", -extra*4);
me->start_busy(4);
weapon->unequip();
msg = HIW "\n$N突然全身骨骼作响打出一拳,脸上一阵红色,全身好象有使不完的力量一样!\n 一拳打出,拳风直逼$n而去!\n"NOR;
if (random(me->query_skill("force")) > target->query_skill("force") /3
|| random(me->query("combat_exp")) > target->query("combat_exp")/3){
target->start_busy(1);
me->add("neili", -200);
me->add("jing", -10);
damage = (int)me->query_skill("xuanhualiu-quanfa", 1);
damage = damage*2 + random(damage);
if(me->query("neili") > target->query("neili")*2 ) damage += random(damage);
target->receive_damage("qi", damage/2);
target->receive_wound("qi", damage/3);
p = (int)target->query("qi")*100/(int)target->query("max_qi");
msg += damage_msg(damage, "内伤");
msg += "( $n"+eff_status_msg(p)+" )\n";
call_out("perform2", 0, me, target, p);
}
else {
target->start_busy(1);
me->add("neili", -100);
tell_object(target, HIG"你但觉一股强大至极的力道扑面而来,你知道不妙,连忙跃开数尺。\n" NOR);
dodge_skill = target->query_skill_mapped("dodge");
if( !dodge_skill ) dodge_skill = "dodge";
msg += SKILL_D(dodge_skill)->query_dodge_msg(target, 1);
}
message_vision(msg, me, target);
return 1;
}
int perform2(object me, object target, int p)
{
int damage;
string msg, dodge_skill;
if (!me)
{
return notify_fail("你已经断线了。\n");
}
if (!target)
{
me->delete_temp("ft_hama");
return notify_fail("敌人已经不在了。\n");
}
if(!living(target))
return notify_fail("对手已经不能再战斗了。\n");
if( (int)me->query("neili", 1) < 500 )
return notify_fail("你待要再发一拳,却发现自己的内力不够了!\n");
msg = RED "\n「二重劲!」$N左拳劲力未消,右拳也跟着打出。\n 在$n没有产生抵抗力时给予第二击,拳风排山倒海般涌向$n!\n"NOR;
if (random(me->query_skill("force")) > target->query_skill("force") / 3 &&
me->query_skill("shayi-xinfa", 1) > 199 ){
target->start_busy(1);
me->add("neili", -100);
me->add("jing", -20);
damage = (int)me->query_skill("xuanhualiu-quanfa", 1);
damage = damage*3 + random(damage)*2;
if(me->query("neili") > target->query("neili")*2 ) damage += random(damage);
target->receive_damage("qi", damage/2);
target->receive_wound("qi", damage/3);
p = (int)target->query("qi")*100/(int)target->query("eff_qi");
msg += damage_msg(damage, "内伤");
msg += "( $n"+eff_status_msg(p)+" )\n";
call_out("perform3", 0, me, target, p);
}
else
{
me->add("neili", -100);
tell_object(target, HIG"你喘息未定,抵抗力还未产生,只好跃开数尺,狼狈地避开。\n" NOR);
dodge_skill = target->query_skill_mapped("dodge");
if( !dodge_skill ) dodge_skill = "dodge";
msg += SKILL_D(dodge_skill)->query_dodge_msg(target, 1);
}
message_vision(msg, me, target);
return 1;
}
int perform3(object me, object target, int p)
{
int damage;
string msg, dodge_skill;
if (!me)
{
return notify_fail("你已经断线了。\n");
}
if (!target)
{
me->delete_temp("ft_hama");
return notify_fail("敌人已经不在了。\n");
}
if(!living(target))
return notify_fail("对手已经不能再战斗了。\n");
if( (int)me->query("neili", 1) < 700 )
return notify_fail("你待要再发一拳,却发现自己的内力不够了!\n");
msg = HIR "\n「三重劲!」$N全身骨骼一阵爆响,拼尽毕生功力使出了喧哗流拳法的终极绝技。\n $n连同身前方圆三丈全在「三重劲!」劲力笼罩之下!\n"NOR;
if (random(me->query_skill("force")) > target->query_skill("force") / 3 &&
me->query_skill("xuanhualiu-quanfa", 1) > 249 )
{
target->start_busy(random(3));
me->add("neili", -300);
me->add("jing", -30);
damage = (int)me->query_skill("xuanhualiu-quanfa", 1);
damage = damage*5 + random(damage)*2;
if(me->query("neili") > target->query("neili")*2 ) damage += random(damage);
target->receive_damage("qi", damage);
target->receive_wound("qi", damage/2);
p = (int)target->query("qi")*100/(int)target->query("eff_qi");
msg += damage_msg(damage, "瘀伤");
msg += "( $n"+eff_status_msg(p)+" )\n";
} else
{
me->start_busy(4);
me->add("neili", -100);
target->add("jing", -100);
tell_object(target, HIG"你用尽全身力量向右一纵一滚,摇摇欲倒地站了起来,但总算躲开了这致命的一击!\n" NOR);
dodge_skill = target->query_skill_mapped("dodge");
if( !dodge_skill ) dodge_skill = "dodge";
msg += SKILL_D(dodge_skill)->query_dodge_msg(target, 1);
}
message_vision(msg, me, target);
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -