Core/Instance: add new method

(cherry picked from commit 14788ce026)
This commit is contained in:
ccrs
2019-06-29 19:32:13 +02:00
committed by Shauren
parent 6a63200e40
commit 934b72262d
2 changed files with 30 additions and 0 deletions

View File

@@ -743,6 +743,35 @@ void InstanceScript::DoCastSpellOnPlayers(uint32 spell, bool includePets /*= fal
}
}
void InstanceScript::DoCastSpellOnPlayer(Player* player, uint32 spell, bool includePets /*= false*/, bool includeControlled /*= false*/)
{
if (!player)
return;
player->CastSpell(player, spell, true);
if (!includePets)
return;
for (uint8 itr2 = 0; itr2 < MAX_SUMMON_SLOT; ++itr2)
{
ObjectGuid summonGUID = player->m_SummonSlot[itr2];
if (!summonGUID.IsEmpty())
if (Creature* summon = instance->GetCreature(summonGUID))
summon->CastSpell(player, spell, true);
}
if (!includeControlled)
return;
for (auto itr2 = player->m_Controlled.begin(); itr2 != player->m_Controlled.end(); ++itr2)
{
if (Unit* controlled = *itr2)
if (controlled->IsInWorld() && controlled->GetTypeId() == TYPEID_UNIT)
controlled->CastSpell(player, spell, true);
}
}
bool InstanceScript::ServerAllowsTwoSideGroups()
{
return sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_GROUP);

View File

@@ -234,6 +234,7 @@ class TC_GAME_API InstanceScript : public ZoneScript
// Cast spell on all players in instance
void DoCastSpellOnPlayers(uint32 spell, bool includePets = false, bool includeControlled = false);
void DoCastSpellOnPlayer(Player* player, uint32 spell, bool includePets = false, bool includeControlled = false);
// Return wether server allow two side groups or not
static bool ServerAllowsTwoSideGroups();