Jump to content
  • 0

how to bypass FCP w/Single Strip using rathena


16 answers to this question

Recommended Posts

Posted

where can I find this pcdelitem

Index: skill.c

===================================================================

--- skill.c (revision 14826)

+++ skill.c (working copy)

@@ -4507,6 +4507,24 @@

//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] )

{

+ if ( sd->sc.data[sC_SPIRIT] && sd->sc.data[sC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 30 ) {

+ int item_id = 501; // red potion

+ 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);

+ status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER );

+ status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );

+ status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );

+ status_change_end( bl, SC_CP_HELM, INVALID_TIMER );

+ sc_start( bl, SC_STRIPWEAPON, 100, skilllv, d );

+ sc_start( bl, SC_STRIPSHIELD, 100, skilllv, d );

+ sc_start( bl, SC_STRIPARMOR, 100, skilllv, d );

+ sc_start( bl, SC_STRIPHELM, 100, skilllv, d );

+ clif_skill_nodamage( src, bl, skillid, skilllv, i );

+ break;

+ }

+ }

clif_gospel_info(sd, 0x28);

break;

}

should i just change this one

pc_delitem( sd, ii, 1, 0, 0);

to

pc_delitem( sd, x, 1, 0, 0, LOG_TYPE_CONSUME);

Posted (edited)

@MarkZD I'd tried to used and I failed.. it work's on compiling when testing on game

soul link + glistening are both working but when we tried to use single strip to enemy we cannot remove single armor,helm etc..

@cydelion your code is working thanks but still I have problem with the bypass of strip..

Edited by zhen
Posted

Add a skill effect on rogue's soul link

Can bypass FCP with single strip(strip helm, shield, armor, weapon) while consuming 1 Glistening Coat every successful stripped.

thanks hope someone could grant my request.

I did it in the exact way you requested, you didn't say you want it to be 100% chance, the skill has a base chance so it of course will not remove every time.

If you want it to be 100%, remove this piece from the diff:

rnd()%100 < i &&

Posted

You didn't applied the diff correctly.

Look at your skill_strip_equip function, there is:

   if (rnd()%100 >= rate)
   if (rate > -1 && rnd()%100 >= rate)
	 return 0;

But it should be:

   if (rate > -1 && rnd()%100 >= rate)
	 return 0;

Posted

I already fix the diff hmm and try again but is steal cannot bypass do i need to include the eathena diff

//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] ) { if ( sd->sc.data[sC_SPIRIT] && sd->sc.data[sC_SPIRIT]->val2 == SL_ROGUE ) { int item_id = 501; // red potion 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); status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER ); status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER ); status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER ); status_change_end( bl, SC_CP_HELM, INVALID_TIMER ); sc_start( bl, SC_STRIPWEAPON, 100, skilllv, d ); sc_start( bl, SC_STRIPSHIELD, 100, skilllv, d ); sc_start( bl, SC_STRIPARMOR, 100, skilllv, d ); sc_start( bl, SC_STRIPHELM, 100, skilllv, d ); clif_skill_nodamage( src, bl, skillid, skilllv, i ); break; } } clif_gospel_info(sd, 0x28); break; }

Posted

Ok let me help you with this

 

use MarkZD diff file

 

goto src>map>skill.c

 

find this

 

if(sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && skillid != ST_FULLSTRIP)

 

replace that with

if(sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && skill_id != ST_FULLSTRIP)

 

 

 

Tested and working , thanks

Posted

find this

 

if(sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && skillid != ST_FULLSTRIP)
 

replace that with

if(sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && skill_id != ST_FULLSTRIP)

/hmm

Posted

 

find this

 

if(sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && skillid != ST_FULLSTRIP)
 

replace that with

if(sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && skill_id != ST_FULLSTRIP)

/hmm

 

yes ?

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...