diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 763532169..e70902299 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -3589,20 +3589,53 @@ void ObjectMgr::LoadPetCreateSpells() uint32 creature_id = fields[0].GetUInt32(); - if(!creature_id || !sCreatureStorage.LookupEntry(creature_id)) + if(!creature_id) + { + sLog.outErrorDb("Creature id %u listed in `petcreateinfo_spell` not exist.",creature_id); continue; + } + + CreatureInfo const* cInfo = sCreatureStorage.LookupEntry(creature_id); + if(!cInfo) + { + sLog.outErrorDb("Creature id %u listed in `petcreateinfo_spell` not exist.",creature_id); + continue; + } PetCreateSpellEntry PetCreateSpell; + + bool have_spell = false; + bool have_spell_db = false; for(int i = 0; i < 4; i++) { PetCreateSpell.spellid[i] = fields[i + 1].GetUInt32(); - if(PetCreateSpell.spellid[i] && !sSpellStore.LookupEntry(PetCreateSpell.spellid[i])) + if(!PetCreateSpell.spellid[i]) + continue; + + have_spell_db = true; + + SpellEntry const* i_spell = sSpellStore.LookupEntry(PetCreateSpell.spellid[i]); + if(!i_spell) + { sLog.outErrorDb("Spell %u listed in `petcreateinfo_spell` does not exist",PetCreateSpell.spellid[i]); + PetCreateSpell.spellid[i] = 0; + continue; + } + + have_spell = true; } - mPetCreateSpell[creature_id] = PetCreateSpell; + if(!have_spell_db) + { + sLog.outErrorDb("Creature %u listed in `petcreateinfo_spell` have only 0 spell data, why it listed?",creature_id); + continue; + } + if(!have_spell) + continue; + + mPetCreateSpell[creature_id] = PetCreateSpell; ++count; } while (result->NextRow()); diff --git a/src/game/Player.cpp b/src/game/Player.cpp index b35de7b29..fd9b6d491 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -2305,6 +2305,7 @@ void Player::GiveLevel(uint32 level) // update level to hunter/summon pet if (Pet* pet = GetPet()) pet->SynchronizeLevelWithOwner(); + GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_REACH_LEVEL); } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index dbcc5bcf1..95d2a494d 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7831" + #define REVISION_NR "7832" #endif // __REVISION_NR_H__