|
发表于 2010-9-2 10:01:25
|
显示全部楼层
可能是比较老的海潮code
类C的语言。看上几眼估计可以知道意思了。
#include <ansi.h>
#include <combat.h>
inherit F_SSERVER;
string *xue_name = ({
"劳宫穴","膻中穴","曲池穴","关元穴","曲骨穴","中极穴","承浆穴","天突穴","百会穴",
"幽门穴","章门穴","大横穴","紫宫穴","冷渊穴","天井穴","极泉穴","清灵穴","至阳穴",
});
int perform(object me, object target)
{
string msg,dodge_skill;
int i,j,busy,exp,texp,skill,tskill,p;
object weapon;
if( me->query("gender") =="男性"){
i = me->query_skill("xuantie-jianfa", 1)/4;
j = me->query_skill("sword", 1)/4;
}
else {
i = me->query_skill("xuantie-jianfa", 1)/6;
j = me->query_skill("sword", 1)/6;
}
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) < 130 )
return notify_fail("你的玄铁剑法还不够娴熟,使不出「海潮汹涌」绝技。\n");
if((int)me->query_skill("yunu-xinjing", 1) < 130 )
return notify_fail("你的玉女心经等级还不够,使不出「海潮汹涌」绝技。\n");
if((int)me->query_skill("force") < 180 )
return notify_fail("你的内功等级不够,不能使用「海潮汹涌」。\n");
if((int)me->query_str() < 33 )
return notify_fail("你的膂力还不够强劲,使不出「海潮汹涌」来。\n");
if( target->query_temp("xtjf/haichao"))
return notify_fail(target->name()+"正自顾不暇,你可以放心地进攻。\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((int)me->query_temp("xinjing"))
return notify_fail("你正在使用「心经」字诀。\n");
if((int)me->query("max_neili") < (me->query_skill("force")+j+200) )
return notify_fail("你现在内力太弱,使不出「海潮汹涌」。\n");
if( me->query("env/玄铁剑法") != "海潮" ){
message_vision(HIB"\n$N微笑不语,将手中的"+weapon->query("name")+HIB"从轻而响,从响而轻,忽寂然无声,忽轰轰之声,向$n席卷而去。\n"NOR,me,target);
me->add_temp("apply/sword", i);
me->add_temp("apply/attack", j);
me->set_temp("xtjf_pfm", 1);
COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 1);
if (present(target,environment(me)) && me->is_fighting(target))
COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 1);
if (present(target,environment(me)) && me->is_fighting(target)){
if( random(me->query("combat_exp",1)) > target->query("combat_exp", 1)/3)
COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 3);
else
COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 1);
}
me->add_temp("apply/sword", -i);
me->add_temp("apply/attack", -j);
if(userp(me))
me->add("neili", -(me->query_skill("force")));
else
me->add("neili", -200);
me->add("jingli", -150);
me->delete_temp("xtjf_pfm");
me->start_perform(5,"「海潮汹涌」");
}
if((int)me->query_skill("xuantie-jianfa", 1) > 150
&&(int)me->query("neili", 1) > (me->query_skill("force")+j)
&& objectp(target)
&& present(target,environment(me))
&& me->is_fighting(target)
&& me->query("env/玄铁剑法") !="汹涌"){
if( me->query("env/玄铁剑法") == "海潮")
message_vision(HIB"\n$N持"+weapon->query("name")+HIB"挟巨浪潮涌之势,剑气形成一个旋转的气涡,向$n笼罩过去。\n"NOR,me,target);
else
message_vision(HIB"\n紧跟着$N持"+weapon->query("name")+HIB"挟巨浪潮涌之势,剑气形成一个旋转的气涡,向$n笼罩过去。\n"NOR,me,target);
if( random(me->query("combat_exp", 1)) > target->query("combat_exp",1) /2
|| me->query("combat_exp", 1) > target->query("combat_exp", 1)*10
|| !living(target)){
message_vision(HIR"结果$n全身被剑气所形成的气涡所笼罩着,只觉得犹如身陷洪涛巨浪,跌跌撞撞。\n"NOR,me,target);
skill = me->query_skill("xuantie-jianfa", 1);
tskill = target->query_skill("dodge", 1);
exp = me->query("combat_exp", 1);
texp = target->query("combat_exp", 1);
busy= 4 + random(skill)/100;
if( busy > 8) busy= 8;
if( exp > texp){
p = texp/100* tskill;
if( p < 1 ) p = 1;
busy = busy * exp/100 * skill/p;
}
if( busy > 15) busy = 15;
if( me->query("env/玄铁剑法") == "海潮")
target->start_busy(busy);
else
target->start_busy(2 + random(2));
target->set_temp("xtjf/haichao", 1);
me->add("neili", -i*3);
if (present(target,environment(me)) && me->is_fighting(target))
COMBAT_D->do_attack(me, target, me->query_temp("weapon"), 1);
me->start_perform(4, "「海潮汹涌」");
call_out("remove_effect", 1, me, target);
}
else {
me->start_busy(random(2));
me->start_perform(3,"「海潮汹涌」");
me->add("neili", -100);
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;
} |
|