Jump to content
  • 0
idLaZ

Single Strip Soul Link

Question

Hi All, anyone can help me if there is a problem in this code as I can't understand what the code is saying.

int d = 0;

// By pass FCP when using single strip skills by 15%(requires Glistening Coat).
if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 75
&&
( 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->inventory.u.items_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(src,bl,SC_STRIPWEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
case RG_STRIPSHIELD:
status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
sc_start(src,bl,SC_STRIPSHIELD,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
case RG_STRIPARMOR:
status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
sc_start(src,bl,SC_STRIPARMOR,100,skill_lv,skill_get_time(skill_id,skill_lv));
case RG_STRIPHELM:
status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
sc_start(src,bl,SC_STRIPHELM,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
}
clif_skill_nodamage( src, bl, skill_id, skill_lv, i );
break;
}
}

 

If you applied this source mod in the latest rA version, does the Stalker (with Soul Link and Glistening Coat) will be able to cast a Strip Helm if he uses a Bow and attack an enemy?

Thank you.

 

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0
4 hours ago, idLaZ said:

Hi,

Here's the scenario:

Stalker with Soul Link + GCoat + Wickebine Tres equipped is attacking a player with FCP. Instead that only Armor will be stripped, the helm is included. It must not. That's what I want to happen. It must only the armor and not the helm too. 

Lacking break on strip armor code.

int d = 0;

// By pass FCP when using single strip skills by 15%(requires Glistening Coat).
if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 75
&&
( 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->inventory.u.items_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(src,bl,SC_STRIPWEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
case RG_STRIPSHIELD:
status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
sc_start(src,bl,SC_STRIPSHIELD,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
case RG_STRIPARMOR:
status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
sc_start(src,bl,SC_STRIPARMOR,100,skill_lv,skill_get_time(skill_id,skill_lv));
break; // <-- this part was missing
case RG_STRIPHELM:
status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
sc_start(src,bl,SC_STRIPHELM,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
}
clif_skill_nodamage( src, bl, skill_id, skill_lv, i );
break;
}
}

 

Edited by Mabuhay
  • Love 1
Link to comment
Share on other sites

  • 0
On 4/22/2019 at 10:46 PM, idLaZ said:

Hi All, anyone can help me if there is a problem in this code as I can't understand what the code is saying.

int d = 0;

// By pass FCP when using single strip skills by 15%(requires Glistening Coat).
if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 75
&&
( 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->inventory.u.items_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(src,bl,SC_STRIPWEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
case RG_STRIPSHIELD:
status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
sc_start(src,bl,SC_STRIPSHIELD,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
case RG_STRIPARMOR:
status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
sc_start(src,bl,SC_STRIPARMOR,100,skill_lv,skill_get_time(skill_id,skill_lv));
case RG_STRIPHELM:
status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
sc_start(src,bl,SC_STRIPHELM,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
}
clif_skill_nodamage( src, bl, skill_id, skill_lv, i );
break;
}
}

 

If you applied this source mod in the latest rA version, does the Stalker (with Soul Link and Glistening Coat) will be able to cast a Strip Helm if he uses a Bow and attack an enemy?

Thank you.

 

Is this still working?

Link to comment
Share on other sites

  • 0
40 minutes ago, Ryo Osaki said:

Is this still working?

mine is working but its kinda hard to help you. cuz when you get help you ignore me didnt even say thank you or give a reputation lol.

Link to comment
Share on other sites

  • 0

Yes this is still working. However, when you equipped a wickebine tres card, it will also strip the helm. I hope someone fix this. @BeWan are you able to help me/us? 😄

Link to comment
Share on other sites

  • 0
1 hour ago, idLaZ said:

Yes this is still working. However, when you equipped a wickebine tres card, it will also strip the helm. I hope someone fix this. @BeWan are you able to help me/us? 😄

if you want to remove the strip helm

you can disable the strip helm skill

or

( 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] ||
tsc->data[SC_CP_HELM] ) ) {

 

Link to comment
Share on other sites

  • 0
9 hours ago, idLaZ said:

Yes this is still working. However, when you equipped a wickebine tres card, it will also strip the helm. I hope someone fix this. @BeWan are you able to help me/us? 😄

apply this in skill.c

 

( 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] ) {

@idLaZ @Ryo Osaki

 

and remove this part

 

case RG_STRIPHELM:
                        status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPHELM, 100, skill_lv, skill_get_time(skill_id, skill_lv) );
                        break;


 

Edited by BeWan
Link to comment
Share on other sites

  • 0
55 minutes ago, BeWan said:

apply this in skill.c

 

( 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] ) {

@idLaZ @Ryo Osaki

 

and remove this part

 

case RG_STRIPHELM:
                        status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPHELM, 100, skill_lv, skill_get_time(skill_id, skill_lv) );
                        break;


 

Can you give me the full patch if you don't mind?

Link to comment
Share on other sites

  • 0
On 11/12/2019 at 12:25 AM, BeWan said:

apply this in skill.c

 

( 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] ) {

@idLaZ @Ryo Osaki

 

and remove this part

 

case RG_STRIPHELM:
                        status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
                        sc_start( NULL, bl, SC_STRIPHELM, 100, skill_lv, skill_get_time(skill_id, skill_lv) );
                        break;


 

Hi, you only disabled permanently the strip helm by doing that. I want it to exclude the Strip Helm when you equip the Wickebine Tres

Link to comment
Share on other sites

  • 0
7 minutes ago, idLaZ said:

Hi, you only disabled permanently the strip helm by doing that. I want it to exclude the Strip Helm when you equip the Wickebine Tres

Wickebine Tres card is for strip armor. and the single strip modification will work only in stalker with soul link.

or

if you want to disable strip in Wickebine Tres card you can change the description/effect of the card

Edited by BeWan
Link to comment
Share on other sites

  • 0

Hi,

Here's the scenario:

Stalker with Soul Link + GCoat + Wickebine Tres equipped is attacking a player with FCP. Instead that only Armor will be stripped, the helm is included. It must not. That's what I want to happen. It must only the armor and not the helm too. 

Link to comment
Share on other sites

  • 0
On 11/13/2019 at 2:36 AM, idLaZ said:

Hi,

Here's the scenario:

Stalker with Soul Link + GCoat + Wickebine Tres equipped is attacking a player with FCP. Instead that only Armor will be stripped, the helm is included. It must not. That's what I want to happen. It must only the armor and not the helm too. 

image.thumb.png.3708e1b48fca42a6e3b96db598ac56fa.png

Here mine Working 100% Helm not included

Stalker SL + 2 Wickebine Even on Metaling Card + Auto Attack Only Weapon Strip

 

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

 

Edited by Bringer
Link to comment
Share on other sites

  • 0
On 11/13/2019 at 7:17 AM, Mabuhay said:

Lacking break on strip armor code.

int d = 0;

// By pass FCP when using single strip skills by 15%(requires Glistening Coat).
if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 75
&&
( 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->inventory.u.items_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(src,bl,SC_STRIPWEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
case RG_STRIPSHIELD:
status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
sc_start(src,bl,SC_STRIPSHIELD,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
case RG_STRIPARMOR:
status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
sc_start(src,bl,SC_STRIPARMOR,100,skill_lv,skill_get_time(skill_id,skill_lv));
break; // <-- this part was missing
case RG_STRIPHELM:
status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
sc_start(src,bl,SC_STRIPHELM,100,skill_lv,skill_get_time(skill_id,skill_lv));
break;
}
clif_skill_nodamage( src, bl, skill_id, skill_lv, i );
break;
}
}

 

Didn't notice this! Thank you so much!

Link to comment
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.   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.



×
×
  • Create New...

Important Information

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