case SI_CHOKE:
if ( dstsd ) {
if ( rnd()%100 < 10 ) {
int duration = 8 - distance_bl(src, bl);
sc_start2(src, bl, type, 100, skill_lv, src->id, duration * 1000);
break;
}
} else if ( dstmd ) {
int rate = 6 * skill_lv;
if ( sd && !sd->sc.data[SC_SOULLINK] )
status_zap(src, sstatus->max_hp * 5 / 100, 0); //Reduce 5% HP per cast on mobs.
if ( is_boss(bl) )
rate /= 3;
if ( status_get_max_hp(src) * 4 < status_get_max_hp(bl) ) {
if ( rnd() % 100 < rate ) {
status_fix_damage(src, bl, status_get_max_hp(src) * 4, clif->damage(bl, bl, 0, 0, status_get_max_hp(src) * 4, 0, 0, 0));
clif->specialeffect(bl, 372, AREA);
break;
}
} else if ( sc_start(src, bl, SC_COMA, rate, skill_lv, 1000) ) {
clif->specialeffect(bl, 372, AREA);
break;
}
}
status_zap(bl, status_get_max_hp(bl) * 2 * skill_lv / 100, 0);
sc_start(src, bl, SC_DEC_AGI, 2 * skill_lv, skill_lv, 5000);
clif->skill_nodamage(src, bl, skill_id, skill_lv, 1);
break;