Jump to content
  • 0

Single Strip Soul Link


Question

Posted

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.

 

  • Upvote 1

17 answers to this question

Recommended Posts

  • 1
Posted (edited)
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
  • Upvote 1
  • Love 1
  • 0
Posted
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?

  • 0
Posted
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.

  • 0
Posted
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] ) ) {

 

  • 0
Posted (edited)
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
  • 0
Posted
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?

  • 0
Posted
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

  • 0
Posted (edited)
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
  • 0
Posted

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. 

  • 0
Posted (edited)
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
  • 0
Posted
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!

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