Ronaldo07 Posted May 1, 2012 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 31 Reputation: 5 Joined: 02/26/12 Last Seen: June 18, 2012 Share Posted May 1, 2012 (edited) In post-balance Update, Shadow Form is revealed by Sight & Ruwach, well there is a chance to resist to them. The chance of resistance is like that : (100 - skill level X 10) % so it's (100 - (pc_checkskill(bl,SC_SHADOWFORM)) * 10) / 100; Someone know how to code it? Thanks in advance..... Edited May 1, 2012 by Ronaldo07 Quote Link to comment Share on other sites More sharing options...
malufett Posted May 2, 2012 Group: Members Topic Count: 9 Topics Per Day: 0.00 Content Count: 554 Reputation: 70 Joined: 04/04/12 Last Seen: November 8, 2013 Share Posted May 2, 2012 (edited) @status.c case SC_CONCENTRATE: status_change_end(bl, SC_HIDING, INVALID_TIMER); status_change_end(bl, SC_CLOAKING, INVALID_TIMER); status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER); status_change_end(bl, SC_CAMOUFLAGE, INVALID_TIMER); status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER); +if ( type == SC_SIGHT && tsc && tsc->data[sC__SHADOWFORM] +&& (tsc->data[sC__SHADOWFORM]->val1 * 10) < rnd()%100 ) + status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER); break; case SC_RUWACH: /* ���A�t */ if (tsc && (tsc->data[sC_HIDING] || tsc->data[sC_CLOAKING] || tsc->data[sC_CAMOUFLAGE] || tsc->data[sC_CLOAKINGEXCEED] || tsc->data[sC__INVISIBILITY])) { status_change_end(bl, SC_HIDING, INVALID_TIMER); status_change_end(bl, SC_CLOAKING, INVALID_TIMER); status_change_end(bl, SC_CAMOUFLAGE, INVALID_TIMER); status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER); status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER); if(battle_check_target( src, bl, BCT_ENEMY ) > 0) skill_attack(BF_MAGIC,src,src,bl,AL_RUWACH,1,tick,0); -} +}else if (tsc && tsc->data[sC__SHADOWFORM] +&& (tsc->data[sC__SHADOWFORM]->val1 * 10) < rnd()%100 ) + status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER); break; please report any bugs so we can fix it soon..^^ hope it helps... Edited May 2, 2012 by malufett Quote Link to comment Share on other sites More sharing options...
Ronaldo07 Posted May 2, 2012 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 31 Reputation: 5 Joined: 02/26/12 Last Seen: June 18, 2012 Author Share Posted May 2, 2012 (edited) Nice Works, it works fine, thanks!! The only detail remaining is Sight must check all 2 Seconds so case SC_SIGHT: /* ƒTƒCƒg/ƒ‹ƒAƒt */ case SC_RUWACH: case SC_SIGHTBLASTER: val3 = skill_get_splash(val2, val1); //Val2 should bring the skill-id. val2 = tick/250; - tick = 10; + tick = 2000; break; ? Edited May 2, 2012 by Ronaldo07 Quote Link to comment Share on other sites More sharing options...
malufett Posted May 2, 2012 Group: Members Topic Count: 9 Topics Per Day: 0.00 Content Count: 554 Reputation: 70 Joined: 04/04/12 Last Seen: November 8, 2013 Share Posted May 2, 2012 ah??I don't get it...hehe.. Quote Link to comment Share on other sites More sharing options...
Ronaldo07 Posted May 2, 2012 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 31 Reputation: 5 Joined: 02/26/12 Last Seen: June 18, 2012 Author Share Posted May 2, 2012 Sorry for my english ^^ " Detecting skills such as Ruwach and Sight have a chance of removing Shadow Form. Higher level of Shadow Form have a chance of resisting detecting skills. Shadow Form removal success chance is calculated once every 2 seconds. " Quote Link to comment Share on other sites More sharing options...
malufett Posted May 3, 2012 Group: Members Topic Count: 9 Topics Per Day: 0.00 Content Count: 554 Reputation: 70 Joined: 04/04/12 Last Seen: November 8, 2013 Share Posted May 3, 2012 @status.c case SC_RUWACH: case SC_SIGHTBLASTER: val3 = skill_get_splash(val2, val1); //Val2 should bring the skill-id. -val2 = tick/250; +val2 = tick/2000; tick_time = 10; // [GodLesZ] tick time break; case SC_SIGHT: case SC_RUWACH: case SC_SIGHTBLASTER: map_foreachinrange( status_change_timer_sub, bl, sce->val3, BL_CHAR, bl, sce, type, tick); if( --(sce->val2)>0 ){ -sc_timer_next(250+tick, status_change_timer, bl->id, data); +sc_timer_next(2000+tick, status_change_timer, bl->id, data); return 0; } break; Quote Link to comment Share on other sites More sharing options...
Lighta Posted May 4, 2012 Group: Members Topic Count: 16 Topics Per Day: 0.00 Content Count: 737 Reputation: 216 Joined: 11/29/11 Last Seen: December 20, 2020 Share Posted May 4, 2012 That not the proper fix, you'll endup changing all ruwach, sight and sightblaster here, wich mean instead when using ruwach he will dehide every 250ms hidden he will do it every 2s. Sound good for shadowform but this will also affect normal hide and such => nerfing ruwach. The easier way to do this is to use sc->data[sC__SHADOWFORM]->val4 wich is a 1s timer, if %2==0 dehide, if not do nothing. Mean you could try to dehide every 2s : t[0;1[ => can dehide; t[1;2] => can't etc etc... Only issue now it's since our ruwach will pass 4x in t[0;1[ we should mark if we already attempt it once. Quote Link to comment Share on other sites More sharing options...
Ronaldo07 Posted May 5, 2012 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 31 Reputation: 5 Joined: 02/26/12 Last Seen: June 18, 2012 Author Share Posted May 5, 2012 Yeah, of course we dunno the real information. Is only shadow form checked all 2seconds or all ruwach detects? ^^ I will take maluffet solution for the moment (thanks) cuz i dunno how to code yours. Thanks anyway =) Quote Link to comment Share on other sites More sharing options...
Question
Ronaldo07
In post-balance Update, Shadow Form is revealed by Sight & Ruwach, well there is a chance to resist to them.
The chance of resistance is like that : (100 - skill level X 10) % so it's (100 - (pc_checkskill(bl,SC_SHADOWFORM)) * 10) / 100;
Someone know how to code it? Thanks in advance.....
Edited by Ronaldo07Link to comment
Share on other sites
7 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.