|
ap = COMBAT_D->skill_power(me, "sword", SKILL_USAGE_ATTACK) + me->query("combat_exp")/2;
//ap=攻击数据+1/2经验
dp = COMBAT_D->skill_power(target, "parry", SKILL_USAGE_DEFENSE) + target->query("combat_exp")/2;
//dp=防御数据+1/2经验
ap += me->query_int(1) * me->query_dex(1) * 1000;
//ap=攻击数据+1/2经验+(后天悟性*后天身法*1000)
dp += target->query_int(1) * target->query_con(1) * 1000;
//dp=防御数据+1/2经验+(后天悟性*后天根骨*1000)
if( me->query_skill("taiji-jian", 1) > 550 )
ap += random(ap/4);
//tjj在550级以上后,ap 在 [ap, 1.4ap] 之间随即取值。550lvl 需要经验 16.6m
msg = HIW"\n$N施展出太极剑法中的绕指柔剑,手中"+weapon->name()+HIW"竟似了一条软蛇,弯曲自如,攻势奇诡!\n"NOR;
if ( random( ap + dp ) > dp ) {
// 如果取一个 [0, ap+dp] 的随机值,如果这个数值大于dp 就算命中。也就是说,当 ap=dp时,理论上命中率在50%,ap 越高越好。
msg += HIY"$n不由感到害怕,只感觉前后左右都似有$N攻来,一下子不知道如何是好!\n"NOR;
i=random(2);
target->add_busy(4+i+random(2));
if( !userp(target) ) target->add_busy(random(2));
//命中后,对方的busy 在 4-6 hit 之间,如果对方是npc,效果有加成,busy时间在 4-7 hit之间。
if( target->query_temp("lost_attack") < 1 )
target->add_temp("lost_attack", random(3));
//这个可能是在busy后依旧失去 0-2 hit 普通攻击
me->add("neili", -300);
me->add("jingli", -100);
me->start_perform(3 + i, "「绕指柔剑」");
//命中以后,自己的pfm busy,也就是不能释放pfm的时间是3-4 hit,也就是说,如果命中后,你大部分能够在对方busy时出其他pfm,小部分可能是你能出pfm时,对方也不再busy。
}
else {
dodge_skill = target->query_skill_mapped("dodge");
if( !dodge_skill ) dodge_skill = "dodge";
msg += SKILL_D(dodge_skill)->query_dodge_msg(target, 1);
me->add("neili", -100);
me->add("jingli", -50);
me->start_perform(1+random(2), "「绕指柔剑」");
//如果不中,你有1-2hit 不能发pfm。
}
me->start_busy(1);
//不管中不中,你都busy 1 hit |
|