Ronaldo07 Posted May 1, 2012 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
malufett Posted May 2, 2012 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
Ronaldo07 Posted May 2, 2012 Author 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
Ronaldo07 Posted May 2, 2012 Author 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
malufett Posted May 3, 2012 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
Lighta Posted May 4, 2012 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
Ronaldo07 Posted May 5, 2012 Author 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
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 Ronaldo077 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.