diff options
author | malufett <malufett.eat.my.binaries@gmail.com> | 2013-07-04 23:22:12 +0800 |
---|---|---|
committer | malufett <malufett.eat.my.binaries@gmail.com> | 2013-07-04 23:22:12 +0800 |
commit | 83e3b8d22acc73aeaafbf2a95e1fb9e6b228a63a (patch) | |
tree | 08c8dc134b36176461531e29c4a5f247937f38e5 /src/map/status.c | |
parent | 38ad0593dd7d6c3357c2a2219fe59122969c84b9 (diff) | |
download | hercules-83e3b8d22acc73aeaafbf2a95e1fb9e6b228a63a.tar.gz hercules-83e3b8d22acc73aeaafbf2a95e1fb9e6b228a63a.tar.bz2 hercules-83e3b8d22acc73aeaafbf2a95e1fb9e6b228a63a.tar.xz hercules-83e3b8d22acc73aeaafbf2a95e1fb9e6b228a63a.zip |
Fixed Bug#7459
-where 'working in progress' state is not cancel in change map/teleport.
Fixed Bug#7265
-where casting AL_INCAGI into chars force them to stand where it now suppose to be.
Fixed Bug#7337
-fixed some skills that deals 'work in progress' state.
Fixed Bug#7467
-fixed compiling warning message.
Renewal Updates
-Temporary fix for skills final damage reduction.
-Updated NJ_KUNAI to its renewal formula.
-Updated/Fixed some interface messages.
-Implemented additional new 3rd job skills(GN_ILLUSIONDOPING,RK_LUXANIMA,SO_ELEMENTAL_SHIELD,SC_ESCAPE)
Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
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); } |