BlazingSpear Posted September 12, 2017 Group: Members Topic Count: 22 Topics Per Day: 0.01 Content Count: 75 Reputation: 9 Joined: 11/27/16 Last Seen: April 11 Share Posted September 12, 2017 (edited) im using this code but it doesnt work any more with latest revision if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 15 && ( 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); switch ( skill_id ) { case RG_STRIPWEAPON: status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER ); sc_start( bl, SC_STRIPWEAPON, 100, skill_lv, d ); break; case RG_STRIPSHIELD: status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER ); sc_start( bl, SC_STRIPSHIELD, 100, skill_lv, d ); break; case RG_STRIPARMOR: status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER ); sc_start( bl, SC_STRIPARMOR, 100, skill_lv, d ); break; case RG_STRIPHELM: status_change_end( bl, SC_CP_HELM, INVALID_TIMER ); sc_start( bl, SC_STRIPHELM, 100, skill_lv, d ); break; } clif_skill_nodamage( src, bl, skill_id, skill_lv, i ); break; } } Edited September 17, 2017 by BlazingSpear Quote Link to comment Share on other sites More sharing options...
0 BlazingSpear Posted September 17, 2017 Group: Members Topic Count: 22 Topics Per Day: 0.01 Content Count: 75 Reputation: 9 Joined: 11/27/16 Last Seen: April 11 Author Share Posted September 17, 2017 bump!! Quote Link to comment Share on other sites More sharing options...
0 Bringer Posted September 17, 2017 Group: Members Topic Count: 162 Topics Per Day: 0.04 Content Count: 748 Reputation: 47 Joined: 03/12/14 Last Seen: Wednesday at 03:29 PM Share Posted September 17, 2017 (edited) sd->status.inventory this is not supported anymore on latest rathena here the working Src Code for Rogue Link Strip // 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(NULL,bl,SC_WEAPON,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_WEAPON,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_WEAPON,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_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; } clif_skill_nodamage( src, bl, skill_id, skill_lv, i ); break; } } Edited September 17, 2017 by Bringer Quote Link to comment Share on other sites More sharing options...
0 BlazingSpear Posted September 18, 2017 Group: Members Topic Count: 22 Topics Per Day: 0.01 Content Count: 75 Reputation: 9 Joined: 11/27/16 Last Seen: April 11 Author Share Posted September 18, 2017 ill try this thanks Quote Link to comment Share on other sites More sharing options...
0 AinsLord Posted October 25, 2017 Group: Members Topic Count: 261 Topics Per Day: 0.08 Content Count: 758 Reputation: 20 Joined: 11/21/15 Last Seen: April 6 Share Posted October 25, 2017 (edited) i got error on this one // 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(NULL,bl,SC_WEAPON,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_WEAPON,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_WEAPON,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_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; } clif_skill_nodamage( src, bl, skill_id, skill_lv, i ); break; } } here's the error skill.c: In function ‘skill_castend_nodamage_id’: skill.c:7678:31: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] || ^ skill.c:7680:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] || ^ skill.c:7681:27: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) { ^ In file included from clan.h:12:0, from pc.h:19, from skill.c:17: skill.c:7690:22: error: ‘SC_WEAPON’ undeclared (first use in this function) sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))) ^ status.h:2316:78: note: in definition of macro ‘sc_start’ c_start(src, bl, type, rate, val1, tick) status_change_start(src,bl,type,100*(r ^ skill.c:7690:22: note: each undeclared identifier is reported only once for each function it appears in sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))) ^ status.h:2316:78: note: in definition of macro ‘sc_start’ c_start(src, bl, type, rate, val1, tick) status_change_start(src,bl,type,100*(r ^ skill.c:7690:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7690:79: error: expected statement before ‘)’ token skill.c:7694:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7694:79: error: expected statement before ‘)’ token skill.c:7698:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7698:79: error: expected statement before ‘)’ token skill.c:7702:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7702:79: error: expected statement before ‘)’ token make[1]: *** [obj/skill.o] Error 1 make[1]: Leaving directory `/root/rathena/src/map' make: *** [map] Error 2 Edited October 25, 2017 by whodhell Quote Link to comment Share on other sites More sharing options...
0 Eros Posted July 16, 2018 Group: Members Topic Count: 76 Topics Per Day: 0.02 Content Count: 202 Reputation: 2 Joined: 07/09/12 Last Seen: June 7, 2023 Share Posted July 16, 2018 Any one? Quote Link to comment Share on other sites More sharing options...
0 Scylla Posted February 21, 2019 Group: Members Topic Count: 47 Topics Per Day: 0.01 Content Count: 374 Reputation: 47 Joined: 03/27/13 Last Seen: April 15 Share Posted February 21, 2019 On 10/25/2017 at 9:05 PM, AinsLord said: i got error on this one // 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(NULL,bl,SC_WEAPON,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_WEAPON,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_WEAPON,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_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); break; } clif_skill_nodamage( src, bl, skill_id, skill_lv, i ); break; } } here's the error skill.c: In function ‘skill_castend_nodamage_id’: skill.c:7678:31: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] || ^ skill.c:7680:28: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] || ^ skill.c:7681:27: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses] skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) { ^ In file included from clan.h:12:0, from pc.h:19, from skill.c:17: skill.c:7690:22: error: ‘SC_WEAPON’ undeclared (first use in this function) sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))) ^ status.h:2316:78: note: in definition of macro ‘sc_start’ c_start(src, bl, type, rate, val1, tick) status_change_start(src,bl,type,100*(r ^ skill.c:7690:22: note: each undeclared identifier is reported only once for each function it appears in sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))) ^ status.h:2316:78: note: in definition of macro ‘sc_start’ c_start(src, bl, type, rate, val1, tick) status_change_start(src,bl,type,100*(r ^ skill.c:7690:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7690:79: error: expected statement before ‘)’ token skill.c:7694:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7694:79: error: expected statement before ‘)’ token skill.c:7698:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7698:79: error: expected statement before ‘)’ token skill.c:7702:79: error: expected ‘;’ before ‘)’ token sc_start(NULL,bl,SC_WEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv))); ^ skill.c:7702:79: error: expected statement before ‘)’ token make[1]: *** [obj/skill.o] Error 1 make[1]: Leaving directory `/root/rathena/src/map' make: *** [map] Error 2 Try this: 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; 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; You can ignore the warnings when compiling. P.S Sorry if I'm necro'ing a thread from 2 years ago, but nobody has answered this yet. 2 Quote Link to comment Share on other sites More sharing options...
0 AinsLord Posted February 25, 2019 Group: Members Topic Count: 261 Topics Per Day: 0.08 Content Count: 758 Reputation: 20 Joined: 11/21/15 Last Seen: April 6 Share Posted February 25, 2019 will this work with the latest rathena git? Quote Link to comment Share on other sites More sharing options...
0 idLaZ Posted February 25, 2019 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 93 Reputation: 6 Joined: 12/10/11 Last Seen: September 28, 2024 Share Posted February 25, 2019 @Scylla thank you! The source mod is working fine with the error. However, how to fix to make the single strip always consume 1 GCoat for every attempt? The current mod is not consuming any gcoat. Quote Link to comment Share on other sites More sharing options...
0 Scylla Posted February 25, 2019 Group: Members Topic Count: 47 Topics Per Day: 0.01 Content Count: 374 Reputation: 47 Joined: 03/27/13 Last Seen: April 15 Share Posted February 25, 2019 3 hours ago, AinsLord said: will this work with the latest rathena git? I'm not really sure but you can try. 47 minutes ago, idLaZ said: @Scylla thank you! The source mod is working fine with the error. However, how to fix to make the single strip always consume 1 GCoat for every attempt? The current mod is not consuming any gcoat. Are you soul linked tho? It'll only consume glistening coats if you're soul linked and if the enemy has chemical protection buff. Quote Link to comment Share on other sites More sharing options...
0 idLaZ Posted February 25, 2019 Group: Members Topic Count: 18 Topics Per Day: 0.00 Content Count: 93 Reputation: 6 Joined: 12/10/11 Last Seen: September 28, 2024 Share Posted February 25, 2019 Hi @Scylla! I have tried it again just now. I forgot to FCP the other character. It all works fine. Thank you! Hi @Scylla, do you know why this mod works in Long Range? I mean when stalker equipped with Strip Armor and Strip Weapon cards using a bow (range), the enemy will be stripped. It must not. It must only works when you cast it using Single Strip skill. Quote Link to comment Share on other sites More sharing options...
0 GGG2020 Posted April 12, 2020 Group: Members Topic Count: 5 Topics Per Day: 0.00 Content Count: 16 Reputation: 0 Joined: 03/19/20 Last Seen: August 19, 2021 Share Posted April 12, 2020 (edited) can someone will make a step by step if how to apply this single strip? wheere ins src ? skill.cpp? battle.cpp? status.cpp? and where line to add?? thanks for the one who can make and i will put reputation on that Edited April 12, 2020 by GGG2020 Quote Link to comment Share on other sites More sharing options...
0 AinsLord Posted April 13, 2020 Group: Members Topic Count: 261 Topics Per Day: 0.08 Content Count: 758 Reputation: 20 Joined: 11/21/15 Last Seen: April 6 Share Posted April 13, 2020 i think this codes wont work on the latest rathena i dunno if theres a newly updated one Quote Link to comment Share on other sites More sharing options...
Question
BlazingSpear
im using this code but it doesnt work any more with latest revision
if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 15 && ( 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); switch ( skill_id ) { case RG_STRIPWEAPON: status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER ); sc_start( bl, SC_STRIPWEAPON, 100, skill_lv, d ); break; case RG_STRIPSHIELD: status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER ); sc_start( bl, SC_STRIPSHIELD, 100, skill_lv, d ); break; case RG_STRIPARMOR: status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER ); sc_start( bl, SC_STRIPARMOR, 100, skill_lv, d ); break; case RG_STRIPHELM: status_change_end( bl, SC_CP_HELM, INVALID_TIMER ); sc_start( bl, SC_STRIPHELM, 100, skill_lv, d ); break; } clif_skill_nodamage( src, bl, skill_id, skill_lv, i ); break; } }
Link to comment
Share on other sites
12 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.