diff options
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/map/status.c b/src/map/status.c index c7b7b1567..792c225d0 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -3685,6 +3685,13 @@ static signed short status_calc_flee2(struct block_list *bl, struct status_chang static signed char status_calc_def(struct block_list *bl, struct status_change *sc, int def) { + if( bl->type == BL_PC ) + { + struct unit_data *ud = unit_bl2ud( bl); + if( ud && ud->skilltimer != INVALID_TIMER && (ud->skillid == CR_GRANDCROSS || ud->skillid == NPC_GRANDDARKNESS) ) + def = def*2/3; + } + if(!sc || !sc->count) return (signed char)cap_value(def,CHAR_MIN,CHAR_MAX); |