diff options
-rw-r--r-- | src/map/pc.c | 8 | ||||
-rw-r--r-- | src/map/status.c | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/map/pc.c b/src/map/pc.c index 99fcb0ace..97818bbf2 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -3090,9 +3090,11 @@ int pc_useitem(struct map_session_data *sd,int n) //Since most delay-consume items involve using a "skill-type" target cursor, //perform a skill-use check before going through. [Skotlex] //resurrection was picked as testing skill, as a non-offensive, generic skill, it will do. - if (sd->inventory_data[n]->flag.delay_consume && - !status_check_skilluse(&sd->bl, &sd->bl, ALL_RESURRECTION, 0)) - return 0; + if (sd->inventory_data[n]->flag.delay_consume && ( + sd->ud.skilltimer != -1 || + DIFF_TICK(tick, sd->ud.canact_tick) < 0 || + !status_check_skilluse(&sd->bl, &sd->bl, ALL_RESURRECTION, 0))) + return 0; sd->itemid = sd->status.inventory[n].nameid; sd->itemindex = n; diff --git a/src/map/status.c b/src/map/status.c index d4836919f..6b6174293 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -291,7 +291,7 @@ void initChangeTables(void) add_sc(NPC_INVISIBLE, SC_CLOAKING); set_sc(LK_AURABLADE, SC_AURABLADE, SI_AURABLADE, SCB_NONE); set_sc(LK_PARRYING, SC_PARRYING, SI_PARRYING, SCB_NONE); - set_sc(LK_CONCENTRATION, SC_CONCENTRATION, SI_CONCENTRATION, SCB_BATK|SCB_WATK|SCB_HIT|SCB_DEF|SCB_DEF2|SCB_DSPD); + set_sc(LK_CONCENTRATION, SC_CONCENTRATION, SI_CONCENTRATION, SCB_BATK|SCB_WATK|SCB_HIT|SCB_DEF|SCB_DEF2|SCB_MDEF|SCB_DSPD); set_sc(LK_TENSIONRELAX, SC_TENSIONRELAX, SI_TENSIONRELAX, SCB_REGEN); set_sc(LK_BERSERK, SC_BERSERK, SI_BERSERK, SCB_DEF|SCB_DEF2|SCB_MDEF|SCB_MDEF2|SCB_FLEE|SCB_SPEED|SCB_ASPD|SCB_MAXHP|SCB_REGEN); set_sc(HP_ASSUMPTIO, SC_ASSUMPTIO, SI_ASSUMPTIO, SCB_NONE); @@ -3681,6 +3681,8 @@ static signed char status_calc_mdef(struct block_list *bl, struct status_change mdef += 25*mdef/100; if(sc->data[SC_ENDURE] && sc->data[SC_ENDURE]->val4 == 0) mdef += sc->data[SC_ENDURE]->val1; + if(sc->data[SC_CONCENTRATION]) + mdef += 1; //Skill info says it adds a fixed 1 Mdef point. if(sc->data[SC_INCMDEFRATE]) mdef += mdef * sc->data[SC_INCMDEFRATE]->val1/100; |