diff options
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/map/status.c b/src/map/status.c index 64c591b3b..fb843da0c 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -782,6 +782,8 @@ void initChangeTables(void) { add_sc( NPC_WIDE_DEEP_SLEEP , SC_DEEP_SLEEP ); add_sc( NPC_WIDESIREN , SC_SIREN ); + set_sc_with_vfx( GN_ILLUSIONDOPING , SC_ILLUSIONDOPING , SI_ILLUSIONDOPING , SCB_HIT ); + // Storing the target job rather than simply SC_SOULLINK simplifies code later on. SkillStatusChangeTable[SL_ALCHEMIST] = (sc_type)MAPID_ALCHEMIST, SkillStatusChangeTable[SL_MONK] = (sc_type)MAPID_MONK, @@ -4749,8 +4751,10 @@ static signed short status_calc_hit(struct block_list *bl, struct status_change hit -= hit * sc->data[SC__GROOMY]->val3 / 100; if(sc->data[SC_FEAR]) hit -= hit * 20 / 100; - if (sc->data[SC_VOLCANIC_ASH]) + if(sc->data[SC_VOLCANIC_ASH]) hit /= 2; + if(sc->data[SC_ILLUSIONDOPING]) + hit -= hit * (5 + sc->data[SC_ILLUSIONDOPING]->val1) / 100; //custom return (short)cap_value(hit,1,SHRT_MAX); } @@ -6712,11 +6716,6 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val return 0; case SC_INC_AGI: - if(sd && pc_issit(sd)){ - pc->setstand(sd); - clif->standing(&sd->bl); - } - case SC_CONCENTRATION: case SC_SPEARQUICKEN: case SC_TRUESIGHT: @@ -7338,11 +7337,9 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val break; case SC_EDP: // [Celest] val2 = val1 + 2; //Chance to Poison enemies. + val3 = 50*(val1+1); //Damage increase (+50 +50*lv%) #ifdef RENEWAL_EDP - val3 = 50*(val1+3); val4 = 100 * ((val1 + 1)/2 + 2); - #else - val3 = 50*(val1+1); //Damage increase (+50 +50*lv%) #endif if( sd )//[Ind] - iROwiki says each level increases its duration by 3 seconds tick += pc->checkskill(sd,GC_RESEARCHNEWPOISON)*3000; @@ -11085,6 +11082,9 @@ int status_change_clear_buffs (struct block_list* bl, int type) continue; sc->data[i]->val2 = 0; break; + default: + if(type&4) + continue; } status_change_end(bl, (sc_type)i, INVALID_TIMER); } |