diff options
author | maximius <none@none> | 2009-10-16 16:45:01 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-10-16 16:45:01 -0700 |
commit | 3552bba00c5849bb55abba9380e98c68e4806685 (patch) | |
tree | 2b05d8f4003bf773c9c2d4a00f613b01ee6a369e | |
parent | 8f112506f6467246a3e1cbb4f1d2163c38c067fc (diff) |
*Implement some new functions by WarHead (not really sure if they're needed, could probably be done another way)
--HG--
branch : trunk
-rw-r--r-- | src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp | 8 | ||||
-rw-r--r-- | src/game/InstanceData.cpp | 36 | ||||
-rw-r--r-- | src/game/InstanceData.h | 11 |
3 files changed, 53 insertions, 2 deletions
diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp index 8a5b3541680..ea2929c6a7d 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp @@ -63,6 +63,8 @@ struct MANGOS_DLL_DECL boss_amanitarAI : public ScriptedAI bolttimer, spawntimer; + bool FirstTime; + void Reset() { roottimer = urand(5000,9000); @@ -73,11 +75,13 @@ struct MANGOS_DLL_DECL boss_amanitarAI : public ScriptedAI m_creature->SetMeleeDamageSchool(SPELL_SCHOOL_NATURE); m_creature->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true); - if (pInstance && !FirstTime) pInstance->SetData(DATA_AMANITAR, FAIL); + if (pInstance && !FirstTime) + pInstance->SetData(DATA_AMANITAR, FAIL); FirstTime = false; - if (pInstance) pInstance->DoRemoveAurasDueToSpellOnPlayers(SPELL_MINI); + if (pInstance) + pInstance->DoRemoveAurasDueToSpellOnPlayers(SPELL_MINI); } void JustDied(Unit *Killer) diff --git a/src/game/InstanceData.cpp b/src/game/InstanceData.cpp index 567c06ac5ec..1398038d724 100644 --- a/src/game/InstanceData.cpp +++ b/src/game/InstanceData.cpp @@ -296,3 +296,39 @@ void InstanceData::DoUpdateWorldState(uint32 uiStateId, uint32 uiStateData) else debug_log("TSCR: DoUpdateWorldState attempt send data but no players in map."); } + +/* Not used anywhere yet, not sure if they're needed: +// Send Notify to all players in instance +void InstanceData::DoSendNotifyToInstance(const char *format, ...) +{ + InstanceMap::PlayerList const &PlayerList = instance->GetPlayers(); + InstanceMap::PlayerList::const_iterator i; + + if (!PlayerList.isEmpty()) + for (i = PlayerList.begin(); i != PlayerList.end(); ++i) + if ((*i).getSource() && (*i).getSource()->GetSession()) + (*i).getSource()->GetSession()->SendNotification(format); +} + +// Complete Achievement for all players in instance +void InstanceData::DoCompleteAchievement(uint32 achievement) +{ + AchievementEntry const* AE = GetAchievementStore()->LookupEntry(achievement); + Map::PlayerList const &PlayerList = instance->GetPlayers(); + + if (!PlayerList.isEmpty()) + for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) + if (i->getSource()) + i->getSource()->CompletedAchievement(AE); +} +*/ + +// Remove Auras due to Spell on all players in instance +void InstanceData::DoRemoveAurasDueToSpellOnPlayers(uint32 spell) +{ + Map::PlayerList const &PlayerList = instance->GetPlayers(); + + if (!PlayerList.isEmpty()) + for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) + if (i->getSource() && i->getSource()->HasAura(spell)) i->getSource()->RemoveAurasDueToSpell(spell); +} diff --git a/src/game/InstanceData.h b/src/game/InstanceData.h index 90be75fa5da..010a3d44d42 100644 --- a/src/game/InstanceData.h +++ b/src/game/InstanceData.h @@ -152,6 +152,17 @@ class TRINITY_DLL_SPEC InstanceData : public ZoneScript //sends world state update to all players in instance void DoUpdateWorldState(uint32 uiStateId, uint32 uiStateData); + /* Not used anywhere yet, not sure if they're needed: + // Send Notify to all players in instance + void DoSendNotifyToInstance(const char *format,...); + + // Complete Achievement for all players in instance + void DoCompleteAchievement(uint32 achievement); + */ + + // Remove Auras due to Spell on all players in instance + void DoRemoveAurasDueToSpellOnPlayers(uint32 spell); + virtual bool SetBossState(uint32 id, EncounterState state); EncounterState GetBossState(uint32 id) const { return id < bosses.size() ? bosses[id].state : TO_BE_DECIDED; } const BossBoundaryMap * GetBossBoundary(uint32 id) const { return id < bosses.size() ? &bosses[id].boundary : NULL; } |