|
|
发表于 2010-8-2 17:55:52
|
显示全部楼层
if(living(victim)
&& !me->query_temp("hit_ob_hit")
&& !victim->query_temp("no_hit_ob_hit")
&& damage > 0){
em = 0;
if(!victim->is_busy()) {
if( martial_skill = victim->query_skill_mapped("dodge") ) {
foo = SKILL_D(martial_skill)->ob_hit(me, victim, damage);
if( stringp(foo) )
message_vision(adj_msg(foo, limb, weapon, action, attack_skill), me, victim);
else if (foo) damage += foo;
else em = 1;
}
}
else em = 1;
if( (martial_skill = victim->query_skill_mapped("parry")) && em == 1) {
foo = SKILL_D(martial_skill)->ob_hit(me, victim, damage);
if( stringp(foo) )
message_vision(adj_msg(foo, limb, weapon, action, attack_skill), me, victim);
else if (foo) damage += foo;
else em = 2;
}
if( (martial_skill = victim->query_skill_mapped("force")) ) {
foo = SKILL_D(martial_skill)->ob_hit(me, victim, damage);
if( stringp(foo) )
message_vision(adj_msg(foo, limb, weapon, action, attack_skill), me, victim);
else if(intp(foo) ) damage += foo;
}
}
|
|
|