summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/npc.c2
-rw-r--r--src/map/skill.c4
-rw-r--r--src/map/unit.c1
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