int delay, myblade;
if( !target
|| !target->is_character()
|| !me->is_fighting(target) )
return notify_fail("不在战斗中,露什么破绽?\n");
myblade=(int)me->query_skill("kugu-blade",1);
if(myblade>160) myblade=160; // mon 12/7/98
if(myblade<50)
return notify_fail("你的修为不够深,露破绽给人太危险了。\n");
delay=myblade/16;
if( target->is_busy() )
return notify_fail(target->name() + "目前正自顾不暇,放胆攻击吧!\n");
msg = CYN "$N的招式突然一变,变得全无章法,浑身上下破绽百出,\n";
//change totoal random to half random half ur own value to make the sucessrate more stable
if( ((random(me->query("combat_exp"))*3/4 + (me->query("combat_exp")/4) > (int)target->query("combat_exp")*5/8 ))) {
msg += "$n想攻,去不知道哪个破绽是真的,哪个是假的。\n";
msg += "结果$p被$P攻了个措手不及!\n" NOR;
target->start_busy(delay);
me->start_busy(random(2));
} else {
msg += "可是$p看破了$P的企图,并没有上当。\n" NOR;
me->start_busy(delay/2);
}
message_vision(msg, me, target);
if( !target->is_fighting(me) ) {
if( living(target) ) {
if( userp(target) ) target->fight_ob(me);
else target->kill_ob(me);
}
me->kill_ob(target);
}
perform pozhan 的代码很简单就这么点,
busy时间:
myblade=(int)me->query_skill("kugu-blade",1);
////你的枯骨刀等级
if(myblade>160) myblade=160; // mon 12/7/98
////如果枯骨刀等级超过160部分会被忽略不计,
if(myblade<50)
////最少50级才能用枯骨刀
return notify_fail("你的修为不够深,露破绽给人太危险了。\n");
delay=myblade/16;
target->start_busy(delay);
me->start_busy(random(2));
////如果成功,目标被busy枯骨刀等级/16秒,自己被busy 0-2秒。
me->start_busy(delay/2);
////如果失败,自己被busy枯骨刀等级/32秒
因为myblade 和 delay 都是整数类型变量,除出来的小数会被忽略(不是四舍五入),因此枯骨刀等级读到16的奇数倍比较划算。
成功率:
((random(me->query("combat_exp"))*3/4 + (me->query("combat_exp")/4) > (int)target->query("combat_exp")*5/8 ))
(0-(你的武学)之间随机数)×3/4+(你的武学×1/4) > 目标武学×5/8成功,否则失败
成功率分析:
随机数(your_wx)×3/4+your_wx/4 > target_wx×5/8
如果你的wx和目标的一样,则成功率为50%
如果目标wx是你的80%,则成功率为66.7%
如果目标wx是你的120%,则成功率为33.3%