*Fix the bug that summoned guardians cause crash (do not use the previous one).
--HG-- branch : trunk
This commit is contained in:
+1
-1
@@ -257,7 +257,7 @@ template<>
|
|||||||
void Map::AddToGrid(Creature* obj, NGridType *grid, Cell const& cell)
|
void Map::AddToGrid(Creature* obj, NGridType *grid, Cell const& cell)
|
||||||
{
|
{
|
||||||
// add to world object registry in grid
|
// add to world object registry in grid
|
||||||
if(obj->isPet() && IS_PLAYER_GUID(obj->GetOwnerGUID()) || obj->isPossessedByPlayer())
|
if(obj->isPet() /*&& IS_PLAYER_GUID(obj->GetOwnerGUID())*/ || obj->isPossessedByPlayer())
|
||||||
{
|
{
|
||||||
(*grid)(cell.CellX(), cell.CellY()).AddWorldObject<Creature>(obj, obj->GetGUID());
|
(*grid)(cell.CellX(), cell.CellY()).AddWorldObject<Creature>(obj, obj->GetGUID());
|
||||||
obj->SetCurrentCell(cell);
|
obj->SetCurrentCell(cell);
|
||||||
|
|||||||
@@ -3575,7 +3575,7 @@ void Spell::EffectSummonGuardian(uint32 i)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// trigger
|
// trigger
|
||||||
if(m_spellInfo->Id == 40276)
|
if(!m_originalCaster || m_originalCaster->GetTypeId() != TYPEID_PLAYER /*m_spellInfo->Id == 40276*/)
|
||||||
{
|
{
|
||||||
EffectSummonWild(i);
|
EffectSummonWild(i);
|
||||||
return;
|
return;
|
||||||
@@ -3987,6 +3987,12 @@ void Spell::EffectTameCreature(uint32 /*i*/)
|
|||||||
|
|
||||||
void Spell::EffectSummonPet(uint32 i)
|
void Spell::EffectSummonPet(uint32 i)
|
||||||
{
|
{
|
||||||
|
if(!m_originalCaster || m_originalCaster->GetTypeId() != TYPEID_PLAYER)
|
||||||
|
{
|
||||||
|
EffectSummonWild(i);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
uint32 petentry = m_spellInfo->EffectMiscValue[i];
|
uint32 petentry = m_spellInfo->EffectMiscValue[i];
|
||||||
|
|
||||||
Pet *OldSummon = m_caster->GetPet();
|
Pet *OldSummon = m_caster->GetPet();
|
||||||
@@ -5768,6 +5774,7 @@ void Spell::EffectSummonCritter(uint32 i)
|
|||||||
|
|
||||||
// summon new pet
|
// summon new pet
|
||||||
Pet* critter = new Pet(MINI_PET);
|
Pet* critter = new Pet(MINI_PET);
|
||||||
|
critter->setActive(m_caster->isActive());
|
||||||
|
|
||||||
Map *map = m_caster->GetMap();
|
Map *map = m_caster->GetMap();
|
||||||
uint32 pet_number = objmgr.GeneratePetNumber();
|
uint32 pet_number = objmgr.GeneratePetNumber();
|
||||||
|
|||||||
Reference in New Issue
Block a user