|
鉴于各位对 beauty 的不满,研究一下美人三招的伤害情况,希望对 沧浪钩法的使用者有所帮助
#include <ansi.h>
inherit F_SSERVER;
int calc_damage(int,int);
int perform(object me, object target)
{
object weapon;
string msg,result;
int i,j,k,total,shen;
if( !target ) target = offensive_target(me);
if( !target || !target->is_character()||!me->is_fighting(target) )
return notify_fail("「美人三招」只能在战斗时使用!\n");
if(me->query("family/master_id")!="hong antong")
return notify_fail("「美人三招」只有拜了教主后才能用!\n");
if( objectp(weapon=me->query_temp("weapon")) ) {
string *ids = weapon->parse_command_id_list();
if (member_array("bishou", ids) == -1)
return notify_fail("你必须拿着匕首才能用「美人三招」!\n");
}
else {
return notify_fail("你必须拿着匕首才能用「美人三招」!\n");
}
if( (int)me->query_skill("huagu-mianzhang", 1) < 150 )
return notify_fail("你的化骨绵掌还不够熟练,不能使用「美人三招」!\n");
if (me->query_skill_mapped("strike") != "huagu-mianzhang")
return notify_fail("只有使用化骨绵掌时才能使用「美人三招」!\n");
if( (int)me->query_skill("shenlong-tuifa", 1) < 150 )
return notify_fail("你的神龙腿法还不够熟练,不能使用「美人三招」!\n");
if (me->query_skill_mapped("leg") != "shenlong-tuifa")
return notify_fail("只有使用神龙腿法时才能使用「美人三招」!\n");
if( (int)me->query_skill("canglang-goufa", 1) < 150 )
return notify_fail("你的沧浪钩法还不够熟练,不能使用「美人三招」!\n");
if (me->query_skill_mapped("hook") != "canglang-goufa")
return notify_fail("只有使用沧浪钩法时才能使用「美人三招」!\n");
if( (int)me->query_skill("dulong-dafa", 1) < 150 )
return notify_fail("你的毒龙大法功力不足,不能用「美人三招」。\n");
if((int)me->query("jingli", 1) < 800)
return notify_fail("你现在精力不足,不能使用「美人三招」!\n");
if((int)me->query("neili", 1) < 1500)
return notify_fail("你现在内力不足,不能使用「美人三招」!\n");
if(me->query("gender") == "男性" )
return notify_fail("不是女人怎么能使用「美人三招」呢!\n");
if( me->query_skill_mapped("force") != "dulong-dafa")
return notify_fail("你现在所使用的内功同毒龙大法向抵触,不能使用「美人三招」。\n");
beauty 使用后,不管是否命中,都busy 对方 1 秒
target->start_busy(1);
me->add("jingli",-100);
me->add("neili",-200);
计算基数 i 基本钩法 + 基本掌法 + 基本腿法 的总数 除以 3
i = (me->query_skill("hook", 1) + me->query_skill("strike", 1) + me->query_skill("leg", 1)) /3 ;
计算基数 j 基本内功 + 基本轻功 + 基本招架 的总数 除以 3
j = (target->query_skill("force", 1) + target->query_skill("dodge", 1) + target->query_skill("parry", 1))/3;
才发现,原来伤害和神也有关系如果 神的绝对值 大于经验, 基数 shen = 经验
shen = me->query("shen");
if ( shen >= 0 && shen > me->query("combat_exp")) shen = me->query("combat_exp");
if ( shen < 0 && - shen > me->query("combat_exp")) shen = - me->query("combat_exp");
基数 k 等于 负的 神除以3000 k 在 1000 内浮动
k = -shen / 3000;
if( k > 1000) k = 1000;
if( k <-1000) k = -1000;
i = i * (1000 + k/3)/1000;
k = 1000 + random(k/2); 最终得出k = 1000 + k/2 的随机数,也就是说,k 最多等于1500 最少等于 1000 但,如果是正神的话, k 就成了 最多等于 1000 最少等于500
if(wizardp(me)) tell_object(me,sprintf("\nattack: %d , parry: %d , shen: %d \n",i,j,k));
msg = HIR"$N乘$n稍稍走神之机,拼尽全力使出苏夫人不传之绝技--「美人三招」"NOR;
命中条件 : 自身经验的随机数 大于对方经验的一半, 还算凑合的命中率
if( random(me->query("combat_exp")) > target->query("combat_exp")/2 ){
me->start_busy(1);
me->add("neili",- random(400)+400 );
me->add("jingli",-random(200)+200);
total = 0;
msg +=MAG "\n\n$N使出一招「贵妃回眸」,身子微曲,纤腰轻扭,左足反踢,向$n小腹踢去,\n"+
"而后顺势反身,左手搂住$n头颈,右手兵刃对准$n后心击去。\n"NOR;
下面的公式来计算伤害,很麻烦啊。。。
化骨绵掌 沧浪钩法 神龙腿法 200 级是个分水岭
200 级以上,伤害公式如下 :
(技能等级 X 4 + (技能等级-200 )X4) X k除以1000
200 级以下,伤害公式如下:
技能等级 X k除以1000 X 5
得到的伤害值再计算, 伤害值除以2 + 伤害值除以2的随机数
如果这个数大于 800 ,则伤害固定为 800 .
也就是说,美人三招每一招最大伤害就是 800.
i = calc_damage(me->query_skill("huagu-mianzhang",1),k);
total += i;
if(wizardp(me)) tell_object(me,sprintf("damage: %d \n",i));
target->receive_damage("qi", i, me );
target->receive_wound("qi", i/3 , me);
result = COMBAT_D->damage_msg(i,"瘀伤");
result = replace_string( result, "$l", "头颈" );
msg += result;
message_vision(msg,me,target);
COMBAT_D->report_status(target, 0);
msg =MAG "\n$N使出一招「小怜横陈」,脑袋蓦地向自己胸口钻落,顺势在地上一个斛斗,\n"+
"从$n胯下钻过,握着兵器的右手成拳击向$n后心。\n"NOR;
i = calc_damage(me->query_skill("canglang-goufa",1),k);
total += i;
if(wizardp(me)) tell_object(me,sprintf("damage: %d \n",i));
target->receive_damage("qi", i, me );
target->receive_wound("qi", i/3 , me);
result = COMBAT_D->damage_msg(i,"刺伤");
result = replace_string( result, "$l", "后心" );
result = replace_string( result, "$w", weapon->query("name") );
msg += result;
message_vision(msg,me,target);
COMBAT_D->report_status(target, 0);
msg =MAG "\n$N使出一招「飞燕回翔」,右足顺势一勾,在兵器上一点,兵器陡地向$N咽喉\n"+
"射过去,$N身子向下一缩,那兵器急射$n胸口。\n"NOR;
i = calc_damage(me->query_skill("shenlong-tuifa",1),k);
total += i;
if(wizardp(me)) tell_object(me,sprintf("damage: %d \n",i));
target->receive_damage("qi", i, me );
target->receive_wound("qi", i/3 , me);
result = COMBAT_D->damage_msg(i,"内伤");
result = replace_string( result, "$l", "胸口" );
msg += result;
message_vision(msg,me,target);
COMBAT_D->report_status(target, 0);
if(wizardp(me)) tell_object(me,sprintf("Total damage: %d \n",total));
me->start_perform(6,"「美人三招」");
}
else {
msg += MAG "\n\n$N使出一招「贵妃回眸」,身子微曲,纤腰轻扭,左足反踢,向$n小腹踢去,\n"+
"而后顺势反身,左手搂住$n头颈,右手兵刃对准$n后心击去。\n"NOR;
msg += "但是$n看破了$N的企图,没有上当,急急忙忙向旁边一闪,躲了过去。\n";
msg +=MAG "\n$N使出一招「小怜横陈」,脑袋蓦地向自己胸口钻落,顺势在地上一个斛斗,\n"+
"从$n胯下钻过,握着兵器的右手成拳击向$n后心。\n"NOR;
msg += "$n吃了一惊,但随即冷静下来,在空中猛一蹬腿踢向$N面门,$N只得松开了手。\n";
msg +=MAG "\n$N使出一招「飞燕回翔」,右足顺势一勾,在兵器上一点,兵器陡地向$N咽喉\n"+
"射过去,$N身子向下一缩,那兵器急射$n胸口。\n"NOR;
msg += "$n被$N制住,但临危不乱,以内力护住要害,同时高高跃起,翻身以头撞地,把$N撞了出去!\n";
message_vision(msg,me,target);
me->start_busy(1+random(3));
me->start_perform(4,"「美人三招」");
}
return 1;
}
int calc_damage(int skill,int k)
{
int i;
if(skill > 200)
i = (200*4 + (skill-200)*4) * k/1000;
else
i = (skill * k/1000) * 5;
i = i/2 + random(i/2);
if(i > 800) i = 800;
return i;
}
总结:
如果想让 beauty 伤害最大化, 就需要提升 神龙腿法 沧浪钩法 化骨绵掌 三项技能 ,还要努力让负神超过经验
这样,使用 beauty 后,总伤害在 2400 以内,还有 800 以内的最大气损伤。
我想,sld 弟子应该可以放弃这个pfm 了。。。。
如果执意要用的话,基本钩法 只能提升普通伤害了,基本腿法 基本掌法 都没有必要补了,只要能提升特殊技能就可以保证 beauty 的伤害了。
用这个pfm 不要求武器,拿个白匕首伤害都相同,只跟技能和神挂钩。
|
评分
-
1
查看全部评分
-
|