summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-15 17:47:44 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-15 17:47:44 +0000
commit4be6ca0c2b518877d58d21aa9e61cb94322d0a02 (patch)
treeb768071951d22c8982b5138bedc8ccdb8f06cf78 /src/map
parente8dd3b47a2ba4537db07c9a1b693d3ed99c75ff2 (diff)
downloadhercules-4be6ca0c2b518877d58d21aa9e61cb94322d0a02.tar.gz
hercules-4be6ca0c2b518877d58d21aa9e61cb94322d0a02.tar.bz2
hercules-4be6ca0c2b518877d58d21aa9e61cb94322d0a02.tar.xz
hercules-4be6ca0c2b518877d58d21aa9e61cb94322d0a02.zip
- Updated the char save structure for char-TXT servers so that the homun id will be saved, now also the map info (last point, save point, memo maps) are now saved using the mapindex rather than the string. BACKUP BEFORE UPDATING since this code isn't yet tested.
- Cleaned up a bit the char-saving code, added overflow crash prevention in case there are more memos than the max-allowed saved. - AM_CALLHOMUN can now be used to recall vaporized homuns. - AM_RESURRECTHOMUN will now fail when the homun is vaporized. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8295 54d463be-8e91-2dee-dedb-b68131a5f0ec
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;
}