- Fixed pets/homunc trying to be deleted twice when they had 0 intimacy and their master logs out.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9290 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-11-22 00:18:41 +00:00
parent 1c5fbb2231
commit 52d0596d42
2 changed files with 8 additions and 4 deletions

View File

@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/11/21 2006/11/21
* Fixed pets/homunc trying to be deleted twice when they had 0 intimacy and
their master logs out. [Skotlex]
* Added support for specifying ammo type = 99 in the skill_require_db file, * Added support for specifying ammo type = 99 in the skill_require_db file,
it can be used to specify that any kind of ammo can be used with the skill, it can be used to specify that any kind of ammo can be used with the skill,
but you NEED to have ammo equipped. [Skotlex] but you NEED to have ammo equipped. [Skotlex]

View File

@ -1643,7 +1643,9 @@ int unit_remove_map(struct block_list *bl, int clrtype) {
md->state.skillstate= MSS_IDLE; md->state.skillstate= MSS_IDLE;
} else if (bl->type == BL_PET) { } else if (bl->type == BL_PET) {
struct pet_data *pd = (struct pet_data*)bl; struct pet_data *pd = (struct pet_data*)bl;
if(pd->pet.intimate <= 0) { if(pd->pet.intimate <= 0 &&
!(pd->msd && pd->msd->state.waitingdisconnect)
) { //If logging out, this is deleted on unit_free
clif_clearchar_area(bl,clrtype); clif_clearchar_area(bl,clrtype);
map_delblock(bl); map_delblock(bl);
unit_free(bl,0); unit_free(bl,0);
@ -1652,9 +1654,9 @@ int unit_remove_map(struct block_list *bl, int clrtype) {
} }
} else if (bl->type == BL_HOM) { } else if (bl->type == BL_HOM) {
struct homun_data *hd = (struct homun_data *) bl; struct homun_data *hd = (struct homun_data *) bl;
struct map_session_data *sd = hd->master; if(!hd->homunculus.intimacy &&
if(!sd || !hd->homunculus.intimacy) !(hd->master && hd->master->state.waitingdisconnect)
{ //He's going to be deleted. ) { //If logging out, this is deleted on unit_free
clif_emotion(bl, 28) ; //sob clif_emotion(bl, 28) ; //sob
clif_clearchar_area(bl,clrtype); clif_clearchar_area(bl,clrtype);
map_delblock(bl); map_delblock(bl);