Jump to content
  • 0

Requesting for A Talisman Effect Script


Question

Posted (edited)

Good day guys!


I can't seem to search( spend like 45 minutes of searching ) for any related topics for my scripts so yea can you help me out guys

 

 

Rogue Talisman:

  • Increase the damage dealt from Double Strafe by 2%
  • You can divest through Full Protection by consuming Glistening Coat for each attempt ( only when the target has full protection )
Edited by Quick

7 answers to this question

Recommended Posts

Posted

On your src/map/battle.c

Find :

case MA_DOUBLE:
                    skillratio += 10*(skill_lv-1);

Add below : 

if (sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE)
                        skillratio += 2;

 

On your 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 < 20
             &&
            ( 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;
            }
        }

Note that rand()%100 < 20 is 20% chance. Remove them if you want. Hope this helps

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.   Paste as plain text instead

  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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...