summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/mercenary.c6
-rw-r--r--src/map/skill.c4
2 files changed, 5 insertions, 5 deletions
diff --git a/src/map/mercenary.c b/src/map/mercenary.c
index 589f5c6ff..892bffd47 100644
--- a/src/map/mercenary.c
+++ b/src/map/mercenary.c
@@ -832,8 +832,7 @@ int merc_call_homunculus(struct map_session_data *sd, short x, short y)
if (!sd->status.hom_id) //Create a new homun.
return merc_create_homunculus(sd, 6000 + rand(1, 8)) ;
- //Recall homunculus to you.
- if (sd->homunculus.vaporize)
+ if (!sd->homunculus.vaporize)
return 0; //Can't use this when homun was vaporized.
// If homunc not yet loaded, load it
@@ -841,6 +840,7 @@ int merc_call_homunculus(struct map_session_data *sd, short x, short y)
merc_hom_create(sd);
hd = sd->hd;
+ sd->homunculus.vaporize = 0;
if (hd->bl.prev == NULL)
{ //Spawn him
hd->bl.x = x;
@@ -937,7 +937,7 @@ int merc_revive_homunculus(struct map_session_data *sd, unsigned char per, short
{
struct homun_data *hd;
nullpo_retr(0, sd);
- if (!sd->status.hom_id)
+ if (!sd->status.hom_id || sd->homunculus.vaporize)
return 0;
if (!sd->hd) //Load homun data;
diff --git a/src/map/skill.c b/src/map/skill.c
index d0a2cd8ad..42762183d 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -8292,8 +8292,8 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t
}
zeny = 0; //Zeny is reduced on skill_attack.
break;
- case AM_CALLHOMUN: //Can't summon if a hom is already out (vaporized also counts).
- if (sd->status.hom_id || sd->homunculus.vaporize) {
+ case AM_CALLHOMUN: //Can't summon if a hom is already out
+ if (sd->status.hom_id && !sd->homunculus.vaporize) {
clif_skill_fail(sd,skill,0,0);
return 0;
}