viewing paste Unknown #19549 | C

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
            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;
        }
Viewed 665 times, submitted by Guest.