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