Jump to content
  • 0
rans

FCP debuff Strip

Question

Anyone can help me making the Strip remove by FCP buff?
I mean the current effect now is FCP only prevents u from being Strip, what i want is it'l be also Remove the Strip if buff on to you. 
Thanks

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 1

Yup it seems this may be official behavior...it is silly though isn't it. A former dev on my server fixed this for me. If I recall, another issue is if you don't have an item equipped in that area, the skill Chemical Protection cannot be cast.

 

I'm sure he wouldn't mind me sharing this here. Hopefully...

Can't guarantee it will work or if all the code is the same as this was from an old revision.

 

1. Open skill.c

- Find:

         case AM_CP_ARMOR:
         case AM_CP_HELM:
         {
            unsigned int equip[] = { EQP_WEAPON, EQP_SHIELD, EQP_ARMOR, EQP_HEAD_TOP };
            int index;
            if ( sd && (bl->type != BL_PC || (dstsd && pc->checkequip(dstsd, equip[skill_id - AM_CP_WEAPON]) < 0) ||
                (dstsd && equip[skill_id - AM_CP_WEAPON] == EQP_SHIELD && pc->checkequip(dstsd, EQP_SHIELD) > 0
                && (index = dstsd->equip_index[EQI_HAND_L]) >= 0 && dstsd->inventory_data[index]
                && dstsd->inventory_data[index]->type != IT_ARMOR)) ) {
                 clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
                 map->freeblock_unlock(); // Don't consume item requirements
                 return 0;
             }
             clif->skill_nodamage(src, bl, skill_id, skill_lv,
             break;
         }
         case AM_TWILIGHT1:
 

Replace with:

         case AM_CP_ARMOR:
         case AM_CP_HELM:
         {
            if ( sd && (bl->type != BL_PC ) ) {
                 clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);
                 map->freeblock_unlock(); // Don't consume item requirements
                 return 0;
             }
             clif->skill_nodamage(src, bl, skill_id, skill_lv,
            sc_start(src, bl, type, 100, skill_lv, skill->get_time(skill_id, skill_lv)));
            if (tsc->data[SC_PROTECTWEAPON])
                status_change_end(bl, SC_NOEQUIPWEAPON, INVALID_TIMER);
            if (tsc->data[SC_PROTECTSHIELD])
                status_change_end(bl, SC_NOEQUIPSHIELD, INVALID_TIMER);
            if (tsc->data[SC_PROTECTARMOR])
                status_change_end(bl, SC_NOEQUIPARMOR, INVALID_TIMER);
            if (tsc->data[SC_PROTECTHELM])
                status_change_end(bl, SC_NOEQUIPHELM, INVALID_TIMER);
             break;
         }
         case AM_TWILIGHT1:

 

2. Then find:

         // Full Chemical Protection
         case CR_FULLPROTECTION:
         {
            unsigned int equip[] = { EQP_WEAPON, EQP_SHIELD, EQP_ARMOR, EQP_HEAD_TOP };
             int i, s = 0, skilltime = skill->get_time(skill_id, skill_lv);
             for ( i = 0; i < 4; i++ ) {
                if ( bl->type != BL_PC || (dstsd && pc->checkequip(dstsd, equip[i]) < 0) )
                     continue;
                if ( dstsd && equip[i] == EQP_SHIELD ) {
                    short index = dstsd->equip_index[EQI_HAND_L];
                    if ( index >= 0 && dstsd->inventory_data[index] && dstsd->inventory_data[index]->type != IT_ARMOR )
                        continue;
                }
                 sc_start(src, bl, (sc_type)(SC_PROTECTWEAPON + i), 100, skill_lv, skilltime);
                 s++;
             }
             if ( sd && !s ) {
 

And replace with:

         // Full Chemical Protection
         case CR_FULLPROTECTION:
         {
             int i, s = 0, skilltime = skill->get_time(skill_id, skill_lv);
             for ( i = 0; i < 4; i++ ) {
                if ( bl->type != BL_PC )
                     continue;
                 sc_start(src, bl, (sc_type)(SC_PROTECTWEAPON + i), 100, skill_lv, skilltime);
                status_change_end(bl, (sc_type)(SC_NOEQUIPWEAPON + i), INVALID_TIMER);
                 s++;
             }
             if ( sd && !s ) {

Edited by True Zeal

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.