*Fix broken hunter pet.
--HG-- branch : trunk
This commit is contained in:
@@ -266,14 +266,6 @@ Minion::Minion(SummonPropertiesEntry const *properties, Unit *owner) : TempSummo
|
|||||||
|
|
||||||
void Minion::InitSummon(uint32 duration)
|
void Minion::InitSummon(uint32 duration)
|
||||||
{
|
{
|
||||||
SetUInt64Value(UNIT_FIELD_SUMMONEDBY, m_owner->GetGUID());
|
|
||||||
|
|
||||||
if(m_owner->GetTypeId() == TYPEID_PLAYER)
|
|
||||||
{
|
|
||||||
m_ControlledByPlayer = true;
|
|
||||||
SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
|
|
||||||
}
|
|
||||||
|
|
||||||
TempSummon::InitSummon(duration);
|
TempSummon::InitSummon(duration);
|
||||||
|
|
||||||
SetReactState(REACT_PASSIVE);
|
SetReactState(REACT_PASSIVE);
|
||||||
|
|||||||
+16
-3
@@ -8143,16 +8143,23 @@ Unit* Unit::GetCharm() const
|
|||||||
void Unit::SetMinion(Minion *minion, bool apply)
|
void Unit::SetMinion(Minion *minion, bool apply)
|
||||||
{
|
{
|
||||||
sLog.outDebug("SetMinion %u for %u, apply %u", minion->GetEntry(), GetEntry(), apply);
|
sLog.outDebug("SetMinion %u for %u, apply %u", minion->GetEntry(), GetEntry(), apply);
|
||||||
if(minion->GetOwnerGUID() != GetGUID())
|
|
||||||
|
if(apply)
|
||||||
|
{
|
||||||
|
if(!minion->AddUInt64Value(UNIT_FIELD_SUMMONEDBY, GetGUID()))
|
||||||
{
|
{
|
||||||
sLog.outCrash("SetMinion: Minion %u is not the minion of owner %u", minion->GetEntry(), GetEntry());
|
sLog.outCrash("SetMinion: Minion %u is not the minion of owner %u", minion->GetEntry(), GetEntry());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(apply)
|
|
||||||
{
|
|
||||||
m_Controlled.insert(minion);
|
m_Controlled.insert(minion);
|
||||||
|
|
||||||
|
if(GetTypeId() == TYPEID_PLAYER)
|
||||||
|
{
|
||||||
|
minion->m_ControlledByPlayer = true;
|
||||||
|
minion->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
|
||||||
|
}
|
||||||
|
|
||||||
// Can only have one pet. If a new one is summoned, dismiss the old one.
|
// Can only have one pet. If a new one is summoned, dismiss the old one.
|
||||||
if(minion->isPet() || minion->m_Properties && minion->m_Properties->Category == SUMMON_CATEGORY_PET)
|
if(minion->isPet() || minion->m_Properties && minion->m_Properties->Category == SUMMON_CATEGORY_PET)
|
||||||
{
|
{
|
||||||
@@ -8206,6 +8213,12 @@ void Unit::SetMinion(Minion *minion, bool apply)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if(minion->GetOwnerGUID() != GetGUID())
|
||||||
|
{
|
||||||
|
sLog.outCrash("SetMinion: Minion %u is not the minion of owner %u", minion->GetEntry(), GetEntry());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
m_Controlled.erase(minion);
|
m_Controlled.erase(minion);
|
||||||
|
|
||||||
if(minion->isPet() || minion->m_Properties && minion->m_Properties->Category == SUMMON_CATEGORY_PET)
|
if(minion->isPet() || minion->m_Properties && minion->m_Properties->Category == SUMMON_CATEGORY_PET)
|
||||||
|
|||||||
Reference in New Issue
Block a user