diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/npc.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 4 | ||||
-rw-r--r-- | src/map/unit.c | 1 |
3 files changed, 4 insertions, 3 deletions
diff --git a/src/map/npc.c b/src/map/npc.c index c028a7ca4..8e9182beb 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -1178,7 +1178,7 @@ int npc_click(struct map_session_data *sd,struct npc_data *nd) if ((nd = npc_checknear(sd,&nd->bl)) == NULL) return 1; //Hidden/Disabled npc. - if (nd->class_ < 0 || nd->sc.option&OPTION_INVISIBLE) + if (nd->class_ < 0 || nd->sc.option&(OPTION_INVISIBLE|OPTION_HIDE)) return 1; switch(nd->bl.subtype) { diff --git a/src/map/skill.c b/src/map/skill.c index 08e0f518a..385ef35f9 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3479,11 +3479,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in { int exp = 0,jexp = 0; int lv = dstsd->status.base_level - sd->status.base_level, jlv = dstsd->status.job_level - sd->status.job_level; - if(lv > 0) { + if(lv > 0 && pc_nextbaseexp(dstsd)) { exp = (int)((double)dstsd->status.base_exp * (double)lv * (double)battle_config.resurrection_exp / 1000000.); if (exp < 1) exp = 1; } - if(jlv > 0) { + if(jlv > 0 && pc_nextjobexp(dstsd)) { jexp = (int)((double)dstsd->status.job_exp * (double)lv * (double)battle_config.resurrection_exp / 1000000.); if (jexp < 1) jexp = 1; } diff --git a/src/map/unit.c b/src/map/unit.c index d8be6cc78..1e152b24a 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -706,6 +706,7 @@ int unit_can_move(struct block_list *bl) if (sd && ( pc_issit(sd) || + sd->vender_id || sd->state.blockedmove )) return 0; //Can't move |