summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c18
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);
}