📄 jianzhi.c
字号:
//剑指战决
#include <ansi.h>
#include <skill.h>
#include <weapon.h>
#include <combat.h>
inherit F_SSERVER;
#include "/kungfu/skill/eff_msg.h";
int perform(object me, object target)
{
string msg;
int extra;
object weapon,ob;
int damage,p;
if(me->is_busy())
return notify_fail("你现在没空!!\n");
extra = me->query_skill("six-finger",1);
if( !target ) target = offensive_target(me);
if (me->query_temp("weapon") || me->query_temp("secondary_weapon"))
return notify_fail("只能空手使用。\n");
if(me->is_busy())
return notify_fail("你现在没空!!\n");
if( (int)me->query("neili") < 2000 )
return notify_fail("你的内力不够。\n");
if( !target
|| !target->is_character()
|| !me->is_fighting(target) )
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("six-finger", 1) < 500 )
return notify_fail("你的本门外功不够!不能贯通使用!\n");
if( !wizardp(me) &&(int)me->query_skill("yiyang-zhi", 1) < 500 )
return notify_fail("你的本门外功不够!不能贯通使用!\n");
if(!wizardp(me) && (int)me->query_skill("kurong-changong", 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") != "kurong-changong")
return notify_fail("不使用本门内功,如何使用本门绝学!\n");
msg = HBWHT "$N贯通大理武学,使出了大理的绝学之精髓!\n" NOR;
me->add("neili", -me->query("max_neili")/7);
message_vision(msg, me, target);
me->add_temp("apply/attack",extra);
me->add_temp("apply/damage",extra*3);
weapon = me->query_temp("weapon");
msg = CYN "$N心思涣乱,朝$n隔空遥指了几下,不料却使出了六脉剑法的精髓"HIY"[六脉惊神]"CYN"!" NOR;
message_vision(msg, me, target);
msg = RED "-------------------------------少商剑!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
msg = GRN "-------------------------------商阳剑!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
msg = MAG "-------------------------------中冲剑!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
msg = YEL "-------------------------------关冲剑!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
msg = WHT "-------------------------------少泽剑!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
msg = BLU "-------------------------------少冲剑!" NOR;
COMBAT_D->do_attack(me,target, me->query_temp("weapon"),TYPE_REGULAR,msg);
me->add_temp("apply/attack",-extra);
me->add_temp("apply/damage",-extra*3);
me->add("neili", -500);
me->start_busy(4);
if ((target->query_skill_mapped("force")=="hamagong" ||
target->query_skill_mapped("strike") == "hamagong")){
msg = YEL "\n$N背向$n,凝气于指,一式「阳关三叠」反手缓缓点出,纯阳指力直袭$n胸口!\n" NOR;
if (random(me->query_skill("force",1)) > target->query_skill("force",1) /3
|| random(me->query("combat_exp")) > target->query("combat_exp")/2 ){
target->start_busy(1);
damage = (int)me->query_skill("yiyang-zhi", 1);
// damage = (int)me->query_skill("qiantian-yiyang", 1) +damage;
damage = (int)me->query_skill("kurong-changong", 1) +damage;
damage = random(damage)+550;
target->receive_damage("qi", damage*2);
target->receive_wound("qi", damage);
me->add("neili", -100);
p = (int)target->query("qi")*100/(int)target->query("max_qi");
msg += HIR "$n一见之下,大为失色,发现这似乎正是自己的克星!\n"NOR;
msg += damage_msg(damage, "内伤");
msg += "( $n"+eff_status_msg(p)+" )\n";
}
else {
msg += HIY"$p见这反手点穴似乎正是蛤蟆功的克星,识得厉害,危及之中一个铁板桥,上身向后一倒,艰难的躲过这一招。\n"NOR;
}
}
else{
msg = YEL "\n$N凝气于指,一式「阳关三叠」点出,但听得嗤嗤声响,一股纯阳的内力直袭$n胸口!\n" NOR;
if (random(me->query_skill("parry")) > target->query_skill("parry") / 3)
{
target->start_busy(2);
damage = (int)me->query_skill("yiyang-zhi", 1);
// damage = (int)me->query_skill("qiantian-yiyang", 1) +damage;
damage = (int)me->query_skill("kurong-changong", 1) +damage;
damage = damage + random(damage);
target->receive_damage("qi", damage*2);
target->receive_wound("qi", damage*2);
p = (int)target->query("qi")*100/(int)target->query("max_qi");
msg += damage_msg(damage, "内伤");
msg += "( $n"+eff_status_msg(p)+" )\n";
if(me->query_skill("yiyang-zhi", 1) > 180)
call_out("perform2", 0, me, target);
}
else {
msg += HIY"可是$p一个巧云翻身,远远的躲了开去。\n"NOR;
}
}
message_vision(msg, me, target);
return 1;
}
int perform2(object me, object target)
{
string msg;
if (!me)
{
return notify_fail("你已经断线了。\n");
}
if (!target)
{
me->delete_temp("yyz_hama");
return notify_fail("敌人已经不在了。\n");
}
if (!me || !target) return 0;
if(!living(target))
return notify_fail("对手已经不能再战斗了。\n");
if( (int)me->query("neili", 1) < 600 )
return notify_fail("你待要再出第二指,却发现自己的内力不够了!\n");
msg = YEL "\n接着$N踏前一步,出第二指隔空点向$n胸前“玉堂穴”,认穴竟无厘毫之差!\n"NOR;
if (random(me->query_skill("dodge")) > target->query_skill("dodge") / 3){
msg += HIR "结果一指点中,$n只觉得全身气脉通道阻塞,真气立受干挠!\n"NOR;
target->start_busy(me->query_skill("force",1)/50+2);
//else msg += HIG "结果一指点中,但$n已经全身气脉通道阻塞,看来没有什么效果!\n"NOR;
if((int)me->query_skill("yiyang-zhi", 1) > 249)
call_out("perform3", 0, me, target);
}
else {
target->add("neili", -50);
msg += HIY"\n$p眼看逼无可逼,便也一指点去,两根指尖相碰,$p顺势跳了开去。\n" NOR;
}
message_vision(msg, me, target);
return 1;
}
int perform3(object me, object target)
{
int skill;
string msg;
if (!me)
{
return notify_fail("你已经断线了。\n");
}
if (!target)
{
me->delete_temp("yyz_hama");
return notify_fail("敌人已经不在了。\n");
}
if (!me || !target) return 0;
skill = (int)me->query_skill("yiyang-zhi", 1);
skill = skill/10;
if(!living(target))
return notify_fail("对手已经不能再战斗了。\n");
if( (int)me->query("neili", 1) < 400 )
return notify_fail("你待要再出第三指,却发现自己的内力不够了!\n");
msg = YEL "\n紧跟着$N一阳指第三次点出,以纯阳内力,同时透入$n体内任脉紫宫穴、
阴维脉大横穴、冲脉幽门穴、带脉章门穴和阴跤脉晴明穴!\n"NOR;
if (random(me->query_skill("force")) > target->query_skill("force") / 3){
msg += HIR "$n只觉体内奇经八脉中内息为之一怠,全身气力竟然提不起来了!\n" NOR;
target->add_temp("apply/attack", -100);
target->add_temp("apply/dodge", -100);
target->add_temp("apply/parry", -100);
target->add("neili", -500);
call_out("back", 3 + skill, target);
}
else {
msg += HIY"\n$p喘息未定,见$P指力如狂风般点来,连忙又跃开数尺,狼狈地避开。\n" NOR;
}
message_vision(msg, me, target);
return 1;
}
void back(object target)
{
if (!target) return;
target->add_temp("apply/attack", 100);
target->add_temp("apply/dodge", 100);
target->add_temp("apply/parry", 100);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -