diff options
| author | gvcoman <none@none> | 2008-11-21 14:34:05 -0500 |
|---|---|---|
| committer | gvcoman <none@none> | 2008-11-21 14:34:05 -0500 |
| commit | ae8a27bbb758dd2485d9bea14ccd8b892f626371 (patch) | |
| tree | 213402aa6ce31963a4a329cbb261fd88db6a0bdd /src/bindings | |
| parent | 837ce55de88e33825eb66814d07d33c1f869f7a7 (diff) | |
| parent | 71707df1dec2aa77864d9a853c34108bb6021138 (diff) | |
Merged commit 269 (5f0e38da128a).
--HG--
branch : trunk
Diffstat (limited to 'src/bindings')
307 files changed, 2377 insertions, 2428 deletions
diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp index 840cdc4be60..ad6bcf76c08 100644 --- a/src/bindings/scripts/ScriptMgr.cpp +++ b/src/bindings/scripts/ScriptMgr.cpp @@ -17,7 +17,8 @@ #endif _TRINITY_SCRIPT_CONFIG //*** Global data *** -int nrscripts; +int num_db_scripts; +int num_sc_scripts; Script *m_scripts[MAX_SCRIPTS]; DatabaseType TScriptDB; @@ -47,7 +48,6 @@ enum ChatType // Text Maps UNORDERED_MAP<int32, StringTextData> TextMap; - //*** End Global data *** //*** EventAI data *** @@ -1180,15 +1180,16 @@ struct TSpellSummary { TRINITY_DLL_EXPORT void ScriptsFree() -{ +{ // Free Spell Summary delete []SpellSummary; // Free resources before library unload - for(int i=0;i<nrscripts;i++) + for(int i=0;i<num_db_scripts;i++) delete m_scripts[i]; - nrscripts = 0; + num_db_scripts = 0; + num_sc_scripts = 0; } TRINITY_DLL_EXPORT @@ -1239,12 +1240,13 @@ void ScriptsInit() if (CanLoadDB) LoadDatabase(); + num_db_scripts = GetScriptNames().size(); + outstring_log("TSCR: Loading C++ scripts"); barGoLink bar(1); bar.step(); outstring_log(""); - nrscripts = 0; for(int i=0;i<MAX_SCRIPTS;i++) m_scripts[i]=NULL; @@ -1775,8 +1777,7 @@ void ScriptsInit() // ------------------- - outstring_log("TSCR: Loaded %u C++ Scripts", nrscripts); - outstring_log(""); + outstring_log(">> Loaded %i C++ Scripts (of %i ScriptNames defined in Mangos database)", num_sc_scripts, num_db_scripts); } //********************************* @@ -1848,32 +1849,29 @@ void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target) //********************************* //*** Functions used internally *** -TRINITY_DLL_EXPORT -char const* ScriptsVersion() +void Script::RegisterSelf() { - return "Default Trinity scripting library"; -} - -Script* GetScriptByName(std::string Name) -{ - if (Name.empty()) - return NULL; - - for(int i=0;i<MAX_SCRIPTS;i++) + int id = GetScriptId(Name.c_str()); + if (id != 0) { - if (m_scripts[i] && m_scripts[i]->Name == Name) - return m_scripts[i]; - } - return NULL; + m_scripts[id] = this; + ++num_sc_scripts; + } else + debug_log("SD2: RegisterSelf, but script named %s does not have ScriptName assigned in database.",(this)->Name.c_str()); } //******************************** //*** Functions to be Exported *** TRINITY_DLL_EXPORT +char const* ScriptsVersion() +{ + return "Default Trinity scripting library"; +} +TRINITY_DLL_EXPORT bool GossipHello ( Player * player, Creature *_Creature ) { - Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); + Script *tmpscript = m_scripts[_Creature->GetScriptId()]; if (!tmpscript || !tmpscript->pGossipHello) return false; player->PlayerTalkClass->ClearMenus(); @@ -1885,7 +1883,7 @@ bool GossipSelect( Player *player, Creature *_Creature, uint32 sender, uint32 ac { debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action); - Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); + Script *tmpscript = m_scripts[_Creature->GetScriptId()]; if (!tmpscript || !tmpscript->pGossipSelect) return false; player->PlayerTalkClass->ClearMenus(); @@ -1897,7 +1895,7 @@ bool GossipSelectWithCode( Player *player, Creature *_Creature, uint32 sender, u { debug_log("TSCR: Gossip selection with code, sender: %d, action: %d",sender, action); - Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); + Script *tmpscript = m_scripts[_Creature->GetScriptId()]; if (!tmpscript || !tmpscript->pGossipSelectWithCode) return false; player->PlayerTalkClass->ClearMenus(); @@ -1907,7 +1905,7 @@ bool GossipSelectWithCode( Player *player, Creature *_Creature, uint32 sender, u TRINITY_DLL_EXPORT bool QuestAccept( Player *player, Creature *_Creature, Quest const *_Quest ) { - Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); + Script *tmpscript = m_scripts[_Creature->GetScriptId()]; if (!tmpscript || !tmpscript->pQuestAccept) return false; player->PlayerTalkClass->ClearMenus(); @@ -1917,7 +1915,7 @@ bool QuestAccept( Player *player, Creature *_Creature, Quest const *_Quest ) TRINITY_DLL_EXPORT bool QuestSelect( Player *player, Creature *_Creature, Quest const *_Quest ) { - Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); + Script *tmpscript = m_scripts[_Creature->GetScriptId()]; if (!tmpscript || !tmpscript->pQuestSelect) return false; player->PlayerTalkClass->ClearMenus(); @@ -1927,7 +1925,7 @@ bool QuestSelect( Player *player, Creature *_Creature, Quest const *_Quest ) TRINITY_DLL_EXPORT bool QuestComplete( Player *player, Creature *_Creature, Quest const *_Quest ) { - Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); + Script *tmpscript = m_scripts[_Creature->GetScriptId()]; if (!tmpscript || !tmpscript->pQuestComplete) return false; player->PlayerTalkClass->ClearMenus(); @@ -1937,7 +1935,7 @@ bool QuestComplete( Player *player, Creature *_Creature, Quest const *_Quest ) TRINITY_DLL_EXPORT bool ChooseReward( Player *player, Creature *_Creature, Quest const *_Quest, uint32 opt ) { - Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); + Script *tmpscript = m_scripts[_Creature->GetScriptId()]; if (!tmpscript || !tmpscript->pChooseReward) return false; player->PlayerTalkClass->ClearMenus(); @@ -1947,7 +1945,7 @@ bool ChooseReward( Player *player, Creature *_Creature, Quest const *_Quest, uin TRINITY_DLL_EXPORT uint32 NPCDialogStatus( Player *player, Creature *_Creature ) { - Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); + Script *tmpscript = m_scripts[_Creature->GetScriptId()]; if (!tmpscript || !tmpscript->pNPCDialogStatus) return 100; player->PlayerTalkClass->ClearMenus(); @@ -1957,8 +1955,8 @@ uint32 NPCDialogStatus( Player *player, Creature *_Creature ) TRINITY_DLL_EXPORT uint32 GODialogStatus( Player *player, GameObject *_GO ) { - Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName); - if(!tmpscript || !tmpscript->pGODialogStatus) return 100; + Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; + if (!tmpscript || !tmpscript->pGODialogStatus) return 100; player->PlayerTalkClass->ClearMenus(); return tmpscript->pGODialogStatus(player,_GO); @@ -1967,7 +1965,7 @@ uint32 GODialogStatus( Player *player, GameObject *_GO ) TRINITY_DLL_EXPORT bool ItemHello( Player *player, Item *_Item, Quest const *_Quest ) { - Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName); + Script *tmpscript = m_scripts[_Item->GetProto()->ScriptId]; if (!tmpscript || !tmpscript->pItemHello) return false; player->PlayerTalkClass->ClearMenus(); @@ -1977,7 +1975,7 @@ bool ItemHello( Player *player, Item *_Item, Quest const *_Quest ) TRINITY_DLL_EXPORT bool ItemQuestAccept( Player *player, Item *_Item, Quest const *_Quest ) { - Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName); + Script *tmpscript = m_scripts[_Item->GetProto()->ScriptId]; if (!tmpscript || !tmpscript->pItemQuestAccept) return false; player->PlayerTalkClass->ClearMenus(); @@ -1987,7 +1985,7 @@ bool ItemQuestAccept( Player *player, Item *_Item, Quest const *_Quest ) TRINITY_DLL_EXPORT bool GOHello( Player *player, GameObject *_GO ) { - Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName); + Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; if (!tmpscript || !tmpscript->pGOHello) return false; player->PlayerTalkClass->ClearMenus(); @@ -1997,7 +1995,7 @@ bool GOHello( Player *player, GameObject *_GO ) TRINITY_DLL_EXPORT bool GOQuestAccept( Player *player, GameObject *_GO, Quest const *_Quest ) { - Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName); + Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; if (!tmpscript || !tmpscript->pGOQuestAccept) return false; player->PlayerTalkClass->ClearMenus(); @@ -2007,7 +2005,7 @@ bool GOQuestAccept( Player *player, GameObject *_GO, Quest const *_Quest ) TRINITY_DLL_EXPORT bool GOChooseReward( Player *player, GameObject *_GO, Quest const *_Quest, uint32 opt ) { - Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName); + Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; if (!tmpscript || !tmpscript->pGOChooseReward) return false; player->PlayerTalkClass->ClearMenus(); @@ -2017,9 +2015,7 @@ bool GOChooseReward( Player *player, GameObject *_GO, Quest const *_Quest, uint3 TRINITY_DLL_EXPORT bool AreaTrigger( Player *player, AreaTriggerEntry * atEntry) { - Script *tmpscript = NULL; - - tmpscript = GetScriptByName(GetAreaTriggerScriptNameById(atEntry->id)); + Script *tmpscript = m_scripts[GetAreaTriggerScriptId(atEntry->id)]; if (!tmpscript || !tmpscript->pAreaTrigger) return false; return tmpscript->pAreaTrigger(player, atEntry); @@ -2028,16 +2024,16 @@ bool AreaTrigger( Player *player, AreaTriggerEntry * atEntry) TRINITY_DLL_EXPORT CreatureAI* GetAI(Creature *_Creature) { - Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); - + Script *tmpscript = m_scripts[_Creature->GetScriptId()]; if (!tmpscript || !tmpscript->GetAI) return NULL; + return tmpscript->GetAI(_Creature); } TRINITY_DLL_EXPORT bool ItemUse( Player *player, Item* _Item, SpellCastTargets const& targets) { - Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName); + Script *tmpscript = m_scripts[_Item->GetProto()->ScriptId]; if (!tmpscript || !tmpscript->pItemUse) return false; return tmpscript->pItemUse(player,_Item,targets); @@ -2046,7 +2042,7 @@ bool ItemUse( Player *player, Item* _Item, SpellCastTargets const& targets) TRINITY_DLL_EXPORT bool ReceiveEmote( Player *player, Creature *_Creature, uint32 emote ) { - Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); + Script *tmpscript = m_scripts[_Creature->GetScriptId()]; if (!tmpscript || !tmpscript->pReceiveEmote) return false; return tmpscript->pReceiveEmote(player, _Creature, emote); @@ -2055,12 +2051,10 @@ bool ReceiveEmote( Player *player, Creature *_Creature, uint32 emote ) TRINITY_DLL_EXPORT InstanceData* CreateInstanceData(Map *map) { - Script *tmpscript = NULL; - - if (!map->IsDungeon()) return false; + if (!map->IsDungeon()) return NULL; - tmpscript = GetScriptByName(((InstanceMap*)map)->GetScript()); - if (!tmpscript || !tmpscript->GetInstanceData) return false; + Script *tmpscript = m_scripts[((InstanceMap*)map)->GetScriptId()]; + if (!tmpscript || !tmpscript->GetInstanceData) return NULL; return tmpscript->GetInstanceData(map); } diff --git a/src/bindings/scripts/ScriptMgr.h b/src/bindings/scripts/ScriptMgr.h index 83b2c0dd7a0..ef7bdfd3cce 100644 --- a/src/bindings/scripts/ScriptMgr.h +++ b/src/bindings/scripts/ScriptMgr.h @@ -24,46 +24,45 @@ class Map; class Unit; class WorldObject; -#define MAX_SCRIPTS 1000 //72 bytes each (approx 71kb) +#define MAX_SCRIPTS 5000 //72 bytes each (approx 351kb) #define VISIBLE_RANGE (166.0f) //MAX visible range (size of grid) #define DEFAULT_TEXT "<Trinity Script Text Entry Missing!>" struct Script { Script() : -pGossipHello(NULL), pQuestAccept(NULL), pGossipSelect(NULL), pGossipSelectWithCode(NULL), -pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL), -pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL), -pGOChooseReward(NULL),pReceiveEmote(NULL),pItemUse(NULL), GetAI(NULL), GetInstanceData(NULL) -{} + pGossipHello(NULL), pQuestAccept(NULL), pGossipSelect(NULL), pGossipSelectWithCode(NULL), + pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL), + pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL), + pGOChooseReward(NULL),pReceiveEmote(NULL),pItemUse(NULL), GetAI(NULL), GetInstanceData(NULL) + {} -std::string Name; + std::string Name; -// Quest/gossip Methods to be scripted -bool (*pGossipHello )(Player*, Creature*); -bool (*pQuestAccept )(Player*, Creature*, Quest const* ); -bool (*pGossipSelect )(Player*, Creature*, uint32 , uint32 ); -bool (*pGossipSelectWithCode)(Player*, Creature*, uint32 , uint32 , const char* ); -bool (*pQuestSelect )(Player*, Creature*, Quest const* ); -bool (*pQuestComplete )(Player*, Creature*, Quest const* ); -uint32 (*pNPCDialogStatus )(Player*, Creature* ); -uint32 (*pGODialogStatus )(Player *player, GameObject * _GO ); -bool (*pChooseReward )(Player*, Creature*, Quest const*, uint32 ); -bool (*pItemHello )(Player*, Item*, Quest const* ); -bool (*pGOHello )(Player*, GameObject* ); -bool (*pAreaTrigger )(Player*, AreaTriggerEntry* ); -bool (*pItemQuestAccept )(Player*, Item *, Quest const* ); -bool (*pGOQuestAccept )(Player*, GameObject*, Quest const* ); -bool (*pGOChooseReward )(Player*, GameObject*_GO, Quest const*, uint32 ); -bool (*pReceiveEmote )(Player*, Creature*, uint32 ); -bool (*pItemUse )(Player*, Item*, SpellCastTargets const& ); + //Methods to be scripted + bool (*pGossipHello )(Player*, Creature*); + bool (*pQuestAccept )(Player*, Creature*, Quest const* ); + bool (*pGossipSelect )(Player*, Creature*, uint32 , uint32 ); + bool (*pGossipSelectWithCode)(Player*, Creature*, uint32 , uint32 , const char* ); + bool (*pQuestSelect )(Player*, Creature*, Quest const* ); + bool (*pQuestComplete )(Player*, Creature*, Quest const* ); + uint32 (*pNPCDialogStatus )(Player*, Creature* ); + uint32 (*pGODialogStatus )(Player*, GameObject * _GO ); + bool (*pChooseReward )(Player*, Creature*, Quest const*, uint32 ); + bool (*pItemHello )(Player*, Item*, Quest const* ); + bool (*pGOHello )(Player*, GameObject* ); + bool (*pAreaTrigger )(Player*, AreaTriggerEntry* ); + bool (*pItemQuestAccept )(Player*, Item *, Quest const* ); + bool (*pGOQuestAccept )(Player*, GameObject*, Quest const* ); + bool (*pGOChooseReward )(Player*, GameObject*, Quest const*, uint32 ); + bool (*pReceiveEmote )(Player*, Creature*, uint32 ); + bool (*pItemUse )(Player*, Item*, SpellCastTargets const& ); -CreatureAI* (*GetAI)(Creature*); -InstanceData* (*GetInstanceData)(Map*); -}; + CreatureAI* (*GetAI)(Creature*); + InstanceData* (*GetInstanceData)(Map*); -extern int nrscripts; -extern Script *m_scripts[MAX_SCRIPTS]; + void RegisterSelf(); +}; //Generic scripting text function void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target = NULL); diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp index 1ee90c41029..ca7dc435b09 100644 --- a/src/bindings/scripts/include/sc_creature.cpp +++ b/src/bindings/scripts/include/sc_creature.cpp @@ -73,17 +73,7 @@ bool ScriptedAI::IsVisible(Unit* who) const void ScriptedAI::MoveInLineOfSight(Unit *who) { - if(m_creature->getVictim() || !m_creature->IsHostileTo(who) || !who->isInAccessiblePlaceFor(m_creature)) - return; - - if(!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE) - return; - - if(!m_creature->IsWithinDistInMap(who, m_creature->GetAttackDistance(who)) || !m_creature->IsWithinLOSInMap(who)) - return; - - if(m_creature->canAttack(who)) - //who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); + if(!m_creature->getVictim() && m_creature->canStartAttack(who)) AttackStart(who); } @@ -679,13 +669,11 @@ void ScriptedAI::DoZoneInCombat(Unit* pUnit) return; } - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - InstanceMap::PlayerList::const_iterator i; - for (i = PlayerList.begin(); i != PlayerList.end(); ++i) - { - if((*i)->isAlive()) - pUnit->AddThreat(*i, 0.0f); - } + Map::PlayerList const &PlayerList = map->GetPlayers(); + for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) + if (Player* i_pl = i->getSource()) + if (!i_pl->isAlive()) + pUnit->AddThreat(i_pl, 0.0f); } void ScriptedAI::DoResetThreat() @@ -721,6 +709,20 @@ void ScriptedAI::DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float ((Player*)pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); } +void ScriptedAI::DoTeleportAll(float x, float y, float z, float o) +{ + Map *map = m_creature->GetMap(); + if (!map->IsDungeon()) + return; + + Map::PlayerList const &PlayerList = map->GetPlayers(); + for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) + if (Player* i_pl = i->getSource()) + if (!i_pl->isAlive()) + i_pl->TeleportTo(m_creature->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); +} + + Unit* ScriptedAI::DoSelectLowestHpFriendly(float range, uint32 MinHPDiff) { CellPair p(Trinity::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY())); diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h index 99ca4672f65..c1d7f06f029 100644 --- a/src/bindings/scripts/include/sc_creature.h +++ b/src/bindings/scripts/include/sc_creature.h @@ -146,6 +146,7 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI //Teleports a player without dropping threat (only teleports to same map) void DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float o); + void DoTeleportAll(float x, float y, float z, float o); //Returns friendly unit with the most amount of hp missing from max hp Unit* DoSelectLowestHpFriendly(float range, uint32 MinHPDiff = 1); diff --git a/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp b/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp index 117121d8530..83dda669e1f 100644 --- a/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp +++ b/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp @@ -40,5 +40,5 @@ void AddSC_areatrigger_scripts() newscript = new Script; newscript->Name="at_test"; newscript->pAreaTrigger = ATtest; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/boss/boss_emeriss.cpp b/src/bindings/scripts/scripts/boss/boss_emeriss.cpp index 99b3a845f95..a8af2b43e41 100644 --- a/src/bindings/scripts/scripts/boss/boss_emeriss.cpp +++ b/src/bindings/scripts/scripts/boss/boss_emeriss.cpp @@ -152,5 +152,5 @@ void AddSC_boss_emeriss() newscript = new Script; newscript->Name="boss_emeriss"; newscript->GetAI = GetAI_boss_emeriss; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/boss/boss_taerar.cpp b/src/bindings/scripts/scripts/boss/boss_taerar.cpp index 67d3364dd66..faed723cb4d 100644 --- a/src/bindings/scripts/scripts/boss/boss_taerar.cpp +++ b/src/bindings/scripts/scripts/boss/boss_taerar.cpp @@ -297,10 +297,10 @@ void AddSC_boss_taerar() newscript = new Script; newscript->Name="boss_taerar"; newscript->GetAI = GetAI_boss_taerar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_shade_of_taerar"; newscript->GetAI = GetAI_boss_shadeoftaerar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp b/src/bindings/scripts/scripts/boss/boss_ysondre.cpp index 3df1746bd76..b9fad649d71 100644 --- a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp +++ b/src/bindings/scripts/scripts/boss/boss_ysondre.cpp @@ -237,10 +237,10 @@ void AddSC_boss_ysondre() newscript = new Script; newscript->Name="boss_ysondre"; newscript->GetAI = GetAI_boss_ysondre; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_dementeddruids"; newscript->GetAI = GetAI_mob_dementeddruids; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/creature/mob_event_ai.cpp b/src/bindings/scripts/scripts/creature/mob_event_ai.cpp index d7578731e91..af945282935 100644 --- a/src/bindings/scripts/scripts/creature/mob_event_ai.cpp +++ b/src/bindings/scripts/scripts/creature/mob_event_ai.cpp @@ -1400,5 +1400,5 @@ void AddSC_mob_event() newscript = new Script; newscript->Name="mob_eventai"; newscript->GetAI = GetAI_Mob_EventAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp b/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp index 0e03915df0e..02e34a8fa1e 100644 --- a/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp +++ b/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp @@ -168,5 +168,5 @@ void AddSC_generic_creature() newscript = new Script; newscript->Name="generic_creature"; newscript->GetAI = GetAI_generic_creature; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/custom/custom_example.cpp b/src/bindings/scripts/scripts/custom/custom_example.cpp index 133b2136a1c..d1a30fd06af 100644 --- a/src/bindings/scripts/scripts/custom/custom_example.cpp +++ b/src/bindings/scripts/scripts/custom/custom_example.cpp @@ -273,5 +273,5 @@ void AddSC_custom_example() newscript->pGossipHello = &GossipHello_custom_example; newscript->pGossipSelect = &GossipSelect_custom_example; newscript->pReceiveEmote = &ReceiveEmote_custom_example; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/custom/custom_gossip_codebox.cpp b/src/bindings/scripts/scripts/custom/custom_gossip_codebox.cpp index c8cfe711fc9..3963d31b98b 100644 --- a/src/bindings/scripts/scripts/custom/custom_gossip_codebox.cpp +++ b/src/bindings/scripts/scripts/custom/custom_gossip_codebox.cpp @@ -77,5 +77,5 @@ void AddSC_custom_gossip_codebox() newscript->pGossipHello = &GossipHello_custom_gossip_codebox; newscript->pGossipSelect = &GossipSelect_custom_gossip_codebox; newscript->pGossipSelectWithCode = &GossipSelectWithCode_custom_gossip_codebox; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/custom/test.cpp b/src/bindings/scripts/scripts/custom/test.cpp index 52d5c7d6f4f..e54716afcf0 100644 --- a/src/bindings/scripts/scripts/custom/test.cpp +++ b/src/bindings/scripts/scripts/custom/test.cpp @@ -196,5 +196,5 @@ void AddSC_test() newscript->GetAI = GetAI_test; newscript->pGossipHello = &GossipHello_npc_test; newscript->pGossipSelect = &GossipSelect_npc_test; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/go/go_scripts.cpp b/src/bindings/scripts/scripts/go/go_scripts.cpp index a06e588d916..511e283373a 100644 --- a/src/bindings/scripts/scripts/go/go_scripts.cpp +++ b/src/bindings/scripts/scripts/go/go_scripts.cpp @@ -165,45 +165,45 @@ void AddSC_go_scripts() newscript = new Script; newscript->Name="go_northern_crystal_pylon"; newscript->pGOHello = &GOHello_go_northern_crystal_pylon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_eastern_crystal_pylon"; newscript->pGOHello = &GOHello_go_eastern_crystal_pylon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_western_crystal_pylon"; newscript->pGOHello = &GOHello_go_western_crystal_pylon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_barov_journal"; newscript->pGOHello = &GOHello_go_barov_journal; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_field_repair_bot_74A"; newscript->pGOHello = &GOHello_go_field_repair_bot_74A; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_orb_of_command"; newscript->pGOHello = &GOHello_go_orb_of_command; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_tablet_of_madness"; newscript->pGOHello = &GOHello_go_tablet_of_madness; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_tablet_of_the_seven"; newscript->pGOHello = &GOHello_go_tablet_of_the_seven; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_teleporter"; newscript->pGOHello = &GOHello_go_teleporter; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/guard/guards.cpp b/src/bindings/scripts/scripts/guard/guards.cpp index fdc541665d1..a96ded0ac70 100644 --- a/src/bindings/scripts/scripts/guard/guards.cpp +++ b/src/bindings/scripts/scripts/guard/guards.cpp @@ -3980,75 +3980,75 @@ void AddSC_guards() newscript->pGossipHello = &GossipHello_guard_azuremyst; newscript->pGossipSelect = &GossipSelect_guard_azuremyst; newscript->GetAI = GetAI_guard_azuremyst; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_bluffwatcher"; newscript->pGossipHello = &GossipHello_guard_bluffwatcher; newscript->pGossipSelect = &GossipSelect_guard_bluffwatcher; newscript->GetAI = GetAI_guard_bluffwatcher; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_contested"; newscript->GetAI = GetAI_guard_contested; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_darnassus"; newscript->pGossipHello = &GossipHello_guard_darnassus; newscript->pGossipSelect = &GossipSelect_guard_darnassus; newscript->GetAI = GetAI_guard_darnassus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_dunmorogh"; newscript->pGossipHello = &GossipHello_guard_dunmorogh; newscript->pGossipSelect = &GossipSelect_guard_dunmorogh; newscript->GetAI = GetAI_guard_dunmorogh; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_durotar"; newscript->pGossipHello = &GossipHello_guard_durotar; newscript->pGossipSelect = &GossipSelect_guard_durotar; newscript->GetAI = GetAI_guard_durotar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_elwynnforest"; newscript->pGossipHello = &GossipHello_guard_elwynnforest; newscript->pGossipSelect = &GossipSelect_guard_elwynnforest; newscript->GetAI = GetAI_guard_elwynnforest; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_eversong"; newscript->pGossipHello = &GossipHello_guard_eversong; newscript->pGossipSelect = &GossipSelect_guard_eversong; newscript->GetAI = GetAI_guard_eversong; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_exodar"; newscript->pGossipHello = &GossipHello_guard_exodar; newscript->pGossipSelect = &GossipSelect_guard_exodar; newscript->GetAI = GetAI_guard_exodar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_ironforge"; newscript->pGossipHello = &GossipHello_guard_ironforge; newscript->pGossipSelect = &GossipSelect_guard_ironforge; newscript->GetAI = GetAI_guard_ironforge; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_mulgore"; newscript->pGossipHello = &GossipHello_guard_mulgore; newscript->pGossipSelect = &GossipSelect_guard_mulgore; newscript->GetAI = GetAI_guard_mulgore; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_orgrimmar"; @@ -4056,35 +4056,35 @@ void AddSC_guards() newscript->pGossipSelect = &GossipSelect_guard_orgrimmar; newscript->pReceiveEmote = &ReceiveEmote_guard_orgrimmar; newscript->GetAI = GetAI_guard_orgrimmar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_shattrath"; newscript->pGossipHello = &GossipHello_guard_shattrath; newscript->pGossipSelect = &GossipSelect_guard_shattrath; newscript->GetAI = GetAI_guard_shattrath; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_shattrath_aldor"; newscript->GetAI = GetAI_guard_shattrath_aldor; newscript->pGossipHello = &GossipHello_guard_shattrath_aldor; newscript->pGossipSelect = &GossipSelect_guard_shattrath_aldor; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_shattrath_scryer"; newscript->GetAI = GetAI_guard_shattrath_scryer; newscript->pGossipHello = &GossipHello_guard_shattrath_scryer; newscript->pGossipSelect = &GossipSelect_guard_shattrath_scryer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_silvermoon"; newscript->pGossipHello = &GossipHello_guard_silvermoon; newscript->pGossipSelect = &GossipSelect_guard_silvermoon; newscript->GetAI = GetAI_guard_silvermoon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_stormwind"; @@ -4092,26 +4092,26 @@ void AddSC_guards() newscript->pGossipSelect = &GossipSelect_guard_stormwind; newscript->pReceiveEmote = &ReceiveEmote_guard_stormwind; newscript->GetAI = GetAI_guard_stormwind; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_teldrassil"; newscript->pGossipHello = &GossipHello_guard_teldrassil; newscript->pGossipSelect = &GossipSelect_guard_teldrassil; newscript->GetAI = GetAI_guard_teldrassil; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_tirisfal"; newscript->pGossipHello = &GossipHello_guard_tirisfal; newscript->pGossipSelect = &GossipSelect_guard_tirisfal; newscript->GetAI = GetAI_guard_tirisfal; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="guard_undercity"; newscript->pGossipHello = &GossipHello_guard_undercity; newscript->pGossipSelect = &GossipSelect_guard_undercity; newscript->GetAI = GetAI_guard_undercity; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/item/item_scripts.cpp b/src/bindings/scripts/scripts/item/item_scripts.cpp index 42ab5914262..372f438753c 100644 --- a/src/bindings/scripts/scripts/item/item_scripts.cpp +++ b/src/bindings/scripts/scripts/item/item_scripts.cpp @@ -455,95 +455,95 @@ void AddSC_item_scripts() newscript = new Script; newscript->Name="item_area_52_special"; newscript->pItemUse = ItemUse_item_area_52_special; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_arcane_charges"; newscript->pItemUse = ItemUse_item_arcane_charges; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_attuned_crystal_cores"; newscript->pItemUse = ItemUse_item_attuned_crystal_cores; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_blackwhelp_net"; newscript->pItemUse = ItemUse_item_blackwhelp_net; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_disciplinary_rod"; newscript->pItemUse = ItemUse_item_disciplinary_rod; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_draenei_fishing_net"; newscript->pItemUse = ItemUse_item_draenei_fishing_net; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_nether_wraith_beacon"; newscript->pItemUse = ItemUse_item_nether_wraith_beacon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_flying_machine"; newscript->pItemUse = ItemUse_item_flying_machine; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_gor_dreks_ointment"; newscript->pItemUse = ItemUse_item_gor_dreks_ointment; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_muiseks_vessel"; newscript->pItemUse = ItemUse_item_muiseks_vessel; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_razorthorn_flayer_gland"; newscript->pItemUse = ItemUse_item_razorthorn_flayer_gland; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_tame_beast_rods"; newscript->pItemUse = ItemUse_item_tame_beast_rods; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_protovoltaic_magneto_collector"; newscript->pItemUse = ItemUse_item_protovoltaic_magneto_collector; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_soul_cannon"; newscript->pItemUse = ItemUse_item_soul_cannon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_sparrowhawk_net"; newscript->pItemUse = ItemUse_item_sparrowhawk_net; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_voodoo_charm"; newscript->pItemUse = ItemUse_item_voodoo_charm; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_vorenthals_presence"; newscript->pItemUse = ItemUse_item_vorenthals_presence; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_yehkinyas_bramble"; newscript->pItemUse = ItemUse_item_yehkinyas_bramble; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_zezzaks_shard"; newscript->pItemUse = ItemUse_item_zezzak_shard; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/item/item_test.cpp b/src/bindings/scripts/scripts/item/item_test.cpp index a1e3b6c13c1..1dce7157e21 100644 --- a/src/bindings/scripts/scripts/item/item_test.cpp +++ b/src/bindings/scripts/scripts/item/item_test.cpp @@ -38,5 +38,5 @@ void AddSC_item_test() newscript = new Script; newscript->Name="item_test"; newscript->pItemUse = ItemUse_item_test; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp b/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp index d0faf45c792..efc5e4b7b3a 100644 --- a/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp +++ b/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp @@ -140,5 +140,5 @@ void AddSC_npc_innkeeper() newscript->Name="npc_innkeeper"; newscript->pGossipHello = &GossipHello_npc_innkeeper; newscript->pGossipSelect = &GossipSelect_npc_innkeeper; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/npc/npc_professions.cpp b/src/bindings/scripts/scripts/npc/npc_professions.cpp index 30ecfc6788d..5061f195910 100644 --- a/src/bindings/scripts/scripts/npc/npc_professions.cpp +++ b/src/bindings/scripts/scripts/npc/npc_professions.cpp @@ -1177,29 +1177,29 @@ void AddSC_npc_professions() newscript->Name="npc_prof_alchemy"; newscript->pGossipHello = &GossipHello_npc_prof_alchemy; newscript->pGossipSelect = &GossipSelect_npc_prof_alchemy; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_prof_blacksmith"; newscript->pGossipHello = &GossipHello_npc_prof_blacksmith; newscript->pGossipSelect = &GossipSelect_npc_prof_blacksmith; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_prof_leather"; newscript->pGossipHello = &GossipHello_npc_prof_leather; newscript->pGossipSelect = &GossipSelect_npc_prof_leather; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_prof_tailor"; newscript->pGossipHello = &GossipHello_npc_prof_tailor; newscript->pGossipSelect = &GossipSelect_npc_prof_tailor; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); /*newscript = new Script; newscript->Name="go_soothsaying_for_dummies"; newscript->pGOHello = &GOHello_go_soothsaying_for_dummies; //newscript->pGossipSelect = &GossipSelect_go_soothsaying_for_dummies; - m_scripts[nrscripts++] = newscript;*/ + newscript->RegisterSelf();*/ } diff --git a/src/bindings/scripts/scripts/npc/npcs_special.cpp b/src/bindings/scripts/scripts/npc/npcs_special.cpp index e0e53ab55b1..61091ab54e2 100644 --- a/src/bindings/scripts/scripts/npc/npcs_special.cpp +++ b/src/bindings/scripts/scripts/npc/npcs_special.cpp @@ -1,945 +1,945 @@ -/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* ScriptData -SDName: Npcs_Special -SD%Complete: 100 -SDComment: To be used for special NPCs that are located globally. Support for quest 3861 (Cluck!), 6622 and 6624 (Triage) -SDCategory: NPCs -EndScriptData -*/ - -/* ContentData -npc_chicken_cluck 100% support for quest 3861 (Cluck!) -npc_dancing_flames 100% midsummer event NPC -npc_guardian 100% guardianAI used to prevent players from accessing off-limits areas. Not in use by SD2 -npc_injured_patient 100% patients for triage-quests (6622 and 6624) -npc_doctor 100% Gustaf Vanhowzen and Gregory Victor, quest 6622 and 6624 (Triage) -npc_mount_vendor 100% Regular mount vendors all over the world. Display gossip if player doesn't meet the requirements to buy -npc_rogue_trainer 80% Scripted trainers, so they are able to offer item 17126 for class quest 6681 -npc_sayge 100% Darkmoon event fortune teller, buff player based on answers given -EndContentData */ - -#include "precompiled.h" - -/*######## -# npc_chicken_cluck -#########*/ - -#define QUEST_CLUCK 3861 -#define EMOTE_A_HELLO "looks up at you quizzically. Maybe you should inspect it?" -#define EMOTE_H_HELLO "looks at you unexpectadly." -#define CLUCK_TEXT2 "starts pecking at the feed." -#define FACTION_FRIENDLY 84 -#define FACTION_CHICKEN 31 - -struct TRINITY_DLL_DECL npc_chicken_cluckAI : public ScriptedAI -{ - npc_chicken_cluckAI(Creature *c) : ScriptedAI(c) {Reset();} - - uint32 ResetFlagTimer; - - void Reset() - { - ResetFlagTimer = 120000; - - m_creature->setFaction(FACTION_CHICKEN); - m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - } - - void Aggro(Unit *who) {} - - void UpdateAI(const uint32 diff) - { - // Reset flags after a certain time has passed so that the next player has to start the 'event' again - if(m_creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER)) - { - if(ResetFlagTimer < diff) - EnterEvadeMode(); - else ResetFlagTimer -= diff; - } - - if(m_creature->SelectHostilTarget() && m_creature->getVictim()) - DoMeleeAttackIfReady(); - } -}; - -CreatureAI* GetAI_npc_chicken_cluck(Creature *_Creature) -{ - return new npc_chicken_cluckAI(_Creature); -} - -bool ReceiveEmote_npc_chicken_cluck( Player *player, Creature *_Creature, uint32 emote ) -{ - if( emote == TEXTEMOTE_CHICKEN ) - { - if( player->GetTeam() == ALLIANCE ) - { - if( rand()%30 == 1 ) - { - if( player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_NONE ) - { - _Creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - _Creature->setFaction(FACTION_FRIENDLY); - _Creature->MonsterTextEmote(EMOTE_A_HELLO, 0); - } - } - } else - _Creature->MonsterTextEmote(EMOTE_H_HELLO,0); - } - if( emote == TEXTEMOTE_CHEER && player->GetTeam() == ALLIANCE ) - if( player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_COMPLETE ) - { - _Creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); - _Creature->setFaction(FACTION_FRIENDLY); - _Creature->MonsterTextEmote(CLUCK_TEXT2, 0); - } - - return true; -} - -bool QuestAccept_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest ) -{ - if(_Quest->GetQuestId() == QUEST_CLUCK) - ((npc_chicken_cluckAI*)_Creature->AI())->Reset(); - - return true; -} - -bool QuestComplete_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest) -{ - if(_Quest->GetQuestId() == QUEST_CLUCK) - ((npc_chicken_cluckAI*)_Creature->AI())->Reset(); - - return true; -} - -/*###### -## npc_dancing_flames -######*/ - -bool ReceiveEmote_npc_dancing_flames( Player *player, Creature *_Creature, uint32 emote ) -{ - if( emote == TEXTEMOTE_DANCE ) - _Creature->CastSpell(player,47057,false); - - return true; -} - -/*###### -## Triage quest -######*/ - -#define SAY_DOC1 "I'm saved! Thank you, doctor!" -#define SAY_DOC2 "HOORAY! I AM SAVED!" -#define SAY_DOC3 "Sweet, sweet embrace... take me..." - -struct Location -{ - float x, y, z, o; -}; - -#define DOCTOR_ALLIANCE 12939 - -static Location AllianceCoords[]= -{ - { // Top-far-right bunk as seen from entrance - -3757.38, -4533.05, 14.16, 3.62 - }, - { // Top-far-left bunk - -3754.36, -4539.13, 14.16, 5.13 - }, - { // Far-right bunk - -3749.54, -4540.25, 14.28, 3.34 - }, - { // Right bunk near entrance - -3742.10, -4536.85, 14.28, 3.64 - }, - { // Far-left bunk - -3755.89, -4529.07, 14.05, 0.57 - }, - { // Mid-left bunk - -3749.51, -4527.08, 14.07, 5.26 - }, - { // Left bunk near entrance - -3746.37, -4525.35, 14.16, 5.22 - }, -}; - -#define ALLIANCE_COORDS 7 - -//alliance run to where -#define A_RUNTOX -3742.96 -#define A_RUNTOY -4531.52 -#define A_RUNTOZ 11.91 - -#define DOCTOR_HORDE 12920 - -static Location HordeCoords[]= -{ - { // Left, Behind - -1013.75, -3492.59, 62.62, 4.34 - }, - { // Right, Behind - -1017.72, -3490.92, 62.62, 4.34 - }, - { // Left, Mid - -1015.77, -3497.15, 62.82, 4.34 - }, - { // Right, Mid - -1019.51, -3495.49, 62.82, 4.34 - }, - { // Left, front - -1017.25, -3500.85, 62.98, 4.34 - }, - { // Right, Front - -1020.95, -3499.21, 62.98, 4.34 - } -}; - -#define HORDE_COORDS 6 - -//horde run to where -#define H_RUNTOX -1016.44 -#define H_RUNTOY -3508.48 -#define H_RUNTOZ 62.96 - -const uint32 AllianceSoldierId[3] = -{ - 12938, // 12938 Injured Alliance Soldier - 12936, // 12936 Badly injured Alliance Soldier - 12937 // 12937 Critically injured Alliance Soldier -}; - -const uint32 HordeSoldierId[3] = -{ - 12923, //12923 Injured Soldier - 12924, //12924 Badly injured Soldier - 12925 //12925 Critically injured Soldier -}; - -/*###### -## npc_doctor (handles both Gustaf Vanhowzen and Gregory Victor) -######*/ - -struct TRINITY_DLL_DECL npc_doctorAI : public ScriptedAI -{ - uint64 Playerguid; - - uint32 SummonPatient_Timer; - uint32 SummonPatientCount; - uint32 PatientDiedCount; - uint32 PatientSavedCount; - - bool Event; - - std::list<uint64> Patients; - std::vector<Location*> Coordinates; - - npc_doctorAI(Creature *c) : ScriptedAI(c) {Reset();} - - void Reset(){} - - void BeginEvent(Player* player); - void PatientDied(Location* Point); - void PatientSaved(Creature* soldier, Player* player, Location* Point); - void UpdateAI(const uint32 diff); - - void Aggro(Unit* who){} -}; - -/*##### -## npc_injured_patient (handles all the patients, no matter Horde or Alliance) -#####*/ - -struct TRINITY_DLL_DECL npc_injured_patientAI : public ScriptedAI -{ - npc_injured_patientAI(Creature *c) : ScriptedAI(c) {Reset();} - - uint64 Doctorguid; - - Location* Coord; - - void Reset() - { - Doctorguid = 0; - - Coord = NULL; - //no select - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - //no regen health - m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); - //to make them lay with face down - m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, PLAYER_STATE_DEAD); - - uint32 mobId = m_creature->GetEntry(); - - switch (mobId) - { //lower max health - case 12923: - case 12938: //Injured Soldier - m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.75)); - break; - case 12924: - case 12936: //Badly injured Soldier - m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.50)); - break; - case 12925: - case 12937: //Critically injured Soldier - m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.25)); - break; - } - } - - void Aggro(Unit* who){} - - void SpellHit(Unit *caster, const SpellEntry *spell) - { - if (caster->GetTypeId() == TYPEID_PLAYER && m_creature->isAlive() && spell->Id == 20804) - { - if( (((Player*)caster)->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (((Player*)caster)->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)) - { - if(Doctorguid) - { - Creature* Doctor = ((Creature*)Unit::GetUnit((*m_creature), Doctorguid)); - if(Doctor) - ((npc_doctorAI*)Doctor->AI())->PatientSaved(m_creature, ((Player*)caster), Coord); - } - } - //make not selectable - m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - //regen health - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); - //stand up - m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, PLAYER_STATE_NONE); - DoSay(SAY_DOC1,LANG_UNIVERSAL,NULL); - - uint32 mobId = m_creature->GetEntry(); - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); - switch (mobId) - { - case 12923: - case 12924: - case 12925: - m_creature->GetMotionMaster()->MovePoint(0, H_RUNTOX, H_RUNTOY, H_RUNTOZ); - break; - case 12936: - case 12937: - case 12938: - m_creature->GetMotionMaster()->MovePoint(0, A_RUNTOX, A_RUNTOY, A_RUNTOZ); - break; - } - } - return; - } - - void UpdateAI(const uint32 diff) - { - if (m_creature->isAlive() && m_creature->GetHealth() > 6) - { //lower HP on every world tick makes it a useful counter, not officlone though - m_creature->SetHealth(uint32(m_creature->GetHealth()-5) ); - } - - if (m_creature->isAlive() && m_creature->GetHealth() <= 6) - { - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT); - m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - m_creature->setDeathState(JUST_DIED); - m_creature->SetFlag(UNIT_DYNAMIC_FLAGS, 32); - - if(Doctorguid) - { - Creature* Doctor = ((Creature*)Unit::GetUnit((*m_creature), Doctorguid)); - if(Doctor) - ((npc_doctorAI*)Doctor->AI())->PatientDied(Coord); - } - } - } -}; - -CreatureAI* GetAI_npc_injured_patient(Creature *_Creature) -{ - return new npc_injured_patientAI (_Creature); -} - -/* -npc_doctor (continue) -*/ - -void npc_doctorAI::BeginEvent(Player* player) -{ - Playerguid = player->GetGUID(); - - SummonPatient_Timer = 10000; - SummonPatientCount = 0; - PatientDiedCount = 0; - PatientSavedCount = 0; - - switch(m_creature->GetEntry()) - { - case DOCTOR_ALLIANCE: - for(uint8 i = 0; i < ALLIANCE_COORDS; ++i) - Coordinates.push_back(&AllianceCoords[i]); - break; - - case DOCTOR_HORDE: - for(uint8 i = 0; i < HORDE_COORDS; ++i) - Coordinates.push_back(&HordeCoords[i]); - break; - } - - Event = true; - - m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); -} - -void npc_doctorAI::PatientDied(Location* Point) -{ - Player* player = ((Player*)Unit::GetUnit((*m_creature), Playerguid)); - if(player && ((player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE))) - { - PatientDiedCount++; - if (PatientDiedCount > 5 && Event) - { - if(player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) - player->FailQuest(6624); - else if(player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE) - player->FailQuest(6622); - - Event = false; - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - } - - Coordinates.push_back(Point); - } -} - -void npc_doctorAI::PatientSaved(Creature* soldier, Player* player, Location* Point) -{ - if(player && Playerguid == player->GetGUID()) - { - if((player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)) - { - PatientSavedCount++; - if(PatientSavedCount == 15) - { - if(!Patients.empty()) - { - std::list<uint64>::iterator itr; - for(itr = Patients.begin(); itr != Patients.end(); ++itr) - { - Creature* Patient = ((Creature*)Unit::GetUnit((*m_creature), *itr)); - if( Patient ) - Patient->setDeathState(JUST_DIED); - } - } - - if(player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) - player->AreaExploredOrEventHappens(6624); - else if(player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE) - player->AreaExploredOrEventHappens(6622); - - Event = false; - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - } - - Coordinates.push_back(Point); - } - } -} - -void npc_doctorAI::UpdateAI(const uint32 diff) -{ - if(Event && SummonPatientCount >= 20) - { - Event = false; - m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - } - - if(Event) - if(SummonPatient_Timer < diff) - { - Creature* Patient = NULL; - Location* Point = NULL; - - if(Coordinates.empty()) - return; - - std::vector<Location*>::iterator itr = Coordinates.begin()+rand()%Coordinates.size(); - uint32 patientEntry = 0; - - switch(m_creature->GetEntry()) - { - case DOCTOR_ALLIANCE: patientEntry = AllianceSoldierId[rand()%3]; break; - case DOCTOR_HORDE: patientEntry = HordeSoldierId[rand()%3]; break; - default: - error_log("SD2: Invalid entry for Triage doctor. Please check your database"); - return; - } - - Point = *itr; - - Patient = m_creature->SummonCreature(patientEntry, Point->x, Point->y, Point->z, Point->o, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); - - if(Patient) - { - Patients.push_back(Patient->GetGUID()); - ((npc_injured_patientAI*)Patient->AI())->Doctorguid = m_creature->GetGUID(); - if(Point) - ((npc_injured_patientAI*)Patient->AI())->Coord = Point; - Coordinates.erase(itr); - } - SummonPatient_Timer = 10000; - SummonPatientCount++; - }else SummonPatient_Timer -= diff; -} - -bool QuestAccept_npc_doctor(Player *player, Creature *creature, Quest const *quest ) -{ - if((quest->GetQuestId() == 6624) || (quest->GetQuestId() == 6622)) - ((npc_doctorAI*)creature->AI())->BeginEvent(player); - - return true; -} - -CreatureAI* GetAI_npc_doctor(Creature *_Creature) -{ - return new npc_doctorAI (_Creature); -} - -/*###### -## npc_guardian -######*/ - -#define SPELL_DEATHTOUCH 5 -#define SAY_AGGRO "This area is closed!" - -struct TRINITY_DLL_DECL npc_guardianAI : public ScriptedAI -{ - npc_guardianAI(Creature *c) : ScriptedAI(c) {Reset();} - - void Reset() - { - m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - } - - void Aggro(Unit *who) - { - DoYell(SAY_AGGRO,LANG_UNIVERSAL,NULL); - } - - void UpdateAI(const uint32 diff) - { - if (!m_creature->SelectHostilTarget() || !m_creature->getVictim()) - return; - - if (m_creature->isAttackReady()) - { - m_creature->CastSpell(m_creature->getVictim(),SPELL_DEATHTOUCH, true); - m_creature->resetAttackTimer(); - } - } -}; - -CreatureAI* GetAI_npc_guardian(Creature *_Creature) -{ - return new npc_guardianAI (_Creature); -} - -/*###### -## npc_mount_vendor -######*/ - -bool GossipHello_npc_mount_vendor(Player *player, Creature *_Creature) -{ - if (_Creature->isQuestGiver()) - player->PrepareQuestMenu( _Creature->GetGUID() ); - - bool canBuy; - canBuy = false; - uint32 vendor = _Creature->GetEntry(); - uint8 race = player->getRace(); - - switch (vendor) - { - case 384: //Katie Hunter - case 1460: //Unger Statforth - case 2357: //Merideth Carlson - case 4885: //Gregor MacVince - if (player->GetReputationRank(72) != REP_EXALTED && race != RACE_HUMAN) - player->SEND_GOSSIP_MENU(5855, _Creature->GetGUID()); - else canBuy = true; - break; - case 1261: //Veron Amberstill - if (player->GetReputationRank(47) != REP_EXALTED && race != RACE_DWARF) - player->SEND_GOSSIP_MENU(5856, _Creature->GetGUID()); - else canBuy = true; - break; - case 3362: //Ogunaro Wolfrunner - if (player->GetReputationRank(76) != REP_EXALTED && race != RACE_ORC) - player->SEND_GOSSIP_MENU(5841, _Creature->GetGUID()); - else canBuy = true; - break; - case 3685: //Harb Clawhoof - if (player->GetReputationRank(81) != REP_EXALTED && race != RACE_TAUREN) - player->SEND_GOSSIP_MENU(5843, _Creature->GetGUID()); - else canBuy = true; - break; - case 4730: //Lelanai - if (player->GetReputationRank(69) != REP_EXALTED && race != RACE_NIGHTELF) - player->SEND_GOSSIP_MENU(5844, _Creature->GetGUID()); - else canBuy = true; - break; - case 4731: //Zachariah Post - if (player->GetReputationRank(68) != REP_EXALTED && race != RACE_UNDEAD_PLAYER) - player->SEND_GOSSIP_MENU(5840, _Creature->GetGUID()); - else canBuy = true; - break; - case 7952: //Zjolnir - if (player->GetReputationRank(530) != REP_EXALTED && race != RACE_TROLL) - player->SEND_GOSSIP_MENU(5842, _Creature->GetGUID()); - else canBuy = true; - break; - case 7955: //Milli Featherwhistle - if (player->GetReputationRank(54) != REP_EXALTED && race != RACE_GNOME) - player->SEND_GOSSIP_MENU(5857, _Creature->GetGUID()); - else canBuy = true; - break; - case 16264: //Winaestra - if (player->GetReputationRank(911) != REP_EXALTED && race != RACE_BLOODELF) - player->SEND_GOSSIP_MENU(10305, _Creature->GetGUID()); - else canBuy = true; - break; - case 17584: //Torallius the Pack Handler - if (player->GetReputationRank(930) != REP_EXALTED && race != RACE_DRAENEI) - player->SEND_GOSSIP_MENU(10239, _Creature->GetGUID()); - else canBuy = true; - break; - } - - if (canBuy) - { - if (_Creature->isVendor()) - player->ADD_GOSSIP_ITEM( 1, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE); - player->SEND_GOSSIP_MENU(_Creature->GetNpcTextId(), _Creature->GetGUID()); - } - return true; -} - -bool GossipSelect_npc_mount_vendor(Player *player, Creature *_Creature, uint32 sender, uint32 action) -{ - if (action == GOSSIP_ACTION_TRADE) - player->SEND_VENDORLIST( _Creature->GetGUID() ); - - return true; -} - -/*###### -## npc_rogue_trainer -######*/ - -bool GossipHello_npc_rogue_trainer(Player *player, Creature *_Creature) -{ - if( _Creature->isQuestGiver() ) - player->PrepareQuestMenu( _Creature->GetGUID() ); - - if( _Creature->isTrainer() ) - player->ADD_GOSSIP_ITEM(2, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN); - - if( _Creature->isCanTrainingAndResetTalentsOf(player) ) - player->ADD_GOSSIP_ITEM(2, "I wish to unlearn my talents", GOSSIP_SENDER_MAIN, GOSSIP_OPTION_UNLEARNTALENTS); - - if( player->getClass() == CLASS_ROGUE && player->getLevel() >= 24 && !player->HasItemCount(17126,1) && !player->GetQuestRewardStatus(6681) ) - { - player->ADD_GOSSIP_ITEM(0, "<Take the letter>", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - player->SEND_GOSSIP_MENU(5996, _Creature->GetGUID()); - } else - player->SEND_GOSSIP_MENU(_Creature->GetNpcTextId(), _Creature->GetGUID()); - - return true; -} - -bool GossipSelect_npc_rogue_trainer(Player *player, Creature *_Creature, uint32 sender, uint32 action) -{ - switch( action ) - { - case GOSSIP_ACTION_INFO_DEF+1: - player->CLOSE_GOSSIP_MENU(); - player->CastSpell(player,21100,false); - break; - case GOSSIP_ACTION_TRAIN: - player->SEND_TRAINERLIST( _Creature->GetGUID() ); - break; - case GOSSIP_OPTION_UNLEARNTALENTS: - player->CLOSE_GOSSIP_MENU(); - player->SendTalentWipeConfirm( _Creature->GetGUID() ); - break; - } - return true; -} - -/*###### -## npc_sayge -######*/ - -#define SPELL_DMG 23768 //dmg -#define SPELL_RES 23769 //res -#define SPELL_ARM 23767 //arm -#define SPELL_SPI 23738 //spi -#define SPELL_INT 23766 //int -#define SPELL_STM 23737 //stm -#define SPELL_STR 23735 //str -#define SPELL_AGI 23736 //agi -#define SPELL_FORTUNE 23765 //faire fortune - -bool GossipHello_npc_sayge(Player *player, Creature *_Creature) -{ - if(_Creature->isQuestGiver()) - player->PrepareQuestMenu( _Creature->GetGUID() ); - - if( player->HasSpellCooldown(SPELL_INT) || - player->HasSpellCooldown(SPELL_ARM) || - player->HasSpellCooldown(SPELL_DMG) || - player->HasSpellCooldown(SPELL_RES) || - player->HasSpellCooldown(SPELL_STR) || - player->HasSpellCooldown(SPELL_AGI) || - player->HasSpellCooldown(SPELL_STM) || - player->HasSpellCooldown(SPELL_SPI) ) - player->SEND_GOSSIP_MENU(7393, _Creature->GetGUID()); - else - { - player->ADD_GOSSIP_ITEM(0, "Yes", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - player->SEND_GOSSIP_MENU(7339, _Creature->GetGUID()); - } - - return true; -} - -void SendAction_npc_sayge(Player *player, Creature *_Creature, uint32 action) -{ - switch(action) - { - case GOSSIP_ACTION_INFO_DEF+1: - player->ADD_GOSSIP_ITEM(0, "Slay the Man", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2); - player->ADD_GOSSIP_ITEM(0, "Turn him over to liege", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3); - player->ADD_GOSSIP_ITEM(0, "Confiscate the corn", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4); - player->ADD_GOSSIP_ITEM(0, "Let him go and have the corn", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5); - player->SEND_GOSSIP_MENU(7340, _Creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+2: - player->ADD_GOSSIP_ITEM(0, "Execute your friend painfully", GOSSIP_SENDER_MAIN+1, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(0, "Execute your friend painlessly", GOSSIP_SENDER_MAIN+2, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(0, "Let your friend go", GOSSIP_SENDER_MAIN+3, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(7341, _Creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+3: - player->ADD_GOSSIP_ITEM(0, "Confront the diplomat", GOSSIP_SENDER_MAIN+4, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(0, "Show not so quiet defiance", GOSSIP_SENDER_MAIN+5, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(0, "Remain quiet", GOSSIP_SENDER_MAIN+2, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(7361, _Creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+4: - player->ADD_GOSSIP_ITEM(0, "Speak against your brother openly", GOSSIP_SENDER_MAIN+6, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(0, "Help your brother in", GOSSIP_SENDER_MAIN+7, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(0, "Keep your brother out without letting him know", GOSSIP_SENDER_MAIN+8, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(7362, _Creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+5: - player->ADD_GOSSIP_ITEM(0, "Take credit, keep gold", GOSSIP_SENDER_MAIN+5, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(0, "Take credit, share the gold", GOSSIP_SENDER_MAIN+4, GOSSIP_ACTION_INFO_DEF); - player->ADD_GOSSIP_ITEM(0, "Let the knight take credit", GOSSIP_SENDER_MAIN+3, GOSSIP_ACTION_INFO_DEF); - player->SEND_GOSSIP_MENU(7363, _Creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF: - player->ADD_GOSSIP_ITEM(0, "Thanks", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6); - player->SEND_GOSSIP_MENU(7364, _Creature->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF+6: - _Creature->CastSpell(player, SPELL_FORTUNE, false); - player->SEND_GOSSIP_MENU(7365, _Creature->GetGUID()); - break; - } -} - -bool GossipSelect_npc_sayge(Player *player, Creature *_Creature, uint32 sender, uint32 action ) -{ - switch(sender) - { - case GOSSIP_SENDER_MAIN: - SendAction_npc_sayge(player, _Creature, action); - break; - case GOSSIP_SENDER_MAIN+1: - _Creature->CastSpell(player, SPELL_DMG, false); - player->AddSpellCooldown(SPELL_DMG,0,time(NULL) + 7200); - SendAction_npc_sayge(player, _Creature, action); - break; - case GOSSIP_SENDER_MAIN+2: - _Creature->CastSpell(player, SPELL_RES, false); - player->AddSpellCooldown(SPELL_RES,0,time(NULL) + 7200); - SendAction_npc_sayge(player, _Creature, action); - break; - case GOSSIP_SENDER_MAIN+3: - _Creature->CastSpell(player, SPELL_ARM, false); - player->AddSpellCooldown(SPELL_ARM,0,time(NULL) + 7200); - SendAction_npc_sayge(player, _Creature, action); - break; - case GOSSIP_SENDER_MAIN+4: - _Creature->CastSpell(player, SPELL_SPI, false); - player->AddSpellCooldown(SPELL_SPI,0,time(NULL) + 7200); - SendAction_npc_sayge(player, _Creature, action); - break; - case GOSSIP_SENDER_MAIN+5: - _Creature->CastSpell(player, SPELL_INT, false); - player->AddSpellCooldown(SPELL_INT,0,time(NULL) + 7200); - SendAction_npc_sayge(player, _Creature, action); - break; - case GOSSIP_SENDER_MAIN+6: - _Creature->CastSpell(player, SPELL_STM, false); - player->AddSpellCooldown(SPELL_STM,0,time(NULL) + 7200); - SendAction_npc_sayge(player, _Creature, action); - break; - case GOSSIP_SENDER_MAIN+7: - _Creature->CastSpell(player, SPELL_STR, false); - player->AddSpellCooldown(SPELL_STR,0,time(NULL) + 7200); - SendAction_npc_sayge(player, _Creature, action); - break; - case GOSSIP_SENDER_MAIN+8: - _Creature->CastSpell(player, SPELL_AGI, false); - player->AddSpellCooldown(SPELL_AGI,0,time(NULL) + 7200); - SendAction_npc_sayge(player, _Creature, action); - break; - } - return true; -} - -struct TRINITY_DLL_DECL npc_steam_tonkAI : public ScriptedAI -{ - npc_steam_tonkAI(Creature *c) : ScriptedAI(c) {Reset();} - - void Reset() {} - void Aggro(Unit *who) {} - - void OnPossess(bool apply) - { - if (apply) - { - // Initialize the action bar without the melee attack command - m_creature->InitCharmInfo(m_creature); - m_creature->GetCharmInfo()->InitEmptyActionBar(false); - } - } - -}; - -CreatureAI* GetAI_npc_steam_tonk(Creature *_Creature) -{ - return new npc_steam_tonkAI(_Creature); -} - -#define SPELL_TONK_MINE_DETONATE 25099 - -struct TRINITY_DLL_DECL npc_tonk_mineAI : public ScriptedAI -{ - npc_tonk_mineAI(Creature *c) : ScriptedAI(c) {Reset();} - - uint32 ExplosionTimer; - - void Reset() - { - ExplosionTimer = 3000; - } - - void Aggro(Unit *who) {} - void AttackStart(Unit *who) {} - void MoveInLineOfSight(Unit *who) {} - - void UpdateAI(const uint32 diff) - { - if (ExplosionTimer < diff) - { - m_creature->CastSpell(m_creature, SPELL_TONK_MINE_DETONATE, true); - m_creature->setDeathState(DEAD); // unsummon it - } else - ExplosionTimer -= diff; - } -}; - -CreatureAI* GetAI_npc_tonk_mine(Creature *_Creature) -{ - return new npc_tonk_mineAI(_Creature); -} - -void AddSC_npcs_special() -{ - Script *newscript; - - newscript = new Script; - newscript->Name="npc_chicken_cluck"; - newscript->GetAI = GetAI_npc_chicken_cluck; - newscript->pReceiveEmote = &ReceiveEmote_npc_chicken_cluck; - newscript->pQuestAccept = &QuestAccept_npc_chicken_cluck; - newscript->pQuestComplete = &QuestComplete_npc_chicken_cluck; - m_scripts[nrscripts++] = newscript; - - newscript = new Script; - newscript->Name="npc_dancing_flames"; - newscript->pReceiveEmote = &ReceiveEmote_npc_dancing_flames; - m_scripts[nrscripts++] = newscript; - - newscript = new Script; - newscript->Name="npc_injured_patient"; - newscript->GetAI = GetAI_npc_injured_patient; - m_scripts[nrscripts++] = newscript; - - newscript = new Script; - newscript->Name="npc_doctor"; - newscript->GetAI = GetAI_npc_doctor; - newscript->pQuestAccept = &QuestAccept_npc_doctor; - m_scripts[nrscripts++] = newscript; - - newscript = new Script; - newscript->Name="npc_guardian"; - newscript->GetAI = GetAI_npc_guardian; - m_scripts[nrscripts++] = newscript; - - newscript = new Script; - newscript->Name="npc_mount_vendor"; - newscript->pGossipHello = &GossipHello_npc_mount_vendor; - newscript->pGossipSelect = &GossipSelect_npc_mount_vendor; - m_scripts[nrscripts++] = newscript; - - newscript = new Script; - newscript->Name="npc_rogue_trainer"; - newscript->pGossipHello = &GossipHello_npc_rogue_trainer; - newscript->pGossipSelect = &GossipSelect_npc_rogue_trainer; - m_scripts[nrscripts++] = newscript; - - newscript = new Script; - newscript->Name="npc_sayge"; - newscript->pGossipHello = &GossipHello_npc_sayge; - newscript->pGossipSelect = &GossipSelect_npc_sayge; - m_scripts[nrscripts++] = newscript; - - newscript = new Script; - newscript->Name="npc_steam_tonk"; - newscript->GetAI = &GetAI_npc_steam_tonk; - m_scripts[nrscripts++] = newscript; - - newscript = new Script; - newscript->Name="npc_tonk_mine"; - newscript->GetAI = &GetAI_npc_tonk_mine; - m_scripts[nrscripts++] = newscript; -} +/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* ScriptData
+SDName: Npcs_Special
+SD%Complete: 100
+SDComment: To be used for special NPCs that are located globally. Support for quest 3861 (Cluck!), 6622 and 6624 (Triage)
+SDCategory: NPCs
+EndScriptData
+*/
+
+/* ContentData
+npc_chicken_cluck 100% support for quest 3861 (Cluck!)
+npc_dancing_flames 100% midsummer event NPC
+npc_guardian 100% guardianAI used to prevent players from accessing off-limits areas. Not in use by SD2
+npc_injured_patient 100% patients for triage-quests (6622 and 6624)
+npc_doctor 100% Gustaf Vanhowzen and Gregory Victor, quest 6622 and 6624 (Triage)
+npc_mount_vendor 100% Regular mount vendors all over the world. Display gossip if player doesn't meet the requirements to buy
+npc_rogue_trainer 80% Scripted trainers, so they are able to offer item 17126 for class quest 6681
+npc_sayge 100% Darkmoon event fortune teller, buff player based on answers given
+EndContentData */
+
+#include "precompiled.h"
+
+/*########
+# npc_chicken_cluck
+#########*/
+
+#define QUEST_CLUCK 3861
+#define EMOTE_A_HELLO "looks up at you quizzically. Maybe you should inspect it?"
+#define EMOTE_H_HELLO "looks at you unexpectadly."
+#define CLUCK_TEXT2 "starts pecking at the feed."
+#define FACTION_FRIENDLY 84
+#define FACTION_CHICKEN 31
+
+struct TRINITY_DLL_DECL npc_chicken_cluckAI : public ScriptedAI
+{
+ npc_chicken_cluckAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ uint32 ResetFlagTimer;
+
+ void Reset()
+ {
+ ResetFlagTimer = 120000;
+
+ m_creature->setFaction(FACTION_CHICKEN);
+ m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ }
+
+ void Aggro(Unit *who) {}
+
+ void UpdateAI(const uint32 diff)
+ {
+ // Reset flags after a certain time has passed so that the next player has to start the 'event' again
+ if(m_creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
+ {
+ if(ResetFlagTimer < diff)
+ EnterEvadeMode();
+ else ResetFlagTimer -= diff;
+ }
+
+ if(m_creature->SelectHostilTarget() && m_creature->getVictim())
+ DoMeleeAttackIfReady();
+ }
+};
+
+CreatureAI* GetAI_npc_chicken_cluck(Creature *_Creature)
+{
+ return new npc_chicken_cluckAI(_Creature);
+}
+
+bool ReceiveEmote_npc_chicken_cluck( Player *player, Creature *_Creature, uint32 emote )
+{
+ if( emote == TEXTEMOTE_CHICKEN )
+ {
+ if( player->GetTeam() == ALLIANCE )
+ {
+ if( rand()%30 == 1 )
+ {
+ if( player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_NONE )
+ {
+ _Creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ _Creature->setFaction(FACTION_FRIENDLY);
+ _Creature->MonsterTextEmote(EMOTE_A_HELLO, 0);
+ }
+ }
+ } else
+ _Creature->MonsterTextEmote(EMOTE_H_HELLO,0);
+ }
+ if( emote == TEXTEMOTE_CHEER && player->GetTeam() == ALLIANCE )
+ if( player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_COMPLETE )
+ {
+ _Creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ _Creature->setFaction(FACTION_FRIENDLY);
+ _Creature->MonsterTextEmote(CLUCK_TEXT2, 0);
+ }
+
+ return true;
+}
+
+bool QuestAccept_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest )
+{
+ if(_Quest->GetQuestId() == QUEST_CLUCK)
+ ((npc_chicken_cluckAI*)_Creature->AI())->Reset();
+
+ return true;
+}
+
+bool QuestComplete_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest)
+{
+ if(_Quest->GetQuestId() == QUEST_CLUCK)
+ ((npc_chicken_cluckAI*)_Creature->AI())->Reset();
+
+ return true;
+}
+
+/*######
+## npc_dancing_flames
+######*/
+
+bool ReceiveEmote_npc_dancing_flames( Player *player, Creature *_Creature, uint32 emote )
+{
+ if( emote == TEXTEMOTE_DANCE )
+ _Creature->CastSpell(player,47057,false);
+
+ return true;
+}
+
+/*######
+## Triage quest
+######*/
+
+#define SAY_DOC1 "I'm saved! Thank you, doctor!"
+#define SAY_DOC2 "HOORAY! I AM SAVED!"
+#define SAY_DOC3 "Sweet, sweet embrace... take me..."
+
+struct Location
+{
+ float x, y, z, o;
+};
+
+#define DOCTOR_ALLIANCE 12939
+
+static Location AllianceCoords[]=
+{
+ { // Top-far-right bunk as seen from entrance
+ -3757.38, -4533.05, 14.16, 3.62
+ },
+ { // Top-far-left bunk
+ -3754.36, -4539.13, 14.16, 5.13
+ },
+ { // Far-right bunk
+ -3749.54, -4540.25, 14.28, 3.34
+ },
+ { // Right bunk near entrance
+ -3742.10, -4536.85, 14.28, 3.64
+ },
+ { // Far-left bunk
+ -3755.89, -4529.07, 14.05, 0.57
+ },
+ { // Mid-left bunk
+ -3749.51, -4527.08, 14.07, 5.26
+ },
+ { // Left bunk near entrance
+ -3746.37, -4525.35, 14.16, 5.22
+ },
+};
+
+#define ALLIANCE_COORDS 7
+
+//alliance run to where
+#define A_RUNTOX -3742.96
+#define A_RUNTOY -4531.52
+#define A_RUNTOZ 11.91
+
+#define DOCTOR_HORDE 12920
+
+static Location HordeCoords[]=
+{
+ { // Left, Behind
+ -1013.75, -3492.59, 62.62, 4.34
+ },
+ { // Right, Behind
+ -1017.72, -3490.92, 62.62, 4.34
+ },
+ { // Left, Mid
+ -1015.77, -3497.15, 62.82, 4.34
+ },
+ { // Right, Mid
+ -1019.51, -3495.49, 62.82, 4.34
+ },
+ { // Left, front
+ -1017.25, -3500.85, 62.98, 4.34
+ },
+ { // Right, Front
+ -1020.95, -3499.21, 62.98, 4.34
+ }
+};
+
+#define HORDE_COORDS 6
+
+//horde run to where
+#define H_RUNTOX -1016.44
+#define H_RUNTOY -3508.48
+#define H_RUNTOZ 62.96
+
+const uint32 AllianceSoldierId[3] =
+{
+ 12938, // 12938 Injured Alliance Soldier
+ 12936, // 12936 Badly injured Alliance Soldier
+ 12937 // 12937 Critically injured Alliance Soldier
+};
+
+const uint32 HordeSoldierId[3] =
+{
+ 12923, //12923 Injured Soldier
+ 12924, //12924 Badly injured Soldier
+ 12925 //12925 Critically injured Soldier
+};
+
+/*######
+## npc_doctor (handles both Gustaf Vanhowzen and Gregory Victor)
+######*/
+
+struct TRINITY_DLL_DECL npc_doctorAI : public ScriptedAI
+{
+ uint64 Playerguid;
+
+ uint32 SummonPatient_Timer;
+ uint32 SummonPatientCount;
+ uint32 PatientDiedCount;
+ uint32 PatientSavedCount;
+
+ bool Event;
+
+ std::list<uint64> Patients;
+ std::vector<Location*> Coordinates;
+
+ npc_doctorAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ void Reset(){}
+
+ void BeginEvent(Player* player);
+ void PatientDied(Location* Point);
+ void PatientSaved(Creature* soldier, Player* player, Location* Point);
+ void UpdateAI(const uint32 diff);
+
+ void Aggro(Unit* who){}
+};
+
+/*#####
+## npc_injured_patient (handles all the patients, no matter Horde or Alliance)
+#####*/
+
+struct TRINITY_DLL_DECL npc_injured_patientAI : public ScriptedAI
+{
+ npc_injured_patientAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ uint64 Doctorguid;
+
+ Location* Coord;
+
+ void Reset()
+ {
+ Doctorguid = 0;
+
+ Coord = NULL;
+ //no select
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ //no regen health
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ //to make them lay with face down
+ m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, PLAYER_STATE_DEAD);
+
+ uint32 mobId = m_creature->GetEntry();
+
+ switch (mobId)
+ { //lower max health
+ case 12923:
+ case 12938: //Injured Soldier
+ m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.75));
+ break;
+ case 12924:
+ case 12936: //Badly injured Soldier
+ m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.50));
+ break;
+ case 12925:
+ case 12937: //Critically injured Soldier
+ m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.25));
+ break;
+ }
+ }
+
+ void Aggro(Unit* who){}
+
+ void SpellHit(Unit *caster, const SpellEntry *spell)
+ {
+ if (caster->GetTypeId() == TYPEID_PLAYER && m_creature->isAlive() && spell->Id == 20804)
+ {
+ if( (((Player*)caster)->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (((Player*)caster)->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE))
+ {
+ if(Doctorguid)
+ {
+ Creature* Doctor = ((Creature*)Unit::GetUnit((*m_creature), Doctorguid));
+ if(Doctor)
+ ((npc_doctorAI*)Doctor->AI())->PatientSaved(m_creature, ((Player*)caster), Coord);
+ }
+ }
+ //make not selectable
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ //regen health
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ //stand up
+ m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, PLAYER_STATE_NONE);
+ DoSay(SAY_DOC1,LANG_UNIVERSAL,NULL);
+
+ uint32 mobId = m_creature->GetEntry();
+ m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
+ switch (mobId)
+ {
+ case 12923:
+ case 12924:
+ case 12925:
+ m_creature->GetMotionMaster()->MovePoint(0, H_RUNTOX, H_RUNTOY, H_RUNTOZ);
+ break;
+ case 12936:
+ case 12937:
+ case 12938:
+ m_creature->GetMotionMaster()->MovePoint(0, A_RUNTOX, A_RUNTOY, A_RUNTOZ);
+ break;
+ }
+ }
+ return;
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (m_creature->isAlive() && m_creature->GetHealth() > 6)
+ { //lower HP on every world tick makes it a useful counter, not officlone though
+ m_creature->SetHealth(uint32(m_creature->GetHealth()-5) );
+ }
+
+ if (m_creature->isAlive() && m_creature->GetHealth() <= 6)
+ {
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ m_creature->setDeathState(JUST_DIED);
+ m_creature->SetFlag(UNIT_DYNAMIC_FLAGS, 32);
+
+ if(Doctorguid)
+ {
+ Creature* Doctor = ((Creature*)Unit::GetUnit((*m_creature), Doctorguid));
+ if(Doctor)
+ ((npc_doctorAI*)Doctor->AI())->PatientDied(Coord);
+ }
+ }
+ }
+};
+
+CreatureAI* GetAI_npc_injured_patient(Creature *_Creature)
+{
+ return new npc_injured_patientAI (_Creature);
+}
+
+/*
+npc_doctor (continue)
+*/
+
+void npc_doctorAI::BeginEvent(Player* player)
+{
+ Playerguid = player->GetGUID();
+
+ SummonPatient_Timer = 10000;
+ SummonPatientCount = 0;
+ PatientDiedCount = 0;
+ PatientSavedCount = 0;
+
+ switch(m_creature->GetEntry())
+ {
+ case DOCTOR_ALLIANCE:
+ for(uint8 i = 0; i < ALLIANCE_COORDS; ++i)
+ Coordinates.push_back(&AllianceCoords[i]);
+ break;
+
+ case DOCTOR_HORDE:
+ for(uint8 i = 0; i < HORDE_COORDS; ++i)
+ Coordinates.push_back(&HordeCoords[i]);
+ break;
+ }
+
+ Event = true;
+
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+}
+
+void npc_doctorAI::PatientDied(Location* Point)
+{
+ Player* player = ((Player*)Unit::GetUnit((*m_creature), Playerguid));
+ if(player && ((player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)))
+ {
+ PatientDiedCount++;
+ if (PatientDiedCount > 5 && Event)
+ {
+ if(player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE)
+ player->FailQuest(6624);
+ else if(player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)
+ player->FailQuest(6622);
+
+ Event = false;
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+
+ Coordinates.push_back(Point);
+ }
+}
+
+void npc_doctorAI::PatientSaved(Creature* soldier, Player* player, Location* Point)
+{
+ if(player && Playerguid == player->GetGUID())
+ {
+ if((player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE))
+ {
+ PatientSavedCount++;
+ if(PatientSavedCount == 15)
+ {
+ if(!Patients.empty())
+ {
+ std::list<uint64>::iterator itr;
+ for(itr = Patients.begin(); itr != Patients.end(); ++itr)
+ {
+ Creature* Patient = ((Creature*)Unit::GetUnit((*m_creature), *itr));
+ if( Patient )
+ Patient->setDeathState(JUST_DIED);
+ }
+ }
+
+ if(player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE)
+ player->AreaExploredOrEventHappens(6624);
+ else if(player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)
+ player->AreaExploredOrEventHappens(6622);
+
+ Event = false;
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+
+ Coordinates.push_back(Point);
+ }
+ }
+}
+
+void npc_doctorAI::UpdateAI(const uint32 diff)
+{
+ if(Event && SummonPatientCount >= 20)
+ {
+ Event = false;
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+
+ if(Event)
+ if(SummonPatient_Timer < diff)
+ {
+ Creature* Patient = NULL;
+ Location* Point = NULL;
+
+ if(Coordinates.empty())
+ return;
+
+ std::vector<Location*>::iterator itr = Coordinates.begin()+rand()%Coordinates.size();
+ uint32 patientEntry = 0;
+
+ switch(m_creature->GetEntry())
+ {
+ case DOCTOR_ALLIANCE: patientEntry = AllianceSoldierId[rand()%3]; break;
+ case DOCTOR_HORDE: patientEntry = HordeSoldierId[rand()%3]; break;
+ default:
+ error_log("SD2: Invalid entry for Triage doctor. Please check your database");
+ return;
+ }
+
+ Point = *itr;
+
+ Patient = m_creature->SummonCreature(patientEntry, Point->x, Point->y, Point->z, Point->o, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+
+ if(Patient)
+ {
+ Patients.push_back(Patient->GetGUID());
+ ((npc_injured_patientAI*)Patient->AI())->Doctorguid = m_creature->GetGUID();
+ if(Point)
+ ((npc_injured_patientAI*)Patient->AI())->Coord = Point;
+ Coordinates.erase(itr);
+ }
+ SummonPatient_Timer = 10000;
+ SummonPatientCount++;
+ }else SummonPatient_Timer -= diff;
+}
+
+bool QuestAccept_npc_doctor(Player *player, Creature *creature, Quest const *quest )
+{
+ if((quest->GetQuestId() == 6624) || (quest->GetQuestId() == 6622))
+ ((npc_doctorAI*)creature->AI())->BeginEvent(player);
+
+ return true;
+}
+
+CreatureAI* GetAI_npc_doctor(Creature *_Creature)
+{
+ return new npc_doctorAI (_Creature);
+}
+
+/*######
+## npc_guardian
+######*/
+
+#define SPELL_DEATHTOUCH 5
+#define SAY_AGGRO "This area is closed!"
+
+struct TRINITY_DLL_DECL npc_guardianAI : public ScriptedAI
+{
+ npc_guardianAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ void Reset()
+ {
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ }
+
+ void Aggro(Unit *who)
+ {
+ DoYell(SAY_AGGRO,LANG_UNIVERSAL,NULL);
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
+ return;
+
+ if (m_creature->isAttackReady())
+ {
+ m_creature->CastSpell(m_creature->getVictim(),SPELL_DEATHTOUCH, true);
+ m_creature->resetAttackTimer();
+ }
+ }
+};
+
+CreatureAI* GetAI_npc_guardian(Creature *_Creature)
+{
+ return new npc_guardianAI (_Creature);
+}
+
+/*######
+## npc_mount_vendor
+######*/
+
+bool GossipHello_npc_mount_vendor(Player *player, Creature *_Creature)
+{
+ if (_Creature->isQuestGiver())
+ player->PrepareQuestMenu( _Creature->GetGUID() );
+
+ bool canBuy;
+ canBuy = false;
+ uint32 vendor = _Creature->GetEntry();
+ uint8 race = player->getRace();
+
+ switch (vendor)
+ {
+ case 384: //Katie Hunter
+ case 1460: //Unger Statforth
+ case 2357: //Merideth Carlson
+ case 4885: //Gregor MacVince
+ if (player->GetReputationRank(72) != REP_EXALTED && race != RACE_HUMAN)
+ player->SEND_GOSSIP_MENU(5855, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 1261: //Veron Amberstill
+ if (player->GetReputationRank(47) != REP_EXALTED && race != RACE_DWARF)
+ player->SEND_GOSSIP_MENU(5856, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 3362: //Ogunaro Wolfrunner
+ if (player->GetReputationRank(76) != REP_EXALTED && race != RACE_ORC)
+ player->SEND_GOSSIP_MENU(5841, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 3685: //Harb Clawhoof
+ if (player->GetReputationRank(81) != REP_EXALTED && race != RACE_TAUREN)
+ player->SEND_GOSSIP_MENU(5843, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 4730: //Lelanai
+ if (player->GetReputationRank(69) != REP_EXALTED && race != RACE_NIGHTELF)
+ player->SEND_GOSSIP_MENU(5844, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 4731: //Zachariah Post
+ if (player->GetReputationRank(68) != REP_EXALTED && race != RACE_UNDEAD_PLAYER)
+ player->SEND_GOSSIP_MENU(5840, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 7952: //Zjolnir
+ if (player->GetReputationRank(530) != REP_EXALTED && race != RACE_TROLL)
+ player->SEND_GOSSIP_MENU(5842, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 7955: //Milli Featherwhistle
+ if (player->GetReputationRank(54) != REP_EXALTED && race != RACE_GNOME)
+ player->SEND_GOSSIP_MENU(5857, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 16264: //Winaestra
+ if (player->GetReputationRank(911) != REP_EXALTED && race != RACE_BLOODELF)
+ player->SEND_GOSSIP_MENU(10305, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 17584: //Torallius the Pack Handler
+ if (player->GetReputationRank(930) != REP_EXALTED && race != RACE_DRAENEI)
+ player->SEND_GOSSIP_MENU(10239, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ }
+
+ if (canBuy)
+ {
+ if (_Creature->isVendor())
+ player->ADD_GOSSIP_ITEM( 1, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
+ player->SEND_GOSSIP_MENU(_Creature->GetNpcTextId(), _Creature->GetGUID());
+ }
+ return true;
+}
+
+bool GossipSelect_npc_mount_vendor(Player *player, Creature *_Creature, uint32 sender, uint32 action)
+{
+ if (action == GOSSIP_ACTION_TRADE)
+ player->SEND_VENDORLIST( _Creature->GetGUID() );
+
+ return true;
+}
+
+/*######
+## npc_rogue_trainer
+######*/
+
+bool GossipHello_npc_rogue_trainer(Player *player, Creature *_Creature)
+{
+ if( _Creature->isQuestGiver() )
+ player->PrepareQuestMenu( _Creature->GetGUID() );
+
+ if( _Creature->isTrainer() )
+ player->ADD_GOSSIP_ITEM(2, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
+
+ if( _Creature->isCanTrainingAndResetTalentsOf(player) )
+ player->ADD_GOSSIP_ITEM(2, "I wish to unlearn my talents", GOSSIP_SENDER_MAIN, GOSSIP_OPTION_UNLEARNTALENTS);
+
+ if( player->getClass() == CLASS_ROGUE && player->getLevel() >= 24 && !player->HasItemCount(17126,1) && !player->GetQuestRewardStatus(6681) )
+ {
+ player->ADD_GOSSIP_ITEM(0, "<Take the letter>", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+ player->SEND_GOSSIP_MENU(5996, _Creature->GetGUID());
+ } else
+ player->SEND_GOSSIP_MENU(_Creature->GetNpcTextId(), _Creature->GetGUID());
+
+ return true;
+}
+
+bool GossipSelect_npc_rogue_trainer(Player *player, Creature *_Creature, uint32 sender, uint32 action)
+{
+ switch( action )
+ {
+ case GOSSIP_ACTION_INFO_DEF+1:
+ player->CLOSE_GOSSIP_MENU();
+ player->CastSpell(player,21100,false);
+ break;
+ case GOSSIP_ACTION_TRAIN:
+ player->SEND_TRAINERLIST( _Creature->GetGUID() );
+ break;
+ case GOSSIP_OPTION_UNLEARNTALENTS:
+ player->CLOSE_GOSSIP_MENU();
+ player->SendTalentWipeConfirm( _Creature->GetGUID() );
+ break;
+ }
+ return true;
+}
+
+/*######
+## npc_sayge
+######*/
+
+#define SPELL_DMG 23768 //dmg
+#define SPELL_RES 23769 //res
+#define SPELL_ARM 23767 //arm
+#define SPELL_SPI 23738 //spi
+#define SPELL_INT 23766 //int
+#define SPELL_STM 23737 //stm
+#define SPELL_STR 23735 //str
+#define SPELL_AGI 23736 //agi
+#define SPELL_FORTUNE 23765 //faire fortune
+
+bool GossipHello_npc_sayge(Player *player, Creature *_Creature)
+{
+ if(_Creature->isQuestGiver())
+ player->PrepareQuestMenu( _Creature->GetGUID() );
+
+ if( player->HasSpellCooldown(SPELL_INT) ||
+ player->HasSpellCooldown(SPELL_ARM) ||
+ player->HasSpellCooldown(SPELL_DMG) ||
+ player->HasSpellCooldown(SPELL_RES) ||
+ player->HasSpellCooldown(SPELL_STR) ||
+ player->HasSpellCooldown(SPELL_AGI) ||
+ player->HasSpellCooldown(SPELL_STM) ||
+ player->HasSpellCooldown(SPELL_SPI) )
+ player->SEND_GOSSIP_MENU(7393, _Creature->GetGUID());
+ else
+ {
+ player->ADD_GOSSIP_ITEM(0, "Yes", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+ player->SEND_GOSSIP_MENU(7339, _Creature->GetGUID());
+ }
+
+ return true;
+}
+
+void SendAction_npc_sayge(Player *player, Creature *_Creature, uint32 action)
+{
+ switch(action)
+ {
+ case GOSSIP_ACTION_INFO_DEF+1:
+ player->ADD_GOSSIP_ITEM(0, "Slay the Man", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
+ player->ADD_GOSSIP_ITEM(0, "Turn him over to liege", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
+ player->ADD_GOSSIP_ITEM(0, "Confiscate the corn", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
+ player->ADD_GOSSIP_ITEM(0, "Let him go and have the corn", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
+ player->SEND_GOSSIP_MENU(7340, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+2:
+ player->ADD_GOSSIP_ITEM(0, "Execute your friend painfully", GOSSIP_SENDER_MAIN+1, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Execute your friend painlessly", GOSSIP_SENDER_MAIN+2, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Let your friend go", GOSSIP_SENDER_MAIN+3, GOSSIP_ACTION_INFO_DEF);
+ player->SEND_GOSSIP_MENU(7341, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+3:
+ player->ADD_GOSSIP_ITEM(0, "Confront the diplomat", GOSSIP_SENDER_MAIN+4, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Show not so quiet defiance", GOSSIP_SENDER_MAIN+5, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Remain quiet", GOSSIP_SENDER_MAIN+2, GOSSIP_ACTION_INFO_DEF);
+ player->SEND_GOSSIP_MENU(7361, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+4:
+ player->ADD_GOSSIP_ITEM(0, "Speak against your brother openly", GOSSIP_SENDER_MAIN+6, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Help your brother in", GOSSIP_SENDER_MAIN+7, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Keep your brother out without letting him know", GOSSIP_SENDER_MAIN+8, GOSSIP_ACTION_INFO_DEF);
+ player->SEND_GOSSIP_MENU(7362, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+5:
+ player->ADD_GOSSIP_ITEM(0, "Take credit, keep gold", GOSSIP_SENDER_MAIN+5, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Take credit, share the gold", GOSSIP_SENDER_MAIN+4, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Let the knight take credit", GOSSIP_SENDER_MAIN+3, GOSSIP_ACTION_INFO_DEF);
+ player->SEND_GOSSIP_MENU(7363, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF:
+ player->ADD_GOSSIP_ITEM(0, "Thanks", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
+ player->SEND_GOSSIP_MENU(7364, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+6:
+ _Creature->CastSpell(player, SPELL_FORTUNE, false);
+ player->SEND_GOSSIP_MENU(7365, _Creature->GetGUID());
+ break;
+ }
+}
+
+bool GossipSelect_npc_sayge(Player *player, Creature *_Creature, uint32 sender, uint32 action )
+{
+ switch(sender)
+ {
+ case GOSSIP_SENDER_MAIN:
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+1:
+ _Creature->CastSpell(player, SPELL_DMG, false);
+ player->AddSpellCooldown(SPELL_DMG,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+2:
+ _Creature->CastSpell(player, SPELL_RES, false);
+ player->AddSpellCooldown(SPELL_RES,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+3:
+ _Creature->CastSpell(player, SPELL_ARM, false);
+ player->AddSpellCooldown(SPELL_ARM,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+4:
+ _Creature->CastSpell(player, SPELL_SPI, false);
+ player->AddSpellCooldown(SPELL_SPI,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+5:
+ _Creature->CastSpell(player, SPELL_INT, false);
+ player->AddSpellCooldown(SPELL_INT,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+6:
+ _Creature->CastSpell(player, SPELL_STM, false);
+ player->AddSpellCooldown(SPELL_STM,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+7:
+ _Creature->CastSpell(player, SPELL_STR, false);
+ player->AddSpellCooldown(SPELL_STR,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+8:
+ _Creature->CastSpell(player, SPELL_AGI, false);
+ player->AddSpellCooldown(SPELL_AGI,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ }
+ return true;
+}
+
+struct TRINITY_DLL_DECL npc_steam_tonkAI : public ScriptedAI
+{
+ npc_steam_tonkAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ void Reset() {}
+ void Aggro(Unit *who) {}
+
+ void OnPossess(bool apply)
+ {
+ if (apply)
+ {
+ // Initialize the action bar without the melee attack command
+ m_creature->InitCharmInfo(m_creature);
+ m_creature->GetCharmInfo()->InitEmptyActionBar(false);
+ }
+ }
+
+};
+
+CreatureAI* GetAI_npc_steam_tonk(Creature *_Creature)
+{
+ return new npc_steam_tonkAI(_Creature);
+}
+
+#define SPELL_TONK_MINE_DETONATE 25099
+
+struct TRINITY_DLL_DECL npc_tonk_mineAI : public ScriptedAI
+{
+ npc_tonk_mineAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ uint32 ExplosionTimer;
+
+ void Reset()
+ {
+ ExplosionTimer = 3000;
+ }
+
+ void Aggro(Unit *who) {}
+ void AttackStart(Unit *who) {}
+ void MoveInLineOfSight(Unit *who) {}
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (ExplosionTimer < diff)
+ {
+ m_creature->CastSpell(m_creature, SPELL_TONK_MINE_DETONATE, true);
+ m_creature->setDeathState(DEAD); // unsummon it
+ } else
+ ExplosionTimer -= diff;
+ }
+};
+
+CreatureAI* GetAI_npc_tonk_mine(Creature *_Creature)
+{
+ return new npc_tonk_mineAI(_Creature);
+}
+
+void AddSC_npcs_special()
+{
+ Script *newscript;
+
+ newscript = new Script;
+ newscript->Name="npc_chicken_cluck";
+ newscript->GetAI = GetAI_npc_chicken_cluck;
+ newscript->pReceiveEmote = &ReceiveEmote_npc_chicken_cluck;
+ newscript->pQuestAccept = &QuestAccept_npc_chicken_cluck;
+ newscript->pQuestComplete = &QuestComplete_npc_chicken_cluck;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_dancing_flames";
+ newscript->pReceiveEmote = &ReceiveEmote_npc_dancing_flames;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_injured_patient";
+ newscript->GetAI = GetAI_npc_injured_patient;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_doctor";
+ newscript->GetAI = GetAI_npc_doctor;
+ newscript->pQuestAccept = &QuestAccept_npc_doctor;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_guardian";
+ newscript->GetAI = GetAI_npc_guardian;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_mount_vendor";
+ newscript->pGossipHello = &GossipHello_npc_mount_vendor;
+ newscript->pGossipSelect = &GossipSelect_npc_mount_vendor;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_rogue_trainer";
+ newscript->pGossipHello = &GossipHello_npc_rogue_trainer;
+ newscript->pGossipSelect = &GossipSelect_npc_rogue_trainer;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_sayge";
+ newscript->pGossipHello = &GossipHello_npc_sayge;
+ newscript->pGossipSelect = &GossipSelect_npc_sayge;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_steam_tonk";
+ newscript->GetAI = &GetAI_npc_steam_tonk;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_tonk_mine";
+ newscript->GetAI = &GetAI_npc_tonk_mine;
+ newscript->RegisterSelf();
+}
diff --git a/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp b/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp index 98597afae3a..bb43a989a6b 100644 --- a/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp +++ b/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp @@ -58,5 +58,5 @@ void AddSC_alterac_mountains() newscript = new Script; newscript->Name="npc_ravenholdt"; newscript->GetAI = GetAI_npc_ravenholdt; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp index 055e0cbdbb9..810486aede7 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp @@ -348,15 +348,15 @@ void AddSC_boss_exarch_maladaar() newscript = new Script; newscript->Name="boss_exarch_maladaar"; newscript->GetAI = GetAI_boss_exarch_maladaar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_avatar_of_martyred"; newscript->GetAI = GetAI_mob_avatar_of_martyred; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_stolen_soul"; newscript->GetAI = GetAI_mob_stolen_soul; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp index 3db39e4f477..a9589736784 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp @@ -271,10 +271,10 @@ void AddSC_boss_nexusprince_shaffar() newscript = new Script; newscript->Name="boss_nexusprince_shaffar"; newscript->GetAI = GetAI_boss_nexusprince_shaffar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_ethereal_beacon"; newscript->GetAI = GetAI_mob_ethereal_beacon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp index d4c950c754b..3542c3e484a 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp @@ -134,5 +134,5 @@ void AddSC_boss_pandemonius() newscript = new Script; newscript->Name="boss_pandemonius"; newscript->GetAI = GetAI_boss_pandemonius; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp index 1b77d81a908..0581e9ac3af 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp @@ -392,25 +392,25 @@ void AddSC_boss_darkweaver_syth() newscript = new Script; newscript->Name="boss_darkweaver_syth"; newscript->GetAI = GetAI_boss_darkweaver_syth; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_syth_fire"; newscript->GetAI = GetAI_mob_syth_arcane; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_syth_arcane"; newscript->GetAI = GetAI_mob_syth_arcane; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_syth_frost"; newscript->GetAI = GetAI_mob_syth_frost; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_syth_shadow"; newscript->GetAI = GetAI_mob_syth_shadow; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp index ab9cd0f083b..be69ee79844 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp @@ -219,5 +219,5 @@ void AddSC_boss_talon_king_ikiss() newscript = new Script; newscript->Name="boss_talon_king_ikiss"; newscript->GetAI = GetAI_boss_talon_king_ikiss; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp index b49d18445c2..4ae6ad5c7a4 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp @@ -70,5 +70,5 @@ void AddSC_instance_sethekk_halls() newscript = new Script; newscript->Name = "instance_sethekk_halls"; newscript->GetInstanceData = GetInstanceData_instance_sethekk_halls; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp index e565becfaba..20bf7c2d95e 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp @@ -194,5 +194,5 @@ void AddSC_boss_ambassador_hellmaw() newscript = new Script; newscript->Name="boss_ambassador_hellmaw"; newscript->GetAI = GetAI_boss_ambassador_hellmaw; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp index ed2784471b3..8dd0a5f7060 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp @@ -173,5 +173,5 @@ void AddSC_boss_blackheart_the_inciter() newscript = new Script; newscript->Name="boss_blackheart_the_inciter"; newscript->GetAI = GetAI_boss_blackheart_the_inciter; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp index 16bd012e576..ed7108ad3e7 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp @@ -220,18 +220,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI if ( DrawnShadows_Timer < diff) { - Map *map = m_creature->GetMap(); - if(map->IsDungeon()) - { - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) - { - if((*i)->isAlive()) - { - (*i)->TeleportTo(555,VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0); - } - } - } + DoTeleportAll(VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0); m_creature->Relocate(VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0); DoCast(m_creature,SPELL_DRAWN_SHADOWS,true); @@ -374,10 +363,10 @@ void AddSC_boss_grandmaster_vorpil() newscript = new Script; newscript->Name="boss_grandmaster_vorpil"; newscript->GetAI = GetAI_boss_grandmaster_vorpil; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_voidtraveler"; newscript->GetAI = GetAI_mob_voidtraveler; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp index 5b223b8d5ad..a5c387dc317 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp @@ -148,5 +148,5 @@ void AddSC_boss_murmur() newscript = new Script; newscript->Name="boss_murmur"; newscript->GetAI = GetAI_boss_murmur; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp index 1d482754cbc..ff5afc179e2 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp @@ -174,5 +174,5 @@ void AddSC_instance_shadow_labyrinth() newscript = new Script; newscript->Name = "instance_shadow_labyrinth"; newscript->GetInstanceData = GetInstanceData_instance_shadow_labyrinth; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/azshara/azshara.cpp b/src/bindings/scripts/scripts/zone/azshara/azshara.cpp index 92c522fba60..5a62f5ee6c5 100644 --- a/src/bindings/scripts/scripts/zone/azshara/azshara.cpp +++ b/src/bindings/scripts/scripts/zone/azshara/azshara.cpp @@ -492,23 +492,23 @@ void AddSC_azshara() newscript = new Script; newscript->Name="mobs_spitelashes"; newscript->GetAI = GetAI_mobs_spitelashes; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_loramus_thalipedes"; newscript->pGossipHello = &GossipHello_npc_loramus_thalipedes; newscript->pGossipSelect = &GossipSelect_npc_loramus_thalipedes; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_rizzle_sprysprocket"; newscript->GetAI = GetAI_mob_rizzle_sprysprocket; newscript->pGossipHello = &GossipHello_mob_rizzle_sprysprocket; newscript->pGossipSelect = &GossipSelect_mob_rizzle_sprysprocket; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_depth_charge"; newscript->GetAI = GetAI_mob_depth_charge; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/azshara/boss_azuregos.cpp b/src/bindings/scripts/scripts/zone/azshara/boss_azuregos.cpp index 2908dc04285..f688892d709 100644 --- a/src/bindings/scripts/scripts/zone/azshara/boss_azuregos.cpp +++ b/src/bindings/scripts/scripts/zone/azshara/boss_azuregos.cpp @@ -149,5 +149,5 @@ void AddSC_boss_azuregos() newscript = new Script; newscript->Name="boss_azuregos"; newscript->GetAI = GetAI_boss_azuregos; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp b/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp index 43209b64ba8..03e26504228 100644 --- a/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp +++ b/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp @@ -350,23 +350,23 @@ void AddSC_azuremyst_isle() newscript = new Script; newscript->Name="npc_draenei_survivor"; newscript->GetAI = GetAI_npc_draenei_survivor; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_engineer_spark_overgrind"; newscript->GetAI = GetAI_npc_engineer_spark_overgrind; newscript->pGossipHello = &GossipHello_npc_engineer_spark_overgrind; newscript->pGossipSelect = &GossipSelect_npc_engineer_spark_overgrind; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_injured_draenei"; newscript->GetAI = GetAI_npc_injured_draenei; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_susurrus"; newscript->pGossipHello = &GossipHello_npc_susurrus; newscript->pGossipSelect = &GossipSelect_npc_susurrus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp b/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp index 788f4e2b8ce..468efc4d6a3 100644 --- a/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp +++ b/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp @@ -369,22 +369,22 @@ void AddSC_the_barrens() newscript->Name="npc_beaten_corpse"; newscript->pGossipHello = &GossipHello_npc_beaten_corpse; newscript->pGossipSelect = &GossipSelect_npc_beaten_corpse; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_sputtervalve"; newscript->pGossipHello = &GossipHello_npc_sputtervalve; newscript->pGossipSelect = &GossipSelect_npc_sputtervalve; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_taskmaster_fizzule"; newscript->GetAI = GetAI_npc_taskmaster_fizzule; newscript->pReceiveEmote = &ReciveEmote_npc_taskmaster_fizzule; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_twiggy_flathead"; newscript->GetAI = GetAI_npc_twiggy_flathead; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp b/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp index 757f6acef06..68b581bae1c 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp @@ -64,5 +64,5 @@ void AddSC_black_temple() newscript->Name = "npc_spirit_of_olum"; newscript->pGossipHello = GossipHello_npc_spirit_of_olum; newscript->pGossipSelect = GossipSelect_npc_spirit_of_olum; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp index 44bf36cad93..3f56e3cd59b 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp @@ -361,5 +361,5 @@ void AddSC_boss_gurtogg_bloodboil() newscript = new Script; newscript->Name="boss_gurtogg_bloodboil"; newscript->GetAI = GetAI_boss_gurtogg_bloodboil; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp index ce03d8eac3a..c7f2ec460d9 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp @@ -2247,52 +2247,52 @@ void AddSC_boss_illidan() newscript = new Script; newscript->Name = "boss_illidan_stormrage"; newscript->GetAI = GetAI_boss_illidan_stormrage; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_akama_illidan"; newscript->GetAI = GetAI_npc_akama_at_illidan; newscript->pGossipHello = GossipHello_npc_akama_at_illidan; newscript->pGossipSelect = GossipSelect_npc_akama_at_illidan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "boss_maiev_shadowsong"; newscript->GetAI = GetAI_boss_maiev; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_flame_of_azzinoth"; newscript->GetAI = GetAI_mob_flame_of_azzinoth; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_blade_of_azzinoth"; newscript->GetAI = GetAI_blade_of_azzinoth; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "gameobject_cage_trap"; newscript->pGOHello = GOHello_cage_trap; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_cage_trap_trigger"; newscript->GetAI = &GetAI_cage_trap_trigger; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_shadow_demon"; newscript->GetAI = GetAI_shadow_demon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_demon_fire"; newscript->GetAI = GetAI_demonfire; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_parasitic_shadowfiend"; newscript->GetAI = GetAI_parasitic_shadowfiend; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp index 0f5d2af3c22..ee8a2c8348e 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp @@ -357,5 +357,5 @@ void AddSC_boss_mother_shahraz() newscript = new Script; newscript->Name="boss_mother_shahraz"; newscript->GetAI = GetAI_boss_shahraz; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp index 3d6233ca3f7..8c5bdbc4a4a 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp @@ -723,25 +723,25 @@ void AddSC_boss_reliquary_of_souls() newscript = new Script; newscript->Name="boss_reliquary_of_souls"; newscript->GetAI = GetAI_boss_reliquary_of_souls; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_essence_of_suffering"; newscript->GetAI = GetAI_boss_essence_of_suffering; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_essence_of_desire"; newscript->GetAI = GetAI_boss_essence_of_desire; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_essence_of_anger"; newscript->GetAI = GetAI_boss_essence_of_anger; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_enslaved_soul"; newscript->GetAI = GetAI_npc_enslaved_soul; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp index 9c1d50950dc..3cd73df1bc7 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp @@ -796,22 +796,22 @@ void AddSC_boss_shade_of_akama() newscript = new Script; newscript->Name="boss_shade_of_akama"; newscript->GetAI = GetAI_boss_shade_of_akama; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_ashtongue_channeler"; newscript->GetAI = GetAI_mob_ashtongue_channeler; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_ashtongue_sorcerer"; newscript->GetAI = GetAI_mob_ashtongue_sorcerer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_akama_shade"; newscript->GetAI = GetAI_npc_akama_shade; newscript->pGossipHello = &GossipHello_npc_akama; newscript->pGossipSelect = &GossipSelect_npc_akama; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp index d6b2e08fac0..640977d0eb9 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp @@ -236,10 +236,10 @@ void AddSC_boss_supremus() newscript = new Script; newscript->Name="boss_supremus"; newscript->GetAI = GetAI_boss_supremus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="molten_flame"; newscript->GetAI = GetAI_molten_flame; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp index e2ab402c7ff..97fcde9265f 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp @@ -575,15 +575,15 @@ void AddSC_boss_teron_gorefiend() newscript = new Script; newscript->Name = "mob_doom_blossom"; newscript->GetAI = GetAI_mob_doom_blossom; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_shadowy_construct"; newscript->GetAI = GetAI_mob_shadowy_construct; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_teron_gorefiend"; newscript->GetAI = GetAI_boss_teron_gorefiend; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp index f49c2ef17c7..f2fe6f64f2f 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp @@ -258,10 +258,10 @@ void AddSC_boss_najentus() newscript = new Script; newscript->Name="boss_najentus"; newscript->GetAI = GetAI_boss_najentus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "go_najentus_spine"; newscript->pGOHello = &GOHello_go_najentus_spine; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp b/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp index 6e5cabc034c..42197029a89 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp @@ -855,30 +855,30 @@ void AddSC_boss_illidari_council() newscript = new Script; newscript->Name="mob_illidari_council"; newscript->GetAI = GetAI_mob_illidari_council; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_blood_elf_council_voice_trigger"; newscript->GetAI = GetAI_mob_blood_elf_council_voice_trigger; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_gathios_the_shatterer"; newscript->GetAI = GetAI_boss_gathios_the_shatterer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_lady_malande"; newscript->GetAI = GetAI_boss_lady_malande; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_veras_darkshadow"; newscript->GetAI = GetAI_boss_veras_darkshadow; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_high_nethermancer_zerevor"; newscript->GetAI = GetAI_boss_high_nethermancer_zerevor; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp b/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp index cfeb700282b..0ff92762389 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp @@ -332,5 +332,5 @@ void AddSC_instance_black_temple() newscript = new Script; newscript->Name = "instance_black_temple"; newscript->GetInstanceData = GetInstanceData_instance_black_temple; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp index 95a920d39a3..c6e1cbcafe9 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp @@ -221,17 +221,17 @@ void AddSC_blackrock_depths() newscript = new Script; newscript->Name="phalanx"; newscript->GetAI = GetAI_mob_phalanx; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_kharan_mighthammer"; newscript->pGossipHello = &GossipHello_npc_kharan_mighthammer; newscript->pGossipSelect = &GossipSelect_npc_kharan_mighthammer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_lokhtos_darkbargainer"; newscript->pGossipHello = &GossipHello_npc_lokhtos_darkbargainer; newscript->pGossipSelect = &GossipSelect_npc_lokhtos_darkbargainer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp index b63691a3b6e..2bb2a2ae004 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp @@ -102,5 +102,5 @@ void AddSC_boss_ambassador_flamelash() newscript = new Script; newscript->Name="boss_ambassador_flamelash"; newscript->GetAI = GetAI_boss_ambassador_flamelash; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_angerrel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_angerrel.cpp index 13b9f31e734..cbf895cc3e4 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_angerrel.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_angerrel.cpp @@ -87,5 +87,5 @@ void AddSC_boss_angerrel() newscript = new Script; newscript->Name="boss_angerrel"; newscript->GetAI = GetAI_boss_angerrel; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_anubshiah.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_anubshiah.cpp index 50cf2af8169..091863de655 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_anubshiah.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_anubshiah.cpp @@ -111,5 +111,5 @@ void AddSC_boss_anubshiah() newscript = new Script; newscript->Name="boss_anubshiah"; newscript->GetAI = GetAI_boss_anubshiah; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doomrel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doomrel.cpp index b58ebc7b97a..867afe417cd 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doomrel.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doomrel.cpp @@ -135,5 +135,5 @@ void AddSC_boss_doomrel() newscript = new Script; newscript->Name="boss_doomrel"; newscript->GetAI = GetAI_boss_doomrel; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doperel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doperel.cpp index f9da16dd2fd..3c394476106 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doperel.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doperel.cpp @@ -87,5 +87,5 @@ void AddSC_boss_doperel() newscript = new Script; newscript->Name="boss_doperel"; newscript->GetAI = GetAI_boss_doperel; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp index e8b1fb791ee..d463ed7f38f 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp @@ -100,5 +100,5 @@ void AddSC_boss_draganthaurissan() newscript = new Script; newscript->Name="boss_emperor_dagran_thaurissan"; newscript->GetAI = GetAI_boss_draganthaurissan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp index 0760bc65733..7e3b8d9fba7 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp @@ -163,5 +163,5 @@ void AddSC_boss_general_angerforge() newscript = new Script; newscript->Name="boss_general_angerforge"; newscript->GetAI = GetAI_boss_general_angerforge; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gloomrel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gloomrel.cpp index 30caa104b31..966fe4b8c22 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gloomrel.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gloomrel.cpp @@ -138,5 +138,5 @@ void AddSC_boss_gloomrel() newscript->GetAI = GetAI_boss_gloomrel; newscript->pGossipHello = &GossipHello_boss_gloomrel; newscript->pGossipSelect = &GossipSelect_boss_gloomrel; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp index 91770069779..f2b617b73f0 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp @@ -77,5 +77,5 @@ void AddSC_boss_gorosh_the_dervish() newscript = new Script; newscript->Name="boss_gorosh_the_dervish"; newscript->GetAI = GetAI_boss_gorosh_the_dervish; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_grizzle.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_grizzle.cpp index 7e489cca5a7..5005bb3935a 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_grizzle.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_grizzle.cpp @@ -82,5 +82,5 @@ void AddSC_boss_grizzle() newscript = new Script; newscript->Name="boss_grizzle"; newscript->GetAI = GetAI_boss_grizzle; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_haterel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_haterel.cpp index 778c68f73d3..53a94865002 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_haterel.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_haterel.cpp @@ -101,5 +101,5 @@ void AddSC_boss_haterel() newscript = new Script; newscript->Name="boss_haterel"; newscript->GetAI = GetAI_boss_haterel; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp index 8ee1a00c85b..43aa38ba4d4 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp @@ -101,5 +101,5 @@ void AddSC_boss_high_interrogator_gerstahn() newscript = new Script; newscript->Name="boss_high_interrogator_gerstahn"; newscript->GetAI = GetAI_boss_high_interrogator_gerstahn; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_magmus.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_magmus.cpp index 0d163d31775..7703d6b2b31 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_magmus.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_magmus.cpp @@ -80,5 +80,5 @@ void AddSC_boss_magmus() newscript = new Script; newscript->Name="boss_magmus"; newscript->GetAI = GetAI_boss_magmus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp index 208353e66f3..68923722380 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp @@ -95,5 +95,5 @@ void AddSC_boss_moira_bronzebeard() newscript = new Script; newscript->Name="boss_moira_bronzebeard"; newscript->GetAI = GetAI_boss_moira_bronzebeard; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_seethrel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_seethrel.cpp index 93f3c124f29..e8753971898 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_seethrel.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_seethrel.cpp @@ -111,5 +111,5 @@ void AddSC_boss_seethrel() newscript = new Script; newscript->Name="boss_seethrel"; newscript->GetAI = GetAI_boss_seethrel; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_vilerel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_vilerel.cpp index 0ecf70148fe..db1b0923f4c 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_vilerel.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_vilerel.cpp @@ -97,5 +97,5 @@ void AddSC_boss_vilerel() newscript = new Script; newscript->Name="boss_vilerel"; newscript->GetAI = GetAI_boss_vilerel; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_drakkisath.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_drakkisath.cpp index c26ba2ed6b9..56f4b3f385f 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_drakkisath.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_drakkisath.cpp @@ -97,5 +97,5 @@ void AddSC_boss_drakkisath() newscript = new Script; newscript->Name="boss_drakkisath"; newscript->GetAI = GetAI_boss_drakkisath; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_gyth.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_gyth.cpp index 68107e820bf..d6089c269e7 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_gyth.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_gyth.cpp @@ -201,5 +201,5 @@ void AddSC_boss_gyth() newscript = new Script; newscript->Name="boss_gyth"; newscript->GetAI = GetAI_boss_gyth; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_halycon.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_halycon.cpp index 0b2c09acccf..e0c5d69d631 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_halycon.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_halycon.cpp @@ -91,5 +91,5 @@ void AddSC_boss_halycon() newscript = new Script; newscript->Name="boss_halycon"; newscript->GetAI = GetAI_boss_halycon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_highlord_omokk.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_highlord_omokk.cpp index afaedcc4ad8..0ee0a9df7f8 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_highlord_omokk.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_highlord_omokk.cpp @@ -127,5 +127,5 @@ void AddSC_boss_highlordomokk() newscript = new Script; newscript->Name="boss_highlord_omokk"; newscript->GetAI = GetAI_boss_highlordomokk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp index 8c1d3096597..c9686346057 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp @@ -82,5 +82,5 @@ void AddSC_boss_mothersmolderweb() newscript = new Script; newscript->Name="boss_mother_smolderweb"; newscript->GetAI = GetAI_boss_mothersmolderweb; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp index 5ab5847e38a..5852a12302e 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp @@ -123,5 +123,5 @@ void AddSC_boss_overlordwyrmthalak() newscript = new Script; newscript->Name="boss_overlord_wyrmthalak"; newscript->GetAI = GetAI_boss_overlordwyrmthalak; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp index f7705c647af..cbabb24d752 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp @@ -89,5 +89,5 @@ void AddSC_boss_pyroguard_emberseer() newscript = new Script; newscript->Name="boss_pyroguard_emberseer"; newscript->GetAI = GetAI_boss_pyroguard_emberseer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp index 7c0901e1f40..82561cb954f 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp @@ -81,5 +81,5 @@ void AddSC_boss_quatermasterzigris() newscript = new Script; newscript->Name="quartermaster_zigris"; newscript->GetAI = GetAI_boss_quatermasterzigris; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_rend_blackhand.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_rend_blackhand.cpp index 7ca84b3c429..b80a941ad17 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_rend_blackhand.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_rend_blackhand.cpp @@ -87,5 +87,5 @@ void AddSC_boss_rend_blackhand() newscript = new Script; newscript->Name="boss_rend_blackhand"; newscript->GetAI = GetAI_boss_rend_blackhand; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp index 17c73e43c82..83a324a2c38 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp @@ -91,5 +91,5 @@ void AddSC_boss_shadowvosh() newscript = new Script; newscript->Name="boss_shadow_hunter_voshgajin"; newscript->GetAI = GetAI_boss_shadowvosh; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_the_beast.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_the_beast.cpp index d7e403d0e72..586addd9d76 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_the_beast.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_the_beast.cpp @@ -89,5 +89,5 @@ void AddSC_boss_thebeast() newscript = new Script; newscript->Name="boss_the_beast"; newscript->GetAI = GetAI_boss_thebeast; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_warmaster_voone.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_warmaster_voone.cpp index 7377b46526f..bcc1469ccd9 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_warmaster_voone.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_warmaster_voone.cpp @@ -117,5 +117,5 @@ void AddSC_boss_warmastervoone() newscript = new Script; newscript->Name="boss_warmaster_voone"; newscript->GetAI = GetAI_boss_warmastervoone; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp index 0e40276903a..2c69e8ff599 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp @@ -124,5 +124,5 @@ void AddSC_boss_broodlord() newscript = new Script; newscript->Name="boss_broodlord"; newscript->GetAI = GetAI_boss_broodlord; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp index ea683bd1a13..920a50d4e49 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp @@ -310,5 +310,5 @@ void AddSC_boss_chromaggus() newscript = new Script; newscript->Name="boss_chromaggus"; newscript->GetAI = GetAI_boss_chromaggus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_ebonroc.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_ebonroc.cpp index 703dec09536..0dd8095a94b 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_ebonroc.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_ebonroc.cpp @@ -99,5 +99,5 @@ void AddSC_boss_ebonroc() newscript = new Script; newscript->Name="boss_ebonroc"; newscript->GetAI = GetAI_boss_ebonroc; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp index 05a3e36948b..c1915d45a15 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp @@ -90,5 +90,5 @@ void AddSC_boss_firemaw() newscript = new Script; newscript->Name="boss_firemaw"; newscript->GetAI = GetAI_boss_firemaw; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp index fa34406b1fe..fbc8f4fa51a 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp @@ -90,5 +90,5 @@ void AddSC_boss_flamegor() newscript = new Script; newscript->Name="boss_flamegor"; newscript->GetAI = GetAI_boss_flamegor; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_nefarian.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_nefarian.cpp index b819fde0bd5..741e61ba4de 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_nefarian.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_nefarian.cpp @@ -223,5 +223,5 @@ void AddSC_boss_nefarian() newscript = new Script; newscript->Name="boss_nefarian"; newscript->GetAI = GetAI_boss_nefarian; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp index bf76a08897f..98615b47758 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp @@ -127,5 +127,5 @@ void AddSC_boss_razorgore() newscript = new Script; newscript->Name="boss_razorgore"; newscript->GetAI = GetAI_boss_razorgore; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp index 05e4b39af7d..a708a7de195 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp @@ -257,5 +257,5 @@ void AddSC_boss_vael() newscript->GetAI = GetAI_boss_vael; newscript->pGossipHello = &GossipHello_boss_vael; newscript->pGossipSelect = &GossipSelect_boss_vael; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp index c9e92c7b75f..70bb6c15113 100644 --- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp +++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp @@ -390,5 +390,5 @@ void AddSC_boss_victor_nefarius() newscript->GetAI = GetAI_boss_victor_nefarius; newscript->pGossipHello = &GossipHello_boss_victor_nefarius; newscript->pGossipSelect = &GossipSelect_boss_victor_nefarius; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp b/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp index 99dc4dbc82c..c47153aed7a 100644 --- a/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp +++ b/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp @@ -406,33 +406,33 @@ void AddSC_blades_edge_mountains() newscript = new Script; newscript->Name="mobs_bladespire_ogre"; newscript->GetAI = GetAI_mobs_bladespire_ogre; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mobs_nether_drake"; newscript->GetAI = GetAI_mobs_nether_drake; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_daranelle"; newscript->GetAI = GetAI_npc_daranelle; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_overseer_nuaar"; newscript->pGossipHello = &GossipHello_npc_overseer_nuaar; newscript->pGossipSelect = &GossipSelect_npc_overseer_nuaar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_saikkal_the_elder"; newscript->pGossipHello = &GossipHello_npc_saikkal_the_elder; newscript->pGossipSelect = &GossipSelect_npc_saikkal_the_elder; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_skyguard_handler_irena"; newscript->pGossipHello = &GossipHello_npc_skyguard_handler_irena; newscript->pGossipSelect = &GossipSelect_npc_skyguard_handler_irena; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blasted_lands/blasted_lands.cpp b/src/bindings/scripts/scripts/zone/blasted_lands/blasted_lands.cpp index 9212f13946a..b47abcb4c15 100644 --- a/src/bindings/scripts/scripts/zone/blasted_lands/blasted_lands.cpp +++ b/src/bindings/scripts/scripts/zone/blasted_lands/blasted_lands.cpp @@ -149,11 +149,11 @@ void AddSC_blasted_lands() newscript->Name="npc_deathly_usher"; newscript->pGossipHello = &GossipHello_npc_deathly_usher; newscript->pGossipSelect = &GossipSelect_npc_deathly_usher; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_fallen_hero_of_horde"; newscript->pGossipHello = &GossipHello_npc_fallen_hero_of_horde; newscript->pGossipSelect = &GossipSelect_npc_fallen_hero_of_horde; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp b/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp index 9de7b6d6085..250c382f028 100644 --- a/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp +++ b/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp @@ -178,5 +178,5 @@ void AddSC_boss_kruul() newscript = new Script; newscript->Name="boss_kruul"; newscript->GetAI = GetAI_boss_kruul; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp b/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp index e52386fc020..3705d195ca3 100644 --- a/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp +++ b/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp @@ -131,11 +131,11 @@ void AddSC_bloodmyst_isle() newscript = new Script; newscript->Name="mob_webbed_creature"; newscript->GetAI = GetAI_mob_webbed_creature; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_captured_sunhawk_agent"; newscript->pGossipHello = &GossipHello_npc_captured_sunhawk_agent; newscript->pGossipSelect = &GossipSelect_npc_captured_sunhawk_agent; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp b/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp index bd926a2e7cc..7f0c2f45118 100644 --- a/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp +++ b/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp @@ -147,5 +147,5 @@ void AddSC_burning_steppes() newscript->GetAI = GetAI_npc_ragged_john; newscript->pGossipHello = &GossipHello_npc_ragged_john; newscript->pGossipSelect = &GossipSelect_npc_ragged_john; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp index f6dd7a167ff..db167ff5ab9 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp @@ -117,5 +117,5 @@ void AddSC_boss_aeonus() newscript = new Script; newscript->Name="boss_aeonus"; newscript->GetAI = GetAI_boss_aeonus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp index b6d00be0889..fcaade46067 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp @@ -105,5 +105,5 @@ void AddSC_boss_chrono_lord_deja() newscript = new Script; newscript->Name="boss_chrono_lord_deja"; newscript->GetAI = GetAI_boss_chrono_lord_deja; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp index a59ecc8e4b6..2dad8913576 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp @@ -139,5 +139,5 @@ void AddSC_boss_temporus() newscript = new Script; newscript->Name="boss_temporus"; newscript->GetAI = GetAI_boss_temporus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp index 7e25c0c9b15..ab208aafba9 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp @@ -769,20 +769,20 @@ void AddSC_boss_archimonde() newscript = new Script; newscript->Name="boss_archimonde"; newscript->GetAI = GetAI_boss_archimonde; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_doomfire"; newscript->GetAI = GetAI_mob_doomfire; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_doomfire_targetting"; newscript->GetAI = GetAI_mob_doomfire_targetting; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_ancient_wisp"; newscript->GetAI = GetAI_mob_ancient_wisp; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp index 837f1f09872..51f147badc2 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp @@ -200,18 +200,18 @@ void AddSC_hyjal() newscript->GetAI = GetAI_npc_jaina_proudmoore; newscript->pGossipHello = &GossipHello_npc_jaina_proudmoore; newscript->pGossipSelect = &GossipSelect_npc_jaina_proudmoore; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_thrall"; newscript->GetAI = GetAI_npc_thrall; newscript->pGossipHello = &GossipHello_npc_thrall; newscript->pGossipSelect = &GossipSelect_npc_thrall; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_tyrande_whisperwind"; newscript->pGossipHello = &GossipHello_npc_tyrande_whisperwind; newscript->pGossipSelect = &GossipSelect_npc_tyrande_whisperwind; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp index a6f8e3a7305..3c3971d6036 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp @@ -199,5 +199,5 @@ void AddSC_instance_mount_hyjal() newscript = new Script; newscript->Name = "instance_hyjal"; newscript->GetInstanceData = GetInstanceData_instance_mount_hyjal; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp index 19aff777b23..c43f5c2471c 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp @@ -152,5 +152,5 @@ void AddSC_boss_captain_skarloc() newscript = new Script; newscript->Name="boss_captain_skarloc"; newscript->GetAI = GetAI_boss_captain_skarloc; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp index 734ea93ffbe..510ef7a039f 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp @@ -146,5 +146,5 @@ void AddSC_boss_epoch_hunter() newscript = new Script; newscript->Name="boss_epoch_hunter"; newscript->GetAI = GetAI_boss_epoch_hunter; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp index 6733e4b8d41..76d96775056 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp @@ -194,10 +194,10 @@ void AddSC_boss_lieutenant_drake() newscript = new Script; newscript->Name="go_barrel_old_hillsbrad"; newscript->pGOHello = &GOHello_go_barrel_old_hillsbrad; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_lieutenant_drake"; newscript->GetAI = GetAI_boss_lieutenant_drake; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp index a6e4b377358..38a20c8adaf 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp @@ -174,5 +174,5 @@ void AddSC_instance_old_hillsbrad() newscript = new Script; newscript->Name = "instance_old_hillsbrad"; newscript->GetInstanceData = GetInstanceData_instance_old_hillsbrad; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp index 659636e1d35..596d327bc42 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp @@ -893,24 +893,24 @@ void AddSC_old_hillsbrad() newscript->Name="npc_brazen"; newscript->pGossipHello = &GossipHello_npc_brazen; newscript->pGossipSelect = &GossipSelect_npc_brazen; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_erozion"; newscript->pGossipHello = &GossipHello_npc_erozion; newscript->pGossipSelect = &GossipSelect_npc_erozion; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_thrall_old_hillsbrad"; newscript->pGossipHello = &GossipHello_npc_thrall_old_hillsbrad; newscript->pGossipSelect = &GossipSelect_npc_thrall_old_hillsbrad; newscript->GetAI = GetAI_npc_thrall_old_hillsbrad; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_taretha"; newscript->pGossipHello = &GossipHello_npc_taretha; newscript->pGossipSelect = &GossipSelect_npc_taretha; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp index 9199bcadaf1..42a707ff930 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp @@ -744,20 +744,20 @@ void AddSC_boss_fathomlord_karathress() newscript = new Script; newscript->Name="boss_fathomlord_karathress"; newscript->GetAI = GetAI_boss_fathomlord_karathress; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_fathomguard_sharkkis"; newscript->GetAI = GetAI_boss_fathomguard_sharkkis; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_fathomguard_tidalvess"; newscript->GetAI = GetAI_boss_fathomguard_tidalvess; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_fathomguard_caribdis"; newscript->GetAI = GetAI_boss_fathomguard_caribdis; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp index 13b8ebbf312..07adcf4b225 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp @@ -382,5 +382,5 @@ void AddSC_boss_hydross_the_unstable() newscript = new Script; newscript->Name="boss_hydross_the_unstable"; newscript->GetAI = GetAI_boss_hydross_the_unstable; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp index 6adc833e8a8..232a828150c 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp @@ -250,12 +250,12 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI { //remove old tainted cores to prevent cheating in phase 2 Map *map = m_creature->GetMap(); - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - for(InstanceMap::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i) + Map::PlayerList const &PlayerList = map->GetPlayers(); + for(Map::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i) { - if((*i)) + if(Player* i_pl = i->getSource()) { - (*i)->DestroyItemCount(31088, 1, true); + i_pl->DestroyItemCount(31088, 1, true); } } } @@ -1029,42 +1029,42 @@ void AddSC_boss_lady_vashj() newscript = new Script; newscript->Name="boss_lady_vashj"; newscript->GetAI = GetAI_boss_lady_vashj; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_enchanted_elemental"; newscript->GetAI = GetAI_mob_enchanted_elemental; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_tainted_elemental"; newscript->GetAI = GetAI_mob_tainted_elemental; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_toxic_sporebat"; newscript->GetAI = GetAI_mob_toxic_sporebat; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_coilfang_elite"; newscript->GetAI = GetAI_mob_coilfang_elite; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_coilfang_strider"; newscript->GetAI = GetAI_mob_coilfang_strider; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_shield_generator_channel"; newscript->GetAI = GetAI_mob_shield_generator_channel; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="item_tainted_core"; newscript->pItemUse = ItemUse_item_tainted_core; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp index 53aa7c48d35..70d4d6d2c56 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp @@ -754,19 +754,22 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI if(Earthshock_Timer < diff) { Map *map = m_creature->GetMap(); - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - for(InstanceMap::PlayerList::const_iterator itr = PlayerList.begin();itr != PlayerList.end(); ++itr) + Map::PlayerList const &PlayerList = map->GetPlayers(); + for(Map::PlayerList::const_iterator itr = PlayerList.begin();itr != PlayerList.end(); ++itr) { - bool isCasting = false; - for(uint8 i = 0; i < CURRENT_MAX_SPELL; ++i) - if((*itr)->m_currentSpells[i]) - isCasting = true; - - if(isCasting) - { - DoCast((*itr), SPELL_EARTHSHOCK); - break; - } + if (Player* i_pl = itr->getSource()) + { + bool isCasting = false; + for(uint8 i = 0; i < CURRENT_MAX_SPELL; ++i) + if(i_pl->m_currentSpells[i]) + isCasting = true; + + if(isCasting) + { + DoCast(i_pl, SPELL_EARTHSHOCK); + break; + } + } } Earthshock_Timer = 8000 + rand()%7000; }else Earthshock_Timer -= diff; @@ -801,20 +804,20 @@ void AddSC_boss_leotheras_the_blind() newscript = new Script; newscript->Name="boss_leotheras_the_blind"; newscript->GetAI = GetAI_boss_leotheras_the_blind; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_leotheras_the_blind_demonform"; newscript->GetAI = GetAI_boss_leotheras_the_blind_demonform; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_greyheart_spellbinder"; newscript->GetAI = GetAI_mob_greyheart_spellbinder; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_inner_demon"; newscript->GetAI = GetAI_mob_inner_demon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp index 924b15397ed..509eadc2006 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp @@ -167,16 +167,16 @@ void AddSC_boss_the_lurker_below() newscript = new Script; newscript->Name="boss_the_lurker_below"; newscript->GetAI = GetAI_boss_the_lurker_below; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_coilfang_guardian"; newscript->GetAI = GetAI_mob_coilfang_guardian; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_coilfang_ambusher"; newscript->GetAI = GetAI_mob_coilfang_ambusher; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp index fa6a57a7fe4..900c3aad6d9 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp @@ -350,10 +350,10 @@ void AddSC_boss_morogrim_tidewalker() newscript = new Script; newscript->Name="boss_morogrim_tidewalker"; newscript->GetAI = GetAI_boss_morogrim_tidewalker; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_water_globule"; newscript->GetAI = GetAI_mob_water_globule; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp index de0f829c3d1..25b6a1a54d5 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp @@ -215,5 +215,5 @@ void AddSC_instance_serpentshrine_cavern() newscript = new Script; newscript->Name = "instance_serpent_shrine"; newscript->GetInstanceData = GetInstanceData_instance_serpentshrine_cavern; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp index f51a28d61b3..cb09a94044f 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp @@ -188,10 +188,10 @@ void AddSC_boss_hydromancer_thespia() newscript = new Script; newscript->Name="boss_hydromancer_thespia"; newscript->GetAI = GetAI_boss_thespiaAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_coilfang_waterelemental"; newscript->GetAI = GetAI_mob_coilfang_waterelementalAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp index d769b44d9cf..6f839359d0a 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp @@ -271,10 +271,10 @@ void AddSC_boss_mekgineer_steamrigger() newscript = new Script; newscript->Name="boss_mekgineer_steamrigger"; newscript->GetAI = GetAI_boss_mekgineer_steamrigger; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_steamrigger_mechanic"; newscript->GetAI = GetAI_mob_steamrigger_mechanic; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp index 85c6657bebb..a3b3c68ba82 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp @@ -226,10 +226,10 @@ void AddSC_boss_warlord_kalithresh() newscript = new Script; newscript->Name="mob_naga_distiller"; newscript->GetAI = GetAI_mob_naga_distiller; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_warlord_kalithresh"; newscript->GetAI = GetAI_boss_warlord_kalithresh; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp index 798d04d6cfb..dc082244846 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp @@ -166,5 +166,5 @@ void AddSC_instance_steam_vault() newscript = new Script; newscript->Name = "instance_steam_vault"; newscript->GetInstanceData = GetInstanceData_instance_steam_vault; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp index 13ac880295b..34c854ad8bf 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp @@ -147,10 +147,10 @@ void AddSC_boss_hungarfen() newscript = new Script; newscript->Name="boss_hungarfen"; newscript->GetAI = GetAI_boss_hungarfen; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_underbog_mushroom"; newscript->GetAI = GetAI_mob_underbog_mushroom; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/dun_morogh/dun_morogh.cpp b/src/bindings/scripts/scripts/zone/dun_morogh/dun_morogh.cpp index c5f7bf6fc07..ee8c531593b 100644 --- a/src/bindings/scripts/scripts/zone/dun_morogh/dun_morogh.cpp +++ b/src/bindings/scripts/scripts/zone/dun_morogh/dun_morogh.cpp @@ -94,5 +94,5 @@ void AddSC_dun_morogh() newscript = new Script; newscript->Name="npc_narm_faulk"; newscript->GetAI = GetAI_npc_narm_faulk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp b/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp index 7a8c1329b36..16e5d3fc62e 100644 --- a/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp +++ b/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp @@ -204,28 +204,28 @@ void AddSC_dustwallow_marsh() newscript = new Script; newscript->Name="mobs_risen_husk_spirit"; newscript->GetAI = GetAI_mobs_risen_husk_spirit; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_restless_apparition"; newscript->pGossipHello = &GossipHello_npc_restless_apparition; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_deserter_agitator"; newscript->GetAI = GetAI_npc_deserter_agitator; newscript->pGossipHello = &GossipHello_npc_deserter_agitator; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_lady_jaina_proudmoore"; newscript->pGossipHello = &GossipHello_npc_lady_jaina_proudmoore; newscript->pGossipSelect = &GossipSelect_npc_lady_jaina_proudmoore; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_nat_pagle"; newscript->pGossipHello = &GossipHello_npc_nat_pagle; newscript->pGossipSelect = &GossipSelect_npc_nat_pagle; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp b/src/bindings/scripts/scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp index e8d44931f11..125fdf44817 100644 --- a/src/bindings/scripts/scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp +++ b/src/bindings/scripts/scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp @@ -158,23 +158,23 @@ void AddSC_eastern_plaguelands() newscript = new Script; newscript->Name="mobs_ghoul_flayer"; newscript->GetAI = GetAI_mobs_ghoul_flayer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_augustus_the_touched"; newscript->pGossipHello = &GossipHello_npc_augustus_the_touched; newscript->pGossipSelect = &GossipSelect_npc_augustus_the_touched; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_darrowshire_spirit"; newscript->GetAI = GetAI_npc_darrowshire_spirit; newscript->pGossipHello = &GossipHello_npc_darrowshire_spirit; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_tirion_fordring"; newscript->pGossipHello = &GossipHello_npc_tirion_fordring; newscript->pGossipSelect = &GossipSelect_npc_tirion_fordring; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/elwynn_forest/elwynn_forest.cpp b/src/bindings/scripts/scripts/zone/elwynn_forest/elwynn_forest.cpp index d91b4533de2..b1061213649 100644 --- a/src/bindings/scripts/scripts/zone/elwynn_forest/elwynn_forest.cpp +++ b/src/bindings/scripts/scripts/zone/elwynn_forest/elwynn_forest.cpp @@ -94,5 +94,5 @@ void AddSC_elwynn_forest() newscript = new Script; newscript->Name="npc_henze_faulk"; newscript->GetAI = GetAI_npc_henze_faulk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp index 932dea11a60..4f9c2a775af 100644 --- a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp +++ b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp @@ -152,12 +152,12 @@ void AddSC_eversong_woods() newscript = new Script; newscript->Name="mobs_mana_tapped"; newscript->GetAI = GetAI_mobs_mana_tapped; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name= "npc_prospector_anvilward"; newscript->GetAI = GetAI_npc_prospector_anvilward; newscript->pGossipHello = &GossipHello_npc_prospector_anvilward; newscript->pGossipSelect = &GossipSelect_npc_prospector_anvilward; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/felwood/felwood.cpp b/src/bindings/scripts/scripts/zone/felwood/felwood.cpp index 59dc03456a4..2cd6d05579e 100644 --- a/src/bindings/scripts/scripts/zone/felwood/felwood.cpp +++ b/src/bindings/scripts/scripts/zone/felwood/felwood.cpp @@ -85,5 +85,5 @@ void AddSC_felwood() newscript->Name="npcs_riverbreeze_and_silversky"; newscript->pGossipHello = &GossipHello_npcs_riverbreeze_and_silversky; newscript->pGossipSelect = &GossipSelect_npcs_riverbreeze_and_silversky; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/feralas/feralas.cpp b/src/bindings/scripts/scripts/zone/feralas/feralas.cpp index ca8c5d0a02d..e0a89fe5905 100644 --- a/src/bindings/scripts/scripts/zone/feralas/feralas.cpp +++ b/src/bindings/scripts/scripts/zone/feralas/feralas.cpp @@ -76,10 +76,10 @@ void AddSC_feralas() newscript->Name="npc_gregan_brewspewer"; newscript->pGossipHello = &GossipHello_npc_gregan_brewspewer; newscript->pGossipSelect = &GossipSelect_npc_gregan_brewspewer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_screecher_spirit"; newscript->pGossipHello = &GossipHello_npc_screecher_spirit; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp index 35c7213d033..ade3931c75d 100644 --- a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp +++ b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp @@ -133,22 +133,22 @@ void AddSC_ghostlands() newscript->Name="npc_blood_knight_dawnstar"; newscript->pGossipHello = &GossipHello_npc_blood_knight_dawnstar; newscript->pGossipSelect = &GossipSelect_npc_blood_knight_dawnstar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_budd_nedreck"; newscript->pGossipHello = &GossipHello_npc_budd_nedreck; newscript->pGossipSelect = &GossipSelect_npc_budd_nedreck; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_rathis_tomber"; newscript->pGossipHello = &GossipHello_npc_rathis_tomber; newscript->pGossipSelect = &GossipSelect_npc_rathis_tomber; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "go_gilded_brazier"; newscript->pGOHello = &GOHello_gilded_brazier; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp index bb2487b892e..1616d75e376 100644 --- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp +++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp @@ -300,5 +300,5 @@ void AddSC_boss_gruul() newscript = new Script; newscript->Name="boss_gruul"; newscript->GetAI = GetAI_boss_gruul; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp index 3c77b1a0acf..b0e53373a2f 100644 --- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp +++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp @@ -817,25 +817,25 @@ void AddSC_boss_high_king_maulgar() newscript = new Script; newscript->Name="boss_high_king_maulgar"; newscript->GetAI = GetAI_boss_high_king_maulgar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_kiggler_the_crazed"; newscript->GetAI = GetAI_boss_kiggler_the_crazed; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_blindeye_the_seer"; newscript->GetAI = GetAI_boss_blindeye_the_seer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_olm_the_summoner"; newscript->GetAI = GetAI_boss_olm_the_summoner; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_krosh_firehand"; newscript->GetAI = GetAI_boss_krosh_firehand; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp index 062800da3f6..3d058060722 100644 --- a/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp +++ b/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp @@ -184,5 +184,5 @@ void AddSC_instance_gruuls_lair() newscript = new Script; newscript->Name = "instance_gruuls_lair"; newscript->GetInstanceData = GetInstanceData_instance_gruuls_lair; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp index 2237a85077a..1431be7dd51 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp @@ -123,10 +123,10 @@ void AddSC_boss_broggok() newscript = new Script; newscript->Name="boss_broggok"; newscript->GetAI = GetAI_boss_broggokAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_broggok_poisoncloud"; newscript->GetAI = GetAI_mob_broggok_poisoncloudAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp index bc5799ffe7e..092dfcd17be 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp @@ -225,10 +225,10 @@ void AddSC_boss_kelidan_the_breaker() newscript = new Script; newscript->Name="boss_kelidan_the_breaker"; newscript->GetAI = GetAI_boss_kelidan_the_breaker; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_shadowmoon_channeler"; newscript->GetAI = GetAI_mob_shadowmoon_channeler; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp index ec85747032d..0c30651c9d5 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp @@ -127,5 +127,5 @@ void AddSC_boss_the_maker() newscript = new Script; newscript->Name="boss_the_maker"; newscript->GetAI = GetAI_boss_the_makerAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp index 676fbddf48c..1d8b1ec2c22 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp @@ -209,5 +209,5 @@ void AddSC_boss_omor_the_unscarred() newscript = new Script; newscript->Name="boss_omor_the_unscarred"; newscript->GetAI = GetAI_boss_omor_the_unscarredAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp index 21e9362a762..0d9e200c6e7 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp @@ -164,5 +164,5 @@ void AddSC_boss_watchkeeper_gargolmar() newscript = new Script; newscript->Name="boss_watchkeeper_gargolmar"; newscript->GetAI = GetAI_boss_watchkeeper_gargolmarAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp index 4d7fe35891d..4d819b3537b 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp @@ -545,21 +545,21 @@ void AddSC_boss_magtheridon() newscript = new Script; newscript->Name="boss_magtheridon"; newscript->GetAI = GetAI_boss_magtheridon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_hellfire_channeler"; newscript->GetAI = GetAI_mob_hellfire_channeler; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_manticron_cube"; newscript->pGOHello = &GOHello_go_Manticron_Cube; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_abyssal"; newscript->GetAI = GetAI_mob_abyssalAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); }
\ No newline at end of file diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp index 8a6815e068a..51f22a1ff54 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp @@ -118,9 +118,6 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance void SetData(uint32 type, uint32 data) { - Player *player = GetPlayer(); - if(!player) return; - switch(type) { case DATA_MAGTHERIDON_EVENT: @@ -129,7 +126,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance RespawnTimer = 10000; if(data != IN_PROGRESS) { - if(GameObject *Door = GameObject::GetGameObject(*player, DoorGUID)) + if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID)) Door->SetGoState(0); } break; @@ -142,7 +139,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance Encounters[1] = NOT_STARTED; for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { - if(Creature *Channeler = (Creature*)Unit::GetUnit(*player, *i)) + if(Creature *Channeler = instance->GetCreatureInMap(*i)) { if(Channeler->isAlive()) Channeler->AI()->EnterEvadeMode(); @@ -151,7 +148,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance } } CageTimer = 0; - if(GameObject *Door = GameObject::GetGameObject(*player, DoorGUID)) + if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID)) Door->SetGoState(0); }break; case IN_PROGRESS: // Event start. @@ -161,7 +158,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance // Let all five channelers aggro. for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { - Creature *Channeler = (Creature*)Unit::GetUnit(*player, *i); + Creature *Channeler = instance->GetCreatureInMap(*i); if(Channeler && Channeler->isAlive()) { //if(Unit *target = Channeler->SelectNearbyTarget()) @@ -170,19 +167,19 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance } } // Release Magtheridon after two minutes. - Creature *Magtheridon = (Creature*)Unit::GetUnit(*player, MagtheridonGUID); + Creature *Magtheridon = instance->GetCreatureInMap(MagtheridonGUID); if(Magtheridon && Magtheridon->isAlive()) { Magtheridon->TextEmote("'s bonds begin to weaken!", 0); CageTimer = 120000; } - if(GameObject *Door = GameObject::GetGameObject(*player, DoorGUID)) + if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID)) Door->SetGoState(1); }break; case DONE: // Add buff and check if all channelers are dead. for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { - Unit *Channeler = Unit::GetUnit(*player, *i); + Creature *Channeler = instance->GetCreatureInMap(*i); if(Channeler && Channeler->isAlive()) { //Channeler->CastSpell(Channeler, SPELL_SOUL_TRANSFER, true); @@ -197,7 +194,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance // true - collapse / false - reset for(std::set<uint64>::iterator i = ColumnGUID.begin(); i != ColumnGUID.end(); ++i) { - if(GameObject *Column = GameObject::GetGameObject(*player, *i)) + if(GameObject *Column = instance->GetGameObjectInMap(*i)) Column->SetGoState(!data); } break; @@ -213,30 +210,26 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance return 0; } - Player* GetPlayer() - { - if(((InstanceMap*)instance)->GetPlayers().size()) - return ((InstanceMap*)instance)->GetPlayers().front(); - return NULL; - } - void AttackNearestTarget(Creature *creature) { float minRange = 999.0f; float range; Player* target = NULL; - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)instance)->GetPlayers(); - InstanceMap::PlayerList::const_iterator i; + Map::PlayerList const &PlayerList = instance->GetPlayers(); + Map::PlayerList::const_iterator i; for(i = PlayerList.begin(); i != PlayerList.end(); ++i) { - if((*i)->isTargetableForAttack()) + if(Player* i_pl = i->getSource()) { - range = (*i)->GetDistance(creature); - if(range < minRange) + if(i_pl->isTargetableForAttack()) { - minRange = range; - target = *i; - } + range = i_pl->GetDistance(creature); + if(range < minRange) + { + minRange = range; + target = i_pl; + } + } } } creature->AI()->AttackStart(target); @@ -248,14 +241,11 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance { if(CageTimer <= diff) { - if(Player *player = GetPlayer()) + Creature *Magtheridon = instance->GetCreatureInMap(MagtheridonGUID); + if(Magtheridon && Magtheridon->isAlive()) { - Creature *Magtheridon = (Creature*)Unit::GetUnit(*player, MagtheridonGUID); - if(Magtheridon && Magtheridon->isAlive()) - { - Magtheridon->clearUnitState(UNIT_STAT_STUNNED); - AttackNearestTarget(Magtheridon); - } + Magtheridon->clearUnitState(UNIT_STAT_STUNNED); + AttackNearestTarget(Magtheridon); } CageTimer = 0; }else CageTimer -= diff; @@ -265,17 +255,14 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance { if(RespawnTimer <= diff) { - if(Player *player = GetPlayer()) + for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { - for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) + if(Creature *Channeler = instance->GetCreatureInMap(*i)) { - if(Creature *Channeler = (Creature*)Unit::GetUnit(*player, *i)) - { - if(Channeler->isAlive()) - Channeler->AI()->EnterEvadeMode(); - else - Channeler->Respawn(); - } + if(Channeler->isAlive()) + Channeler->AI()->EnterEvadeMode(); + else + Channeler->Respawn(); } } RespawnTimer = 0; @@ -295,5 +282,5 @@ void AddSC_instance_magtheridons_lair() newscript = new Script; newscript->Name = "instance_magtheridons_lair"; newscript->GetInstanceData = GetInstanceData_instance_magtheridons_lair; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp index 9d8335c527b..299f72a041b 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp @@ -444,15 +444,15 @@ void AddSC_boss_grand_warlock_nethekurse() newscript = new Script; newscript->Name="boss_grand_warlock_nethekurse"; newscript->GetAI = GetAI_boss_grand_warlock_nethekurse; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_fel_orc_convert"; newscript->GetAI = GetAI_mob_fel_orc_convert; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_lesser_shadow_fissure"; newscript->GetAI = GetAI_mob_lesser_shadow_fissure; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp index 092e82df0ed..2c128b3c047 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp @@ -394,10 +394,10 @@ void AddSC_boss_warbringer_omrogg() newscript = new Script; newscript->Name="boss_warbringer_omrogg"; newscript->GetAI = GetAI_boss_warbringer_omrogg; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_omrogg_heads"; newscript->GetAI = GetAI_mob_omrogg_heads; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp index 9dc78cb82cb..bee90392fe3 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp @@ -110,5 +110,5 @@ void AddSC_instance_shattered_halls() newscript = new Script; newscript->Name = "instance_shattered_halls"; newscript->GetInstanceData = GetInstanceData_instance_shattered_halls; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp b/src/bindings/scripts/scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp index 51b4017b707..9b1822226a7 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp @@ -137,5 +137,5 @@ void AddSC_boss_doomlordkazzak() newscript = new Script; newscript->Name="boss_doomlord_kazzak"; newscript->GetAI = GetAI_boss_doomlordkazzak; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp b/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp index 1c3a4c71725..81d23457aab 100644 --- a/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp +++ b/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp @@ -171,17 +171,17 @@ void AddSC_hellfire_peninsula() newscript->Name="npc_wing_commander_dabiree"; newscript->pGossipHello = &GossipHello_npc_wing_commander_dabiree; newscript->pGossipSelect = &GossipSelect_npc_wing_commander_dabiree; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_gryphoneer_windbellow"; newscript->pGossipHello = &GossipHello_npc_gryphoneer_windbellow; newscript->pGossipSelect = &GossipSelect_npc_gryphoneer_windbellow; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_wing_commander_brack"; newscript->pGossipHello = &GossipHello_npc_wing_commander_brack; newscript->pGossipSelect = &GossipSelect_npc_wing_commander_brack; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/ironforge/ironforge.cpp b/src/bindings/scripts/scripts/zone/ironforge/ironforge.cpp index 7bb51ad499c..701f208f2a3 100644 --- a/src/bindings/scripts/scripts/zone/ironforge/ironforge.cpp +++ b/src/bindings/scripts/scripts/zone/ironforge/ironforge.cpp @@ -89,5 +89,5 @@ void AddSC_ironforge() newscript->Name="npc_royal_historian_archesonus"; newscript->pGossipHello = &GossipHello_npc_royal_historian_archesonus; newscript->pGossipSelect = &GossipSelect_npc_royal_historian_archesonus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp b/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp index 9b2c1cda518..2690ecfa0ac 100644 --- a/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp +++ b/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp @@ -140,16 +140,16 @@ void AddSC_isle_of_queldanas() newscript->Name="npc_ayren_cloudbreaker"; newscript->pGossipHello = &GossipHello_npc_ayren_cloudbreaker; newscript->pGossipSelect = &GossipSelect_npc_ayren_cloudbreaker; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_converted_sentry"; newscript->GetAI = GetAI_npc_converted_sentry; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_unrestrained_dragonhawk"; newscript->pGossipHello = &GossipHello_npc_unrestrained_dragonhawk; newscript->pGossipSelect = &GossipSelect_npc_unrestrained_dragonhawk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_curator.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_curator.cpp index b560caad0d1..3c83b618604 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_curator.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_curator.cpp @@ -196,5 +196,5 @@ void AddSC_boss_curator() newscript = new Script; newscript->Name="boss_curator"; newscript->GetAI = GetAI_boss_curator; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_maiden_of_virtue.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_maiden_of_virtue.cpp index e0bbadf5650..b4075e72b73 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_maiden_of_virtue.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_maiden_of_virtue.cpp @@ -179,5 +179,5 @@ void AddSC_boss_maiden_of_virtue() newscript = new Script; newscript->Name="boss_maiden_of_virtue"; newscript->GetAI = GetAI_boss_maiden_of_virtue; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp index 1be1a2df16f..1331e59c2f2 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp @@ -362,10 +362,10 @@ void AddSC_boss_attumen() newscript = new Script; newscript->Name="boss_attumen"; newscript->GetAI = GetAI_boss_attumen; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_midnight"; newscript->GetAI = GetAI_boss_midnight; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp index 06a47787fa0..ce8f26ff0e5 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp @@ -835,35 +835,35 @@ void AddSC_boss_moroes() newscript = new Script; newscript->Name="boss_moroes"; newscript->GetAI = GetAI_boss_moroes; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_baroness_dorothea_millstipe"; newscript->GetAI = GetAI_baroness_dorothea_millstipe; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_baron_rafe_dreuger"; newscript->GetAI = GetAI_baron_rafe_dreuger; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_lady_catriona_von_indi"; newscript->GetAI = GetAI_lady_catriona_von_indi; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_lady_keira_berrybuck"; newscript->GetAI = GetAI_lady_keira_berrybuck; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_lord_robin_daris"; newscript->GetAI = GetAI_lord_robin_daris; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_lord_crispin_ference"; newscript->GetAI = GetAI_lord_crispin_ference; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp index 6dfa4cb01b7..6d4e75afdb9 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp @@ -666,10 +666,10 @@ void AddSC_boss_malchezaar() newscript = new Script; newscript->Name="boss_malchezaar"; newscript->GetAI = GetAI_boss_malchezaar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="netherspite_infernal"; newscript->GetAI = GetAI_netherspite_infernal; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp index 20cdb5b2d7d..71325d21f22 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp @@ -654,20 +654,20 @@ void AddSC_boss_shade_of_aran() newscript = new Script; newscript->Name="boss_shade_of_aran"; newscript->GetAI = GetAI_boss_aran; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_shadow_of_aran"; newscript->GetAI = GetAI_shadow_of_aran; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_aran_elemental"; newscript->GetAI = GetAI_water_elemental; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); //newscript = new Script; //newscript->Name="mob_aran_blizzard"; //newscript->GetAI = GetAI_boss_aran; - //m_scripts[nrscripts++] = newscript; + //newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp index ddf6e9cb451..00a8cd46281 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp @@ -436,20 +436,20 @@ void AddSC_boss_terestian_illhoof() newscript = new Script; newscript->Name="boss_terestian_illhoof"; newscript->GetAI = GetAI_boss_terestian_illhoof; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_karazhan_imp"; newscript->GetAI = GetAI_mob_karazhan_imp; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_kilrek"; newscript->GetAI = GetAI_mob_kilrek; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_demon_chain"; newscript->GetAI = GetAI_mob_demon_chain; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp index 91dab811d00..2509445f3d0 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp @@ -1414,58 +1414,58 @@ void AddSC_bosses_opera() newscript = new Script; newscript->GetAI = GetAI_boss_dorothee; newscript->Name = "boss_dorothee"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->GetAI = GetAI_boss_strawman; newscript->Name = "boss_strawman"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->GetAI = GetAI_boss_tinhead; newscript->Name = "boss_tinhead"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->GetAI = GetAI_boss_roar; newscript->Name = "boss_roar"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->GetAI = GetAI_boss_crone; newscript->Name = "boss_crone"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->GetAI = GetAI_mob_tito; newscript->Name = "mob_tito"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->GetAI = GetAI_mob_cyclone; newscript->Name = "mob_cyclone"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); // Hood newscript = new Script; newscript->pGossipHello = GossipHello_npc_grandmother; newscript->pGossipSelect = GossipSelect_npc_grandmother; newscript->Name = "npc_grandmother"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->GetAI = GetAI_boss_bigbadwolf; newscript->Name = "boss_bigbadwolf"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); // Romeo And Juliet newscript = new Script; newscript->GetAI = GetAI_boss_julianne; newscript->Name = "boss_julianne"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->GetAI = GetAI_boss_romulo; newscript->Name = "boss_romulo"; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp index f683eea5336..29e07fe254f 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp @@ -249,5 +249,5 @@ void AddSC_instance_karazhan() newscript = new Script; newscript->Name = "instance_karazhan"; newscript->GetInstanceData = GetInstanceData_instance_karazhan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp index b0ab0d86db5..404014565e6 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp @@ -285,14 +285,14 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI Map *map = m_creature->GetMap(); if(!map->IsDungeon()) return; - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - if(PlayerList.empty()) + Map::PlayerList const &PlayerList = map->GetPlayers(); + if(PlayerList.isEmpty()) return; RaidWiped = true; - for(InstanceMap::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i) + for(Map::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i) { - if((*i)->isAlive() && !(*i)->isGameMaster()) + if (i->getSource()->isAlive() && !i->getSource()->isGameMaster()) { RaidWiped = false; break; @@ -460,11 +460,11 @@ void AddSC_karazhan() newscript->Name = "npc_barnes"; newscript->pGossipHello = GossipHello_npc_barnes; newscript->pGossipSelect = GossipSelect_npc_barnes; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_berthold"; newscript->pGossipHello = GossipHello_npc_berthold; newscript->pGossipSelect = GossipSelect_npc_berthold; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/loch_modan/loch_modan.cpp b/src/bindings/scripts/scripts/zone/loch_modan/loch_modan.cpp index 966bf7c40a3..0e48a72535f 100644 --- a/src/bindings/scripts/scripts/zone/loch_modan/loch_modan.cpp +++ b/src/bindings/scripts/scripts/zone/loch_modan/loch_modan.cpp @@ -87,5 +87,5 @@ void AddSC_loch_modan() newscript->Name="npc_mountaineer_pebblebitty"; newscript->pGossipHello = &GossipHello_npc_mountaineer_pebblebitty; newscript->pGossipSelect = &GossipSelect_npc_mountaineer_pebblebitty; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp index 7a44e04dd6d..f08ff848237 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp @@ -231,17 +231,17 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI float x,y,z; m_creature->Relocate(KaelLocations[0][0], KaelLocations[0][1], LOCATION_Z, 0); Map *map = m_creature->GetMap(); - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - InstanceMap::PlayerList::const_iterator i; + Map::PlayerList const &PlayerList = map->GetPlayers(); + Map::PlayerList::const_iterator i; for (i = PlayerList.begin(); i != PlayerList.end(); ++i) { - //if(!(*i)->isGameMaster()) - if((*i) && (*i)->isAlive()) - { - (*i)->CastSpell((*i), SPELL_TELEPORT_CENTER, true); - m_creature->GetNearPoint(m_creature,x,y,z,5,5,0); - (*i)->TeleportTo(m_creature->GetMapId(),x,y,LOCATION_Z,(*i)->GetOrientation()); - } + if (Player* i_pl = i->getSource()) + if(i_pl->isAlive()) + { + i_pl->CastSpell(i_pl, SPELL_TELEPORT_CENTER, true); + m_creature->GetNearPoint(m_creature,x,y,z,5,5,0); + i_pl->TeleportTo(m_creature->GetMapId(),x,y,LOCATION_Z,i_pl->GetOrientation()); + } } DoCast(m_creature, SPELL_TELEPORT_CENTER, true); } @@ -249,34 +249,38 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI void CastGravityLapseKnockUp() { Map *map = m_creature->GetMap(); - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - InstanceMap::PlayerList::const_iterator i; + Map::PlayerList const &PlayerList = map->GetPlayers(); + Map::PlayerList::const_iterator i; for (i = PlayerList.begin(); i != PlayerList.end(); ++i) - { - if((*i) && (*i)->isAlive()) + { + if (Player* i_pl = i->getSource()) + if(i_pl->isAlive()) // Knockback into the air - (*i)->CastSpell((*i), SPELL_GRAVITY_LAPSE_DOT, true, 0, 0, m_creature->GetGUID()); + i_pl->CastSpell(i_pl, SPELL_GRAVITY_LAPSE_DOT, true, 0, 0, m_creature->GetGUID()); } } void CastGravityLapseFly() // Use Fly Packet hack for now as players can't cast "fly" spells unless in map 530. Has to be done a while after they get knocked into the air... { Map *map = m_creature->GetMap(); - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - InstanceMap::PlayerList::const_iterator i; + Map::PlayerList const &PlayerList = map->GetPlayers(); + Map::PlayerList::const_iterator i; for (i = PlayerList.begin(); i != PlayerList.end(); ++i) - { - if((*i) && (*i)->isAlive()) + { + if (Player* i_pl = i->getSource()) { - // Also needs an exception in spell system. - (*i)->CastSpell((*i), SPELL_GRAVITY_LAPSE_FLY, true, 0, 0, m_creature->GetGUID()); - // Use packet hack - WorldPacket data(12); - data.SetOpcode(SMSG_MOVE_SET_CAN_FLY); - data.append((*i)->GetPackGUID()); - data << uint32(0); - (*i)->SendMessageToSet(&data, true); - (*i)->SetSpeed(MOVE_FLY, 2.0f); + if(i_pl->isAlive()) + { + // Also needs an exception in spell system. + i_pl->CastSpell(i_pl, SPELL_GRAVITY_LAPSE_FLY, true, 0, 0, m_creature->GetGUID()); + // Use packet hack + WorldPacket data(12); + data.SetOpcode(SMSG_MOVE_SET_CAN_FLY); + data.append(i_pl->GetPackGUID()); + data << uint32(0); + i_pl->SendMessageToSet(&data, true); + i_pl->SetSpeed(MOVE_FLY, 2.0f); + } } } } @@ -284,19 +288,19 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI void RemoveGravityLapse() { Map *map = m_creature->GetMap(); - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - InstanceMap::PlayerList::const_iterator i; + Map::PlayerList const &PlayerList = map->GetPlayers(); + Map::PlayerList::const_iterator i; for (i = PlayerList.begin(); i != PlayerList.end(); ++i) { - if((*i)) + if(Player* i_pl = i->getSource()) { - (*i)->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY); - (*i)->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_DOT); + i_pl->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY); + i_pl->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_DOT); WorldPacket data(12); data.SetOpcode(SMSG_MOVE_UNSET_CAN_FLY); - data.append((*i)->GetPackGUID()); + data.append(i_pl->GetPackGUID()); data << uint32(0); - (*i)->SendMessageToSet(&data, true); + i_pl->SendMessageToSet(&data, true); } } } @@ -757,35 +761,35 @@ void AddSC_boss_felblood_kaelthas() newscript = new Script; newscript->Name = "boss_felblood_kaelthas"; newscript->GetAI = GetAI_boss_felblood_kaelthas; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_arcane_sphere"; newscript->GetAI = GetAI_mob_arcane_sphere; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_felkael_phoenix"; newscript->GetAI = GetAI_mob_felkael_phoenix; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_felkael_phoenix_egg"; newscript->GetAI = GetAI_mob_felkael_phoenix_egg; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_felkael_flamestrike"; newscript->GetAI = GetAI_mob_felkael_flamestrike; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_kael_orb"; newscript->pGOHello = &GOHello_go_kael_orb; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="go_movie_orb"; newscript->pGOHello = &GOHello_go_movie_orb; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp index bd4a336eff4..afae183a4ec 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp @@ -1355,60 +1355,60 @@ void AddSC_boss_priestess_delrissa() newscript = new Script; newscript->Name="boss_priestess_delrissa"; newscript->GetAI = GetAI_boss_priestess_delrissa; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_kagani_nightstrike"; newscript->GetAI = GetAI_boss_kagani_nightstrike; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_ellris_duskhallow"; newscript->GetAI = GetAI_ellris_duskhallow; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_eramas_brightblaze"; newscript->GetAI = GetAI_eramas_brightblaze; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_yazzai"; newscript->GetAI = GetAI_yazzai; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_warlord_salaris"; newscript->GetAI = GetAI_warlord_salaris; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_garaxxas"; newscript->GetAI = GetAI_garaxxas; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_apoko"; newscript->GetAI = GetAI_apoko; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_zelfan"; newscript->GetAI = GetAI_zelfan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); /*newscript = new Script; newscript->Name="mob_high_explosive_sheep"; newscript->GetAI = GetAI_mob_high_explosive_sheep; - m_scripts[nrscripts++] = newscript;*/ + newscript->RegisterSelf();*/ /*newscript = new Script; newscript->Name="mob_fizzle"; newscript->GetAI = GetAI_mob_fizzle; - m_scripts[nrscripts++] = newscript;*/ + newscript->RegisterSelf();*/ /*newscript = new Script; newscript->Name="mob_sliver"; newscript->GetAI = GetAI_mob_sliver; - m_scripts[nrscripts++] = newscript;*/ + newscript->RegisterSelf();*/ } diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp index 24526dac185..83174dd5a4c 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp @@ -403,10 +403,10 @@ void AddSC_boss_selin_fireheart() newscript = new Script; newscript->Name="boss_selin_fireheart"; newscript->GetAI = GetAI_boss_selin_fireheart; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_fel_crystal"; newscript->GetAI = GetAI_mob_fel_crystal; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp index ff11b425bd2..4f073cb884d 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp @@ -238,10 +238,10 @@ void AddSC_boss_vexallus() newscript = new Script; newscript->Name="boss_vexallus"; newscript->GetAI = GetAI_boss_vexallus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_pure_energy"; newscript->GetAI = GetAI_mob_pure_energy; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/instance_magisters_terrace.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/instance_magisters_terrace.cpp index 8afecdc32e9..70d12865158 100644 --- a/src/bindings/scripts/scripts/zone/magisters_terrace/instance_magisters_terrace.cpp +++ b/src/bindings/scripts/scripts/zone/magisters_terrace/instance_magisters_terrace.cpp @@ -249,5 +249,5 @@ void AddSC_instance_magisters_terrace() newscript = new Script; newscript->Name = "instance_magisters_terrace"; newscript->GetInstanceData = GetInstanceData_instance_magisters_terrace; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_celebras_the_cursed.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_celebras_the_cursed.cpp index 543686e2648..8830b7f3e4b 100644 --- a/src/bindings/scripts/scripts/zone/maraudon/boss_celebras_the_cursed.cpp +++ b/src/bindings/scripts/scripts/zone/maraudon/boss_celebras_the_cursed.cpp @@ -93,5 +93,5 @@ void AddSC_boss_celebras_the_cursed() newscript = new Script; newscript->Name="celebras_the_cursed"; newscript->GetAI = GetAI_celebras_the_cursed; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_landslide.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_landslide.cpp index 20b93fe64b3..ab68f68c6e3 100644 --- a/src/bindings/scripts/scripts/zone/maraudon/boss_landslide.cpp +++ b/src/bindings/scripts/scripts/zone/maraudon/boss_landslide.cpp @@ -90,5 +90,5 @@ void AddSC_boss_landslide() newscript = new Script; newscript->Name="boss_landslide"; newscript->GetAI = GetAI_boss_landslide; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp index c5d5a51ffb9..0ffe9cd7f56 100644 --- a/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp +++ b/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp @@ -145,5 +145,5 @@ void AddSC_boss_noxxion() newscript = new Script; newscript->Name="boss_noxxion"; newscript->GetAI = GetAI_boss_noxxion; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_princess_theradras.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_princess_theradras.cpp index 1920109f3d8..01cfb86a372 100644 --- a/src/bindings/scripts/scripts/zone/maraudon/boss_princess_theradras.cpp +++ b/src/bindings/scripts/scripts/zone/maraudon/boss_princess_theradras.cpp @@ -104,5 +104,5 @@ void AddSC_boss_ptheradras() newscript = new Script; newscript->Name="boss_princess_theradras"; newscript->GetAI = GetAI_boss_ptheradras; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_baron_geddon.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_baron_geddon.cpp index 163926881f6..75cf6cb0a45 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_baron_geddon.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_baron_geddon.cpp @@ -101,5 +101,5 @@ void AddSC_boss_baron_geddon() newscript = new Script; newscript->Name="boss_baron_geddon"; newscript->GetAI = GetAI_boss_baron_geddon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_garr.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_garr.cpp index 70e98d648ee..830af78c430 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_garr.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_garr.cpp @@ -140,10 +140,10 @@ void AddSC_boss_garr() newscript = new Script; newscript->Name="boss_garr"; newscript->GetAI = GetAI_boss_garr; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_firesworn"; newscript->GetAI = GetAI_mob_firesworn; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_gehennas.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_gehennas.cpp index f15c66f26af..dc8bd9a5d9c 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_gehennas.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_gehennas.cpp @@ -87,5 +87,5 @@ void AddSC_boss_gehennas() newscript = new Script; newscript->Name="boss_gehennas"; newscript->GetAI = GetAI_boss_gehennas; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp index 6d17621ceb2..ebefd0185fc 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp @@ -192,10 +192,10 @@ void AddSC_boss_golemagg() newscript = new Script; newscript->Name="boss_golemagg"; newscript->GetAI = GetAI_boss_golemagg; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_core_rager"; newscript->GetAI = GetAI_mob_core_rager; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_lucifron.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_lucifron.cpp index 6e8938bc542..f45657c8dae 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_lucifron.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_lucifron.cpp @@ -86,5 +86,5 @@ void AddSC_boss_lucifron() newscript = new Script; newscript->Name="boss_lucifron"; newscript->GetAI = GetAI_boss_lucifron; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_magmadar.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_magmadar.cpp index a892c83f175..d08f393fbee 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_magmadar.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_magmadar.cpp @@ -93,5 +93,5 @@ void AddSC_boss_magmadar() newscript = new Script; newscript->Name="boss_magmadar"; newscript->GetAI = GetAI_boss_magmadar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp index d61f08ee7e7..43be23046ea 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp @@ -129,5 +129,5 @@ void AddSC_boss_majordomo() newscript = new Script; newscript->Name="boss_majordomo"; newscript->GetAI = GetAI_boss_majordomo; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp index 723fba0edf7..d357d9580e9 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp @@ -313,5 +313,5 @@ void AddSC_boss_ragnaros() newscript = new Script; newscript->Name="boss_ragnaros"; newscript->GetAI = GetAI_boss_ragnaros; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_shazzrah.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_shazzrah.cpp index c9d4f4f3eec..c78b9ac3c91 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_shazzrah.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_shazzrah.cpp @@ -117,5 +117,5 @@ void AddSC_boss_shazzrah() newscript = new Script; newscript->Name="boss_shazzrah"; newscript->GetAI = GetAI_boss_shazzrah; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp index 8a2a7764daa..0bc0e8e729e 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp @@ -206,10 +206,10 @@ void AddSC_boss_sulfuron() newscript = new Script; newscript->Name="boss_sulfuron"; newscript->GetAI = GetAI_boss_sulfuron; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_flamewaker_priest"; newscript->GetAI = GetAI_mob_flamewaker_priest; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/instance_molten_core.cpp b/src/bindings/scripts/scripts/zone/molten_core/instance_molten_core.cpp index 42a2ec35678..efba77f41f0 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/instance_molten_core.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/instance_molten_core.cpp @@ -253,5 +253,5 @@ void AddSC_instance_molten_core() newscript = new Script; newscript->Name="instance_molten_core"; newscript->GetInstanceData = &GetInstance_instance_molten_core; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp b/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp index e36f56c7817..9446fb54a12 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp @@ -84,5 +84,5 @@ void AddSC_molten_core() newscript = new Script; newscript->Name="mob_ancient_core_hound"; newscript->GetAI = GetAI_mob_ancient_core_hound; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp b/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp index 7ac2326327b..1b0afbaaf94 100644 --- a/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp +++ b/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp @@ -545,27 +545,27 @@ void AddSC_moonglade() newscript->Name="npc_bunthen_plainswind"; newscript->pGossipHello = &GossipHello_npc_bunthen_plainswind; newscript->pGossipSelect = &GossipSelect_npc_bunthen_plainswind; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_great_bear_spirit"; newscript->pGossipHello = &GossipHello_npc_great_bear_spirit; newscript->pGossipSelect = &GossipSelect_npc_great_bear_spirit; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_silva_filnaveth"; newscript->pGossipHello = &GossipHello_npc_silva_filnaveth; newscript->pGossipSelect = &GossipSelect_npc_silva_filnaveth; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_clintar_dreamwalker"; newscript->pQuestAccept = &QuestAccept_npc_clintar_dreamwalker; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_clintar_spirit"; newscript->GetAI = GetAI_npc_clintar_spirit; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp index d2fb6643423..44de5eab777 100644 --- a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp +++ b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp @@ -60,5 +60,5 @@ void AddSC_mulgore() newscript->Name="npc_skorn_whitecloud"; newscript->pGossipHello = &GossipHello_npc_skorn_whitecloud; newscript->pGossipSelect = &GossipSelect_npc_skorn_whitecloud; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp index dcd3f57bef3..f662fe4c2c4 100644 --- a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp +++ b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp @@ -631,46 +631,46 @@ void AddSC_nagrand() newscript = new Script; newscript->Name="mob_shattered_rumbler"; newscript->GetAI = GetAI_mob_shattered_rumbler; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_lump"; newscript->GetAI = GetAI_mob_lump; newscript->pGossipHello = &GossipHello_mob_lump; newscript->pGossipSelect = &GossipSelect_mob_lump; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_sunspring_villager"; newscript->GetAI = GetAI_mob_sunspring_villager; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_altruis_the_sufferer"; newscript->pGossipHello = &GossipHello_npc_altruis_the_sufferer; newscript->pGossipSelect = &GossipSelect_npc_altruis_the_sufferer; newscript->pQuestAccept = &QuestAccept_npc_altruis_the_sufferer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_greatmother_geyah"; newscript->pGossipHello = &GossipHello_npc_greatmother_geyah; newscript->pGossipSelect = &GossipSelect_npc_greatmother_geyah; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_lantresor_of_the_blade"; newscript->pGossipHello = &GossipHello_npc_lantresor_of_the_blade; newscript->pGossipSelect = &GossipSelect_npc_lantresor_of_the_blade; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_creditmarker_visit_with_ancestors"; newscript->GetAI = GetAI_npc_creditmarker_visit_with_ancestors; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_sparrowhawk"; newscript->GetAI = GetAI_mob_sparrowhawk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_anubrekhan.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_anubrekhan.cpp index 50a4f867b4c..2b93e7828f9 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_anubrekhan.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_anubrekhan.cpp @@ -208,5 +208,5 @@ void AddSC_boss_anubrekhan() newscript = new Script; newscript->Name="boss_anubrekhan"; newscript->GetAI = GetAI_boss_anubrekhan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_faerlina.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_faerlina.cpp index 4add49e17b4..dbcf72510aa 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_faerlina.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_faerlina.cpp @@ -197,5 +197,5 @@ void AddSC_boss_faerlina() newscript = new Script; newscript->Name="boss_faerlina"; newscript->GetAI = GetAI_boss_faerlina; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_gluth.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_gluth.cpp index 09e3c1ecf25..b5b40a4b245 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_gluth.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_gluth.cpp @@ -170,5 +170,5 @@ void AddSC_boss_gluth() newscript = new Script; newscript->Name="boss_gluth"; newscript->GetAI = GetAI_boss_gluth; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_highlord_mograine.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_highlord_mograine.cpp index 96d94ad51ad..d21e2a2119f 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_highlord_mograine.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_highlord_mograine.cpp @@ -174,5 +174,5 @@ void AddSC_boss_highlord_mograine() newscript = new Script; newscript->Name="boss_highlord_mograine"; newscript->GetAI = GetAI_boss_highlord_mograine; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_kelthuzad.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_kelthuzad.cpp index 3a47f6f5c27..e65bfb62fdd 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_kelthuzad.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_kelthuzad.cpp @@ -537,6 +537,6 @@ void AddSC_boss_kelthuzad() newscript = new Script; newscript->Name="boss_kelthuzad"; newscript->GetAI = GetAI_boss_kelthuzadAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); */ } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_lady_blaumeux.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_lady_blaumeux.cpp index ee3b47e478d..770f880557d 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_lady_blaumeux.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_lady_blaumeux.cpp @@ -143,5 +143,5 @@ void AddSC_boss_lady_blaumeux() newscript = new Script; newscript->Name="boss_lady_blaumeux"; newscript->GetAI = GetAI_boss_lady_blaumeux; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_loatheb.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_loatheb.cpp index 56fe786e6c8..4da5c6626cb 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_loatheb.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_loatheb.cpp @@ -212,5 +212,5 @@ void AddSC_boss_loatheb() newscript = new Script; newscript->Name="boss_loatheb"; newscript->GetAI = GetAI_boss_loatheb; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp index 4c65feb9c7b..821ca832e65 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp @@ -237,10 +237,10 @@ void AddSC_boss_maexxna() newscript = new Script; newscript->Name="boss_maexxna"; newscript->GetAI = GetAI_boss_maexxna; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_webwrap"; newscript->GetAI = GetAI_mob_webwrap; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp index cda01c57e40..43616311bb4 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp @@ -176,5 +176,5 @@ void AddSC_boss_noth() newscript = new Script; newscript->Name="boss_noth"; newscript->GetAI = GetAI_boss_noth; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp index d0edc7f46b3..2f51c9c3064 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp @@ -156,5 +156,5 @@ void AddSC_boss_patchwerk() newscript = new Script; newscript->Name="boss_patchwerk"; newscript->GetAI = GetAI_boss_patchwerk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_razuvious.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_razuvious.cpp index d83f99bda43..ac7de1db7eb 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_razuvious.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_razuvious.cpp @@ -163,5 +163,5 @@ void AddSC_boss_razuvious() newscript = new Script; newscript->Name="boss_razuvious"; newscript->GetAI = GetAI_boss_razuvious; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp index 0be1619ad74..75a2f20db14 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp @@ -195,5 +195,5 @@ void AddSC_boss_sapphiron() newscript = new Script; newscript->Name="boss_sapphiron"; newscript->GetAI = GetAI_boss_sapphiron; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_sir_zeliek.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_sir_zeliek.cpp index 0a3ca7a951b..8dead488208 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_sir_zeliek.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_sir_zeliek.cpp @@ -142,5 +142,5 @@ void AddSC_boss_sir_zeliek() newscript = new Script; newscript->Name="boss_sir_zeliek"; newscript->GetAI = GetAI_boss_sir_zeliek; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_thane_korthazz.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_thane_korthazz.cpp index a040626258d..500f0955316 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_thane_korthazz.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_thane_korthazz.cpp @@ -143,5 +143,5 @@ void AddSC_boss_thane_korthazz() newscript = new Script; newscript->Name="boss_thane_korthazz"; newscript->GetAI = GetAI_boss_thane_korthazz; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp b/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp index 2d35802338e..4125c4e888e 100644 --- a/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp +++ b/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp @@ -400,22 +400,22 @@ void AddSC_netherstorm() newscript = new Script; newscript->Name="go_manaforge_control_console"; newscript->pGOHello = &GOHello_go_manaforge_control_console; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_manaforge_control_console"; newscript->GetAI = GetAI_npc_manaforge_control_console; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_protectorate_nether_drake"; newscript->pGossipHello = &GossipHello_npc_protectorate_nether_drake; newscript->pGossipSelect = &GossipSelect_npc_protectorate_nether_drake; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_veronia"; newscript->pGossipHello = &GossipHello_npc_veronia; newscript->pGossipSelect = &GossipSelect_npc_veronia; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp b/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp index 7774f65411d..eb73f8bfb3a 100644 --- a/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp +++ b/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp @@ -229,5 +229,5 @@ void AddSC_boss_onyxia() newscript = new Script; newscript->Name="boss_onyxia"; newscript->GetAI = GetAI_boss_onyxiaAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp b/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp index cb4be0499fc..76c7a5f3416 100644 --- a/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp +++ b/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp @@ -247,19 +247,19 @@ void AddSC_orgrimmar() newscript->Name="npc_neeru_fireblade"; newscript->pGossipHello = &GossipHello_npc_neeru_fireblade; newscript->pGossipSelect = &GossipSelect_npc_neeru_fireblade; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_shenthul"; newscript->GetAI = GetAI_npc_shenthul; newscript->pQuestAccept = &QuestAccept_npc_shenthul; newscript->pReceiveEmote = &ReciveEmote_npc_shenthul; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_thrall_warchief"; newscript->GetAI = GetAI_npc_thrall_warchief; newscript->pGossipHello = &GossipHello_npc_thrall_warchief; newscript->pGossipSelect = &GossipSelect_npc_thrall_warchief; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp b/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp index 163db1c2756..e7f3184a60e 100644 --- a/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp +++ b/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp @@ -136,5 +136,5 @@ void AddSC_boss_amnennar_the_coldbringer() newscript = new Script; newscript->Name="boss_amnennar_the_coldbringer"; newscript->GetAI = GetAI_boss_amnennar_the_coldbringer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp index 03a53d50297..374daab3344 100644 --- a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp +++ b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp @@ -103,5 +103,5 @@ void AddSC_boss_ayamiss() newscript = new Script; newscript->Name="boss_ayamiss"; newscript->GetAI = GetAI_boss_ayamiss; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp index 3a287d8b6ae..124ebccbcbb 100644 --- a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp +++ b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp @@ -89,5 +89,5 @@ void AddSC_boss_kurinnaxx() newscript = new Script; newscript->Name="boss_kurinnaxx"; newscript->GetAI = GetAI_boss_kurinnaxx; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp index 836dd3f8065..12e58066456 100644 --- a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp +++ b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp @@ -113,5 +113,5 @@ void AddSC_boss_moam() newscript = new Script; newscript->Name="boss_moam"; newscript->GetAI = GetAI_boss_moam; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp index 50764c4d022..aaa156b8092 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp @@ -167,5 +167,5 @@ void AddSC_boss_arcanist_doan() newscript = new Script; newscript->Name="boss_arcanist_doan"; newscript->GetAI = GetAI_boss_arcanist_doan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp index 4ea395a8038..10d340eae91 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp @@ -93,5 +93,5 @@ void AddSC_boss_azshir_the_sleepless() newscript = new Script; newscript->Name="boss_azshir_the_sleepless"; newscript->GetAI = GetAI_boss_azshir_the_sleepless; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp index 9fa5bee9714..ae2324d8615 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp @@ -132,5 +132,5 @@ void AddSC_boss_bloodmage_thalnos() newscript = new Script; newscript->Name="boss_bloodmage_thalnos"; newscript->GetAI = GetAI_boss_bloodmage_thalnos; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp index de1fd991c33..494def37c11 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp @@ -193,5 +193,5 @@ void AddSC_boss_herod() newscript = new Script; newscript->Name="boss_herod"; newscript->GetAI = GetAI_boss_herod; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp index 5742214e31d..a230629b871 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp @@ -128,5 +128,5 @@ void AddSC_boss_high_inquisitor_fairbanks() newscript = new Script; newscript->Name="boss_high_inquisitor_fairbanks"; newscript->GetAI = GetAI_boss_high_inquisitor_fairbanks; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_whitemane.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_whitemane.cpp index 97fbce31b01..c10da64c4e9 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_whitemane.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_whitemane.cpp @@ -173,5 +173,5 @@ void AddSC_boss_high_inquisitor_whitemane() newscript = new Script; newscript->Name="boss_high_inquisitor_whitemane"; newscript->GetAI = GetAI_boss_high_inquisitor_whitemane; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp index 6353f600460..e268d25c9d7 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp @@ -74,5 +74,5 @@ void AddSC_boss_houndmaster_loksey() newscript = new Script; newscript->Name="boss_houndmaster_loksey"; newscript->GetAI = GetAI_boss_houndmaster_loksey; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp index ede58d0997e..98cb742eb01 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp @@ -109,5 +109,5 @@ void AddSC_boss_interrogator_vishas() newscript = new Script; newscript->Name="boss_interrogator_vishas"; newscript->GetAI = GetAI_boss_interrogator_vishas; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scarlet_commander_mograine.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scarlet_commander_mograine.cpp index 5e87b1a2b77..1d8587d9f78 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scarlet_commander_mograine.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scarlet_commander_mograine.cpp @@ -156,5 +156,5 @@ void AddSC_boss_scarlet_commander_mograine() newscript = new Script; newscript->Name="boss_scarlet_commander_mograine"; newscript->GetAI = GetAI_boss_scarlet_commander_mograine; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scorn.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scorn.cpp index 1f9e3fb2487..95a206d1657 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scorn.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scorn.cpp @@ -96,5 +96,5 @@ void AddSC_boss_scorn() newscript = new Script; newscript->Name="boss_scorn"; newscript->GetAI = GetAI_boss_scorn; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp index f67bf9fe594..38e6ad85d8c 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp @@ -188,5 +188,5 @@ void AddSC_boss_darkmaster_gandling() newscript = new Script; newscript->Name="boss_darkmaster_gandling"; newscript->GetAI = GetAI_boss_darkmaster_gandling; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_death_knight_darkreaver.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_death_knight_darkreaver.cpp index 747ec039363..fa410af2734 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_death_knight_darkreaver.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_death_knight_darkreaver.cpp @@ -55,5 +55,5 @@ void AddSC_boss_death_knight_darkreaver() newscript = new Script; newscript->Name="boss_death_knight_darkreaver"; newscript->GetAI = GetAI_boss_death_knight_darkreaver; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp index 484a27dca98..3993a58f1cd 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp @@ -104,5 +104,5 @@ void AddSC_boss_theolenkrastinov() newscript = new Script; newscript->Name="boss_doctor_theolen_krastinov"; newscript->GetAI = GetAI_boss_theolenkrastinov; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp index 1edae02fcf3..4b871f8e173 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp @@ -112,5 +112,5 @@ void AddSC_boss_illuciabarov() newscript = new Script; newscript->Name="boss_illucia_barov"; newscript->GetAI = GetAI_boss_illuciabarov; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp index 705b2835843..15e5c93a982 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp @@ -148,5 +148,5 @@ void AddSC_boss_instructormalicia() newscript = new Script; newscript->Name="boss_instructor_malicia"; newscript->GetAI = GetAI_boss_instructormalicia; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp index dfae0432d12..e27dc31879e 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp @@ -212,10 +212,10 @@ void AddSC_boss_jandicebarov() newscript = new Script; newscript->Name="boss_jandice_barov"; newscript->GetAI = GetAI_boss_jandicebarov; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_illusionofjandicebarov"; newscript->GetAI = GetAI_mob_illusionofjandicebarov; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp index b3cc6fd0530..1e1fb1ef685 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp @@ -151,5 +151,5 @@ void AddSC_boss_kormok() newscript = new Script; newscript->Name="boss_kormok"; newscript->GetAI = GetAI_boss_kormok; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp index 49f3f733949..8d8f248aede 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp @@ -94,5 +94,5 @@ void AddSC_boss_lordalexeibarov() newscript = new Script; newscript->Name="boss_lord_alexei_barov"; newscript->GetAI = GetAI_boss_lordalexeibarov; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp index d17d2036d91..c05e4d64d1d 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp @@ -109,5 +109,5 @@ void AddSC_boss_lorekeeperpolkelt() newscript = new Script; newscript->Name="boss_lorekeeper_polkelt"; newscript->GetAI = GetAI_boss_lorekeeperpolkelt; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_ras_frostwhisper.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_ras_frostwhisper.cpp index 0ea243c2d08..afe7eb8716a 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_ras_frostwhisper.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_ras_frostwhisper.cpp @@ -121,5 +121,5 @@ void AddSC_boss_rasfrost() newscript = new Script; newscript->Name="boss_boss_ras_frostwhisper"; newscript->GetAI = GetAI_boss_rasfrost; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp index f27e8aa458f..d16b0f917ce 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp @@ -114,5 +114,5 @@ void AddSC_boss_theravenian() newscript = new Script; newscript->Name="boss_the_ravenian"; newscript->GetAI = GetAI_boss_theravenian; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_vectus.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_vectus.cpp index 954ee3b4eba..f92ae0732e1 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/boss_vectus.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/boss_vectus.cpp @@ -91,5 +91,5 @@ void AddSC_boss_vectus() newscript = new Script; newscript->Name="boss_vectus"; newscript->GetAI = GetAI_boss_vectus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/scholomance/instance_scholomance.cpp b/src/bindings/scripts/scripts/zone/scholomance/instance_scholomance.cpp index a48537068f8..036a34cd8fa 100644 --- a/src/bindings/scripts/scripts/zone/scholomance/instance_scholomance.cpp +++ b/src/bindings/scripts/scripts/zone/scholomance/instance_scholomance.cpp @@ -98,5 +98,5 @@ void AddSC_instance_scholomance() newscript = new Script; newscript->Name = "instance_scholomance"; newscript->GetInstanceData = GetInstanceData_instance_scholomance; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/searing_gorge/searing_gorge.cpp b/src/bindings/scripts/scripts/zone/searing_gorge/searing_gorge.cpp index 7a9ef1a5449..23281eb9050 100644 --- a/src/bindings/scripts/scripts/zone/searing_gorge/searing_gorge.cpp +++ b/src/bindings/scripts/scripts/zone/searing_gorge/searing_gorge.cpp @@ -143,17 +143,17 @@ void AddSC_searing_gorge() newscript->Name="npc_kalaran_windblade"; newscript->pGossipHello = &GossipHello_npc_kalaran_windblade; newscript->pGossipSelect = &GossipSelect_npc_kalaran_windblade; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_lothos_riftwaker"; newscript->pGossipHello = &GossipHello_npc_lothos_riftwaker; newscript->pGossipSelect = &GossipSelect_npc_lothos_riftwaker; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_zamael_lunthistle"; newscript->pGossipHello = &GossipHello_npc_zamael_lunthistle; newscript->pGossipSelect = &GossipSelect_npc_zamael_lunthistle; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp b/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp index dfae8457abc..a854cc96989 100644 --- a/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp +++ b/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp @@ -148,5 +148,5 @@ void AddSC_instance_shadowfang_keep() newscript = new Script; newscript->Name = "instance_shadowfang_keep"; newscript->GetInstanceData = GetInstanceData_instance_shadowfang_keep; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp index 65e1eaea8ba..d297ccbcdeb 100644 --- a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp +++ b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp @@ -113,5 +113,5 @@ void AddSC_shadowfang_keep() newscript->pGossipHello = &GossipHello_npc_shadowfang_prisoner; newscript->pGossipSelect = &GossipSelect_npc_shadowfang_prisoner; newscript->GetAI = GetAI_npc_shadowfang_prisoner; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/shadowmoon_valley/boss_doomwalker.cpp b/src/bindings/scripts/scripts/zone/shadowmoon_valley/boss_doomwalker.cpp index 89536b15ac2..a67318bc41c 100644 --- a/src/bindings/scripts/scripts/zone/shadowmoon_valley/boss_doomwalker.cpp +++ b/src/bindings/scripts/scripts/zone/shadowmoon_valley/boss_doomwalker.cpp @@ -212,5 +212,5 @@ void AddSC_boss_doomwalker() newscript = new Script; newscript->Name="boss_doomwalker"; newscript->GetAI = GetAI_boss_doomwalker; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp index 7bc1ad312a9..534a853302d 100644 --- a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp +++ b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp @@ -1106,73 +1106,73 @@ void AddSC_shadowmoon_valley() newscript = new Script; newscript->Name = "mob_mature_netherwing_drake"; newscript->GetAI = GetAI_mob_mature_netherwing_drake; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_enslaved_netherwing_drake"; newscript->GetAI = GetAI_mob_enslaved_netherwing_drake; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "mob_dragonmaw_peon"; newscript->GetAI = GetAI_mob_dragonmaw_peon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_drake_dealer_hurlunk"; newscript->pGossipHello = &GossipHello_npc_drake_dealer_hurlunk; newscript->pGossipSelect = &GossipSelect_npc_drake_dealer_hurlunk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_invis_legion_teleporter"; newscript->GetAI = GetAI_npc_invis_legion_teleporter; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npcs_flanis_swiftwing_and_kagrosh"; newscript->pGossipHello = &GossipHello_npcs_flanis_swiftwing_and_kagrosh; newscript->pGossipSelect = &GossipSelect_npcs_flanis_swiftwing_and_kagrosh; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_murkblood_overseer"; newscript->pGossipHello = &GossipHello_npc_murkblood_overseer; newscript->pGossipSelect = &GossipSelect_npc_murkblood_overseer; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_neltharaku"; newscript->pGossipHello = &GossipHello_npc_neltharaku; newscript->pGossipSelect = &GossipSelect_npc_neltharaku; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_karynaku"; newscript->pQuestAccept = &QuestAccept_npc_karynaku; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_oronok_tornheart"; newscript->pGossipHello = &GossipHello_npc_oronok_tornheart; newscript->pGossipSelect = &GossipSelect_npc_oronok_tornheart; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_overlord_morghor"; newscript->GetAI = GetAI_Overlord_Morghor; newscript->pQuestAccept = &QuestAccept_Overlord_Morghor; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_lord_illidan_stormrage"; newscript->GetAI = GetAI_Lord_Illidan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_yarzill_the_merc"; newscript->GetAI = GetAI_Yarzill_The_Merc; newscript->pGossipHello = &GossipHello_npc_yarzill_fly; newscript->pGossipSelect = &GossipSelect_npc_yarzill_fly; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp b/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp index 41cb56585ef..f974e0ec16d 100644 --- a/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp +++ b/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp @@ -414,28 +414,28 @@ void AddSC_shattrath_city() newscript->Name="npc_raliq_the_drunk"; newscript->pGossipHello = &GossipHello_npc_raliq_the_drunk; newscript->pGossipSelect = &GossipSelect_npc_raliq_the_drunk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_salsalabim"; newscript->GetAI = GetAI_npc_salsalabim; newscript->pGossipHello = &GossipHello_npc_salsalabim; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_shattrathflaskvendors"; newscript->pGossipHello = &GossipHello_npc_shattrathflaskvendors; newscript->pGossipSelect = &GossipSelect_npc_shattrathflaskvendors; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_zephyr"; newscript->pGossipHello = &GossipHello_npc_zephyr; newscript->pGossipSelect = &GossipSelect_npc_zephyr; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_kservant"; newscript->GetAI = GetAI_npc_kservantAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/silithus/silithus.cpp b/src/bindings/scripts/scripts/zone/silithus/silithus.cpp index 5e05fa60630..bf868318342 100644 --- a/src/bindings/scripts/scripts/zone/silithus/silithus.cpp +++ b/src/bindings/scripts/scripts/zone/silithus/silithus.cpp @@ -145,5 +145,5 @@ void AddSC_silithus() newscript->Name="npcs_rutgar_and_frankal"; newscript->pGossipHello = &GossipHello_npcs_rutgar_and_frankal; newscript->pGossipSelect = &GossipSelect_npcs_rutgar_and_frankal; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp b/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp index 077c078b64a..d50a1fcbdf8 100644 --- a/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp +++ b/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp @@ -99,5 +99,5 @@ void AddSC_silvermoon_city() newscript = new Script; newscript->Name="npc_blood_knight_stillblade"; newscript->GetAI = GetAI_npc_blood_knight_stillblade; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp b/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp index 597ab1ccb8d..b511ccbba4e 100644 --- a/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp +++ b/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp @@ -96,5 +96,5 @@ void AddSC_silverpine_forest() newscript->pGossipHello = &GossipHello_npc_astor_hadren; newscript->pGossipSelect = &GossipSelect_npc_astor_hadren; newscript->GetAI = GetAI_npc_astor_hadren; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp index 40cb6367379..28f0c644726 100644 --- a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp +++ b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp @@ -76,5 +76,5 @@ void AddSC_stonetalon_mountains() newscript->Name="npc_braug_dimspirit"; newscript->pGossipHello = &GossipHello_npc_braug_dimspirit; newscript->pGossipSelect = &GossipSelect_npc_braug_dimspirit; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp index b84b1d98cb6..9c34ec3d926 100644 --- a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp +++ b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp @@ -245,28 +245,28 @@ void AddSC_stormwind_city() newscript->Name="npc_archmage_malin"; newscript->pGossipHello = &GossipHello_npc_archmage_malin; newscript->pGossipSelect = &GossipSelect_npc_archmage_malin; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_bartleby"; newscript->GetAI = GetAI_npc_bartleby; newscript->pQuestAccept = &QuestAccept_npc_bartleby; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_dashel_stonefist"; newscript->GetAI = GetAI_npc_dashel_stonefist; newscript->pQuestAccept = &QuestAccept_npc_dashel_stonefist; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_general_marcus_jonathan"; newscript->pReceiveEmote = &ReceiveEmote_npc_general_marcus_jonathan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_lady_katrana_prestor"; newscript->pGossipHello = &GossipHello_npc_lady_katrana_prestor; newscript->pGossipSelect = &GossipSelect_npc_lady_katrana_prestor; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp index 40ff438cbd1..426c56c679d 100644 --- a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp +++ b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp @@ -103,5 +103,5 @@ void AddSC_stranglethorn_vale() newscript = new Script; newscript->Name = "mob_yenniku"; newscript->GetAI = GetAI_mob_yenniku; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp index d3cfa97be75..aac9c590c97 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp @@ -211,5 +211,5 @@ void AddSC_boss_baron_rivendare() newscript = new Script; newscript->Name="boss_baron_rivendare"; newscript->GetAI = GetAI_boss_baron_rivendare; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp index f1315e66b83..8c88353878c 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp @@ -120,5 +120,5 @@ void AddSC_boss_baroness_anastari() newscript = new Script; newscript->Name="boss_baroness_anastari"; newscript->GetAI = GetAI_boss_baroness_anastari; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp index 4c1bd05b432..d3e1c4e2a3a 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp @@ -217,5 +217,5 @@ void AddSC_boss_cannon_master_willey() newscript = new Script; newscript->Name="boss_cannon_master_willey"; newscript->GetAI = GetAI_boss_cannon_master_willey; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp index 3d084fe0736..67503358d9d 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp @@ -312,5 +312,5 @@ void AddSC_boss_dathrohan_balnazzar() newscript = new Script; newscript->Name="boss_dathrohan_balnazzar"; newscript->GetAI = GetAI_boss_dathrohan_balnazzar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp index cbea76cf205..daa8da39a67 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp @@ -110,5 +110,5 @@ void AddSC_boss_magistrate_barthilas() newscript = new Script; newscript->Name="boss_magistrate_barthilas"; newscript->GetAI = GetAI_boss_magistrate_barthilas; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp index e0f9c43cba7..d3d60121a87 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp @@ -115,5 +115,5 @@ void AddSC_boss_maleki_the_pallid() newscript = new Script; newscript->Name="boss_maleki_the_pallid"; newscript->GetAI = GetAI_boss_maleki_the_pallid; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp index 3929f2513dd..b56e643bdb2 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp @@ -134,5 +134,5 @@ void AddSC_boss_nerubenkan() newscript = new Script; newscript->Name="boss_nerubenkan"; newscript->GetAI = GetAI_boss_nerubenkan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp index a76913b658c..ee92be7737d 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp @@ -157,5 +157,5 @@ void AddSC_boss_order_of_silver_hand() newscript = new Script; newscript->Name="boss_silver_hand_bosses"; newscript->GetAI = GetAI_boss_silver_hand_bossesAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp index a4eddd46b5e..d0514bd2eb8 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp @@ -140,5 +140,5 @@ void AddSC_boss_postmaster_malown() newscript = new Script; newscript->Name="boss_postmaster_malown"; newscript->GetAI = GetAI_boss_postmaster_malown; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp index 674d4403266..b2965f09edf 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp @@ -88,5 +88,5 @@ void AddSC_boss_ramstein_the_gorger() newscript = new Script; newscript->Name="boss_ramstein_the_gorger"; newscript->GetAI = GetAI_boss_ramstein_the_gorger; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp index 2256c064e11..4f526041e35 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp @@ -96,5 +96,5 @@ void AddSC_boss_timmy_the_cruel() newscript = new Script; newscript->Name="boss_timmy_the_cruel"; newscript->GetAI = GetAI_boss_timmy_the_cruel; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/instance_stratholme.cpp b/src/bindings/scripts/scripts/zone/stratholme/instance_stratholme.cpp index eff4edf91a8..74181d6a15e 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/instance_stratholme.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/instance_stratholme.cpp @@ -73,5 +73,5 @@ void AddSC_instance_stratholme() newscript = new Script; newscript->Name = "instance_stratholme"; newscript->GetInstanceData = GetInstanceData_instance_stratholme; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp b/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp index 5097648a04a..2a38abe9311 100644 --- a/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp +++ b/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp @@ -310,26 +310,26 @@ void AddSC_stratholme() newscript = new Script; newscript->Name="mob_freed_soul"; newscript->GetAI = GetAI_mob_freed_soul; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_restless_soul"; newscript->GetAI = GetAI_mob_restless_soul; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mobs_spectral_ghostly_citizen"; newscript->GetAI = GetAI_mobs_spectral_ghostly_citizen; newscript->pReceiveEmote = &ReciveEmote_mobs_spectral_ghostly_citizen; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_mindless_skeleton"; newscript->GetAI = GetAI_mob_mindless_skeleton; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_thuzadin_acolyte"; newscript->GetAI = GetAI_mob_thuzadin_acolyte; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp index fc1bca5233f..24ce8dc4a91 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp @@ -178,5 +178,5 @@ void AddSC_boss_brutallus() newscript = new Script; newscript->Name="boss_brutallus"; newscript->GetAI = GetAI_boss_brutallus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp index b49f0e391f3..b7e076b85d3 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp @@ -761,15 +761,15 @@ void AddSC_boss_eredar_twins() newscript = new Script; newscript->Name="boss_sacrolash"; newscript->GetAI = GetAI_boss_sacrolash; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_alythess"; newscript->GetAI = GetAI_boss_alythess; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_shadow_image"; newscript->GetAI = GetAI_mob_shadow_image; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp index e703b4b6c26..9f2b89b44f2 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp @@ -295,7 +295,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI Timer[EVENT_FLIGHT_SEQUENCE] = 0; break; case 2: - if(Player* target = SelectRandomPlayer(150)) + if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true)) { Creature* Vapor = m_creature->SummonCreature(MOB_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000); if(Vapor) @@ -311,7 +311,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI case 3: DespawnSummons(MOB_VAPOR_TRAIL); //m_creature->CastSpell(m_creature, SPELL_VAPOR_SELECT); need core support - if(Player* target = SelectRandomPlayer(150)) + if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true)) { //target->CastSpell(target, SPELL_VAPOR_SUMMON, true); need core support Creature* Vapor = m_creature->SummonCreature(MOB_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000); @@ -330,7 +330,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI Timer[EVENT_FLIGHT_SEQUENCE] = 1; break; case 5: - if(Player* target = SelectRandomPlayer(150)) + if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true)) { BreathX = target->GetPositionX(); BreathY = target->GetPositionY(); @@ -433,7 +433,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI Timer[EVENT_GAS_NOVA] = 20000 + rand()%5 * 1000; break; case EVENT_ENCAPSULATE: - if(Unit* target = SelectRandomPlayer(150)) + if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true)) { m_creature->CastSpell(target, SPELL_ENCAPSULATE_CHANNEL, false); target->CastSpell(target, SPELL_ENCAPSULATE_EFFECT, true);// linked aura, need core patch to remove this hack @@ -515,26 +515,6 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI (*i)->RemoveCorpse(); } } - - Player* SelectRandomPlayer(float range = 0.0f) - { - Map *map = m_creature->GetMap(); - if (!map->IsDungeon()) return NULL; - - InstanceMap::PlayerList PlayerList = ((InstanceMap*)map)->GetPlayers(); - InstanceMap::PlayerList::iterator i; - while(PlayerList.size()) - { - i = PlayerList.begin(); - advance(i, rand()%PlayerList.size()); - if((range == 0.0f || m_creature->IsWithinDistInMap(*i, range)) - && (*i)->isTargetableForAttack()) - return *i; - else - PlayerList.erase(i); - } - return NULL; - } }; struct TRINITY_DLL_DECL mob_felmyst_vaporAI : public ScriptedAI @@ -594,15 +574,15 @@ void AddSC_boss_felmyst() newscript = new Script; newscript->Name="boss_felmyst"; newscript->GetAI = GetAI_boss_felmyst; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_felmyst_vapor"; newscript->GetAI = GetAI_mob_felmyst_vapor; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_felmyst_trail"; newscript->GetAI = GetAI_mob_felmyst_trail; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp index f3911b9b865..79d0d3766b8 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp @@ -368,13 +368,12 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI { Map *map = m_creature->GetMap(); if(!map->IsDungeon()) return; - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - InstanceMap::PlayerList::const_iterator i; - for (i = PlayerList.begin(); i != PlayerList.end(); ++i) - { - if((*i)->HasAura(AURA_SPECTRAL_REALM,0)) - (*i)->RemoveAurasDueToSpell(AURA_SPECTRAL_REALM); - } + Map::PlayerList const &PlayerList = map->GetPlayers(); + Map::PlayerList::const_iterator i; + for(i = PlayerList.begin(); i != PlayerList.end(); ++i) + if(Player* i_pl = i->getSource()) + if(i_pl->HasAura(AURA_SPECTRAL_REALM,0)) + i_pl->RemoveAurasDueToSpell(AURA_SPECTRAL_REALM); } void Enrage(); // demon and dragon should enrage at the same time @@ -681,20 +680,20 @@ void AddSC_boss_kalecgos() newscript = new Script; newscript->Name="boss_kalecgos"; newscript->GetAI = GetAI_boss_kalecgos; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_sathrovarr"; newscript->GetAI = GetAI_boss_Sathrovarr; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_kalec"; newscript->GetAI = GetAI_boss_kalec; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="kalocegos_teleporter"; newscript->pGOHello = &GOkalocegos_teleporter; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); }
\ No newline at end of file diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp index a94cf460a83..98b0bd443b1 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp @@ -192,5 +192,5 @@ void AddSC_instance_sunwell_plateau() newscript = new Script; newscript->Name = "instance_sunwell_plateau"; newscript->GetInstanceData = GetInstanceData_instance_sunwell_plateau; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp index 2eb6ab80335..c6700af3e67 100644 --- a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp +++ b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp @@ -374,29 +374,29 @@ void AddSC_tanaris() newscript = new Script; newscript->Name="mob_aquementas"; newscript->GetAI = GetAI_mob_aquementas; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_custodian_of_time"; newscript->GetAI = GetAI_npc_custodian_of_time; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_marin_noggenfogger"; newscript->pGossipHello = &GossipHello_npc_marin_noggenfogger; newscript->pGossipSelect = &GossipSelect_npc_marin_noggenfogger; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_steward_of_time"; newscript->pGossipHello = &GossipHello_npc_steward_of_time; newscript->pGossipSelect = &GossipSelect_npc_steward_of_time; newscript->pQuestAccept = &QuestAccept_npc_steward_of_time; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_stone_watcher_of_norgannon"; newscript->pGossipHello = &GossipHello_npc_stone_watcher_of_norgannon; newscript->pGossipSelect = &GossipSelect_npc_stone_watcher_of_norgannon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp index f928a41e1e0..624ad419243 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp @@ -575,15 +575,15 @@ void AddSC_arcatraz() newscript = new Script; newscript->Name="npc_millhouse_manastorm"; newscript->GetAI = GetAI_npc_millhouse_manastorm; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_warden_mellichar"; newscript->GetAI = GetAI_npc_warden_mellichar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_zerekethvoidzone"; newscript->GetAI = GetAI_mob_zerekethvoidzoneAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp index fcd8cf2c607..808604d2375 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp @@ -367,10 +367,10 @@ void AddSC_boss_harbinger_skyriss() newscript = new Script; newscript->Name="boss_harbinger_skyriss"; newscript->GetAI = GetAI_boss_harbinger_skyriss; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_harbinger_skyriss_illusion"; newscript->GetAI = GetAI_boss_harbinger_skyriss_illusion; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp index 93f21f2a72f..2325680d53b 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp @@ -220,5 +220,5 @@ void AddSC_instance_arcatraz() newscript = new Script; newscript->Name = "instance_arcatraz"; newscript->GetInstanceData = GetInstanceData_instance_arcatraz; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp index 201b5936ee9..334fdf07b98 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp @@ -211,5 +211,5 @@ void AddSC_boss_high_botanist_freywinn() newscript = new Script; newscript->Name="boss_high_botanist_freywinn"; newscript->GetAI = GetAI_boss_high_botanist_freywinn; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_laj.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_laj.cpp index c714c470c55..09a237f53cf 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_laj.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_laj.cpp @@ -194,5 +194,5 @@ void AddSC_boss_laj() newscript = new Script; newscript->Name="boss_laj"; newscript->GetAI = GetAI_boss_laj; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp index 5f7c87adff4..f0dc111e896 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp @@ -293,10 +293,10 @@ void AddSC_boss_warp_splinter() newscript = new Script; newscript->Name="boss_warp_splinter"; newscript->GetAI = GetAI_boss_warp_splinter; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_warp_splinter_treant"; newscript->GetAI = GetAI_mob_treant; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp index 617fd29dbc2..138d3d19f99 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp @@ -505,15 +505,15 @@ void AddSC_boss_alar() newscript = new Script; newscript->Name="boss_alar"; newscript->GetAI = GetAI_boss_alar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_ember_of_alar"; newscript->GetAI = GetAI_mob_ember_of_alar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_flame_patch_alar"; newscript->GetAI = GetAI_mob_flame_patch_alar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp index 477aab20241..9e93eac4693 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp @@ -536,10 +536,10 @@ void AddSC_boss_high_astromancer_solarian() newscript = new Script; newscript->Name="boss_high_astromancer_solarian"; newscript->GetAI = GetAI_boss_high_astromancer_solarian; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_solarium_priest"; newscript->GetAI = GetAI_mob_solarium_priest; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp index ddbfbb65bf2..ca5d8dcf7dd 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp @@ -1581,35 +1581,35 @@ void AddSC_boss_kaelthas() newscript = new Script; newscript->Name="boss_kaelthas"; newscript->GetAI = GetAI_boss_kaelthas; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_thaladred_the_darkener"; newscript->GetAI = GetAI_boss_thaladred_the_darkener; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_lord_sanguinar"; newscript->GetAI = GetAI_boss_lord_sanguinar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_grand_astromancer_capernian"; newscript->GetAI = GetAI_boss_grand_astromancer_capernian; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_master_engineer_telonicus"; newscript->GetAI = GetAI_boss_master_engineer_telonicus; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name= "mob_kael_flamestrike"; newscript->GetAI = GetAI_mob_kael_flamestrike; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_phoenix"; newscript->GetAI = GetAI_mob_phoenix; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp index 406e7e4d9ab..de6335e79e3 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp @@ -195,5 +195,5 @@ void AddSC_boss_void_reaver() newscript = new Script; newscript->Name="boss_void_reaver"; newscript->GetAI = GetAI_boss_void_reaver; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp index 3f1316d45e8..1fa1030a991 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp @@ -172,5 +172,5 @@ void AddSC_instance_the_eye() newscript = new Script; newscript->Name = "instance_the_eye"; newscript->GetInstanceData = GetInstanceData_instance_the_eye; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/the_eye.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/the_eye.cpp index cd2962b509a..18d37e88bdc 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/the_eye.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/the_eye.cpp @@ -94,5 +94,5 @@ void AddSC_the_eye() newscript = new Script; newscript->Name="mob_crystalcore_devastator"; newscript->GetAI = GetAI_mob_crystalcore_devastator; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp index 90ec4076d21..dfc5d70bb42 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp @@ -157,5 +157,5 @@ void AddSC_boss_gatewatcher_iron_hand() newscript = new Script; newscript->Name="boss_gatewatcher_iron_hand"; newscript->GetAI = GetAI_boss_gatewatcher_iron_hand; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp index 866f641922c..d077f5b8c0c 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp @@ -277,10 +277,10 @@ void AddSC_boss_nethermancer_sepethrea() newscript = new Script; newscript->Name="boss_nethermancer_sepethrea"; newscript->GetAI = GetAI_boss_nethermancer_sepethrea; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_ragin_flames"; newscript->GetAI = GetAI_mob_ragin_flames; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp index 06c57082357..842da61d9bf 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp @@ -1,306 +1,306 @@ -/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-/* ScriptData
-SDName: Boss Pathaleon the Calculator
-SD%Complete: 50
-SDComment: Event missing. Script for himself 99% blizzlike.
-SDCategory: Tempest Keep, The Mechanar
-EndScriptData */
-
-#include "precompiled.h"
-
-// Spells to be casted
-#define SPELL_SUMMON_NETHER_WRAITH 35287 //Spell not working. Summon is working but Pets dont attack and wrong HP.
-#define SPELL_MANA_TAP 36021
-#define SPELL_ARCANE_TORRENT 36022
-#define SPELL_DOMINATION 35280
-#define H_SPELL_ARCANE_EXPLOSION 34791 //Spell not right.
-#define SPELL_ENRAGE 36992
-
-// Add Spells
-#define SPELL_DETONATION 35058
-#define SPELL_ARCANE_MISSILES 35034
-
-// On Domination
-#define SAY_SPELL_DOMINATION_1 "I'm looking for a team player... "
-#define SOUND_SPELL_DOMINATION_1 11197
-#define SAY_SPELL_DOMINATION_2 "You work for me now!"
-#define SOUND_SPELL_DOMINATION_2 11198
-
-// On Summon
-#define SAY_SUMMON_1 "Time to supplement my work force."
-#define SOUND_SAY_SUMMON_1 11196
-
-// On Enrage
-#define SAY_ENRAGE_1 "A minor inconvenience."
-#define SOUND_SAY_ENRAGE_1 11199
-
-// On Aggro
-#define SAY_AGGRO_1 "We are on a strict timetable. You will not interfere!"
-#define SOUND_SAY_AGGRO_1 11193
-
-//On Kill Unit
-#define SAY_SLAY_1 "Looks like you lose"
-#define SOUND_SLAY_1 11195
-
-// On Death
-#define SAY_DEATH_1 "The project will... continue."
-#define SOUND_DEATH_1 11200
-
-
-struct TRINITY_DLL_DECL boss_pathaleon_the_calculatorAI : public ScriptedAI
-{
- boss_pathaleon_the_calculatorAI(Creature *c) : ScriptedAI(c)
- {
- HeroicMode = m_creature->GetMap()->IsHeroic();
- Reset();
- }
-
- uint32 Summon_Timer;
- uint32 ManaTap_Timer;
- uint32 ArcaneTorrent_Timer;
- uint32 Domination_Timer;
- uint32 ArcaneExplosion_Timer;
- bool HeroicMode;
- bool Enraged;
-
- uint32 Counter;
- Creature* Wraith;
-
- void Reset()
- {
- Summon_Timer = 30000;
- ManaTap_Timer = 12000 + rand()%8000;
- ArcaneTorrent_Timer = 16000 + rand()%9000;
- Domination_Timer = 25000 + rand()%15000;
- ArcaneExplosion_Timer = 8000 + rand()%5000;
-
- Enraged = false;
-
- Counter = 0;
-
- }
- void Aggro(Unit *who)
- {
- DoYell(SAY_AGGRO_1,LANG_UNIVERSAL,NULL);
- DoPlaySoundToSet(m_creature, SOUND_SAY_AGGRO_1);
- }
-
- // On Killed Unit
- void KilledUnit(Unit* victim)
- {
-
- DoYell(SAY_SLAY_1, LANG_UNIVERSAL, NULL);
- DoPlaySoundToSet(m_creature,SOUND_SLAY_1);
-
- }
-
- // On Death
- void JustDied(Unit* Killer)
- {
- DoYell(SAY_DEATH_1,LANG_UNIVERSAL,NULL);
- DoPlaySoundToSet(m_creature, SOUND_DEATH_1);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!m_creature->SelectHostilTarget() || !m_creature->getVictim() )
- return;
-
- if(Summon_Timer < diff)
- {
-
- Unit* target = NULL;
-
- for(int i = 0; i < 3;i++)
- {
- target = SelectUnit(SELECT_TARGET_RANDOM,0);
- Wraith = m_creature->SummonCreature(21062,m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(),0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- if (target)
- Wraith->AI()->AttackStart(target);
- }
-
- DoYell(SAY_SUMMON_1,LANG_UNIVERSAL,NULL);
- DoPlaySoundToSet(m_creature, SOUND_SAY_SUMMON_1);
-
- Summon_Timer = 30000 + rand()%15000;
- }else Summon_Timer -= diff;
-
- if(ManaTap_Timer < diff)
- {
- //time to cast
- DoCast(m_creature->getVictim(),SPELL_MANA_TAP);
-
- //Cast again on time
- ManaTap_Timer = 14000 + rand()%8000;
- }else ManaTap_Timer -= diff;
-
- if(ArcaneTorrent_Timer < diff)
- {
- //time to cast
- DoCast(m_creature->getVictim(),SPELL_ARCANE_TORRENT);
-
- //Cast again on time
- ArcaneTorrent_Timer = 12000 + rand()%6000;
- }else ArcaneTorrent_Timer -= diff;
-
- if(Domination_Timer < diff)
- {
- //time to cast
- switch(rand()%2)
- {
- case 0:
- DoYell(SAY_SPELL_DOMINATION_1, LANG_UNIVERSAL, NULL);
- DoPlaySoundToSet(m_creature, SOUND_SPELL_DOMINATION_1);
- break;
-
- case 1:
- DoYell(SAY_SPELL_DOMINATION_2, LANG_UNIVERSAL, NULL);
- DoPlaySoundToSet(m_creature, SOUND_SPELL_DOMINATION_2);
- break;
- }
-
- Unit* target = NULL;
- target = SelectUnit(SELECT_TARGET_RANDOM,1);
- if (target) DoCast(target,SPELL_DOMINATION);
-
- //Cast again on time
- Domination_Timer = 25000 + rand()%5000;
- }else Domination_Timer -= diff;
-
- //Only casting if Heroic Mode is used
- if (HeroicMode)
- {
- if(ArcaneExplosion_Timer < diff)
- {
- //time to cast
- DoCast(m_creature->getVictim(),H_SPELL_ARCANE_EXPLOSION);
-
- //Cast again on time
- ArcaneExplosion_Timer = 10000 + rand()%4000;
- }else ArcaneExplosion_Timer -= diff;
- }
-
- if (!Enraged && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 21)
- {
-
- DoCast(m_creature, SPELL_ENRAGE);
- DoYell(SAY_ENRAGE_1, LANG_UNIVERSAL, NULL);
- DoPlaySoundToSet(m_creature,SOUND_SAY_ENRAGE_1);
- Enraged = true;
-
- }
-
- DoMeleeAttackIfReady();
- }
-};
-CreatureAI* GetAI_boss_pathaleon_the_calculator(Creature *_Creature)
-{
- return new boss_pathaleon_the_calculatorAI (_Creature);
-}
-
-struct TRINITY_DLL_DECL mob_nether_wraithAI : public ScriptedAI
-{
- mob_nether_wraithAI(Creature *c) : ScriptedAI(c) {Reset();}
-
- ScriptedInstance *pInstance;
-
- uint32 ArcaneMissiles_Timer;
- uint32 Detonation_Timer;
- uint32 Die_Timer;
- bool Detonation;
-
- void Reset()
- {
- ArcaneMissiles_Timer = 1000 + rand()%3000;
- Detonation_Timer = 20000;
- Die_Timer = 2200;
- Detonation = false;
-
- }
-
- void Aggro(Unit* who)
- {
- }
-
- void UpdateAI(const uint32 diff)
- {
- Unit* target = NULL;
-
- if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
- return;
-
- if(ArcaneMissiles_Timer < diff)
- {
-
- Unit* target = NULL;
- target = SelectUnit(SELECT_TARGET_RANDOM,1);
- if (!target)
- target = m_creature->getVictim();
- if (target)
- {
- DoCast(target,SPELL_ARCANE_MISSILES);
- }
-
- ArcaneMissiles_Timer = 5000 + rand()%5000;
- }else ArcaneMissiles_Timer -=diff;
-
- if (!Detonation)
- {
- if(Detonation_Timer < diff)
- {
- //time to cast
- DoCast(m_creature,SPELL_DETONATION);
- Detonation = true;
-
- }else Detonation_Timer -= diff;
-
- }
-
- if (Detonation)
- {
- if (Die_Timer < diff)
- {
- m_creature->setDeathState(JUST_DIED);
- m_creature->RemoveCorpse();
- }else Die_Timer -= diff;
- }
-
-
- DoMeleeAttackIfReady();
- }
-
-};
-CreatureAI* GetAI_mob_nether_wraith(Creature *_Creature)
-{
- return new mob_nether_wraithAI (_Creature);
-}
-
-void AddSC_boss_pathaleon_the_calculator()
-{
- Script *newscript;
- newscript = new Script;
- newscript->Name="boss_pathaleon_the_calculator";
- newscript->GetAI = GetAI_boss_pathaleon_the_calculator;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="mob_nether_wraith";
- newscript->GetAI = GetAI_mob_nether_wraith;
- m_scripts[nrscripts++] = newscript;
-}
+/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +/* ScriptData +SDName: Boss Pathaleon the Calculator +SD%Complete: 50 +SDComment: Event missing. Script for himself 99% blizzlike. +SDCategory: Tempest Keep, The Mechanar +EndScriptData */ + +#include "precompiled.h" + +// Spells to be casted +#define SPELL_SUMMON_NETHER_WRAITH 35287 //Spell not working. Summon is working but Pets dont attack and wrong HP. +#define SPELL_MANA_TAP 36021 +#define SPELL_ARCANE_TORRENT 36022 +#define SPELL_DOMINATION 35280 +#define H_SPELL_ARCANE_EXPLOSION 34791 //Spell not right. +#define SPELL_ENRAGE 36992 + +// Add Spells +#define SPELL_DETONATION 35058 +#define SPELL_ARCANE_MISSILES 35034 + +// On Domination +#define SAY_SPELL_DOMINATION_1 "I'm looking for a team player... " +#define SOUND_SPELL_DOMINATION_1 11197 +#define SAY_SPELL_DOMINATION_2 "You work for me now!" +#define SOUND_SPELL_DOMINATION_2 11198 + +// On Summon +#define SAY_SUMMON_1 "Time to supplement my work force." +#define SOUND_SAY_SUMMON_1 11196 + +// On Enrage +#define SAY_ENRAGE_1 "A minor inconvenience." +#define SOUND_SAY_ENRAGE_1 11199 + +// On Aggro +#define SAY_AGGRO_1 "We are on a strict timetable. You will not interfere!" +#define SOUND_SAY_AGGRO_1 11193 + +//On Kill Unit +#define SAY_SLAY_1 "Looks like you lose" +#define SOUND_SLAY_1 11195 + +// On Death +#define SAY_DEATH_1 "The project will... continue." +#define SOUND_DEATH_1 11200 + + +struct TRINITY_DLL_DECL boss_pathaleon_the_calculatorAI : public ScriptedAI +{ + boss_pathaleon_the_calculatorAI(Creature *c) : ScriptedAI(c) + { + HeroicMode = m_creature->GetMap()->IsHeroic(); + Reset(); + } + + uint32 Summon_Timer; + uint32 ManaTap_Timer; + uint32 ArcaneTorrent_Timer; + uint32 Domination_Timer; + uint32 ArcaneExplosion_Timer; + bool HeroicMode; + bool Enraged; + + uint32 Counter; + Creature* Wraith; + + void Reset() + { + Summon_Timer = 30000; + ManaTap_Timer = 12000 + rand()%8000; + ArcaneTorrent_Timer = 16000 + rand()%9000; + Domination_Timer = 25000 + rand()%15000; + ArcaneExplosion_Timer = 8000 + rand()%5000; + + Enraged = false; + + Counter = 0; + + } + void Aggro(Unit *who) + { + DoYell(SAY_AGGRO_1,LANG_UNIVERSAL,NULL); + DoPlaySoundToSet(m_creature, SOUND_SAY_AGGRO_1); + } + + // On Killed Unit + void KilledUnit(Unit* victim) + { + + DoYell(SAY_SLAY_1, LANG_UNIVERSAL, NULL); + DoPlaySoundToSet(m_creature,SOUND_SLAY_1); + + } + + // On Death + void JustDied(Unit* Killer) + { + DoYell(SAY_DEATH_1,LANG_UNIVERSAL,NULL); + DoPlaySoundToSet(m_creature, SOUND_DEATH_1); + } + + void UpdateAI(const uint32 diff) + { + //Return since we have no target + if (!m_creature->SelectHostilTarget() || !m_creature->getVictim() ) + return; + + if(Summon_Timer < diff) + { + + Unit* target = NULL; + + for(int i = 0; i < 3;i++) + { + target = SelectUnit(SELECT_TARGET_RANDOM,0); + Wraith = m_creature->SummonCreature(21062,m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(),0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); + if (target) + Wraith->AI()->AttackStart(target); + } + + DoYell(SAY_SUMMON_1,LANG_UNIVERSAL,NULL); + DoPlaySoundToSet(m_creature, SOUND_SAY_SUMMON_1); + + Summon_Timer = 30000 + rand()%15000; + }else Summon_Timer -= diff; + + if(ManaTap_Timer < diff) + { + //time to cast + DoCast(m_creature->getVictim(),SPELL_MANA_TAP); + + //Cast again on time + ManaTap_Timer = 14000 + rand()%8000; + }else ManaTap_Timer -= diff; + + if(ArcaneTorrent_Timer < diff) + { + //time to cast + DoCast(m_creature->getVictim(),SPELL_ARCANE_TORRENT); + + //Cast again on time + ArcaneTorrent_Timer = 12000 + rand()%6000; + }else ArcaneTorrent_Timer -= diff; + + if(Domination_Timer < diff) + { + //time to cast + switch(rand()%2) + { + case 0: + DoYell(SAY_SPELL_DOMINATION_1, LANG_UNIVERSAL, NULL); + DoPlaySoundToSet(m_creature, SOUND_SPELL_DOMINATION_1); + break; + + case 1: + DoYell(SAY_SPELL_DOMINATION_2, LANG_UNIVERSAL, NULL); + DoPlaySoundToSet(m_creature, SOUND_SPELL_DOMINATION_2); + break; + } + + Unit* target = NULL; + target = SelectUnit(SELECT_TARGET_RANDOM,1); + if (target) DoCast(target,SPELL_DOMINATION); + + //Cast again on time + Domination_Timer = 25000 + rand()%5000; + }else Domination_Timer -= diff; + + //Only casting if Heroic Mode is used + if (HeroicMode) + { + if(ArcaneExplosion_Timer < diff) + { + //time to cast + DoCast(m_creature->getVictim(),H_SPELL_ARCANE_EXPLOSION); + + //Cast again on time + ArcaneExplosion_Timer = 10000 + rand()%4000; + }else ArcaneExplosion_Timer -= diff; + } + + if (!Enraged && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 21) + { + + DoCast(m_creature, SPELL_ENRAGE); + DoYell(SAY_ENRAGE_1, LANG_UNIVERSAL, NULL); + DoPlaySoundToSet(m_creature,SOUND_SAY_ENRAGE_1); + Enraged = true; + + } + + DoMeleeAttackIfReady(); + } +}; +CreatureAI* GetAI_boss_pathaleon_the_calculator(Creature *_Creature) +{ + return new boss_pathaleon_the_calculatorAI (_Creature); +} + +struct TRINITY_DLL_DECL mob_nether_wraithAI : public ScriptedAI +{ + mob_nether_wraithAI(Creature *c) : ScriptedAI(c) {Reset();} + + ScriptedInstance *pInstance; + + uint32 ArcaneMissiles_Timer; + uint32 Detonation_Timer; + uint32 Die_Timer; + bool Detonation; + + void Reset() + { + ArcaneMissiles_Timer = 1000 + rand()%3000; + Detonation_Timer = 20000; + Die_Timer = 2200; + Detonation = false; + + } + + void Aggro(Unit* who) + { + } + + void UpdateAI(const uint32 diff) + { + Unit* target = NULL; + + if (!m_creature->SelectHostilTarget() || !m_creature->getVictim()) + return; + + if(ArcaneMissiles_Timer < diff) + { + + Unit* target = NULL; + target = SelectUnit(SELECT_TARGET_RANDOM,1); + if (!target) + target = m_creature->getVictim(); + if (target) + { + DoCast(target,SPELL_ARCANE_MISSILES); + } + + ArcaneMissiles_Timer = 5000 + rand()%5000; + }else ArcaneMissiles_Timer -=diff; + + if (!Detonation) + { + if(Detonation_Timer < diff) + { + //time to cast + DoCast(m_creature,SPELL_DETONATION); + Detonation = true; + + }else Detonation_Timer -= diff; + + } + + if (Detonation) + { + if (Die_Timer < diff) + { + m_creature->setDeathState(JUST_DIED); + m_creature->RemoveCorpse(); + }else Die_Timer -= diff; + } + + + DoMeleeAttackIfReady(); + } + +}; +CreatureAI* GetAI_mob_nether_wraith(Creature *_Creature) +{ + return new mob_nether_wraithAI (_Creature); +} + +void AddSC_boss_pathaleon_the_calculator() +{ + Script *newscript; + newscript = new Script; + newscript->Name="boss_pathaleon_the_calculator"; + newscript->GetAI = GetAI_boss_pathaleon_the_calculator; + newscript->RegisterSelf(); + + newscript = new Script; + newscript->Name="mob_nether_wraith"; + newscript->GetAI = GetAI_mob_nether_wraith; + newscript->RegisterSelf(); +} diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp index c58ab523b90..d25b9d05470 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp @@ -1,90 +1,90 @@ -/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/* ScriptData
-SDName: Instance_Mechanar
-SD%Complete: 100
-SDComment:
-SDCategory: Mechanar
-EndScriptData */
-
-#include "precompiled.h"
-#include "def_mechanar.h"
-
-struct TRINITY_DLL_DECL instance_mechanar : public ScriptedInstance
-{
- instance_mechanar(Map *Map) : ScriptedInstance(Map) {Initialize();};
-
-
- bool IsBossDied[1];
-
- void OnCreatureCreate (Creature *creature, uint32 creature_entry)
- {
- }
-
- void Initialize()
- {
- IsBossDied[0] = false;
- }
-
- bool IsEncounterInProgress() const
- {
- //not active
- return false;
- }
-
- uint32 GetData(uint32 type)
- {
- switch(type)
- {
- case DATA_SEPETHREAISDEAD:
- if(IsBossDied[0])
- return 1;
- break;
- }
-
- return 0;
- }
-
- uint64 GetData64 (uint32 identifier)
- {
- return 0;
- }
-
- void SetData(uint32 type, uint32 data)
- {
- switch(type)
- {
- case DATA_SEPETHREA_DEATH:
- IsBossDied[0] = true;
- break;
- }
- }
-};
-
-InstanceData* GetInstanceData_instance_mechanar(Map* map)
-{
- return new instance_mechanar(map);
-}
-
-void AddSC_instance_mechanar()
-{
- Script *newscript;
- newscript = new Script;
- newscript->Name = "instance_mechanar";
- newscript->GetInstanceData = GetInstanceData_instance_mechanar;
- m_scripts[nrscripts++] = newscript;
-}
+/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* ScriptData +SDName: Instance_Mechanar +SD%Complete: 100 +SDComment: +SDCategory: Mechanar +EndScriptData */ + +#include "precompiled.h" +#include "def_mechanar.h" + +struct TRINITY_DLL_DECL instance_mechanar : public ScriptedInstance +{ + instance_mechanar(Map *Map) : ScriptedInstance(Map) {Initialize();}; + + + bool IsBossDied[1]; + + void OnCreatureCreate (Creature *creature, uint32 creature_entry) + { + } + + void Initialize() + { + IsBossDied[0] = false; + } + + bool IsEncounterInProgress() const + { + //not active + return false; + } + + uint32 GetData(uint32 type) + { + switch(type) + { + case DATA_SEPETHREAISDEAD: + if(IsBossDied[0]) + return 1; + break; + } + + return 0; + } + + uint64 GetData64 (uint32 identifier) + { + return 0; + } + + void SetData(uint32 type, uint32 data) + { + switch(type) + { + case DATA_SEPETHREA_DEATH: + IsBossDied[0] = true; + break; + } + } +}; + +InstanceData* GetInstanceData_instance_mechanar(Map* map) +{ + return new instance_mechanar(map); +} + +void AddSC_instance_mechanar() +{ + Script *newscript; + newscript = new Script; + newscript->Name = "instance_mechanar"; + newscript->GetInstanceData = GetInstanceData_instance_mechanar; + newscript->RegisterSelf(); +} diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp index 1dba25cd132..8f2f025f7f1 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp @@ -334,15 +334,15 @@ void AddSC_bug_trio() newscript = new Script; newscript->Name="boss_kri"; newscript->GetAI = GetAI_boss_kri; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_vem"; newscript->GetAI = GetAI_boss_vem; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_yauj"; newscript->GetAI = GetAI_boss_yauj; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp index 0116947e390..b789f68e9aa 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp @@ -577,20 +577,23 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI Map *map = m_creature->GetMap(); if(!map->IsDungeon()) return; - InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); - for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) + Map::PlayerList const &PlayerList = map->GetPlayers(); + for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { - //Play random sound to the zone - switch (rand()%8) + if (Player* i_pl = i->getSource()) { - case 0: (*i)->SendPlaySound(RND_WISPER_1, true); break; - case 1: (*i)->SendPlaySound(RND_WISPER_2, true); break; - case 2: (*i)->SendPlaySound(RND_WISPER_3, true); break; - case 3: (*i)->SendPlaySound(RND_WISPER_4, true); break; - case 4: (*i)->SendPlaySound(RND_WISPER_5, true); break; - case 5: (*i)->SendPlaySound(RND_WISPER_6, true); break; - case 6: (*i)->SendPlaySound(RND_WISPER_7, true); break; - case 7: (*i)->SendPlaySound(RND_WISPER_8, true); break; + //Play random sound to the zone + switch (rand()%8) + { + case 0: i_pl->SendPlaySound(RND_WISPER_1, true); break; + case 1: i_pl->SendPlaySound(RND_WISPER_2, true); break; + case 2: i_pl->SendPlaySound(RND_WISPER_3, true); break; + case 3: i_pl->SendPlaySound(RND_WISPER_4, true); break; + case 4: i_pl->SendPlaySound(RND_WISPER_5, true); break; + case 5: i_pl->SendPlaySound(RND_WISPER_6, true); break; + case 6: i_pl->SendPlaySound(RND_WISPER_7, true); break; + case 7: i_pl->SendPlaySound(RND_WISPER_8, true); break; + } } } @@ -1326,35 +1329,35 @@ void AddSC_boss_cthun() newscript = new Script; newscript->Name="boss_eye_of_cthun"; newscript->GetAI = GetAI_eye_of_cthun; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_cthun"; newscript->GetAI = GetAI_cthun; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_eye_tentacle"; newscript->GetAI = GetAI_eye_tentacle; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_claw_tentacle"; newscript->GetAI = GetAI_claw_tentacle; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_giant_claw_tentacle"; newscript->GetAI = GetAI_giant_claw_tentacle; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_giant_eye_tentacle"; newscript->GetAI = GetAI_giant_eye_tentacle; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_giant_flesh_tentacle"; newscript->GetAI = GetAI_flesh_tentacle; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp index 331e43d83ef..babd0ebf7c2 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp @@ -186,5 +186,5 @@ void AddSC_boss_fankriss() newscript = new Script; newscript->Name="boss_fankriss"; newscript->GetAI = GetAI_boss_fankriss; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp index 7fb10528dff..51e030fa49d 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp @@ -139,5 +139,5 @@ void AddSC_boss_huhuran() newscript = new Script; newscript->Name="boss_huhuran"; newscript->GetAI = GetAI_boss_huhuran; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp index df7efb8f123..1e0e8fbca6d 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp @@ -136,5 +136,5 @@ void AddSC_boss_ouro() newscript = new Script; newscript->Name="boss_ouro"; newscript->GetAI = GetAI_boss_ouro; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp index 3315e49732c..c9a732493f7 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp @@ -259,10 +259,10 @@ void AddSC_boss_sartura() newscript = new Script; newscript->Name="boss_sartura"; newscript->GetAI = GetAI_boss_sartura; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_sartura_royal_guard"; newscript->GetAI = GetAI_mob_sartura_royal_guard; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp index 9d383ef0d61..9194354ddc0 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp @@ -310,5 +310,5 @@ void AddSC_boss_skeram() newscript = new Script; newscript->Name="boss_skeram"; newscript->GetAI = GetAI_boss_skeram; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp index 2ddb8be73c7..93525ad7246 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp @@ -689,10 +689,10 @@ void AddSC_boss_twinemperors() newscript = new Script; newscript->Name="boss_veknilash"; newscript->GetAI = GetAI_boss_veknilash; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_veklor"; newscript->GetAI = GetAI_boss_veklor; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp index f502b2aa23d..84713b190cf 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp @@ -161,5 +161,5 @@ void AddSC_instance_temple_of_ahnqiraj() newscript = new Script; newscript->Name = "instance_temple_of_ahnqiraj"; newscript->GetInstanceData = GetInstanceData_instance_temple_of_ahnqiraj; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp index 1c009721428..f5a55d711b7 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp @@ -309,7 +309,7 @@ void AddSC_mob_anubisath_sentinel() newscript = new Script; newscript->Name="mob_anubisath_sentinel"; newscript->GetAI = GetAI_mob_anubisath_sentinelAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } SentinelAbilityAura::~SentinelAbilityAura() {} diff --git a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp index d38b7186172..d84c3c58133 100644 --- a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp +++ b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp @@ -368,32 +368,32 @@ void AddSC_terokkar_forest() newscript = new Script; newscript->Name="mob_unkor_the_ruthless"; newscript->GetAI = GetAI_mob_unkor_the_ruthless; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_infested_root_walker"; newscript->GetAI = GetAI_mob_infested_root_walker; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_rotting_forest_rager"; newscript->GetAI = GetAI_mob_rotting_forest_rager; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_netherweb_victim"; newscript->GetAI = GetAI_mob_netherweb_victim; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_floon"; newscript->pGossipHello = &GossipHello_npc_floon; newscript->pGossipSelect = &GossipSelect_npc_floon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_skyguard_handler_deesak"; newscript->pGossipHello = &GossipHello_npc_skyguard_handler_deesak; newscript->pGossipSelect = &GossipSelect_npc_skyguard_handler_deesak; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/thunder_bluff/thunder_bluff.cpp b/src/bindings/scripts/scripts/zone/thunder_bluff/thunder_bluff.cpp index ae65bd9d232..4b7dcd5a84a 100644 --- a/src/bindings/scripts/scripts/zone/thunder_bluff/thunder_bluff.cpp +++ b/src/bindings/scripts/scripts/zone/thunder_bluff/thunder_bluff.cpp @@ -132,5 +132,5 @@ void AddSC_thunder_bluff() newscript->GetAI = GetAI_npc_cairne_bloodhoof; newscript->pGossipHello = &GossipHello_npc_cairne_bloodhoof; newscript->pGossipSelect = &GossipSelect_npc_cairne_bloodhoof; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp b/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp index f95bc029752..d037b2b7e14 100644 --- a/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp +++ b/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp @@ -84,5 +84,5 @@ void AddSC_tirisfal_glades() newscript->Name="npc_calvin_montague"; newscript->GetAI = GetAI_npc_calvin_montague; newscript->pQuestAccept = &QuestAccept_npc_calvin_montague; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/uldaman/boss_ironaya.cpp b/src/bindings/scripts/scripts/zone/uldaman/boss_ironaya.cpp index 34f8fda78cf..db4b7c22df3 100644 --- a/src/bindings/scripts/scripts/zone/uldaman/boss_ironaya.cpp +++ b/src/bindings/scripts/scripts/zone/uldaman/boss_ironaya.cpp @@ -103,5 +103,5 @@ void AddSC_boss_ironaya() newscript = new Script; newscript->Name="boss_ironaya"; newscript->GetAI = GetAI_boss_ironaya; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/uldaman/uldaman.cpp b/src/bindings/scripts/scripts/zone/uldaman/uldaman.cpp index 1e1a6eb8462..e8453db9f65 100644 --- a/src/bindings/scripts/scripts/zone/uldaman/uldaman.cpp +++ b/src/bindings/scripts/scripts/zone/uldaman/uldaman.cpp @@ -177,11 +177,11 @@ void AddSC_uldaman() newscript = new Script; newscript->Name="mob_jadespine_basilisk"; newscript->GetAI = GetAI_mob_jadespine_basilisk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_lore_keeper_of_norgannon"; newscript->pGossipHello = &GossipHello_npc_lore_keeper_of_norgannon; newscript->pGossipSelect = &GossipSelect_npc_lore_keeper_of_norgannon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp index b395121c73c..89ded786ce5 100644 --- a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp +++ b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp @@ -245,16 +245,16 @@ void AddSC_undercity() newscript->Name="npc_lady_sylvanas_windrunner"; newscript->GetAI = GetAI_npc_lady_sylvanas_windrunner; newscript->pChooseReward = &ChooseReward_npc_lady_sylvanas_windrunner; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_highborne_lamenter"; newscript->GetAI = GetAI_npc_highborne_lamenter; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_parqual_fintallas"; newscript->pGossipHello = &GossipHello_npc_parqual_fintallas; newscript->pGossipSelect = &GossipSelect_npc_parqual_fintallas; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp b/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp index c3725b0afc9..3f8dee012f4 100644 --- a/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp +++ b/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp @@ -167,10 +167,10 @@ void AddSC_western_plaguelands() newscript->Name="npcs_dithers_and_arbington"; newscript->pGossipHello = &GossipHello_npcs_dithers_and_arbington; newscript->pGossipSelect = &GossipSelect_npcs_dithers_and_arbington; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_the_scourge_cauldron"; newscript->GetAI = GetAI_npc_the_scourge_cauldron; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/westfall/westfall.cpp b/src/bindings/scripts/scripts/zone/westfall/westfall.cpp index 446f71f1c56..40faa01a9f0 100644 --- a/src/bindings/scripts/scripts/zone/westfall/westfall.cpp +++ b/src/bindings/scripts/scripts/zone/westfall/westfall.cpp @@ -1,179 +1,179 @@ -/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/* ScriptData
-SDName: Westfall
-SD%Complete: 90
-SDComment: Quest support: 155
-SDCategory: Westfall
-EndScriptData */
-
-/* ContentData
-npc_defias_traitor
-EndContentData */
-
-#include "precompiled.h"
-#include "../../npc/npc_escortAI.h"
-
-#define SAY_START -1000101
-#define SAY_PROGRESS -1000102
-#define SAY_END -1000103
-#define SAY_AGGRO_1 -1000104
-#define SAY_AGGRO_2 -1000105
-
-#define QUEST_DEFIAS_BROTHERHOOD 155
-
-struct TRINITY_DLL_DECL npc_defias_traitorAI : public npc_escortAI
-{
- npc_defias_traitorAI(Creature *c) : npc_escortAI(c) {Reset();}
-
- bool IsWalking;
-
- void WaypointReached(uint32 i)
- {
- Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
-
- if (!player)
- return;
-
- if (IsWalking && !m_creature->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE))
- m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
-
- switch (i)
- {
- case 35:
- IsWalking = true;
- break;
- case 36:
- DoScriptText(SAY_PROGRESS, m_creature, player);
- break;
- case 44:
- DoScriptText(SAY_END, m_creature, player);
- {
- if (player && player->GetTypeId() == TYPEID_PLAYER)
- ((Player*)player)->GroupEventHappens(QUEST_DEFIAS_BROTHERHOOD,m_creature);
- }
- break;
- }
- }
- void Aggro(Unit* who)
- {
- switch(rand()%2)
- {
- case 0: DoScriptText(SAY_AGGRO_1, m_creature, who); break;
- case 1: DoScriptText(SAY_AGGRO_2, m_creature, who); break;
- }
- }
-
- void Reset()
- {
- if (IsWalking && !m_creature->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE))
- {
- m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
- return;
- }
- IsWalking = false;
- }
-
- void JustDied(Unit* killer)
- {
- if (PlayerGUID)
- {
- if (Unit* player = Unit::GetUnit((*m_creature), PlayerGUID))
- ((Player*)player)->FailQuest(QUEST_DEFIAS_BROTHERHOOD);
- }
- }
-
- void UpdateAI(const uint32 diff)
- {
- npc_escortAI::UpdateAI(diff);
- }
-};
-
-bool QuestAccept_npc_defias_traitor(Player* player, Creature* creature, Quest const* quest)
-{
- if (quest->GetQuestId() == QUEST_DEFIAS_BROTHERHOOD)
- {
- ((npc_escortAI*)(creature->AI()))->Start(true, true, true, player->GetGUID());
- DoScriptText(SAY_START, creature, player);
- }
-
- return true;
-}
-
-CreatureAI* GetAI_npc_defias_traitor(Creature *_Creature)
-{
- npc_defias_traitorAI* thisAI = new npc_defias_traitorAI(_Creature);
-
- thisAI->AddWaypoint(0, -10508.40, 1068.00, 55.21);
- thisAI->AddWaypoint(1, -10518.30, 1074.84, 53.96);
- thisAI->AddWaypoint(2, -10534.82, 1081.92, 49.88);
- thisAI->AddWaypoint(3, -10546.51, 1084.88, 50.13);
- thisAI->AddWaypoint(4, -10555.29, 1084.45, 45.75);
- thisAI->AddWaypoint(5, -10566.57, 1083.53, 42.10);
- thisAI->AddWaypoint(6, -10575.83, 1082.34, 39.46);
- thisAI->AddWaypoint(7, -10585.67, 1081.08, 37.77);
- thisAI->AddWaypoint(8, -10600.08, 1078.19, 36.23);
- thisAI->AddWaypoint(9, -10608.69, 1076.08, 35.88);
- thisAI->AddWaypoint(10, -10621.26, 1073.00, 35.40);
- thisAI->AddWaypoint(11, -10638.12, 1060.18, 33.61);
- thisAI->AddWaypoint(12, -10655.87, 1038.99, 33.48);
- thisAI->AddWaypoint(13, -10664.68, 1030.54, 32.70);
- thisAI->AddWaypoint(14, -10708.68, 1033.86, 33.32);
- thisAI->AddWaypoint(15, -10754.43, 1017.93, 32.79);
- thisAI->AddWaypoint(16, -10802.26, 1018.01, 32.16);
- thisAI->AddWaypoint(17, -10832.60, 1009.04, 32.71);
- thisAI->AddWaypoint(18, -10866.56, 1006.51, 31.71); // Fix waypoints from roughly this point, test first to get proper one
- thisAI->AddWaypoint(19, -10879.98, 1005.10, 32.84);
- thisAI->AddWaypoint(20, -10892.45, 1001.32, 34.46);
- thisAI->AddWaypoint(21, -10906.14, 997.11, 36.15);
- thisAI->AddWaypoint(22, -10922.26, 1002.23, 35.74);
- thisAI->AddWaypoint(23, -10936.32, 1023.38, 36.52);
- thisAI->AddWaypoint(24, -10933.35, 1052.61, 35.85);
- thisAI->AddWaypoint(25, -10940.25, 1077.66, 36.49);
- thisAI->AddWaypoint(26, -10957.09, 1099.33, 36.83);
- thisAI->AddWaypoint(27, -10956.53, 1119.90, 36.73);
- thisAI->AddWaypoint(28, -10939.30, 1150.75, 37.42);
- thisAI->AddWaypoint(29, -10915.14, 1202.09, 36.55);
- thisAI->AddWaypoint(30, -10892.59, 1257.03, 33.37);
- thisAI->AddWaypoint(31, -10891.93, 1306.66, 35.45);
- thisAI->AddWaypoint(32, -10896.17, 1327.86, 37.77);
- thisAI->AddWaypoint(33, -10906.03, 1368.05, 40.91);
- thisAI->AddWaypoint(34, -10910.18, 1389.33, 42.62);
- thisAI->AddWaypoint(35, -10915.42, 1417.72, 42.93);
- thisAI->AddWaypoint(36, -10926.37, 1421.18, 43.04); // walk here and say
- thisAI->AddWaypoint(37, -10952.31, 1421.74, 43.40);
- thisAI->AddWaypoint(38, -10980.04, 1411.38, 42.79);
- thisAI->AddWaypoint(39, -11006.06, 1420.47, 43.26);
- thisAI->AddWaypoint(40, -11021.98, 1450.59, 43.09);
- thisAI->AddWaypoint(41, -11025.36, 1491.59, 43.15);
- thisAI->AddWaypoint(42, -11036.09, 1508.32, 43.28);
- thisAI->AddWaypoint(43, -11060.68, 1526.72, 43.19);
- thisAI->AddWaypoint(44, -11072.75, 1527.77, 43.20, 5000);// say and quest credit
-
- return (CreatureAI*)thisAI;
-}
-
-void AddSC_westfall()
-{
- Script *newscript;
-
- newscript = new Script;
- newscript->Name="npc_defias_traitor";
- newscript->GetAI = &GetAI_npc_defias_traitor;
- newscript->pQuestAccept = &QuestAccept_npc_defias_traitor;
- m_scripts[nrscripts++] = newscript;
-}
+/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* ScriptData +SDName: Westfall +SD%Complete: 90 +SDComment: Quest support: 155 +SDCategory: Westfall +EndScriptData */ + +/* ContentData +npc_defias_traitor +EndContentData */ + +#include "precompiled.h" +#include "../../npc/npc_escortAI.h" + +#define SAY_START -1000101 +#define SAY_PROGRESS -1000102 +#define SAY_END -1000103 +#define SAY_AGGRO_1 -1000104 +#define SAY_AGGRO_2 -1000105 + +#define QUEST_DEFIAS_BROTHERHOOD 155 + +struct TRINITY_DLL_DECL npc_defias_traitorAI : public npc_escortAI +{ + npc_defias_traitorAI(Creature *c) : npc_escortAI(c) {Reset();} + + bool IsWalking; + + void WaypointReached(uint32 i) + { + Unit* player = Unit::GetUnit((*m_creature), PlayerGUID); + + if (!player) + return; + + if (IsWalking && !m_creature->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE)) + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); + + switch (i) + { + case 35: + IsWalking = true; + break; + case 36: + DoScriptText(SAY_PROGRESS, m_creature, player); + break; + case 44: + DoScriptText(SAY_END, m_creature, player); + { + if (player && player->GetTypeId() == TYPEID_PLAYER) + ((Player*)player)->GroupEventHappens(QUEST_DEFIAS_BROTHERHOOD,m_creature); + } + break; + } + } + void Aggro(Unit* who) + { + switch(rand()%2) + { + case 0: DoScriptText(SAY_AGGRO_1, m_creature, who); break; + case 1: DoScriptText(SAY_AGGRO_2, m_creature, who); break; + } + } + + void Reset() + { + if (IsWalking && !m_creature->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE)) + { + m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); + return; + } + IsWalking = false; + } + + void JustDied(Unit* killer) + { + if (PlayerGUID) + { + if (Unit* player = Unit::GetUnit((*m_creature), PlayerGUID)) + ((Player*)player)->FailQuest(QUEST_DEFIAS_BROTHERHOOD); + } + } + + void UpdateAI(const uint32 diff) + { + npc_escortAI::UpdateAI(diff); + } +}; + +bool QuestAccept_npc_defias_traitor(Player* player, Creature* creature, Quest const* quest) +{ + if (quest->GetQuestId() == QUEST_DEFIAS_BROTHERHOOD) + { + ((npc_escortAI*)(creature->AI()))->Start(true, true, true, player->GetGUID()); + DoScriptText(SAY_START, creature, player); + } + + return true; +} + +CreatureAI* GetAI_npc_defias_traitor(Creature *_Creature) +{ + npc_defias_traitorAI* thisAI = new npc_defias_traitorAI(_Creature); + + thisAI->AddWaypoint(0, -10508.40, 1068.00, 55.21); + thisAI->AddWaypoint(1, -10518.30, 1074.84, 53.96); + thisAI->AddWaypoint(2, -10534.82, 1081.92, 49.88); + thisAI->AddWaypoint(3, -10546.51, 1084.88, 50.13); + thisAI->AddWaypoint(4, -10555.29, 1084.45, 45.75); + thisAI->AddWaypoint(5, -10566.57, 1083.53, 42.10); + thisAI->AddWaypoint(6, -10575.83, 1082.34, 39.46); + thisAI->AddWaypoint(7, -10585.67, 1081.08, 37.77); + thisAI->AddWaypoint(8, -10600.08, 1078.19, 36.23); + thisAI->AddWaypoint(9, -10608.69, 1076.08, 35.88); + thisAI->AddWaypoint(10, -10621.26, 1073.00, 35.40); + thisAI->AddWaypoint(11, -10638.12, 1060.18, 33.61); + thisAI->AddWaypoint(12, -10655.87, 1038.99, 33.48); + thisAI->AddWaypoint(13, -10664.68, 1030.54, 32.70); + thisAI->AddWaypoint(14, -10708.68, 1033.86, 33.32); + thisAI->AddWaypoint(15, -10754.43, 1017.93, 32.79); + thisAI->AddWaypoint(16, -10802.26, 1018.01, 32.16); + thisAI->AddWaypoint(17, -10832.60, 1009.04, 32.71); + thisAI->AddWaypoint(18, -10866.56, 1006.51, 31.71); // Fix waypoints from roughly this point, test first to get proper one + thisAI->AddWaypoint(19, -10879.98, 1005.10, 32.84); + thisAI->AddWaypoint(20, -10892.45, 1001.32, 34.46); + thisAI->AddWaypoint(21, -10906.14, 997.11, 36.15); + thisAI->AddWaypoint(22, -10922.26, 1002.23, 35.74); + thisAI->AddWaypoint(23, -10936.32, 1023.38, 36.52); + thisAI->AddWaypoint(24, -10933.35, 1052.61, 35.85); + thisAI->AddWaypoint(25, -10940.25, 1077.66, 36.49); + thisAI->AddWaypoint(26, -10957.09, 1099.33, 36.83); + thisAI->AddWaypoint(27, -10956.53, 1119.90, 36.73); + thisAI->AddWaypoint(28, -10939.30, 1150.75, 37.42); + thisAI->AddWaypoint(29, -10915.14, 1202.09, 36.55); + thisAI->AddWaypoint(30, -10892.59, 1257.03, 33.37); + thisAI->AddWaypoint(31, -10891.93, 1306.66, 35.45); + thisAI->AddWaypoint(32, -10896.17, 1327.86, 37.77); + thisAI->AddWaypoint(33, -10906.03, 1368.05, 40.91); + thisAI->AddWaypoint(34, -10910.18, 1389.33, 42.62); + thisAI->AddWaypoint(35, -10915.42, 1417.72, 42.93); + thisAI->AddWaypoint(36, -10926.37, 1421.18, 43.04); // walk here and say + thisAI->AddWaypoint(37, -10952.31, 1421.74, 43.40); + thisAI->AddWaypoint(38, -10980.04, 1411.38, 42.79); + thisAI->AddWaypoint(39, -11006.06, 1420.47, 43.26); + thisAI->AddWaypoint(40, -11021.98, 1450.59, 43.09); + thisAI->AddWaypoint(41, -11025.36, 1491.59, 43.15); + thisAI->AddWaypoint(42, -11036.09, 1508.32, 43.28); + thisAI->AddWaypoint(43, -11060.68, 1526.72, 43.19); + thisAI->AddWaypoint(44, -11072.75, 1527.77, 43.20, 5000);// say and quest credit + + return (CreatureAI*)thisAI; +} + +void AddSC_westfall() +{ + Script *newscript; + + newscript = new Script; + newscript->Name="npc_defias_traitor"; + newscript->GetAI = &GetAI_npc_defias_traitor; + newscript->pQuestAccept = &QuestAccept_npc_defias_traitor; + newscript->RegisterSelf(); +} diff --git a/src/bindings/scripts/scripts/zone/winterspring/winterspring.cpp b/src/bindings/scripts/scripts/zone/winterspring/winterspring.cpp index 7d6f8ea30fb..08ead2eb1de 100644 --- a/src/bindings/scripts/scripts/zone/winterspring/winterspring.cpp +++ b/src/bindings/scripts/scripts/zone/winterspring/winterspring.cpp @@ -141,17 +141,17 @@ void AddSC_winterspring() newscript->Name="npc_lorax"; newscript->pGossipHello = &GossipHello_npc_lorax; newscript->pGossipSelect = &GossipSelect_npc_lorax; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_rivern_frostwind"; newscript->pGossipHello = &GossipHello_npc_rivern_frostwind; newscript->pGossipSelect = &GossipSelect_npc_rivern_frostwind; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_witch_doctor_mauari"; newscript->pGossipHello = &GossipHello_npc_witch_doctor_mauari; newscript->pGossipSelect = &GossipSelect_npc_witch_doctor_mauari; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp b/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp index 621d3e5da49..fdce0029e9d 100644 --- a/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp +++ b/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp @@ -261,23 +261,23 @@ void AddSC_zangarmarsh() newscript->Name="npcs_ashyen_and_keleth"; newscript->pGossipHello = &GossipHello_npcs_ashyen_and_keleth; newscript->pGossipSelect = &GossipSelect_npcs_ashyen_and_keleth; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_cooshcoosh"; newscript->pGossipHello = &GossipHello_npc_cooshcoosh; newscript->pGossipSelect = &GossipSelect_npc_cooshcoosh; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_elder_kuruti"; newscript->pGossipHello = &GossipHello_npc_elder_kuruti; newscript->pGossipSelect = &GossipSelect_npc_elder_kuruti; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_mortog_steamhead"; newscript->pGossipHello = &GossipHello_npc_mortog_steamhead; newscript->pGossipSelect = &GossipSelect_npc_mortog_steamhead; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp index c7327376ae1..4b9eb2afa88 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp @@ -461,10 +461,10 @@ void AddSC_boss_akilzon() newscript = new Script; newscript->Name="boss_akilzon"; newscript->GetAI = GetAI_boss_akilzon; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_akilzon_eagle"; newscript->GetAI = GetAI_mob_soaring_eagle; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp index 8daab23c6b2..19235677831 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp @@ -394,10 +394,10 @@ void AddSC_boss_halazzi() newscript = new Script; newscript->Name="boss_halazzi"; newscript->GetAI = GetAI_boss_halazziAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_halazzi_lynx"; newscript->GetAI = GetAI_boss_spiritlynxAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp index d0a78f3c848..4d36a138765 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp @@ -371,7 +371,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI if(SiphonSoul_Timer < diff) { - Player* target = SelectRandomPlayer(50); + Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 70, true); Unit *trigger = DoSpawnCreature(MOB_TEMP_TRIGGER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 30000); if(!target || !trigger) EnterEvadeMode(); else @@ -435,26 +435,6 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI } m_creature->CastSpell(target, PlayerAbility[PlayerClass][random].spell, false); } - - Player* SelectRandomPlayer(float range = 0.0f, bool alive = true) - { - Map *map = m_creature->GetMap(); - if (!map->IsDungeon()) return NULL; - - InstanceMap::PlayerList PlayerList = ((InstanceMap*)map)->GetPlayers(); - InstanceMap::PlayerList::iterator i; - while(PlayerList.size()) - { - i = PlayerList.begin(); - advance(i, rand()%PlayerList.size()); - if((range == 0.0f || m_creature->IsWithinDistInMap(*i, range)) - && (!alive || (*i)->isAlive())) - return *i; - else - PlayerList.erase(i); - } - return NULL; - } }; #define SPELL_BLOODLUST 43578 @@ -888,45 +868,45 @@ void AddSC_boss_hex_lord_malacrass() newscript = new Script; newscript->Name="boss_hexlord_malacrass"; newscript->GetAI = GetAI_boss_hex_lord_malacrass; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_thurg"; newscript->GetAI = GetAI_boss_thurg; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_gazakroth"; newscript->GetAI = GetAI_boss_gazakroth; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_lord_raadan"; newscript->GetAI = GetAI_boss_lord_raadan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_darkheart"; newscript->GetAI = GetAI_boss_darkheart; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_slither"; newscript->GetAI = GetAI_boss_slither; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_fenstalker"; newscript->GetAI = GetAI_boss_fenstalker; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_koragg"; newscript->GetAI = GetAI_boss_koragg; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="boss_alyson_antille"; newscript->GetAI = GetAI_boss_alyson_antille; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); }
\ No newline at end of file diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp index 0b460404f92..463425a5ef3 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp @@ -397,11 +397,12 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI //Teleport every Player into the middle Map *map = m_creature->GetMap(); if(!map->IsDungeon()) return; - InstanceMap::PlayerList const &PlayerList =((InstanceMap*)map)->GetPlayers(); - for(InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) + Map::PlayerList const &PlayerList = map->GetPlayers(); + for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) { - if((*i)->isAlive()) - DoTeleportPlayer(*i, JanalainPos[0][0]-5+rand()%10, JanalainPos[0][1]-5+rand()%10, JanalainPos[0][2], 0); + if (Player* i_pl = i->getSource()) + if(i_pl->isAlive()) + DoTeleportPlayer(i_pl, JanalainPos[0][0]-5+rand()%10, JanalainPos[0][1]-5+rand()%10, JanalainPos[0][2], 0); } //m_creature->CastSpell(Temp, SPELL_SUMMON_PLAYERS, true); // core bug, spell does not work if too far return; @@ -705,25 +706,25 @@ void AddSC_boss_janalai() newscript = new Script; newscript->Name="boss_janalai"; newscript->GetAI = GetAI_boss_janalaiAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_janalai_firebomb"; newscript->GetAI = GetAI_mob_jandalai_firebombAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_janalai_hatcher"; newscript->GetAI = GetAI_mob_amanishi_hatcherAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_janalai_hatchling"; newscript->GetAI = GetAI_mob_hatchlingAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_janalai_egg"; newscript->GetAI = GetAI_mob_eggAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp index d51e1cdfa00..359bf496043 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp @@ -300,5 +300,5 @@ void AddSC_boss_nalorakk() newscript = new Script; newscript->Name="boss_nalorakk"; newscript->GetAI = GetAI_boss_nalorakk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp index 0b41f591d06..2fa0b83432a 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp @@ -629,15 +629,15 @@ void AddSC_boss_zuljin() newscript = new Script; newscript->Name="boss_zuljin"; newscript->GetAI = GetAI_boss_zuljin; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="do_nothing"; newscript->GetAI = GetAI_do_nothing; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_zuljin_vortex"; newscript->GetAI = GetAI_feather_vortexAI; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp b/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp index 2e9e481236f..c0c68c1a2e4 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp @@ -139,21 +139,28 @@ struct TRINITY_DLL_DECL instance_zulaman : public ScriptedInstance void OpenDoor(uint64 DoorGUID, bool open) { - if(((InstanceMap*)instance)->GetPlayers().size()) - if(Player* first = ((InstanceMap*)instance)->GetPlayers().front()) - if(GameObject *Door = GameObject::GetGameObject(*first, DoorGUID)) - Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1); + if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID)) + Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1); } void SummonHostage(uint8 num) { - if(QuestMinute && ((InstanceMap*)instance)->GetPlayers().size()) - if(Player* first = ((InstanceMap*)instance)->GetPlayers().front()) - if(Unit* Hostage = first->SummonCreature(HostageInfo[num].npc, HostageInfo[num].x, HostageInfo[num].y, HostageInfo[num].z, HostageInfo[num].o, TEMPSUMMON_DEAD_DESPAWN, 0)) - { - Hostage->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - Hostage->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); - } + if(!QuestMinute) + return; + + Map::PlayerList const &PlayerList = instance->GetPlayers(); + if (PlayerList.isEmpty()) + return; + + Map::PlayerList::const_iterator i = PlayerList.begin(); + if(Player* i_pl = i->getSource()) + { + if(Unit* Hostage = i_pl->SummonCreature(HostageInfo[num].npc, HostageInfo[num].x, HostageInfo[num].y, HostageInfo[num].z, HostageInfo[num].o, TEMPSUMMON_DEAD_DESPAWN, 0)) + { + Hostage->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + Hostage->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + } + } } void CheckInstanceStatus() @@ -321,5 +328,5 @@ void AddSC_instance_zulaman() newscript = new Script; newscript->Name = "instance_zulaman"; newscript->GetInstanceData = GetInstanceData_instance_zulaman; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp b/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp index 4927ff4869a..b28b8a9bd06 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp @@ -171,12 +171,12 @@ void AddSC_zulaman() newscript = new Script; newscript->Name="npc_forest_frog"; newscript->GetAI = GetAI_npc_forest_frog; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name = "npc_zulaman_hostage"; newscript->GetAI = GetAI_npc_zulaman_hostage; newscript->pGossipHello = GossipHello_npc_zulaman_hostage; newscript->pGossipSelect = GossipSelect_npc_zulaman_hostage; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp b/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp index 6145f640634..a385314a12d 100644 --- a/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp +++ b/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp @@ -213,12 +213,12 @@ void AddSC_zulfarrak() newscript->GetAI = GetAI_npc_sergeant_bly; newscript->pGossipHello = &GossipHello_npc_sergeant_bly; newscript->pGossipSelect = &GossipSelect_npc_sergeant_bly; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="npc_weegli_blastfuse"; newscript->GetAI = GetAI_npc_weegli_blastfuse; newscript->pGossipHello = &GossipHello_npc_weegli_blastfuse; newscript->pGossipSelect = &GossipSelect_npc_weegli_blastfuse; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp index e32538616f6..0d08f35c6a1 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp @@ -207,5 +207,5 @@ void AddSC_boss_arlokk() newscript = new Script; newscript->Name="boss_arlokk"; newscript->GetAI = GetAI_boss_arlokk; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_gahzranka.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_gahzranka.cpp index 7168d647d49..bcbd8287c46 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_gahzranka.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_gahzranka.cpp @@ -88,5 +88,5 @@ void AddSC_boss_gahzranka() newscript = new Script; newscript->Name="boss_gahzranka"; newscript->GetAI = GetAI_boss_gahzranka; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp index c882aa3ae6f..d9ab005a8d5 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp @@ -88,5 +88,5 @@ void AddSC_boss_grilek() newscript = new Script; newscript->Name="boss_grilek"; newscript->GetAI = GetAI_boss_grilek; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp index cdd4c42128b..93db797e25f 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp @@ -252,5 +252,5 @@ void AddSC_boss_hakkar() newscript = new Script; newscript->Name="boss_hakkar"; newscript->GetAI = GetAI_boss_hakkar; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp index 62140f5303d..166e5bb0467 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp @@ -96,5 +96,5 @@ void AddSC_boss_hazzarah() newscript = new Script; newscript->Name="boss_hazzarah"; newscript->GetAI = GetAI_boss_hazzarah; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp index 86b6068cb3a..ce63d6f1587 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp @@ -288,10 +288,10 @@ void AddSC_boss_jeklik() newscript = new Script; newscript->Name="boss_jeklik"; newscript->GetAI = GetAI_boss_jeklik; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_batrider"; newscript->GetAI = GetAI_mob_batrider; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp index a5752845b92..f133cc6bceb 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp @@ -258,15 +258,15 @@ void AddSC_boss_jindo() newscript = new Script; newscript->Name="boss_jindo"; newscript->GetAI = GetAI_boss_jindo; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_healing_ward"; newscript->GetAI = GetAI_mob_healing_ward; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_shade_of_jindo"; newscript->GetAI = GetAI_mob_shade_of_jindo; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp index 9781fae1f2d..a70f39e2210 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp @@ -302,10 +302,10 @@ void AddSC_boss_mandokir() newscript = new Script; newscript->Name="boss_mandokir"; newscript->GetAI = GetAI_boss_mandokir; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_ohgan"; newscript->GetAI = GetAI_mob_ohgan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp index de9a440ba38..5f276a6c3f8 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp @@ -244,10 +244,10 @@ void AddSC_boss_marli() newscript = new Script; newscript->Name="boss_marli"; newscript->GetAI = GetAI_boss_marli; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_spawn_of_marli"; newscript->GetAI = GetAI_mob_spawn_of_marli; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp index ada5cc6cdbc..7febe276dc1 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp @@ -147,5 +147,5 @@ void AddSC_boss_renataki() newscript = new Script; newscript->Name="boss_renataki"; newscript->GetAI = GetAI_boss_renataki; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp index b1b44f9b94d..0eebbc1dda6 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp @@ -531,15 +531,15 @@ void AddSC_boss_thekal() newscript = new Script; newscript->Name="boss_thekal"; newscript->GetAI = GetAI_boss_thekal; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_zealot_lorkhan"; newscript->GetAI = GetAI_mob_zealot_lorkhan; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); newscript = new Script; newscript->Name="mob_zealot_zath"; newscript->GetAI = GetAI_mob_zealot_zath; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp index 771b61c372f..3d8657d1b67 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp @@ -196,5 +196,5 @@ void AddSC_boss_venoxis() newscript = new Script; newscript->Name="boss_venoxis"; newscript->GetAI = GetAI_boss_venoxis; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_wushoolay.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_wushoolay.cpp index 3ac05c97b04..83e682917ae 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/boss_wushoolay.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_wushoolay.cpp @@ -80,5 +80,5 @@ void AddSC_boss_wushoolay() newscript = new Script; newscript->Name="boss_wushoolay"; newscript->GetAI = GetAI_boss_wushoolay; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } diff --git a/src/bindings/scripts/scripts/zone/zulgurub/instance_zulgurub.cpp b/src/bindings/scripts/scripts/zone/zulgurub/instance_zulgurub.cpp index 501c200fa5c..0e9a14a05b9 100644 --- a/src/bindings/scripts/scripts/zone/zulgurub/instance_zulgurub.cpp +++ b/src/bindings/scripts/scripts/zone/zulgurub/instance_zulgurub.cpp @@ -234,5 +234,5 @@ void AddSC_instance_zulgurub() newscript = new Script; newscript->Name = "instance_zulgurub"; newscript->GetInstanceData = GetInstanceData_instance_zulgurub; - m_scripts[nrscripts++] = newscript; + newscript->RegisterSelf(); } |
