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;