case SC_STRIPACCESSARY: location = EQP_ACC; break; } //Special message when trying to use strip on FCP [Jobbie] if( sd && skill_id == ST_FULLSTRIP && tsc && tsc->data[SC_PROTECTWEAPON] && tsc->data[SC_PROTECTHELM] && tsc->data[SC_PROTECTARMOR] && tsc->data[SC_PROTECTSHIELD]) { clif->gospel_info(sd, 0x28); break; } // By pass FCP when using single strip skills by 15%(requires Glistening Coat). if ( sd && tsc && sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_ROGUE && rand()%100 < 15 && ( skill_id == RG_STRIPWEAPON && tsc->data[SC_PROTECTWEAPON] || skill_id == RG_STRIPSHIELD && tsc->data[SC_PROTECTSHIELD] || skill_id == RG_STRIPARMOR && tsc->data[SC_PROTECTARMOR] || skill_id == RG_STRIPHELM && tsc->data[SC_PROTECTHELM] ) ) { int item_id = 7139; // Glistening Coat int ii; ARR_FIND( 0, MAX_INVENTORY, ii, sd->status.inventory[ii].nameid == item_id ); if ( ii < MAX_INVENTORY ) { pc->delitem( sd, ii, 1, 0, 0, LOG_TYPE_CONSUME); switch ( skill_id ) { case RG_STRIPWEAPON: status_change_end( bl, SC_PROTECTWEAPON, INVALID_TIMER ); sc_start( NULL, bl, SC_NOEQUIPWEAPON, 100, skill_lv, d ); break; case RG_STRIPSHIELD: status_change_end( bl, SC_PROTECTSHIELD, INVALID_TIMER ); sc_start( NULL, bl, SC_NOEQUIPSHIELD, 100, skill_lv, d ); break; case RG_STRIPARMOR: status_change_end( bl, SC_PROTECTARMOR, INVALID_TIMER ); sc_start( NULL, bl, SC_NOEQUIPARMOR, 100, skill_lv, d ); break; case RG_STRIPHELM: status_change_end( bl, SC_PROTECTHELM, INVALID_TIMER ); sc_start( NULL, bl, SC_NOEQUIPHELM, 100, skill_lv, d ); break; } clif->skill_nodamage(src,bl,skill_id,skill_lv,1); break; } } //Attempts to strip at rate i and duration d if( (rate = skill->strip_equip(bl, location, rate, skill_lv, d)) || (skill_id != ST_FULLSTRIP && skill_id != GC_WEAPONCRUSH ) ) clif->skill_nodamage(src,bl,skill_id,skill_lv,rate); //Nothing stripped. if( sd && !rate ) clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); break; }