|
楼主 |
发表于 2010-12-10 15:35:12
|
显示全部楼层
mixed hit_ob(object me, object victim, int damage_bonus) //当攻击敌人时出现
{
// 增加峨嵋剑诀,辅助攻击,概率很低
object weapon;
int i;
weapon = me->query_temp("weapon");
i = me->query_skill("huifeng-jian", 1);
if( !userp(me) && random(2) ) return 0; //npc不出剑诀
if( !weapon || weapon->query("skill_type") != "sword" ) return 0; //没使用武器或武器不是剑不出剑诀攻击
if( i < 300 ) return 0;//回风剑等级小于300不出剑诀攻击
if( !me->query("emei/jianjue") && i < 400 ) return 0;//回风剑等级小于400且没有解开剑诀quest 不出剑诀攻击
if( me->query_temp("jianjue") ) return 0; //正在使用剑诀攻击或 后发先致 不再重复出现
if( me->query_temp("liaoyuan") ) return 0;//pfm liaoyuan 时不出现剑诀攻击
if( damage_bonus < 100 ) return 0;//damage_bonus 这个值小于100时 不出现剑诀攻击
if( !living(victim) ) return 0;//敌人死了不出现剑诀攻击
if( i >= 300 && !random(3)
&& random(me->query_con()) > victim->query_con()/3
&& random(me->query_skill("sword")) > victim->query_skill("parry")/3 ) {//出现机率 回风剑>300 且 随机 3等于0 且 本人剑法大于敌人招架的1/3
if( me->query_skill_prepared("hand") == "jieshou-jiushi"
&& me->query_skill_mapped("hand") == "jieshou-jiushi"
&& me->query_skill("jieshou-jiushi", 1) >= 200 && random(2) ) { //出现用hand攻击机率 激发 截手九式 为 hand 且bei hand 且截手九式大于200级 随机2等于1
message_vision(HIW"$N默念峨嵋剑诀,“"CYN"先以心使身,从人不从己,由己则滞,从人则活。"HIW"”右手猛的运剑回转,左手截手九式随劲而起!"NOR, me);//描述
weapon->unequip();//unwield 武器
me->add_temp("apply/attack", me->query_skill("jieshou-jiushi", 1)/4);//增加命中
COMBAT_D->do_attack(me, victim, 0, 1);//普通攻击一下
me->add_temp("apply/attack", -me->query_skill("jieshou-jiushi", 1)/4);//恢复命中
weapon->wield();//装备武器
} else {不满足hand 攻击条件就是剑法攻击
message_vision(HIW"$N默念峨嵋剑诀,“"HIY"从身能从心,由己仍从人。前进后退,处处恰合。"HIW"”紧接着"+weapon->name()+HIW"猛的回转再次刺出!"NOR, me);//描述
me->set_temp("jianjue", 1);//防止 重复攻击
me->add_temp("apply/attack", me->query_skill("huifeng-jian", 1)/6);//增加命中
COMBAT_D->do_attack(me, victim, me->query_temp("weapon"), random(4)?1:3);//随机4=1出现超级攻击 否则 是普通攻击
me->add_temp("apply/attack", -me->query_skill("huifeng-jian", 1)/6);//恢复命中
me->delete_temp("jianjue");//去掉 防重复攻击标志
}
}
else if( i >= 400 && random(2)
&& random(me->query("combat_exp")) > victim->query("combat_exp")/3
&& random(me->query_skill("sword")) > victim->query_skill("parry")/3
&& random(me->query_con()) > victim->query_str()/3
&& !victim->query_temp("lost_attack") ) {//剑诀 第二种攻击方式 条件是没有满足上一种攻击的条件 时 但 回风剑大于400级 随机2等于1 随机exp>敌人exp的1/3 随机剑法大于敌人招架的1/3 随机根骨大于敌人臂力的 1/3 且敌人没有中过 丢失攻击 的招术
message_vision(HIW"$N默念峨嵋剑诀,“"HBRED+HIW"前后左右,全无定向,后发制人,先发制于人。"NOR+HIW"”顿时剑气纵横,将$n攻个措手不及!\n"NOR, me, victim);\\描述
victim->add_temp("lost_attack", 1+random(3)); //敌人 丢失攻击 1-3回合
return random(me->query_skill("sword"))/3;//这句我不太清楚这个值有什么用 不过是返回 随机剑法1/3
}
return 0;
} |
|