diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/mercenary.c | 6 | ||||
-rw-r--r-- | src/map/skill.c | 4 |
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; } |