feat(Core/Pets): Management refactoring (#9712)
* feat(Core/Pets): rework managment * 1 * 2 * 3 * 4 * 5 * cs pet * check before ressurect * pet DECLINED_NAMES * display - https://github.com/azerothcore/azerothcore-wotlk/issues/9297 * ArenaSpectator * 1
This commit is contained in:
parent
24ab99919a
commit
e12494d993
24 changed files with 1173 additions and 1208 deletions
|
|
@ -5375,12 +5375,7 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons
|
|||
|
||||
uint32 extraflags = fields[36].GetUInt16();
|
||||
|
||||
m_stableSlots = fields[37].GetUInt8();
|
||||
if (m_stableSlots > MAX_PET_STABLES)
|
||||
{
|
||||
LOG_ERROR("entities.player", "Player can have not more %u stable slots, but have in DB %u", MAX_PET_STABLES, uint32(m_stableSlots));
|
||||
m_stableSlots = MAX_PET_STABLES;
|
||||
}
|
||||
_LoadPetStable(fields[37].GetUInt8(), holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_PET_SLOTS));
|
||||
|
||||
m_atLoginFlags = fields[38].GetUInt16();
|
||||
|
||||
|
|
@ -6293,9 +6288,11 @@ void Player::LoadPet()
|
|||
{
|
||||
//fixme: the pet should still be loaded if the player is not in world
|
||||
// just not added to the map
|
||||
if (IsInWorld())
|
||||
if (m_petStable && IsInWorld())
|
||||
{
|
||||
Pet::LoadPetFromDB(this, PET_LOAD_SUMMON_PET, 0, 0, true);
|
||||
Pet* pet = new Pet(this);
|
||||
if (!pet->LoadPetFromDB(this, 0, 0, true))
|
||||
delete pet;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -7177,7 +7174,7 @@ void Player::SaveToDB(CharacterDatabaseTransaction trans, bool create, bool logo
|
|||
|
||||
// save pet (hunter pet level and experience and all type pets health/mana).
|
||||
if (Pet* pet = GetPet())
|
||||
pet->SavePetToDB(PET_SAVE_AS_CURRENT, logout);
|
||||
pet->SavePetToDB(PET_SAVE_AS_CURRENT);
|
||||
}
|
||||
|
||||
// fast save function for item/money cheating preventing - save only inventory and money state
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue