• 0
Dev Blaze

Stalker bypass FCP

Question

//Special message when trying to use strip on FCP [Jobbie]
        if( sd && skillid == ST_FULLSTRIP && tsc && tsc->data[SC_CP_WEAPON] && tsc->data[SC_CP_HELM] && tsc->data[SC_CP_ARMOR] && tsc->data[SC_CP_SHIELD] )
        {
            clif_gospel_info(sd, 0x28);
            break;
        }
        if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE &&
        ( skillid == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] ||
        skillid == RG_STRIPSHIELD && tsc->data[SC_CP_SHIELD] ||
        skillid == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] ||
        skillid == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) {
        int item_id = 7139; // glisting 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);
        switch ( skillid ) {
        case RG_STRIPWEAPON:
            status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER );
        sc_start( bl, SC_STRIPWEAPON, 1, skilllv, d );
            break;
        case RG_STRIPSHIELD:
            status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
         sc_start( bl, SC_STRIPSHIELD, 1, skilllv, d );
            break;
        case RG_STRIPARMOR:
            status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
        sc_start( bl, SC_STRIPARMOR, 1, skilllv, d );
            break;
        case RG_STRIPHELM:
            status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
        sc_start( bl, SC_STRIPHELM, 1, skilllv, d );
            break;
        }
        clif_skill_nodamage( src, bl, skillid, skilllv, i );
            break;
             }
    }

 

 

 
 
Single strip = any one of these skills
 
strip weapon
 
strip armor
 
strip shield
 
strip helm
 
when a stalker is soullinked he has a 15% chance to bypass FCP and use the skill above
 
Please anyone help me  thank you
Edited by Capuche
BBCode

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

trunk/src/map/skill.c :

 

Find : 

//Special message when trying to use strip on FCP [Jobbie]
        if( sd && skill_id == ST_FULLSTRIP && tsc && tsc->data[SC_CP_WEAPON] && tsc->data[SC_CP_HELM] && tsc->data[SC_CP_ARMOR] && tsc->data[SC_CP_SHIELD])
        {
            clif_gospel_info(sd, 0x28);
            break;
        }

Add below : 

if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 15
             &&
            ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] ||
            skill_id == RG_STRIPSHIELD && tsc->data[SC_CP_SHIELD] ||
            skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] ||
            skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) {
            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_CP_WEAPON, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPWEAPON, 100, skill_lv, d );
                        break;
                    case RG_STRIPSHIELD:
                        status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPSHIELD, 100, skill_lv, d );
                        break;
                    case RG_STRIPARMOR:
                        status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPARMOR, 100, skill_lv, d );
                        break;
                    case RG_STRIPHELM:
                        status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPHELM, 100, skill_lv, d );
                        break;
                }
                clif_skill_nodamage( src, bl, skill_id, skill_lv, i );
                break;
            }
        }

Make sure you recompile your server after you've made the changes.

Share this post


Link to post
Share on other sites
  • 0
On 8/30/2013 at 4:31 AM, Patskie said:

trunk/src/map/skill.c :

 

Find : 

//Special message when trying to use strip on FCP [Jobbie]
        if( sd && skill_id == ST_FULLSTRIP && tsc && tsc->data[SC_CP_WEAPON] && tsc->data[SC_CP_HELM] && tsc->data[SC_CP_ARMOR] && tsc->data[SC_CP_SHIELD])
        {
            clif_gospel_info(sd, 0x28);
            break;
        }

Add below : 

if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 15
             &&
            ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] ||
            skill_id == RG_STRIPSHIELD && tsc->data[SC_CP_SHIELD] ||
            skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] ||
            skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) {
            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_CP_WEAPON, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPWEAPON, 100, skill_lv, d );
                        break;
                    case RG_STRIPSHIELD:
                        status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPSHIELD, 100, skill_lv, d );
                        break;
                    case RG_STRIPARMOR:
                        status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPARMOR, 100, skill_lv, d );
                        break;
                    case RG_STRIPHELM:
                        status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPHELM, 100, skill_lv, d );
                        break;
                }
                clif_skill_nodamage( src, bl, skill_id, skill_lv, i );
                break;
            }
        }

Make sure you recompile your server after you've made the changes.

Is this working in latest rAthena? =( I tried, it gives me error when I recompile

Share this post


Link to post
Share on other sites
  • 0
On 8/30/2013 at 4:31 AM, Patskie said:

trunk/src/map/skill.c :

 

Find : 

//Special message when trying to use strip on FCP [Jobbie]
        if( sd && skill_id == ST_FULLSTRIP && tsc && tsc->data[SC_CP_WEAPON] && tsc->data[SC_CP_HELM] && tsc->data[SC_CP_ARMOR] && tsc->data[SC_CP_SHIELD])
        {
            clif_gospel_info(sd, 0x28);
            break;
        }

Add below : 

if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 15
             &&
            ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] ||
            skill_id == RG_STRIPSHIELD && tsc->data[SC_CP_SHIELD] ||
            skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] ||
            skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) {
            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_CP_WEAPON, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPWEAPON, 100, skill_lv, d );
                        break;
                    case RG_STRIPSHIELD:
                        status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPSHIELD, 100, skill_lv, d );
                        break;
                    case RG_STRIPARMOR:
                        status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPARMOR, 100, skill_lv, d );
                        break;
                    case RG_STRIPHELM:
                        status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPHELM, 100, skill_lv, d );
                        break;
                }
                clif_skill_nodamage( src, bl, skill_id, skill_lv, i );
                break;
            }
        }

Make sure you recompile your server after you've made the changes.

Hi, I get this error when I recompile

Capture.PNG

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now