mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 19:37:02 +00:00
Prevent using loading pet from DB code for non-player pets.
This commit is contained in:
parent
3c774f9c68
commit
3488c1fee3
4 changed files with 5 additions and 5 deletions
|
|
@ -101,7 +101,7 @@ void Pet::RemoveFromWorld()
|
||||||
Unit::RemoveFromWorld();
|
Unit::RemoveFromWorld();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Pet::LoadPetFromDB( Unit* owner, uint32 petentry, uint32 petnumber, bool current )
|
bool Pet::LoadPetFromDB( Player* owner, uint32 petentry, uint32 petnumber, bool current )
|
||||||
{
|
{
|
||||||
m_loading = true;
|
m_loading = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,7 @@ class Pet : public Creature
|
||||||
|
|
||||||
bool Create (uint32 guidlow, Map *map, uint32 Entry, uint32 pet_number);
|
bool Create (uint32 guidlow, Map *map, uint32 Entry, uint32 pet_number);
|
||||||
bool CreateBaseAtCreature(Creature* creature);
|
bool CreateBaseAtCreature(Creature* creature);
|
||||||
bool LoadPetFromDB( Unit* owner,uint32 petentry = 0,uint32 petnumber = 0, bool current = false );
|
bool LoadPetFromDB( Player* owner,uint32 petentry = 0,uint32 petnumber = 0, bool current = false );
|
||||||
void SavePetToDB(PetSaveMode mode);
|
void SavePetToDB(PetSaveMode mode);
|
||||||
void Remove(PetSaveMode mode, bool returnreagent = false);
|
void Remove(PetSaveMode mode, bool returnreagent = false);
|
||||||
static void DeleteFromDB(uint32 guidlow);
|
static void DeleteFromDB(uint32 guidlow);
|
||||||
|
|
|
||||||
|
|
@ -3283,7 +3283,7 @@ void Spell::EffectSummon(uint32 i)
|
||||||
uint32 level = m_caster->getLevel();
|
uint32 level = m_caster->getLevel();
|
||||||
Pet* spawnCreature = new Pet(SUMMON_PET);
|
Pet* spawnCreature = new Pet(SUMMON_PET);
|
||||||
|
|
||||||
if(spawnCreature->LoadPetFromDB(m_caster,pet_entry))
|
if(m_caster->GetTypeId()==TYPEID_PLAYER && spawnCreature->LoadPetFromDB((Player*)m_caster,pet_entry))
|
||||||
{
|
{
|
||||||
// set timer for unsummon
|
// set timer for unsummon
|
||||||
int32 duration = GetSpellDuration(m_spellInfo);
|
int32 duration = GetSpellDuration(m_spellInfo);
|
||||||
|
|
@ -4099,7 +4099,7 @@ void Spell::EffectSummonPet(uint32 i)
|
||||||
Pet* NewSummon = new Pet;
|
Pet* NewSummon = new Pet;
|
||||||
|
|
||||||
// petentry==0 for hunter "call pet" (current pet summoned if any)
|
// petentry==0 for hunter "call pet" (current pet summoned if any)
|
||||||
if(NewSummon->LoadPetFromDB(m_caster,petentry))
|
if(m_caster->GetTypeId() == TYPEID_PLAYER && NewSummon->LoadPetFromDB((Player*)m_caster,petentry))
|
||||||
{
|
{
|
||||||
if(NewSummon->getPetType()==SUMMON_PET)
|
if(NewSummon->getPetType()==SUMMON_PET)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -8419,7 +8419,7 @@ void Unit::Unmount()
|
||||||
if(GetTypeId() == TYPEID_PLAYER && IsInWorld() && ((Player*)this)->GetTemporaryUnsummonedPetNumber() && isAlive())
|
if(GetTypeId() == TYPEID_PLAYER && IsInWorld() && ((Player*)this)->GetTemporaryUnsummonedPetNumber() && isAlive())
|
||||||
{
|
{
|
||||||
Pet* NewPet = new Pet;
|
Pet* NewPet = new Pet;
|
||||||
if(!NewPet->LoadPetFromDB(this, 0, ((Player*)this)->GetTemporaryUnsummonedPetNumber(), true))
|
if(!NewPet->LoadPetFromDB((Player*)this, 0, ((Player*)this)->GetTemporaryUnsummonedPetNumber(), true))
|
||||||
delete NewPet;
|
delete NewPet;
|
||||||
|
|
||||||
((Player*)this)->SetTemporaryUnsummonedPetNumber(0);
|
((Player*)this)->SetTemporaryUnsummonedPetNumber(0);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue