Show
Ignore:
Timestamp:
11/22/08 00:36:22 (17 years ago)
Author:
yumileroy
Message:

Merged commit 269 (5f0e38da128a).

Original author: gvcoman
Date: 2008-11-21 14:34:05-05:00

Location:
trunk/src/bindings/scripts
Files:
306 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/bindings/scripts/ScriptMgr.cpp

    r272 r279  
    1818 
    1919//*** Global data *** 
    20 int nrscripts; 
     20int num_db_scripts; 
     21int num_sc_scripts; 
    2122Script *m_scripts[MAX_SCRIPTS]; 
    2223 
     
    4748// Text Maps 
    4849UNORDERED_MAP<int32, StringTextData> TextMap; 
    49  
    5050 
    5151//*** End Global data *** 
     
    11811181TRINITY_DLL_EXPORT 
    11821182void ScriptsFree() 
    1183 {    
     1183{ 
    11841184    // Free Spell Summary 
    11851185    delete []SpellSummary; 
    11861186 
    11871187    // Free resources before library unload 
    1188     for(int i=0;i<nrscripts;i++) 
     1188    for(int i=0;i<num_db_scripts;i++) 
    11891189        delete m_scripts[i]; 
    11901190 
    1191     nrscripts = 0; 
     1191    num_db_scripts = 0; 
     1192    num_sc_scripts = 0; 
    11921193} 
    11931194 
     
    12401241        LoadDatabase(); 
    12411242 
     1243    num_db_scripts = GetScriptNames().size(); 
     1244 
    12421245    outstring_log("TSCR: Loading C++ scripts"); 
    12431246    barGoLink bar(1); 
     
    12451248    outstring_log(""); 
    12461249 
    1247     nrscripts = 0; 
    12481250    for(int i=0;i<MAX_SCRIPTS;i++) 
    12491251        m_scripts[i]=NULL; 
     
    17761778    // ------------------- 
    17771779 
    1778     outstring_log("TSCR: Loaded %u C++ Scripts", nrscripts); 
    1779     outstring_log(""); 
     1780    outstring_log(">> Loaded %i C++ Scripts (of %i ScriptNames defined in Mangos database)", num_sc_scripts, num_db_scripts); 
    17801781} 
    17811782 
     
    18491850//*** Functions used internally *** 
    18501851 
    1851 TRINITY_DLL_EXPORT 
    1852 char const* ScriptsVersion() 
    1853 { 
    1854         return "Default Trinity scripting library"; 
    1855 } 
    1856  
    1857 Script* GetScriptByName(std::string Name) 
    1858 { 
    1859     if (Name.empty()) 
    1860         return NULL; 
    1861  
    1862     for(int i=0;i<MAX_SCRIPTS;i++) 
    1863     { 
    1864         if (m_scripts[i] && m_scripts[i]->Name == Name) 
    1865             return m_scripts[i]; 
    1866     } 
    1867     return NULL; 
     1852void Script::RegisterSelf() 
     1853{ 
     1854    int id = GetScriptId(Name.c_str()); 
     1855    if (id != 0) 
     1856    { 
     1857        m_scripts[id] = this; 
     1858        ++num_sc_scripts; 
     1859    } else 
     1860        debug_log("SD2: RegisterSelf, but script named %s does not have ScriptName assigned in database.",(this)->Name.c_str()); 
    18681861} 
    18691862 
     
    18721865 
    18731866TRINITY_DLL_EXPORT 
     1867char const* ScriptsVersion() 
     1868{ 
     1869        return "Default Trinity scripting library"; 
     1870} 
     1871TRINITY_DLL_EXPORT 
    18741872bool GossipHello ( Player * player, Creature *_Creature ) 
    18751873{ 
    1876     Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); 
     1874    Script *tmpscript = m_scripts[_Creature->GetScriptId()]; 
    18771875    if (!tmpscript || !tmpscript->pGossipHello) return false; 
    18781876 
     
    18861884    debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action); 
    18871885 
    1888     Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); 
     1886    Script *tmpscript = m_scripts[_Creature->GetScriptId()]; 
    18891887    if (!tmpscript || !tmpscript->pGossipSelect) return false; 
    18901888 
     
    18981896    debug_log("TSCR: Gossip selection with code, sender: %d, action: %d",sender, action); 
    18991897 
    1900     Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); 
     1898    Script *tmpscript = m_scripts[_Creature->GetScriptId()]; 
    19011899    if (!tmpscript || !tmpscript->pGossipSelectWithCode) return false; 
    19021900 
     
    19081906bool QuestAccept( Player *player, Creature *_Creature, Quest const *_Quest ) 
    19091907{ 
    1910     Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); 
     1908    Script *tmpscript = m_scripts[_Creature->GetScriptId()]; 
    19111909    if (!tmpscript || !tmpscript->pQuestAccept) return false; 
    19121910 
     
    19181916bool QuestSelect( Player *player, Creature *_Creature, Quest const *_Quest ) 
    19191917{ 
    1920     Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); 
     1918    Script *tmpscript = m_scripts[_Creature->GetScriptId()]; 
    19211919    if (!tmpscript || !tmpscript->pQuestSelect) return false; 
    19221920 
     
    19281926bool QuestComplete( Player *player, Creature *_Creature, Quest const *_Quest ) 
    19291927{ 
    1930     Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); 
     1928    Script *tmpscript = m_scripts[_Creature->GetScriptId()]; 
    19311929    if (!tmpscript || !tmpscript->pQuestComplete) return false; 
    19321930 
     
    19381936bool ChooseReward( Player *player, Creature *_Creature, Quest const *_Quest, uint32 opt ) 
    19391937{ 
    1940     Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); 
     1938    Script *tmpscript = m_scripts[_Creature->GetScriptId()]; 
    19411939    if (!tmpscript || !tmpscript->pChooseReward) return false; 
    19421940 
     
    19481946uint32 NPCDialogStatus( Player *player, Creature *_Creature ) 
    19491947{ 
    1950     Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); 
     1948    Script *tmpscript = m_scripts[_Creature->GetScriptId()]; 
    19511949    if (!tmpscript || !tmpscript->pNPCDialogStatus) return 100; 
    19521950 
     
    19581956uint32 GODialogStatus( Player *player, GameObject *_GO ) 
    19591957{ 
    1960     Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName); 
    1961     if(!tmpscript || !tmpscript->pGODialogStatus) return 100; 
     1958    Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; 
     1959    if (!tmpscript || !tmpscript->pGODialogStatus) return 100; 
    19621960 
    19631961    player->PlayerTalkClass->ClearMenus(); 
     
    19681966bool ItemHello( Player *player, Item *_Item, Quest const *_Quest ) 
    19691967{ 
    1970     Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName); 
     1968    Script *tmpscript = m_scripts[_Item->GetProto()->ScriptId]; 
    19711969    if (!tmpscript || !tmpscript->pItemHello) return false; 
    19721970 
     
    19781976bool ItemQuestAccept( Player *player, Item *_Item, Quest const *_Quest ) 
    19791977{ 
    1980     Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName); 
     1978    Script *tmpscript = m_scripts[_Item->GetProto()->ScriptId]; 
    19811979    if (!tmpscript || !tmpscript->pItemQuestAccept) return false; 
    19821980 
     
    19881986bool GOHello( Player *player, GameObject *_GO ) 
    19891987{ 
    1990     Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName); 
     1988    Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; 
    19911989    if (!tmpscript || !tmpscript->pGOHello) return false; 
    19921990 
     
    19981996bool GOQuestAccept( Player *player, GameObject *_GO, Quest const *_Quest ) 
    19991997{ 
    2000     Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName); 
     1998    Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; 
    20011999    if (!tmpscript || !tmpscript->pGOQuestAccept) return false; 
    20022000 
     
    20082006bool GOChooseReward( Player *player, GameObject *_GO, Quest const *_Quest, uint32 opt ) 
    20092007{ 
    2010     Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName); 
     2008    Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId]; 
    20112009    if (!tmpscript || !tmpscript->pGOChooseReward) return false; 
    20122010 
     
    20182016bool AreaTrigger( Player *player, AreaTriggerEntry * atEntry) 
    20192017{ 
    2020     Script *tmpscript = NULL; 
    2021  
    2022     tmpscript = GetScriptByName(GetAreaTriggerScriptNameById(atEntry->id)); 
     2018    Script *tmpscript = m_scripts[GetAreaTriggerScriptId(atEntry->id)]; 
    20232019    if (!tmpscript || !tmpscript->pAreaTrigger) return false; 
    20242020 
     
    20292025CreatureAI* GetAI(Creature *_Creature) 
    20302026{ 
    2031     Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); 
    2032  
     2027    Script *tmpscript = m_scripts[_Creature->GetScriptId()]; 
    20332028    if (!tmpscript || !tmpscript->GetAI) return NULL; 
     2029 
    20342030    return tmpscript->GetAI(_Creature); 
    20352031} 
     
    20382034bool ItemUse( Player *player, Item* _Item, SpellCastTargets const& targets) 
    20392035{ 
    2040     Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName); 
     2036    Script *tmpscript = m_scripts[_Item->GetProto()->ScriptId]; 
    20412037    if (!tmpscript || !tmpscript->pItemUse) return false; 
    20422038 
     
    20472043bool ReceiveEmote( Player *player, Creature *_Creature, uint32 emote ) 
    20482044{ 
    2049     Script *tmpscript = GetScriptByName(_Creature->GetScriptName()); 
     2045    Script *tmpscript = m_scripts[_Creature->GetScriptId()]; 
    20502046    if (!tmpscript || !tmpscript->pReceiveEmote) return false; 
    20512047 
     
    20562052InstanceData* CreateInstanceData(Map *map) 
    20572053{ 
    2058     Script *tmpscript = NULL; 
    2059  
    2060     if (!map->IsDungeon()) return false; 
    2061  
    2062     tmpscript = GetScriptByName(((InstanceMap*)map)->GetScript()); 
    2063     if (!tmpscript || !tmpscript->GetInstanceData) return false; 
     2054    if (!map->IsDungeon()) return NULL; 
     2055 
     2056    Script *tmpscript = m_scripts[((InstanceMap*)map)->GetScriptId()]; 
     2057    if (!tmpscript || !tmpscript->GetInstanceData) return NULL; 
    20642058 
    20652059    return tmpscript->GetInstanceData(map); 
  • trunk/src/bindings/scripts/ScriptMgr.h

    r272 r279  
    2525class WorldObject; 
    2626 
    27 #define MAX_SCRIPTS         1000                            //72 bytes each (approx 71kb) 
     27#define MAX_SCRIPTS         5000                            //72 bytes each (approx 351kb) 
    2828#define VISIBLE_RANGE       (166.0f)                        //MAX visible range (size of grid) 
    2929#define DEFAULT_TEXT        "<Trinity Script Text Entry Missing!>" 
     
    3232{ 
    3333    Script() : 
    34 pGossipHello(NULL), pQuestAccept(NULL), pGossipSelect(NULL), pGossipSelectWithCode(NULL), 
    35 pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL), 
    36 pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL), 
    37 pGOChooseReward(NULL),pReceiveEmote(NULL),pItemUse(NULL), GetAI(NULL), GetInstanceData(NULL) 
    38 {} 
     34        pGossipHello(NULL), pQuestAccept(NULL), pGossipSelect(NULL), pGossipSelectWithCode(NULL), 
     35        pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL), 
     36        pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL), 
     37        pGOChooseReward(NULL),pReceiveEmote(NULL),pItemUse(NULL), GetAI(NULL), GetInstanceData(NULL) 
     38    {} 
    3939 
    40 std::string Name; 
     40    std::string Name; 
    4141 
    42 // Quest/gossip Methods to be scripted 
    43 bool (*pGossipHello         )(Player*, Creature*); 
    44 bool (*pQuestAccept         )(Player*, Creature*, Quest const* ); 
    45 bool (*pGossipSelect        )(Player*, Creature*, uint32 , uint32 ); 
    46 bool (*pGossipSelectWithCode)(Player*, Creature*, uint32 , uint32 , const char* ); 
    47 bool (*pQuestSelect         )(Player*, Creature*, Quest const* ); 
    48 bool (*pQuestComplete       )(Player*, Creature*, Quest const* ); 
    49 uint32 (*pNPCDialogStatus   )(Player*, Creature* ); 
    50 uint32 (*pGODialogStatus    )(Player *player, GameObject * _GO ); 
    51 bool (*pChooseReward        )(Player*, Creature*, Quest const*, uint32 ); 
    52 bool (*pItemHello           )(Player*, Item*, Quest const* ); 
    53 bool (*pGOHello             )(Player*, GameObject* ); 
    54 bool (*pAreaTrigger         )(Player*, AreaTriggerEntry* ); 
    55 bool (*pItemQuestAccept     )(Player*, Item *, Quest const* ); 
    56 bool (*pGOQuestAccept       )(Player*, GameObject*, Quest const* ); 
    57 bool (*pGOChooseReward      )(Player*, GameObject*_GO, Quest const*, uint32 ); 
    58 bool (*pReceiveEmote        )(Player*, Creature*, uint32 ); 
    59 bool (*pItemUse             )(Player*, Item*, SpellCastTargets const& ); 
     42    //Methods to be scripted 
     43    bool (*pGossipHello         )(Player*, Creature*); 
     44    bool (*pQuestAccept         )(Player*, Creature*, Quest const* ); 
     45    bool (*pGossipSelect        )(Player*, Creature*, uint32 , uint32 ); 
     46    bool (*pGossipSelectWithCode)(Player*, Creature*, uint32 , uint32 , const char* ); 
     47    bool (*pQuestSelect         )(Player*, Creature*, Quest const* ); 
     48    bool (*pQuestComplete       )(Player*, Creature*, Quest const* ); 
     49    uint32 (*pNPCDialogStatus   )(Player*, Creature* ); 
     50    uint32 (*pGODialogStatus    )(Player*, GameObject * _GO ); 
     51    bool (*pChooseReward        )(Player*, Creature*, Quest const*, uint32 ); 
     52    bool (*pItemHello           )(Player*, Item*, Quest const* ); 
     53    bool (*pGOHello             )(Player*, GameObject* ); 
     54    bool (*pAreaTrigger         )(Player*, AreaTriggerEntry* ); 
     55    bool (*pItemQuestAccept     )(Player*, Item *, Quest const* ); 
     56    bool (*pGOQuestAccept       )(Player*, GameObject*, Quest const* ); 
     57    bool (*pGOChooseReward      )(Player*, GameObject*, Quest const*, uint32 ); 
     58    bool (*pReceiveEmote        )(Player*, Creature*, uint32 ); 
     59    bool (*pItemUse             )(Player*, Item*, SpellCastTargets const& ); 
    6060 
    61 CreatureAI* (*GetAI)(Creature*); 
    62 InstanceData* (*GetInstanceData)(Map*); 
     61    CreatureAI* (*GetAI)(Creature*); 
     62    InstanceData* (*GetInstanceData)(Map*); 
     63 
     64    void RegisterSelf(); 
    6365}; 
    64  
    65 extern int nrscripts; 
    66 extern Script *m_scripts[MAX_SCRIPTS]; 
    6766 
    6867//Generic scripting text function 
  • trunk/src/bindings/scripts/include/sc_creature.cpp

    r272 r279  
    7474void ScriptedAI::MoveInLineOfSight(Unit *who) 
    7575{ 
    76     if(m_creature->getVictim() || !m_creature->IsHostileTo(who) || !who->isInAccessiblePlaceFor(m_creature)) 
    77         return; 
    78  
    79     if(!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE) 
    80         return; 
    81  
    82     if(!m_creature->IsWithinDistInMap(who, m_creature->GetAttackDistance(who)) || !m_creature->IsWithinLOSInMap(who)) 
    83         return; 
    84      
    85     if(m_creature->canAttack(who)) 
    86         //who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); 
     76    if(!m_creature->getVictim() && m_creature->canStartAttack(who)) 
    8777        AttackStart(who); 
    8878} 
     
    680670    } 
    681671 
    682     InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    683     InstanceMap::PlayerList::const_iterator i; 
    684     for (i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    685     { 
    686         if((*i)->isAlive()) 
    687             pUnit->AddThreat(*i, 0.0f); 
    688     } 
     672    Map::PlayerList const &PlayerList = map->GetPlayers(); 
     673    for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) 
     674        if (Player* i_pl = i->getSource()) 
     675            if (!i_pl->isAlive()) 
     676                pUnit->AddThreat(i_pl, 0.0f); 
    689677} 
    690678 
     
    721709    ((Player*)pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); 
    722710} 
     711 
     712void ScriptedAI::DoTeleportAll(float x, float y, float z, float o) 
     713{ 
     714    Map *map = m_creature->GetMap(); 
     715    if (!map->IsDungeon()) 
     716        return; 
     717 
     718    Map::PlayerList const &PlayerList = map->GetPlayers(); 
     719    for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) 
     720        if (Player* i_pl = i->getSource()) 
     721            if (!i_pl->isAlive()) 
     722                i_pl->TeleportTo(m_creature->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT); 
     723} 
     724 
    723725 
    724726Unit* ScriptedAI::DoSelectLowestHpFriendly(float range, uint32 MinHPDiff) 
  • trunk/src/bindings/scripts/include/sc_creature.h

    r272 r279  
    147147    //Teleports a player without dropping threat (only teleports to same map) 
    148148    void DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float o); 
     149    void DoTeleportAll(float x, float y, float z, float o); 
    149150 
    150151    //Returns friendly unit with the most amount of hp missing from max hp 
  • trunk/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp

    r272 r279  
    4141    newscript->Name="at_test"; 
    4242    newscript->pAreaTrigger = ATtest; 
    43     m_scripts[nrscripts++] = newscript; 
     43    newscript->RegisterSelf(); 
    4444} 
  • trunk/src/bindings/scripts/scripts/boss/boss_emeriss.cpp

    r272 r279  
    153153    newscript->Name="boss_emeriss"; 
    154154    newscript->GetAI = GetAI_boss_emeriss; 
    155     m_scripts[nrscripts++] = newscript; 
     155    newscript->RegisterSelf(); 
    156156} 
  • trunk/src/bindings/scripts/scripts/boss/boss_taerar.cpp

    r272 r279  
    298298    newscript->Name="boss_taerar"; 
    299299    newscript->GetAI = GetAI_boss_taerar; 
    300     m_scripts[nrscripts++] = newscript; 
     300    newscript->RegisterSelf(); 
    301301 
    302302    newscript = new Script; 
    303303    newscript->Name="boss_shade_of_taerar"; 
    304304    newscript->GetAI = GetAI_boss_shadeoftaerar; 
    305     m_scripts[nrscripts++] = newscript; 
     305    newscript->RegisterSelf(); 
    306306} 
  • trunk/src/bindings/scripts/scripts/boss/boss_ysondre.cpp

    r272 r279  
    238238    newscript->Name="boss_ysondre"; 
    239239    newscript->GetAI = GetAI_boss_ysondre; 
    240     m_scripts[nrscripts++] = newscript; 
     240    newscript->RegisterSelf(); 
    241241 
    242242    newscript = new Script; 
    243243    newscript->Name="mob_dementeddruids"; 
    244244    newscript->GetAI = GetAI_mob_dementeddruids; 
    245     m_scripts[nrscripts++] = newscript; 
     245    newscript->RegisterSelf(); 
    246246} 
  • trunk/src/bindings/scripts/scripts/creature/mob_event_ai.cpp

    r272 r279  
    14011401    newscript->Name="mob_eventai"; 
    14021402    newscript->GetAI = GetAI_Mob_EventAI; 
    1403     m_scripts[nrscripts++] = newscript; 
     1403    newscript->RegisterSelf(); 
    14041404} 
  • trunk/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp

    r272 r279  
    169169    newscript->Name="generic_creature"; 
    170170    newscript->GetAI = GetAI_generic_creature; 
    171     m_scripts[nrscripts++] = newscript; 
     171    newscript->RegisterSelf(); 
    172172} 
  • trunk/src/bindings/scripts/scripts/custom/custom_example.cpp

    r272 r279  
    274274    newscript->pGossipSelect = &GossipSelect_custom_example; 
    275275    newscript->pReceiveEmote = &ReceiveEmote_custom_example; 
    276     m_scripts[nrscripts++] = newscript; 
    277 } 
     276    newscript->RegisterSelf(); 
     277} 
  • trunk/src/bindings/scripts/scripts/custom/custom_gossip_codebox.cpp

    r272 r279  
    7878    newscript->pGossipSelect =          &GossipSelect_custom_gossip_codebox; 
    7979    newscript->pGossipSelectWithCode =  &GossipSelectWithCode_custom_gossip_codebox; 
    80     m_scripts[nrscripts++] = newscript; 
     80    newscript->RegisterSelf(); 
    8181} 
  • trunk/src/bindings/scripts/scripts/custom/test.cpp

    r272 r279  
    197197    newscript->pGossipHello          = &GossipHello_npc_test; 
    198198    newscript->pGossipSelect         = &GossipSelect_npc_test; 
    199     m_scripts[nrscripts++] = newscript; 
    200 } 
     199    newscript->RegisterSelf(); 
     200} 
  • trunk/src/bindings/scripts/scripts/go/go_scripts.cpp

    r272 r279  
    166166    newscript->Name="go_northern_crystal_pylon"; 
    167167    newscript->pGOHello =           &GOHello_go_northern_crystal_pylon; 
    168     m_scripts[nrscripts++] = newscript; 
     168    newscript->RegisterSelf(); 
    169169 
    170170    newscript = new Script; 
    171171    newscript->Name="go_eastern_crystal_pylon"; 
    172172    newscript->pGOHello =           &GOHello_go_eastern_crystal_pylon; 
    173     m_scripts[nrscripts++] = newscript; 
     173    newscript->RegisterSelf(); 
    174174 
    175175    newscript = new Script; 
    176176    newscript->Name="go_western_crystal_pylon"; 
    177177    newscript->pGOHello =           &GOHello_go_western_crystal_pylon; 
    178     m_scripts[nrscripts++] = newscript; 
     178    newscript->RegisterSelf(); 
    179179 
    180180    newscript = new Script; 
    181181    newscript->Name="go_barov_journal"; 
    182182    newscript->pGOHello =           &GOHello_go_barov_journal; 
    183     m_scripts[nrscripts++] = newscript; 
     183    newscript->RegisterSelf(); 
    184184 
    185185    newscript = new Script; 
    186186    newscript->Name="go_field_repair_bot_74A"; 
    187187    newscript->pGOHello =           &GOHello_go_field_repair_bot_74A; 
    188     m_scripts[nrscripts++] = newscript; 
     188    newscript->RegisterSelf(); 
    189189 
    190190    newscript = new Script; 
    191191    newscript->Name="go_orb_of_command"; 
    192192    newscript->pGOHello =           &GOHello_go_orb_of_command; 
    193     m_scripts[nrscripts++] = newscript; 
     193    newscript->RegisterSelf(); 
    194194 
    195195    newscript = new Script; 
    196196    newscript->Name="go_tablet_of_madness"; 
    197197    newscript->pGOHello =           &GOHello_go_tablet_of_madness; 
    198     m_scripts[nrscripts++] = newscript; 
     198    newscript->RegisterSelf(); 
    199199 
    200200    newscript = new Script; 
    201201    newscript->Name="go_tablet_of_the_seven"; 
    202202    newscript->pGOHello =           &GOHello_go_tablet_of_the_seven; 
    203     m_scripts[nrscripts++] = newscript; 
     203    newscript->RegisterSelf(); 
    204204 
    205205    newscript = new Script; 
    206206    newscript->Name="go_teleporter"; 
    207207    newscript->pGOHello =           &GOHello_go_teleporter; 
    208     m_scripts[nrscripts++] = newscript; 
    209 } 
     208    newscript->RegisterSelf(); 
     209} 
  • trunk/src/bindings/scripts/scripts/guard/guards.cpp

    r272 r279  
    39813981    newscript->pGossipSelect         = &GossipSelect_guard_azuremyst; 
    39823982    newscript->GetAI = GetAI_guard_azuremyst; 
    3983     m_scripts[nrscripts++] = newscript; 
     3983    newscript->RegisterSelf(); 
    39843984 
    39853985    newscript = new Script; 
     
    39883988    newscript->pGossipSelect         = &GossipSelect_guard_bluffwatcher; 
    39893989    newscript->GetAI = GetAI_guard_bluffwatcher; 
    3990     m_scripts[nrscripts++] = newscript; 
     3990    newscript->RegisterSelf(); 
    39913991 
    39923992    newscript = new Script; 
    39933993    newscript->Name="guard_contested"; 
    39943994    newscript->GetAI = GetAI_guard_contested; 
    3995     m_scripts[nrscripts++] = newscript; 
     3995    newscript->RegisterSelf(); 
    39963996 
    39973997    newscript = new Script; 
     
    40004000    newscript->pGossipSelect         = &GossipSelect_guard_darnassus; 
    40014001    newscript->GetAI = GetAI_guard_darnassus; 
    4002     m_scripts[nrscripts++] = newscript; 
     4002    newscript->RegisterSelf(); 
    40034003 
    40044004    newscript = new Script; 
     
    40074007    newscript->pGossipSelect         = &GossipSelect_guard_dunmorogh; 
    40084008    newscript->GetAI = GetAI_guard_dunmorogh; 
    4009     m_scripts[nrscripts++] = newscript; 
     4009    newscript->RegisterSelf(); 
    40104010 
    40114011    newscript = new Script; 
     
    40144014    newscript->pGossipSelect         = &GossipSelect_guard_durotar; 
    40154015    newscript->GetAI = GetAI_guard_durotar; 
    4016     m_scripts[nrscripts++] = newscript; 
     4016    newscript->RegisterSelf(); 
    40174017 
    40184018    newscript = new Script; 
     
    40214021    newscript->pGossipSelect         = &GossipSelect_guard_elwynnforest; 
    40224022    newscript->GetAI = GetAI_guard_elwynnforest; 
    4023     m_scripts[nrscripts++] = newscript; 
     4023    newscript->RegisterSelf(); 
    40244024 
    40254025    newscript = new Script; 
     
    40284028    newscript->pGossipSelect         = &GossipSelect_guard_eversong; 
    40294029    newscript->GetAI = GetAI_guard_eversong; 
    4030     m_scripts[nrscripts++] = newscript; 
     4030    newscript->RegisterSelf(); 
    40314031 
    40324032    newscript = new Script; 
     
    40354035    newscript->pGossipSelect         = &GossipSelect_guard_exodar; 
    40364036    newscript->GetAI = GetAI_guard_exodar; 
    4037     m_scripts[nrscripts++] = newscript; 
     4037    newscript->RegisterSelf(); 
    40384038 
    40394039    newscript = new Script; 
     
    40424042    newscript->pGossipSelect         = &GossipSelect_guard_ironforge; 
    40434043    newscript->GetAI = GetAI_guard_ironforge; 
    4044     m_scripts[nrscripts++] = newscript; 
     4044    newscript->RegisterSelf(); 
    40454045 
    40464046    newscript = new Script; 
     
    40494049    newscript->pGossipSelect         = &GossipSelect_guard_mulgore; 
    40504050    newscript->GetAI = GetAI_guard_mulgore; 
    4051     m_scripts[nrscripts++] = newscript; 
     4051    newscript->RegisterSelf(); 
    40524052 
    40534053    newscript = new Script; 
     
    40574057    newscript->pReceiveEmote         = &ReceiveEmote_guard_orgrimmar; 
    40584058    newscript->GetAI = GetAI_guard_orgrimmar; 
    4059     m_scripts[nrscripts++] = newscript; 
     4059    newscript->RegisterSelf(); 
    40604060 
    40614061    newscript = new Script; 
     
    40644064    newscript->pGossipSelect         = &GossipSelect_guard_shattrath; 
    40654065    newscript->GetAI = GetAI_guard_shattrath; 
    4066     m_scripts[nrscripts++] = newscript; 
     4066    newscript->RegisterSelf(); 
    40674067 
    40684068    newscript = new Script; 
     
    40714071    newscript->pGossipHello          = &GossipHello_guard_shattrath_aldor; 
    40724072    newscript->pGossipSelect         = &GossipSelect_guard_shattrath_aldor; 
    4073     m_scripts[nrscripts++] = newscript; 
     4073    newscript->RegisterSelf(); 
    40744074 
    40754075    newscript = new Script; 
     
    40784078    newscript->pGossipHello          = &GossipHello_guard_shattrath_scryer; 
    40794079    newscript->pGossipSelect         = &GossipSelect_guard_shattrath_scryer; 
    4080     m_scripts[nrscripts++] = newscript; 
     4080    newscript->RegisterSelf(); 
    40814081 
    40824082    newscript = new Script; 
     
    40854085    newscript->pGossipSelect         = &GossipSelect_guard_silvermoon; 
    40864086    newscript->GetAI = GetAI_guard_silvermoon; 
    4087     m_scripts[nrscripts++] = newscript; 
     4087    newscript->RegisterSelf(); 
    40884088 
    40894089    newscript = new Script; 
     
    40934093    newscript->pReceiveEmote         = &ReceiveEmote_guard_stormwind; 
    40944094    newscript->GetAI = GetAI_guard_stormwind; 
    4095     m_scripts[nrscripts++] = newscript; 
     4095    newscript->RegisterSelf(); 
    40964096 
    40974097    newscript = new Script; 
     
    41004100    newscript->pGossipSelect         = &GossipSelect_guard_teldrassil; 
    41014101    newscript->GetAI = GetAI_guard_teldrassil; 
    4102     m_scripts[nrscripts++] = newscript; 
     4102    newscript->RegisterSelf(); 
    41034103 
    41044104    newscript = new Script; 
     
    41074107    newscript->pGossipSelect         = &GossipSelect_guard_tirisfal; 
    41084108    newscript->GetAI = GetAI_guard_tirisfal; 
    4109     m_scripts[nrscripts++] = newscript; 
     4109    newscript->RegisterSelf(); 
    41104110 
    41114111    newscript = new Script; 
     
    41144114    newscript->pGossipSelect         = &GossipSelect_guard_undercity; 
    41154115    newscript->GetAI = GetAI_guard_undercity; 
    4116     m_scripts[nrscripts++] = newscript; 
    4117 } 
     4116    newscript->RegisterSelf(); 
     4117} 
  • trunk/src/bindings/scripts/scripts/item/item_scripts.cpp

    r272 r279  
    456456    newscript->Name="item_area_52_special"; 
    457457    newscript->pItemUse = ItemUse_item_area_52_special; 
    458     m_scripts[nrscripts++] = newscript; 
     458    newscript->RegisterSelf(); 
    459459 
    460460    newscript = new Script; 
    461461    newscript->Name="item_arcane_charges"; 
    462462    newscript->pItemUse = ItemUse_item_arcane_charges; 
    463     m_scripts[nrscripts++] = newscript; 
     463    newscript->RegisterSelf(); 
    464464 
    465465    newscript = new Script; 
    466466    newscript->Name="item_attuned_crystal_cores"; 
    467467    newscript->pItemUse = ItemUse_item_attuned_crystal_cores; 
    468     m_scripts[nrscripts++] = newscript; 
     468    newscript->RegisterSelf(); 
    469469 
    470470    newscript = new Script; 
    471471    newscript->Name="item_blackwhelp_net"; 
    472472    newscript->pItemUse = ItemUse_item_blackwhelp_net; 
    473     m_scripts[nrscripts++] = newscript; 
     473    newscript->RegisterSelf(); 
    474474 
    475475    newscript = new Script; 
    476476    newscript->Name="item_disciplinary_rod"; 
    477477    newscript->pItemUse = ItemUse_item_disciplinary_rod; 
    478     m_scripts[nrscripts++] = newscript; 
     478    newscript->RegisterSelf(); 
    479479 
    480480    newscript = new Script; 
    481481    newscript->Name="item_draenei_fishing_net"; 
    482482    newscript->pItemUse = ItemUse_item_draenei_fishing_net; 
    483     m_scripts[nrscripts++] = newscript; 
     483    newscript->RegisterSelf(); 
    484484 
    485485    newscript = new Script; 
    486486    newscript->Name="item_nether_wraith_beacon"; 
    487487    newscript->pItemUse = ItemUse_item_nether_wraith_beacon; 
    488     m_scripts[nrscripts++] = newscript; 
     488    newscript->RegisterSelf(); 
    489489 
    490490    newscript = new Script; 
    491491    newscript->Name="item_flying_machine"; 
    492492    newscript->pItemUse = ItemUse_item_flying_machine; 
    493     m_scripts[nrscripts++] = newscript; 
     493    newscript->RegisterSelf(); 
    494494 
    495495    newscript = new Script; 
    496496    newscript->Name="item_gor_dreks_ointment"; 
    497497    newscript->pItemUse = ItemUse_item_gor_dreks_ointment; 
    498     m_scripts[nrscripts++] = newscript; 
     498    newscript->RegisterSelf(); 
    499499 
    500500    newscript = new Script; 
    501501    newscript->Name="item_muiseks_vessel"; 
    502502    newscript->pItemUse = ItemUse_item_muiseks_vessel; 
    503     m_scripts[nrscripts++] = newscript; 
     503    newscript->RegisterSelf(); 
    504504 
    505505    newscript = new Script; 
    506506    newscript->Name="item_razorthorn_flayer_gland"; 
    507507    newscript->pItemUse = ItemUse_item_razorthorn_flayer_gland; 
    508     m_scripts[nrscripts++] = newscript; 
     508    newscript->RegisterSelf(); 
    509509 
    510510    newscript = new Script; 
    511511    newscript->Name="item_tame_beast_rods"; 
    512512    newscript->pItemUse = ItemUse_item_tame_beast_rods; 
    513     m_scripts[nrscripts++] = newscript; 
     513    newscript->RegisterSelf(); 
    514514 
    515515    newscript = new Script; 
    516516    newscript->Name="item_protovoltaic_magneto_collector"; 
    517517    newscript->pItemUse = ItemUse_item_protovoltaic_magneto_collector; 
    518     m_scripts[nrscripts++] = newscript; 
     518    newscript->RegisterSelf(); 
    519519 
    520520    newscript = new Script; 
    521521    newscript->Name="item_soul_cannon"; 
    522522    newscript->pItemUse = ItemUse_item_soul_cannon; 
    523     m_scripts[nrscripts++] = newscript; 
     523    newscript->RegisterSelf(); 
    524524 
    525525    newscript = new Script; 
    526526    newscript->Name="item_sparrowhawk_net"; 
    527527    newscript->pItemUse = ItemUse_item_sparrowhawk_net; 
    528     m_scripts[nrscripts++] = newscript; 
     528    newscript->RegisterSelf(); 
    529529 
    530530    newscript = new Script; 
    531531    newscript->Name="item_voodoo_charm"; 
    532532    newscript->pItemUse = ItemUse_item_voodoo_charm; 
    533     m_scripts[nrscripts++] = newscript; 
     533    newscript->RegisterSelf(); 
    534534 
    535535    newscript = new Script; 
    536536    newscript->Name="item_vorenthals_presence"; 
    537537    newscript->pItemUse = ItemUse_item_vorenthals_presence; 
    538     m_scripts[nrscripts++] = newscript; 
     538    newscript->RegisterSelf(); 
    539539 
    540540    newscript = new Script; 
    541541    newscript->Name="item_yehkinyas_bramble"; 
    542542    newscript->pItemUse = ItemUse_item_yehkinyas_bramble; 
    543     m_scripts[nrscripts++] = newscript; 
     543    newscript->RegisterSelf(); 
    544544 
    545545    newscript = new Script; 
    546546    newscript->Name="item_zezzaks_shard"; 
    547547    newscript->pItemUse = ItemUse_item_zezzak_shard; 
    548     m_scripts[nrscripts++] = newscript; 
    549 } 
     548    newscript->RegisterSelf(); 
     549} 
  • trunk/src/bindings/scripts/scripts/item/item_test.cpp

    r272 r279  
    3939    newscript->Name="item_test"; 
    4040    newscript->pItemUse = ItemUse_item_test; 
    41     m_scripts[nrscripts++] = newscript; 
     41    newscript->RegisterSelf(); 
    4242} 
  • trunk/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp

    r272 r279  
    141141    newscript->pGossipHello = &GossipHello_npc_innkeeper; 
    142142    newscript->pGossipSelect = &GossipSelect_npc_innkeeper; 
    143     m_scripts[nrscripts++] = newscript; 
     143    newscript->RegisterSelf(); 
    144144} 
  • trunk/src/bindings/scripts/scripts/npc/npc_professions.cpp

    r272 r279  
    11781178    newscript->pGossipHello =  &GossipHello_npc_prof_alchemy; 
    11791179    newscript->pGossipSelect = &GossipSelect_npc_prof_alchemy; 
    1180     m_scripts[nrscripts++] = newscript; 
     1180    newscript->RegisterSelf(); 
    11811181 
    11821182    newscript = new Script; 
     
    11841184    newscript->pGossipHello =  &GossipHello_npc_prof_blacksmith; 
    11851185    newscript->pGossipSelect = &GossipSelect_npc_prof_blacksmith; 
    1186     m_scripts[nrscripts++] = newscript; 
     1186    newscript->RegisterSelf(); 
    11871187 
    11881188    newscript = new Script; 
     
    11901190    newscript->pGossipHello =  &GossipHello_npc_prof_leather; 
    11911191    newscript->pGossipSelect = &GossipSelect_npc_prof_leather; 
    1192     m_scripts[nrscripts++] = newscript; 
     1192    newscript->RegisterSelf(); 
    11931193 
    11941194    newscript = new Script; 
     
    11961196    newscript->pGossipHello =  &GossipHello_npc_prof_tailor; 
    11971197    newscript->pGossipSelect = &GossipSelect_npc_prof_tailor; 
    1198     m_scripts[nrscripts++] = newscript; 
     1198    newscript->RegisterSelf(); 
    11991199 
    12001200    /*newscript = new Script; 
     
    12021202    newscript->pGOHello =  &GOHello_go_soothsaying_for_dummies; 
    12031203    //newscript->pGossipSelect = &GossipSelect_go_soothsaying_for_dummies; 
    1204     m_scripts[nrscripts++] = newscript;*/ 
    1205 } 
     1204    newscript->RegisterSelf();*/ 
     1205} 
  • trunk/src/bindings/scripts/scripts/npc/npcs_special.cpp

    r278 r279  
    893893    newscript->pQuestAccept =   &QuestAccept_npc_chicken_cluck; 
    894894    newscript->pQuestComplete = &QuestComplete_npc_chicken_cluck; 
    895     m_scripts[nrscripts++] = newscript; 
     895    newscript->RegisterSelf(); 
    896896 
    897897    newscript = new Script; 
    898898    newscript->Name="npc_dancing_flames"; 
    899899    newscript->pReceiveEmote =  &ReceiveEmote_npc_dancing_flames; 
    900     m_scripts[nrscripts++] = newscript; 
     900    newscript->RegisterSelf(); 
    901901 
    902902    newscript = new Script; 
    903903    newscript->Name="npc_injured_patient"; 
    904904    newscript->GetAI = GetAI_npc_injured_patient; 
    905     m_scripts[nrscripts++] = newscript; 
     905    newscript->RegisterSelf(); 
    906906 
    907907    newscript = new Script; 
     
    909909    newscript->GetAI = GetAI_npc_doctor; 
    910910    newscript->pQuestAccept = &QuestAccept_npc_doctor; 
    911     m_scripts[nrscripts++] = newscript; 
     911    newscript->RegisterSelf(); 
    912912 
    913913    newscript = new Script; 
    914914    newscript->Name="npc_guardian"; 
    915915    newscript->GetAI = GetAI_npc_guardian; 
    916     m_scripts[nrscripts++] = newscript; 
     916    newscript->RegisterSelf(); 
    917917 
    918918    newscript = new Script; 
     
    920920    newscript->pGossipHello =  &GossipHello_npc_mount_vendor; 
    921921    newscript->pGossipSelect = &GossipSelect_npc_mount_vendor; 
    922     m_scripts[nrscripts++] = newscript; 
     922    newscript->RegisterSelf(); 
    923923 
    924924    newscript = new Script; 
     
    926926    newscript->pGossipHello =  &GossipHello_npc_rogue_trainer; 
    927927    newscript->pGossipSelect = &GossipSelect_npc_rogue_trainer; 
    928     m_scripts[nrscripts++] = newscript; 
     928    newscript->RegisterSelf(); 
    929929 
    930930    newscript = new Script; 
     
    932932    newscript->pGossipHello = &GossipHello_npc_sayge; 
    933933    newscript->pGossipSelect = &GossipSelect_npc_sayge; 
    934     m_scripts[nrscripts++] = newscript; 
     934    newscript->RegisterSelf(); 
    935935 
    936936    newscript = new Script; 
    937937    newscript->Name="npc_steam_tonk"; 
    938938    newscript->GetAI = &GetAI_npc_steam_tonk; 
    939     m_scripts[nrscripts++] = newscript; 
     939    newscript->RegisterSelf(); 
    940940 
    941941    newscript = new Script; 
    942942    newscript->Name="npc_tonk_mine"; 
    943943    newscript->GetAI = &GetAI_npc_tonk_mine; 
    944     m_scripts[nrscripts++] = newscript; 
    945 } 
     944    newscript->RegisterSelf(); 
     945} 
  • trunk/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp

    r272 r279  
    5959    newscript->Name="npc_ravenholdt"; 
    6060    newscript->GetAI = GetAI_npc_ravenholdt; 
    61     m_scripts[nrscripts++] = newscript; 
     61    newscript->RegisterSelf(); 
    6262} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp

    r272 r279  
    349349    newscript->Name="boss_exarch_maladaar"; 
    350350    newscript->GetAI = GetAI_boss_exarch_maladaar; 
    351     m_scripts[nrscripts++] = newscript; 
     351    newscript->RegisterSelf(); 
    352352 
    353353    newscript = new Script; 
    354354    newscript->Name="mob_avatar_of_martyred"; 
    355355    newscript->GetAI = GetAI_mob_avatar_of_martyred; 
    356     m_scripts[nrscripts++] = newscript; 
     356    newscript->RegisterSelf(); 
    357357 
    358358    newscript = new Script; 
    359359    newscript->Name="mob_stolen_soul"; 
    360360    newscript->GetAI = GetAI_mob_stolen_soul; 
    361     m_scripts[nrscripts++] = newscript; 
     361    newscript->RegisterSelf(); 
    362362} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp

    r272 r279  
    272272    newscript->Name="boss_nexusprince_shaffar"; 
    273273    newscript->GetAI = GetAI_boss_nexusprince_shaffar; 
    274     m_scripts[nrscripts++] = newscript; 
     274    newscript->RegisterSelf(); 
    275275 
    276276    newscript = new Script; 
    277277    newscript->Name="mob_ethereal_beacon"; 
    278278    newscript->GetAI = GetAI_mob_ethereal_beacon; 
    279     m_scripts[nrscripts++] = newscript; 
     279    newscript->RegisterSelf(); 
    280280} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp

    r272 r279  
    135135    newscript->Name="boss_pandemonius"; 
    136136    newscript->GetAI = GetAI_boss_pandemonius; 
    137     m_scripts[nrscripts++] = newscript; 
     137    newscript->RegisterSelf(); 
    138138} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp

    r272 r279  
    393393    newscript->Name="boss_darkweaver_syth"; 
    394394    newscript->GetAI = GetAI_boss_darkweaver_syth; 
    395     m_scripts[nrscripts++] = newscript; 
     395    newscript->RegisterSelf(); 
    396396 
    397397    newscript = new Script; 
    398398    newscript->Name="mob_syth_fire"; 
    399399    newscript->GetAI = GetAI_mob_syth_arcane; 
    400     m_scripts[nrscripts++] = newscript; 
     400    newscript->RegisterSelf(); 
    401401 
    402402    newscript = new Script; 
    403403    newscript->Name="mob_syth_arcane"; 
    404404    newscript->GetAI = GetAI_mob_syth_arcane; 
    405     m_scripts[nrscripts++] = newscript; 
     405    newscript->RegisterSelf(); 
    406406 
    407407    newscript = new Script; 
    408408    newscript->Name="mob_syth_frost"; 
    409409    newscript->GetAI = GetAI_mob_syth_frost; 
    410     m_scripts[nrscripts++] = newscript; 
     410    newscript->RegisterSelf(); 
    411411 
    412412    newscript = new Script; 
    413413    newscript->Name="mob_syth_shadow"; 
    414414    newscript->GetAI = GetAI_mob_syth_shadow; 
    415     m_scripts[nrscripts++] = newscript; 
    416 } 
     415    newscript->RegisterSelf(); 
     416} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp

    r272 r279  
    220220    newscript->Name="boss_talon_king_ikiss"; 
    221221    newscript->GetAI = GetAI_boss_talon_king_ikiss; 
    222     m_scripts[nrscripts++] = newscript; 
     222    newscript->RegisterSelf(); 
    223223} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp

    r272 r279  
    7171    newscript->Name = "instance_sethekk_halls"; 
    7272    newscript->GetInstanceData = GetInstanceData_instance_sethekk_halls; 
    73     m_scripts[nrscripts++] = newscript; 
     73    newscript->RegisterSelf(); 
    7474} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp

    r272 r279  
    195195    newscript->Name="boss_ambassador_hellmaw"; 
    196196    newscript->GetAI = GetAI_boss_ambassador_hellmaw; 
    197     m_scripts[nrscripts++] = newscript; 
     197    newscript->RegisterSelf(); 
    198198} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp

    r272 r279  
    174174    newscript->Name="boss_blackheart_the_inciter"; 
    175175    newscript->GetAI = GetAI_boss_blackheart_the_inciter; 
    176     m_scripts[nrscripts++] = newscript; 
     176    newscript->RegisterSelf(); 
    177177} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp

    r272 r279  
    221221        if ( DrawnShadows_Timer < diff) 
    222222        { 
    223             Map *map = m_creature->GetMap(); 
    224             if(map->IsDungeon()) 
    225             { 
    226                 InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    227                 for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    228                 { 
    229                     if((*i)->isAlive()) 
    230                     { 
    231                         (*i)->TeleportTo(555,VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0); 
    232                     } 
    233                 } 
    234             } 
     223            DoTeleportAll(VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0); 
    235224            m_creature->Relocate(VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0); 
    236225            DoCast(m_creature,SPELL_DRAWN_SHADOWS,true); 
     
    375364    newscript->Name="boss_grandmaster_vorpil"; 
    376365    newscript->GetAI = GetAI_boss_grandmaster_vorpil; 
    377     m_scripts[nrscripts++] = newscript; 
     366    newscript->RegisterSelf(); 
    378367 
    379368    newscript = new Script; 
    380369    newscript->Name="mob_voidtraveler"; 
    381370    newscript->GetAI = GetAI_mob_voidtraveler; 
    382     m_scripts[nrscripts++] = newscript; 
     371    newscript->RegisterSelf(); 
    383372} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp

    r272 r279  
    149149    newscript->Name="boss_murmur"; 
    150150    newscript->GetAI = GetAI_boss_murmur; 
    151     m_scripts[nrscripts++] = newscript; 
     151    newscript->RegisterSelf(); 
    152152} 
  • trunk/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp

    r272 r279  
    175175    newscript->Name = "instance_shadow_labyrinth"; 
    176176    newscript->GetInstanceData = GetInstanceData_instance_shadow_labyrinth; 
    177     m_scripts[nrscripts++] = newscript; 
     177    newscript->RegisterSelf(); 
    178178} 
  • trunk/src/bindings/scripts/scripts/zone/azshara/azshara.cpp

    r272 r279  
    493493    newscript->Name="mobs_spitelashes"; 
    494494    newscript->GetAI = GetAI_mobs_spitelashes; 
    495     m_scripts[nrscripts++] = newscript; 
     495    newscript->RegisterSelf(); 
    496496 
    497497    newscript = new Script; 
     
    499499    newscript->pGossipHello =  &GossipHello_npc_loramus_thalipedes; 
    500500    newscript->pGossipSelect = &GossipSelect_npc_loramus_thalipedes; 
    501     m_scripts[nrscripts++] = newscript; 
     501    newscript->RegisterSelf(); 
    502502 
    503503        newscript = new Script; 
     
    506506    newscript->pGossipHello =  &GossipHello_mob_rizzle_sprysprocket; 
    507507    newscript->pGossipSelect = &GossipSelect_mob_rizzle_sprysprocket; 
    508     m_scripts[nrscripts++] = newscript; 
     508    newscript->RegisterSelf(); 
    509509 
    510510    newscript = new Script; 
    511511    newscript->Name="mob_depth_charge"; 
    512512    newscript->GetAI = GetAI_mob_depth_charge; 
    513     m_scripts[nrscripts++] = newscript; 
    514 } 
     513    newscript->RegisterSelf(); 
     514} 
  • trunk/src/bindings/scripts/scripts/zone/azshara/boss_azuregos.cpp

    r272 r279  
    150150    newscript->Name="boss_azuregos"; 
    151151    newscript->GetAI = GetAI_boss_azuregos; 
    152     m_scripts[nrscripts++] = newscript; 
     152    newscript->RegisterSelf(); 
    153153} 
  • trunk/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp

    r272 r279  
    351351    newscript->Name="npc_draenei_survivor"; 
    352352    newscript->GetAI = GetAI_npc_draenei_survivor; 
    353     m_scripts[nrscripts++] = newscript; 
     353    newscript->RegisterSelf(); 
    354354 
    355355    newscript = new Script; 
     
    358358    newscript->pGossipHello =  &GossipHello_npc_engineer_spark_overgrind; 
    359359    newscript->pGossipSelect = &GossipSelect_npc_engineer_spark_overgrind; 
    360     m_scripts[nrscripts++] = newscript; 
     360    newscript->RegisterSelf(); 
    361361 
    362362    newscript = new Script; 
    363363    newscript->Name="npc_injured_draenei"; 
    364364    newscript->GetAI = GetAI_npc_injured_draenei; 
    365     m_scripts[nrscripts++] = newscript; 
     365    newscript->RegisterSelf(); 
    366366 
    367367    newscript = new Script; 
     
    369369    newscript->pGossipHello =  &GossipHello_npc_susurrus; 
    370370    newscript->pGossipSelect = &GossipSelect_npc_susurrus; 
    371     m_scripts[nrscripts++] = newscript; 
    372 } 
     371    newscript->RegisterSelf(); 
     372} 
  • trunk/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp

    r272 r279  
    370370    newscript->pGossipHello = &GossipHello_npc_beaten_corpse; 
    371371    newscript->pGossipSelect = &GossipSelect_npc_beaten_corpse; 
    372     m_scripts[nrscripts++] = newscript; 
     372    newscript->RegisterSelf(); 
    373373 
    374374    newscript = new Script; 
     
    376376    newscript->pGossipHello = &GossipHello_npc_sputtervalve; 
    377377    newscript->pGossipSelect = &GossipSelect_npc_sputtervalve; 
    378     m_scripts[nrscripts++] = newscript; 
     378    newscript->RegisterSelf(); 
    379379 
    380380    newscript = new Script; 
     
    382382    newscript->GetAI = GetAI_npc_taskmaster_fizzule; 
    383383    newscript->pReceiveEmote = &ReciveEmote_npc_taskmaster_fizzule; 
    384     m_scripts[nrscripts++] = newscript; 
     384    newscript->RegisterSelf(); 
    385385 
    386386    newscript = new Script; 
    387387    newscript->Name="npc_twiggy_flathead"; 
    388388    newscript->GetAI = GetAI_npc_twiggy_flathead; 
    389     m_scripts[nrscripts++] = newscript; 
    390 } 
     389    newscript->RegisterSelf(); 
     390} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp

    r272 r279  
    6565    newscript->pGossipHello = GossipHello_npc_spirit_of_olum; 
    6666    newscript->pGossipSelect = GossipSelect_npc_spirit_of_olum; 
    67     m_scripts[nrscripts++] = newscript; 
     67    newscript->RegisterSelf(); 
    6868} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp

    r272 r279  
    362362    newscript->Name="boss_gurtogg_bloodboil"; 
    363363    newscript->GetAI = GetAI_boss_gurtogg_bloodboil; 
    364     m_scripts[nrscripts++] = newscript; 
     364    newscript->RegisterSelf(); 
    365365} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp

    r272 r279  
    22482248    newscript->Name = "boss_illidan_stormrage"; 
    22492249    newscript->GetAI = GetAI_boss_illidan_stormrage; 
    2250     m_scripts[nrscripts++] = newscript; 
     2250    newscript->RegisterSelf(); 
    22512251 
    22522252    newscript = new Script; 
     
    22552255    newscript->pGossipHello = GossipHello_npc_akama_at_illidan; 
    22562256    newscript->pGossipSelect = GossipSelect_npc_akama_at_illidan; 
    2257     m_scripts[nrscripts++] = newscript; 
     2257    newscript->RegisterSelf(); 
    22582258 
    22592259    newscript = new Script; 
    22602260    newscript->Name = "boss_maiev_shadowsong"; 
    22612261    newscript->GetAI = GetAI_boss_maiev; 
    2262     m_scripts[nrscripts++] = newscript; 
     2262    newscript->RegisterSelf(); 
    22632263 
    22642264    newscript = new Script; 
    22652265    newscript->Name = "mob_flame_of_azzinoth"; 
    22662266    newscript->GetAI = GetAI_mob_flame_of_azzinoth; 
    2267     m_scripts[nrscripts++] = newscript; 
     2267    newscript->RegisterSelf(); 
    22682268 
    22692269    newscript = new Script; 
    22702270    newscript->Name = "mob_blade_of_azzinoth"; 
    22712271    newscript->GetAI = GetAI_blade_of_azzinoth; 
    2272     m_scripts[nrscripts++] = newscript; 
     2272    newscript->RegisterSelf(); 
    22732273 
    22742274    newscript = new Script; 
    22752275    newscript->Name = "gameobject_cage_trap"; 
    22762276    newscript->pGOHello = GOHello_cage_trap; 
    2277     m_scripts[nrscripts++] = newscript; 
     2277    newscript->RegisterSelf(); 
    22782278 
    22792279    newscript = new Script; 
    22802280    newscript->Name="mob_cage_trap_trigger"; 
    22812281    newscript->GetAI = &GetAI_cage_trap_trigger; 
    2282     m_scripts[nrscripts++] = newscript; 
     2282    newscript->RegisterSelf(); 
    22832283 
    22842284    newscript = new Script; 
    22852285    newscript->Name = "mob_shadow_demon"; 
    22862286    newscript->GetAI = GetAI_shadow_demon; 
    2287     m_scripts[nrscripts++] = newscript; 
     2287    newscript->RegisterSelf(); 
    22882288 
    22892289    newscript = new Script; 
    22902290    newscript->Name="mob_demon_fire"; 
    22912291    newscript->GetAI = GetAI_demonfire; 
    2292     m_scripts[nrscripts++] = newscript; 
     2292    newscript->RegisterSelf(); 
    22932293 
    22942294    newscript = new Script; 
    22952295    newscript->Name = "mob_parasitic_shadowfiend"; 
    22962296    newscript->GetAI = GetAI_parasitic_shadowfiend; 
    2297     m_scripts[nrscripts++] = newscript; 
     2297    newscript->RegisterSelf(); 
    22982298} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp

    r272 r279  
    358358    newscript->Name="boss_mother_shahraz"; 
    359359    newscript->GetAI = GetAI_boss_shahraz; 
    360     m_scripts[nrscripts++] = newscript; 
     360    newscript->RegisterSelf(); 
    361361} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp

    r272 r279  
    724724    newscript->Name="boss_reliquary_of_souls"; 
    725725    newscript->GetAI = GetAI_boss_reliquary_of_souls; 
    726     m_scripts[nrscripts++] = newscript; 
     726    newscript->RegisterSelf(); 
    727727 
    728728    newscript = new Script; 
    729729    newscript->Name="boss_essence_of_suffering"; 
    730730    newscript->GetAI = GetAI_boss_essence_of_suffering; 
    731     m_scripts[nrscripts++] = newscript; 
     731    newscript->RegisterSelf(); 
    732732 
    733733    newscript = new Script; 
    734734    newscript->Name="boss_essence_of_desire"; 
    735735    newscript->GetAI = GetAI_boss_essence_of_desire; 
    736     m_scripts[nrscripts++] = newscript; 
     736    newscript->RegisterSelf(); 
    737737 
    738738    newscript = new Script; 
    739739    newscript->Name="boss_essence_of_anger"; 
    740740    newscript->GetAI = GetAI_boss_essence_of_anger; 
    741     m_scripts[nrscripts++] = newscript; 
     741    newscript->RegisterSelf(); 
    742742 
    743743    newscript = new Script; 
    744744    newscript->Name="npc_enslaved_soul"; 
    745745    newscript->GetAI = GetAI_npc_enslaved_soul; 
    746     m_scripts[nrscripts++] = newscript; 
     746    newscript->RegisterSelf(); 
    747747} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp

    r272 r279  
    797797    newscript->Name="boss_shade_of_akama"; 
    798798    newscript->GetAI = GetAI_boss_shade_of_akama; 
    799     m_scripts[nrscripts++] = newscript; 
     799    newscript->RegisterSelf(); 
    800800 
    801801    newscript = new Script; 
    802802    newscript->Name="mob_ashtongue_channeler"; 
    803803    newscript->GetAI = GetAI_mob_ashtongue_channeler; 
    804     m_scripts[nrscripts++] = newscript; 
     804    newscript->RegisterSelf(); 
    805805 
    806806    newscript = new Script; 
    807807    newscript->Name="mob_ashtongue_sorcerer"; 
    808808    newscript->GetAI = GetAI_mob_ashtongue_sorcerer; 
    809     m_scripts[nrscripts++] = newscript; 
     809    newscript->RegisterSelf(); 
    810810 
    811811    newscript = new Script; 
     
    814814    newscript->pGossipHello = &GossipHello_npc_akama; 
    815815    newscript->pGossipSelect = &GossipSelect_npc_akama; 
    816     m_scripts[nrscripts++] = newscript; 
     816    newscript->RegisterSelf(); 
    817817} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp

    r272 r279  
    237237    newscript->Name="boss_supremus"; 
    238238    newscript->GetAI = GetAI_boss_supremus; 
    239     m_scripts[nrscripts++] = newscript; 
     239    newscript->RegisterSelf(); 
    240240 
    241241    newscript = new Script; 
    242242    newscript->Name="molten_flame"; 
    243243    newscript->GetAI = GetAI_molten_flame; 
    244     m_scripts[nrscripts++] = newscript; 
     244    newscript->RegisterSelf(); 
    245245} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp

    r272 r279  
    576576    newscript->Name = "mob_doom_blossom"; 
    577577    newscript->GetAI = GetAI_mob_doom_blossom; 
    578     m_scripts[nrscripts++] = newscript; 
     578    newscript->RegisterSelf(); 
    579579 
    580580    newscript = new Script; 
    581581    newscript->Name = "mob_shadowy_construct"; 
    582582    newscript->GetAI = GetAI_mob_shadowy_construct; 
    583     m_scripts[nrscripts++] = newscript; 
     583    newscript->RegisterSelf(); 
    584584 
    585585    newscript = new Script; 
    586586    newscript->Name="boss_teron_gorefiend"; 
    587587    newscript->GetAI = GetAI_boss_teron_gorefiend; 
    588     m_scripts[nrscripts++] = newscript; 
     588    newscript->RegisterSelf(); 
    589589} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp

    r272 r279  
    259259    newscript->Name="boss_najentus"; 
    260260    newscript->GetAI = GetAI_boss_najentus; 
    261     m_scripts[nrscripts++] = newscript; 
     261    newscript->RegisterSelf(); 
    262262 
    263263    newscript = new Script; 
    264264    newscript->Name = "go_najentus_spine"; 
    265265    newscript->pGOHello = &GOHello_go_najentus_spine; 
    266     m_scripts[nrscripts++] = newscript; 
     266    newscript->RegisterSelf(); 
    267267} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp

    r272 r279  
    856856    newscript->Name="mob_illidari_council"; 
    857857    newscript->GetAI = GetAI_mob_illidari_council; 
    858     m_scripts[nrscripts++] = newscript; 
     858    newscript->RegisterSelf(); 
    859859 
    860860    newscript = new Script; 
    861861    newscript->Name = "mob_blood_elf_council_voice_trigger"; 
    862862    newscript->GetAI = GetAI_mob_blood_elf_council_voice_trigger; 
    863     m_scripts[nrscripts++] = newscript; 
     863    newscript->RegisterSelf(); 
    864864 
    865865    newscript = new Script; 
    866866    newscript->Name="boss_gathios_the_shatterer"; 
    867867    newscript->GetAI = GetAI_boss_gathios_the_shatterer; 
    868     m_scripts[nrscripts++] = newscript; 
     868    newscript->RegisterSelf(); 
    869869 
    870870    newscript = new Script; 
    871871    newscript->Name="boss_lady_malande"; 
    872872    newscript->GetAI = GetAI_boss_lady_malande; 
    873     m_scripts[nrscripts++] = newscript; 
     873    newscript->RegisterSelf(); 
    874874 
    875875    newscript = new Script; 
    876876    newscript->Name="boss_veras_darkshadow"; 
    877877    newscript->GetAI = GetAI_boss_veras_darkshadow; 
    878     m_scripts[nrscripts++] = newscript; 
     878    newscript->RegisterSelf(); 
    879879 
    880880    newscript = new Script; 
    881881    newscript->Name="boss_high_nethermancer_zerevor"; 
    882882    newscript->GetAI = GetAI_boss_high_nethermancer_zerevor; 
    883     m_scripts[nrscripts++] = newscript; 
     883    newscript->RegisterSelf(); 
    884884} 
  • trunk/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp

    r272 r279  
    333333    newscript->Name = "instance_black_temple"; 
    334334    newscript->GetInstanceData = GetInstanceData_instance_black_temple; 
    335     m_scripts[nrscripts++] = newscript; 
     335    newscript->RegisterSelf(); 
    336336} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp

    r272 r279  
    222222    newscript->Name="phalanx"; 
    223223    newscript->GetAI = GetAI_mob_phalanx; 
    224     m_scripts[nrscripts++] = newscript; 
     224    newscript->RegisterSelf(); 
    225225 
    226226    newscript = new Script; 
     
    228228    newscript->pGossipHello =  &GossipHello_npc_kharan_mighthammer; 
    229229    newscript->pGossipSelect = &GossipSelect_npc_kharan_mighthammer; 
    230     m_scripts[nrscripts++] = newscript; 
     230    newscript->RegisterSelf(); 
    231231 
    232232    newscript = new Script; 
     
    234234    newscript->pGossipHello =  &GossipHello_npc_lokhtos_darkbargainer; 
    235235    newscript->pGossipSelect = &GossipSelect_npc_lokhtos_darkbargainer; 
    236     m_scripts[nrscripts++] = newscript; 
    237 } 
     236    newscript->RegisterSelf(); 
     237} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp

    r272 r279  
    103103    newscript->Name="boss_ambassador_flamelash"; 
    104104    newscript->GetAI = GetAI_boss_ambassador_flamelash; 
    105     m_scripts[nrscripts++] = newscript; 
     105    newscript->RegisterSelf(); 
    106106} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_angerrel.cpp

    r272 r279  
    8888    newscript->Name="boss_angerrel"; 
    8989    newscript->GetAI = GetAI_boss_angerrel; 
    90     m_scripts[nrscripts++] = newscript; 
     90    newscript->RegisterSelf(); 
    9191} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_anubshiah.cpp

    r272 r279  
    112112    newscript->Name="boss_anubshiah"; 
    113113    newscript->GetAI = GetAI_boss_anubshiah; 
    114     m_scripts[nrscripts++] = newscript; 
     114    newscript->RegisterSelf(); 
    115115} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doomrel.cpp

    r272 r279  
    136136    newscript->Name="boss_doomrel"; 
    137137    newscript->GetAI = GetAI_boss_doomrel; 
    138     m_scripts[nrscripts++] = newscript; 
     138    newscript->RegisterSelf(); 
    139139} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doperel.cpp

    r272 r279  
    8888    newscript->Name="boss_doperel"; 
    8989    newscript->GetAI = GetAI_boss_doperel; 
    90     m_scripts[nrscripts++] = newscript; 
     90    newscript->RegisterSelf(); 
    9191} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp

    r272 r279  
    101101    newscript->Name="boss_emperor_dagran_thaurissan"; 
    102102    newscript->GetAI = GetAI_boss_draganthaurissan; 
    103     m_scripts[nrscripts++] = newscript; 
     103    newscript->RegisterSelf(); 
    104104} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp

    r272 r279  
    164164    newscript->Name="boss_general_angerforge"; 
    165165    newscript->GetAI = GetAI_boss_general_angerforge; 
    166     m_scripts[nrscripts++] = newscript; 
     166    newscript->RegisterSelf(); 
    167167} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gloomrel.cpp

    r272 r279  
    139139    newscript->pGossipHello = &GossipHello_boss_gloomrel; 
    140140    newscript->pGossipSelect = &GossipSelect_boss_gloomrel; 
    141     m_scripts[nrscripts++] = newscript; 
     141    newscript->RegisterSelf(); 
    142142} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp

    r272 r279  
    7878    newscript->Name="boss_gorosh_the_dervish"; 
    7979    newscript->GetAI = GetAI_boss_gorosh_the_dervish; 
    80     m_scripts[nrscripts++] = newscript; 
     80    newscript->RegisterSelf(); 
    8181} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_grizzle.cpp

    r272 r279  
    8383    newscript->Name="boss_grizzle"; 
    8484    newscript->GetAI = GetAI_boss_grizzle; 
    85     m_scripts[nrscripts++] = newscript; 
     85    newscript->RegisterSelf(); 
    8686} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_haterel.cpp

    r272 r279  
    102102    newscript->Name="boss_haterel"; 
    103103    newscript->GetAI = GetAI_boss_haterel; 
    104     m_scripts[nrscripts++] = newscript; 
     104    newscript->RegisterSelf(); 
    105105} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp

    r272 r279  
    102102    newscript->Name="boss_high_interrogator_gerstahn"; 
    103103    newscript->GetAI = GetAI_boss_high_interrogator_gerstahn; 
    104     m_scripts[nrscripts++] = newscript; 
     104    newscript->RegisterSelf(); 
    105105} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_magmus.cpp

    r272 r279  
    8181    newscript->Name="boss_magmus"; 
    8282    newscript->GetAI = GetAI_boss_magmus; 
    83     m_scripts[nrscripts++] = newscript; 
     83    newscript->RegisterSelf(); 
    8484} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp

    r272 r279  
    9696    newscript->Name="boss_moira_bronzebeard"; 
    9797    newscript->GetAI = GetAI_boss_moira_bronzebeard; 
    98     m_scripts[nrscripts++] = newscript; 
     98    newscript->RegisterSelf(); 
    9999} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_seethrel.cpp

    r272 r279  
    112112    newscript->Name="boss_seethrel"; 
    113113    newscript->GetAI = GetAI_boss_seethrel; 
    114     m_scripts[nrscripts++] = newscript; 
     114    newscript->RegisterSelf(); 
    115115} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_depths/boss_vilerel.cpp

    r272 r279  
    9898    newscript->Name="boss_vilerel"; 
    9999    newscript->GetAI = GetAI_boss_vilerel; 
    100     m_scripts[nrscripts++] = newscript; 
     100    newscript->RegisterSelf(); 
    101101} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_drakkisath.cpp

    r272 r279  
    9898    newscript->Name="boss_drakkisath"; 
    9999    newscript->GetAI = GetAI_boss_drakkisath; 
    100     m_scripts[nrscripts++] = newscript; 
     100    newscript->RegisterSelf(); 
    101101} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_gyth.cpp

    r272 r279  
    202202    newscript->Name="boss_gyth"; 
    203203    newscript->GetAI = GetAI_boss_gyth; 
    204     m_scripts[nrscripts++] = newscript; 
     204    newscript->RegisterSelf(); 
    205205} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_halycon.cpp

    r272 r279  
    9292    newscript->Name="boss_halycon"; 
    9393    newscript->GetAI = GetAI_boss_halycon; 
    94     m_scripts[nrscripts++] = newscript; 
     94    newscript->RegisterSelf(); 
    9595} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_highlord_omokk.cpp

    r272 r279  
    128128    newscript->Name="boss_highlord_omokk"; 
    129129    newscript->GetAI = GetAI_boss_highlordomokk; 
    130     m_scripts[nrscripts++] = newscript; 
     130    newscript->RegisterSelf(); 
    131131} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp

    r272 r279  
    8383    newscript->Name="boss_mother_smolderweb"; 
    8484    newscript->GetAI = GetAI_boss_mothersmolderweb; 
    85     m_scripts[nrscripts++] = newscript; 
     85    newscript->RegisterSelf(); 
    8686} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp

    r272 r279  
    124124    newscript->Name="boss_overlord_wyrmthalak"; 
    125125    newscript->GetAI = GetAI_boss_overlordwyrmthalak; 
    126     m_scripts[nrscripts++] = newscript; 
     126    newscript->RegisterSelf(); 
    127127} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp

    r272 r279  
    9090    newscript->Name="boss_pyroguard_emberseer"; 
    9191    newscript->GetAI = GetAI_boss_pyroguard_emberseer; 
    92     m_scripts[nrscripts++] = newscript; 
     92    newscript->RegisterSelf(); 
    9393} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp

    r272 r279  
    8282    newscript->Name="quartermaster_zigris"; 
    8383    newscript->GetAI = GetAI_boss_quatermasterzigris; 
    84     m_scripts[nrscripts++] = newscript; 
     84    newscript->RegisterSelf(); 
    8585} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_rend_blackhand.cpp

    r272 r279  
    8888    newscript->Name="boss_rend_blackhand"; 
    8989    newscript->GetAI = GetAI_boss_rend_blackhand; 
    90     m_scripts[nrscripts++] = newscript; 
     90    newscript->RegisterSelf(); 
    9191} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp

    r272 r279  
    9292    newscript->Name="boss_shadow_hunter_voshgajin"; 
    9393    newscript->GetAI = GetAI_boss_shadowvosh; 
    94     m_scripts[nrscripts++] = newscript; 
     94    newscript->RegisterSelf(); 
    9595} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_the_beast.cpp

    r272 r279  
    9090    newscript->Name="boss_the_beast"; 
    9191    newscript->GetAI = GetAI_boss_thebeast; 
    92     m_scripts[nrscripts++] = newscript; 
     92    newscript->RegisterSelf(); 
    9393} 
  • trunk/src/bindings/scripts/scripts/zone/blackrock_spire/boss_warmaster_voone.cpp

    r272 r279  
    118118    newscript->Name="boss_warmaster_voone"; 
    119119    newscript->GetAI = GetAI_boss_warmastervoone; 
    120     m_scripts[nrscripts++] = newscript; 
     120    newscript->RegisterSelf(); 
    121121} 
  • trunk/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp

    r272 r279  
    125125    newscript->Name="boss_broodlord"; 
    126126    newscript->GetAI = GetAI_boss_broodlord; 
    127     m_scripts[nrscripts++] = newscript; 
     127    newscript->RegisterSelf(); 
    128128} 
  • trunk/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp

    r272 r279  
    311311    newscript->Name="boss_chromaggus"; 
    312312    newscript->GetAI = GetAI_boss_chromaggus; 
    313     m_scripts[nrscripts++] = newscript; 
     313    newscript->RegisterSelf(); 
    314314} 
  • trunk/src/bindings/scripts/scripts/zone/blackwing_lair/boss_ebonroc.cpp

    r272 r279  
    100100    newscript->Name="boss_ebonroc"; 
    101101    newscript->GetAI = GetAI_boss_ebonroc; 
    102     m_scripts[nrscripts++] = newscript; 
     102    newscript->RegisterSelf(); 
    103103} 
  • trunk/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp

    r272 r279  
    9191    newscript->Name="boss_firemaw"; 
    9292    newscript->GetAI = GetAI_boss_firemaw; 
    93     m_scripts[nrscripts++] = newscript; 
     93    newscript->RegisterSelf(); 
    9494} 
  • trunk/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp

    r272 r279  
    9191    newscript->Name="boss_flamegor"; 
    9292    newscript->GetAI = GetAI_boss_flamegor; 
    93     m_scripts[nrscripts++] = newscript; 
     93    newscript->RegisterSelf(); 
    9494} 
  • trunk/src/bindings/scripts/scripts/zone/blackwing_lair/boss_nefarian.cpp

    r272 r279  
    224224    newscript->Name="boss_nefarian"; 
    225225    newscript->GetAI = GetAI_boss_nefarian; 
    226     m_scripts[nrscripts++] = newscript; 
     226    newscript->RegisterSelf(); 
    227227} 
  • trunk/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp

    r272 r279  
    128128    newscript->Name="boss_razorgore"; 
    129129    newscript->GetAI = GetAI_boss_razorgore; 
    130     m_scripts[nrscripts++] = newscript; 
     130    newscript->RegisterSelf(); 
    131131} 
  • trunk/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp

    r272 r279  
    258258    newscript->pGossipHello = &GossipHello_boss_vael; 
    259259    newscript->pGossipSelect = &GossipSelect_boss_vael; 
    260     m_scripts[nrscripts++] = newscript; 
    261 } 
     260    newscript->RegisterSelf(); 
     261} 
  • trunk/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp

    r272 r279  
    391391    newscript->pGossipHello = &GossipHello_boss_victor_nefarius; 
    392392    newscript->pGossipSelect = &GossipSelect_boss_victor_nefarius; 
    393     m_scripts[nrscripts++] = newscript; 
     393    newscript->RegisterSelf(); 
    394394} 
  • trunk/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp

    r272 r279  
    407407    newscript->Name="mobs_bladespire_ogre"; 
    408408    newscript->GetAI = GetAI_mobs_bladespire_ogre; 
    409     m_scripts[nrscripts++] = newscript; 
     409    newscript->RegisterSelf(); 
    410410 
    411411    newscript = new Script; 
    412412    newscript->Name="mobs_nether_drake"; 
    413413    newscript->GetAI = GetAI_mobs_nether_drake; 
    414     m_scripts[nrscripts++] = newscript; 
     414    newscript->RegisterSelf(); 
    415415 
    416416    newscript = new Script; 
    417417    newscript->Name="npc_daranelle"; 
    418418    newscript->GetAI = GetAI_npc_daranelle; 
    419     m_scripts[nrscripts++] = newscript; 
     419    newscript->RegisterSelf(); 
    420420 
    421421    newscript = new Script; 
     
    423423    newscript->pGossipHello = &GossipHello_npc_overseer_nuaar; 
    424424    newscript->pGossipSelect = &GossipSelect_npc_overseer_nuaar; 
    425     m_scripts[nrscripts++] = newscript; 
     425    newscript->RegisterSelf(); 
    426426 
    427427    newscript = new Script; 
     
    429429    newscript->pGossipHello = &GossipHello_npc_saikkal_the_elder; 
    430430    newscript->pGossipSelect = &GossipSelect_npc_saikkal_the_elder; 
    431     m_scripts[nrscripts++] = newscript; 
     431    newscript->RegisterSelf(); 
    432432 
    433433    newscript = new Script; 
     
    435435    newscript->pGossipHello =  &GossipHello_npc_skyguard_handler_irena; 
    436436    newscript->pGossipSelect = &GossipSelect_npc_skyguard_handler_irena; 
    437     m_scripts[nrscripts++] = newscript; 
    438 } 
     437    newscript->RegisterSelf(); 
     438} 
  • trunk/src/bindings/scripts/scripts/zone/blasted_lands/blasted_lands.cpp

    r272 r279  
    150150    newscript->pGossipHello =  &GossipHello_npc_deathly_usher; 
    151151    newscript->pGossipSelect = &GossipSelect_npc_deathly_usher; 
    152     m_scripts[nrscripts++] = newscript; 
     152    newscript->RegisterSelf(); 
    153153 
    154154    newscript = new Script; 
     
    156156    newscript->pGossipHello =  &GossipHello_npc_fallen_hero_of_horde; 
    157157    newscript->pGossipSelect = &GossipSelect_npc_fallen_hero_of_horde; 
    158     m_scripts[nrscripts++] = newscript; 
     158    newscript->RegisterSelf(); 
    159159} 
  • trunk/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp

    r272 r279  
    179179    newscript->Name="boss_kruul"; 
    180180    newscript->GetAI = GetAI_boss_kruul; 
    181     m_scripts[nrscripts++] = newscript; 
     181    newscript->RegisterSelf(); 
    182182} 
  • trunk/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp

    r272 r279  
    132132    newscript->Name="mob_webbed_creature"; 
    133133    newscript->GetAI = GetAI_mob_webbed_creature; 
    134     m_scripts[nrscripts++] = newscript; 
     134    newscript->RegisterSelf(); 
    135135 
    136136    newscript = new Script; 
     
    138138    newscript->pGossipHello =  &GossipHello_npc_captured_sunhawk_agent; 
    139139    newscript->pGossipSelect = &GossipSelect_npc_captured_sunhawk_agent; 
    140     m_scripts[nrscripts++] = newscript; 
     140    newscript->RegisterSelf(); 
    141141} 
  • trunk/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp

    r272 r279  
    148148    newscript->pGossipHello =  &GossipHello_npc_ragged_john; 
    149149    newscript->pGossipSelect = &GossipSelect_npc_ragged_john; 
    150     m_scripts[nrscripts++] = newscript; 
     150    newscript->RegisterSelf(); 
    151151} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp

    r272 r279  
    118118    newscript->Name="boss_aeonus"; 
    119119    newscript->GetAI = GetAI_boss_aeonus; 
    120     m_scripts[nrscripts++] = newscript; 
     120    newscript->RegisterSelf(); 
    121121} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp

    r272 r279  
    106106    newscript->Name="boss_chrono_lord_deja"; 
    107107    newscript->GetAI = GetAI_boss_chrono_lord_deja; 
    108     m_scripts[nrscripts++] = newscript; 
     108    newscript->RegisterSelf(); 
    109109} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp

    r272 r279  
    140140    newscript->Name="boss_temporus"; 
    141141    newscript->GetAI = GetAI_boss_temporus; 
    142     m_scripts[nrscripts++] = newscript; 
     142    newscript->RegisterSelf(); 
    143143} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp

    r272 r279  
    770770    newscript->Name="boss_archimonde"; 
    771771    newscript->GetAI = GetAI_boss_archimonde; 
    772     m_scripts[nrscripts++] = newscript; 
     772    newscript->RegisterSelf(); 
    773773 
    774774    newscript = new Script; 
    775775    newscript->Name = "mob_doomfire"; 
    776776    newscript->GetAI = GetAI_mob_doomfire; 
    777     m_scripts[nrscripts++] = newscript; 
     777    newscript->RegisterSelf(); 
    778778 
    779779    newscript = new Script; 
    780780    newscript->Name = "mob_doomfire_targetting"; 
    781781    newscript->GetAI = GetAI_mob_doomfire_targetting; 
    782     m_scripts[nrscripts++] = newscript; 
     782    newscript->RegisterSelf(); 
    783783 
    784784    newscript = new Script; 
    785785    newscript->Name = "mob_ancient_wisp"; 
    786786    newscript->GetAI = GetAI_mob_ancient_wisp; 
    787     m_scripts[nrscripts++] = newscript; 
     787    newscript->RegisterSelf(); 
    788788} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp

    r272 r279  
    201201    newscript->pGossipHello = &GossipHello_npc_jaina_proudmoore; 
    202202    newscript->pGossipSelect = &GossipSelect_npc_jaina_proudmoore; 
    203     m_scripts[nrscripts++] = newscript; 
     203    newscript->RegisterSelf(); 
    204204 
    205205    newscript = new Script; 
     
    208208    newscript->pGossipHello = &GossipHello_npc_thrall; 
    209209    newscript->pGossipSelect = &GossipSelect_npc_thrall; 
    210     m_scripts[nrscripts++] = newscript; 
     210    newscript->RegisterSelf(); 
    211211 
    212212    newscript = new Script; 
     
    214214    newscript->pGossipHello = &GossipHello_npc_tyrande_whisperwind; 
    215215    newscript->pGossipSelect = &GossipSelect_npc_tyrande_whisperwind; 
    216     m_scripts[nrscripts++] = newscript; 
    217 } 
     216    newscript->RegisterSelf(); 
     217} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp

    r272 r279  
    200200    newscript->Name = "instance_hyjal"; 
    201201    newscript->GetInstanceData = GetInstanceData_instance_mount_hyjal; 
    202     m_scripts[nrscripts++] = newscript; 
     202    newscript->RegisterSelf(); 
    203203} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp

    r272 r279  
    153153    newscript->Name="boss_captain_skarloc"; 
    154154    newscript->GetAI = GetAI_boss_captain_skarloc; 
    155     m_scripts[nrscripts++] = newscript; 
     155    newscript->RegisterSelf(); 
    156156} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp

    r272 r279  
    147147    newscript->Name="boss_epoch_hunter"; 
    148148    newscript->GetAI = GetAI_boss_epoch_hunter; 
    149     m_scripts[nrscripts++] = newscript; 
     149    newscript->RegisterSelf(); 
    150150} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp

    r272 r279  
    195195    newscript->Name="go_barrel_old_hillsbrad"; 
    196196    newscript->pGOHello = &GOHello_go_barrel_old_hillsbrad; 
    197     m_scripts[nrscripts++] = newscript; 
     197    newscript->RegisterSelf(); 
    198198 
    199199    newscript = new Script; 
    200200    newscript->Name="boss_lieutenant_drake"; 
    201201    newscript->GetAI = GetAI_boss_lieutenant_drake; 
    202     m_scripts[nrscripts++] = newscript; 
     202    newscript->RegisterSelf(); 
    203203} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp

    r272 r279  
    175175    newscript->Name = "instance_old_hillsbrad"; 
    176176    newscript->GetInstanceData = GetInstanceData_instance_old_hillsbrad; 
    177     m_scripts[nrscripts++] = newscript; 
     177    newscript->RegisterSelf(); 
    178178} 
  • trunk/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp

    r272 r279  
    894894    newscript->pGossipHello =   &GossipHello_npc_brazen; 
    895895    newscript->pGossipSelect =  &GossipSelect_npc_brazen; 
    896     m_scripts[nrscripts++] = newscript; 
     896    newscript->RegisterSelf(); 
    897897 
    898898    newscript = new Script; 
     
    900900    newscript->pGossipHello =   &GossipHello_npc_erozion; 
    901901    newscript->pGossipSelect =  &GossipSelect_npc_erozion; 
    902     m_scripts[nrscripts++] = newscript; 
     902    newscript->RegisterSelf(); 
    903903 
    904904    newscript = new Script; 
     
    907907    newscript->pGossipSelect = &GossipSelect_npc_thrall_old_hillsbrad; 
    908908    newscript->GetAI = GetAI_npc_thrall_old_hillsbrad; 
    909     m_scripts[nrscripts++] = newscript; 
     909    newscript->RegisterSelf(); 
    910910 
    911911    newscript = new Script; 
     
    913913    newscript->pGossipHello =   &GossipHello_npc_taretha; 
    914914    newscript->pGossipSelect =  &GossipSelect_npc_taretha; 
    915     m_scripts[nrscripts++] = newscript; 
    916 } 
     915    newscript->RegisterSelf(); 
     916} 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp

    r272 r279  
    745745    newscript->Name="boss_fathomlord_karathress"; 
    746746    newscript->GetAI = GetAI_boss_fathomlord_karathress; 
    747     m_scripts[nrscripts++] = newscript; 
     747    newscript->RegisterSelf(); 
    748748 
    749749    newscript = new Script; 
    750750    newscript->Name="boss_fathomguard_sharkkis"; 
    751751    newscript->GetAI = GetAI_boss_fathomguard_sharkkis; 
    752     m_scripts[nrscripts++] = newscript; 
     752    newscript->RegisterSelf(); 
    753753 
    754754    newscript = new Script; 
    755755    newscript->Name="boss_fathomguard_tidalvess"; 
    756756    newscript->GetAI = GetAI_boss_fathomguard_tidalvess; 
    757     m_scripts[nrscripts++] = newscript; 
     757    newscript->RegisterSelf(); 
    758758 
    759759    newscript = new Script; 
    760760    newscript->Name="boss_fathomguard_caribdis"; 
    761761    newscript->GetAI = GetAI_boss_fathomguard_caribdis; 
    762     m_scripts[nrscripts++] = newscript; 
     762    newscript->RegisterSelf(); 
    763763} 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp

    r272 r279  
    383383    newscript->Name="boss_hydross_the_unstable"; 
    384384    newscript->GetAI = GetAI_boss_hydross_the_unstable; 
    385     m_scripts[nrscripts++] = newscript; 
     385    newscript->RegisterSelf(); 
    386386} 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp

    r272 r279  
    251251                        //remove old tainted cores to prevent cheating in phase 2 
    252252                        Map *map = m_creature->GetMap(); 
    253                         InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    254                         for(InstanceMap::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i) 
    255             { 
    256                 if((*i)) 
     253                        Map::PlayerList const &PlayerList = map->GetPlayers(); 
     254                        for(Map::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i) 
     255            { 
     256                if(Player* i_pl = i->getSource()) 
    257257                { 
    258                     (*i)->DestroyItemCount(31088, 1, true); 
     258                    i_pl->DestroyItemCount(31088, 1, true); 
    259259                } 
    260260            } 
     
    10301030    newscript->Name="boss_lady_vashj"; 
    10311031    newscript->GetAI = GetAI_boss_lady_vashj; 
    1032     m_scripts[nrscripts++] = newscript; 
     1032    newscript->RegisterSelf(); 
    10331033 
    10341034    newscript = new Script; 
    10351035    newscript->Name="mob_enchanted_elemental"; 
    10361036    newscript->GetAI = GetAI_mob_enchanted_elemental; 
    1037     m_scripts[nrscripts++] = newscript; 
     1037    newscript->RegisterSelf(); 
    10381038 
    10391039    newscript = new Script; 
    10401040    newscript->Name="mob_tainted_elemental"; 
    10411041    newscript->GetAI = GetAI_mob_tainted_elemental; 
    1042     m_scripts[nrscripts++] = newscript; 
     1042    newscript->RegisterSelf(); 
    10431043 
    10441044    newscript = new Script; 
    10451045    newscript->Name="mob_toxic_sporebat"; 
    10461046    newscript->GetAI = GetAI_mob_toxic_sporebat; 
    1047     m_scripts[nrscripts++] = newscript; 
     1047    newscript->RegisterSelf(); 
    10481048 
    10491049    newscript = new Script; 
    10501050    newscript->Name="mob_coilfang_elite"; 
    10511051    newscript->GetAI = GetAI_mob_coilfang_elite; 
    1052     m_scripts[nrscripts++] = newscript; 
     1052    newscript->RegisterSelf(); 
    10531053 
    10541054    newscript = new Script; 
    10551055    newscript->Name="mob_coilfang_strider"; 
    10561056    newscript->GetAI = GetAI_mob_coilfang_strider; 
    1057     m_scripts[nrscripts++] = newscript; 
     1057    newscript->RegisterSelf(); 
    10581058 
    10591059    newscript = new Script; 
    10601060    newscript->Name="mob_shield_generator_channel"; 
    10611061    newscript->GetAI = GetAI_mob_shield_generator_channel; 
    1062     m_scripts[nrscripts++] = newscript; 
     1062    newscript->RegisterSelf(); 
    10631063 
    10641064    newscript = new Script; 
    10651065    newscript->Name="item_tainted_core"; 
    10661066    newscript->pItemUse = ItemUse_item_tainted_core; 
    1067     m_scripts[nrscripts++] = newscript; 
     1067    newscript->RegisterSelf(); 
    10681068} 
    10691069 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp

    r272 r279  
    755755                { 
    756756                        Map *map = m_creature->GetMap(); 
    757                         InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    758                         for(InstanceMap::PlayerList::const_iterator itr = PlayerList.begin();itr != PlayerList.end(); ++itr) 
     757                        Map::PlayerList const &PlayerList = map->GetPlayers(); 
     758                        for(Map::PlayerList::const_iterator itr = PlayerList.begin();itr != PlayerList.end(); ++itr) 
    759759            { 
    760                                 bool isCasting = false; 
    761                                 for(uint8 i = 0; i < CURRENT_MAX_SPELL; ++i) 
    762                                         if((*itr)->m_currentSpells[i]) 
    763                                                 isCasting = true; 
    764                                  
    765                                 if(isCasting) 
    766                                 { 
    767                                         DoCast((*itr), SPELL_EARTHSHOCK); 
    768                                         break; 
    769                                 } 
     760                if (Player* i_pl = itr->getSource()) 
     761                { 
     762                                    bool isCasting = false; 
     763                                    for(uint8 i = 0; i < CURRENT_MAX_SPELL; ++i) 
     764                                            if(i_pl->m_currentSpells[i]) 
     765                                                    isCasting = true; 
     766                                 
     767                                    if(isCasting) 
     768                                    { 
     769                                            DoCast(i_pl, SPELL_EARTHSHOCK); 
     770                                            break; 
     771                                    } 
     772                } 
    770773                        } 
    771774                        Earthshock_Timer = 8000 + rand()%7000; 
     
    802805    newscript->Name="boss_leotheras_the_blind"; 
    803806    newscript->GetAI = GetAI_boss_leotheras_the_blind; 
    804     m_scripts[nrscripts++] = newscript; 
     807    newscript->RegisterSelf(); 
    805808 
    806809    newscript = new Script; 
    807810    newscript->Name="boss_leotheras_the_blind_demonform"; 
    808811    newscript->GetAI = GetAI_boss_leotheras_the_blind_demonform; 
    809     m_scripts[nrscripts++] = newscript; 
     812    newscript->RegisterSelf(); 
    810813 
    811814        newscript = new Script; 
    812815    newscript->Name="mob_greyheart_spellbinder"; 
    813816    newscript->GetAI = GetAI_mob_greyheart_spellbinder; 
    814     m_scripts[nrscripts++] = newscript; 
     817    newscript->RegisterSelf(); 
    815818 
    816819        newscript = new Script; 
    817820    newscript->Name="mob_inner_demon"; 
    818821    newscript->GetAI = GetAI_mob_inner_demon; 
    819     m_scripts[nrscripts++] = newscript; 
     822    newscript->RegisterSelf(); 
    820823} 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp

    r272 r279  
    168168    newscript->Name="boss_the_lurker_below"; 
    169169    newscript->GetAI = GetAI_boss_the_lurker_below; 
    170     m_scripts[nrscripts++] = newscript; 
     170    newscript->RegisterSelf(); 
    171171 
    172172        newscript = new Script; 
    173173    newscript->Name="mob_coilfang_guardian"; 
    174174    newscript->GetAI = GetAI_mob_coilfang_guardian; 
    175     m_scripts[nrscripts++] = newscript; 
     175    newscript->RegisterSelf(); 
    176176 
    177177        newscript = new Script; 
    178178    newscript->Name="mob_coilfang_ambusher"; 
    179179    newscript->GetAI = GetAI_mob_coilfang_ambusher; 
    180     m_scripts[nrscripts++] = newscript; 
     180    newscript->RegisterSelf(); 
    181181} 
    182182 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp

    r272 r279  
    351351    newscript->Name="boss_morogrim_tidewalker"; 
    352352    newscript->GetAI = GetAI_boss_morogrim_tidewalker; 
    353     m_scripts[nrscripts++] = newscript; 
     353    newscript->RegisterSelf(); 
    354354 
    355355    newscript = new Script; 
    356356    newscript->Name="mob_water_globule"; 
    357357    newscript->GetAI = GetAI_mob_water_globule; 
    358     m_scripts[nrscripts++] = newscript; 
     358    newscript->RegisterSelf(); 
    359359} 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp

    r272 r279  
    216216    newscript->Name = "instance_serpent_shrine"; 
    217217    newscript->GetInstanceData = GetInstanceData_instance_serpentshrine_cavern; 
    218     m_scripts[nrscripts++] = newscript; 
     218    newscript->RegisterSelf(); 
    219219} 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp

    r272 r279  
    189189    newscript->Name="boss_hydromancer_thespia"; 
    190190    newscript->GetAI = GetAI_boss_thespiaAI; 
    191     m_scripts[nrscripts++] = newscript; 
     191    newscript->RegisterSelf(); 
    192192 
    193193    newscript = new Script; 
    194194    newscript->Name="mob_coilfang_waterelemental"; 
    195195    newscript->GetAI = GetAI_mob_coilfang_waterelementalAI; 
    196     m_scripts[nrscripts++] = newscript; 
     196    newscript->RegisterSelf(); 
    197197} 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp

    r272 r279  
    272272    newscript->Name="boss_mekgineer_steamrigger"; 
    273273    newscript->GetAI = GetAI_boss_mekgineer_steamrigger; 
    274     m_scripts[nrscripts++] = newscript; 
     274    newscript->RegisterSelf(); 
    275275 
    276276    newscript = new Script; 
    277277    newscript->Name="mob_steamrigger_mechanic"; 
    278278    newscript->GetAI = GetAI_mob_steamrigger_mechanic; 
    279     m_scripts[nrscripts++] = newscript; 
     279    newscript->RegisterSelf(); 
    280280} 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp

    r272 r279  
    227227    newscript->Name="mob_naga_distiller"; 
    228228    newscript->GetAI = GetAI_mob_naga_distiller; 
    229     m_scripts[nrscripts++] = newscript; 
     229    newscript->RegisterSelf(); 
    230230 
    231231    newscript = new Script; 
    232232    newscript->Name="boss_warlord_kalithresh"; 
    233233    newscript->GetAI = GetAI_boss_warlord_kalithresh; 
    234     m_scripts[nrscripts++] = newscript; 
     234    newscript->RegisterSelf(); 
    235235} 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp

    r272 r279  
    167167    newscript->Name = "instance_steam_vault"; 
    168168    newscript->GetInstanceData = GetInstanceData_instance_steam_vault; 
    169     m_scripts[nrscripts++] = newscript; 
     169    newscript->RegisterSelf(); 
    170170} 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp

    r272 r279  
    148148    newscript->Name="boss_hungarfen"; 
    149149    newscript->GetAI = GetAI_boss_hungarfen; 
    150     m_scripts[nrscripts++] = newscript; 
     150    newscript->RegisterSelf(); 
    151151 
    152152    newscript = new Script; 
    153153    newscript->Name="mob_underbog_mushroom"; 
    154154    newscript->GetAI = GetAI_mob_underbog_mushroom; 
    155     m_scripts[nrscripts++] = newscript; 
     155    newscript->RegisterSelf(); 
    156156} 
  • trunk/src/bindings/scripts/scripts/zone/dun_morogh/dun_morogh.cpp

    r272 r279  
    9595    newscript->Name="npc_narm_faulk"; 
    9696    newscript->GetAI = GetAI_npc_narm_faulk; 
    97     m_scripts[nrscripts++] = newscript; 
     97    newscript->RegisterSelf(); 
    9898} 
  • trunk/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp

    r272 r279  
    205205    newscript->Name="mobs_risen_husk_spirit"; 
    206206    newscript->GetAI = GetAI_mobs_risen_husk_spirit; 
    207     m_scripts[nrscripts++] = newscript; 
     207    newscript->RegisterSelf(); 
    208208 
    209209    newscript = new Script; 
    210210    newscript->Name="npc_restless_apparition"; 
    211211    newscript->pGossipHello =   &GossipHello_npc_restless_apparition; 
    212     m_scripts[nrscripts++] = newscript; 
     212    newscript->RegisterSelf(); 
    213213 
    214214    newscript = new Script; 
     
    216216    newscript->GetAI = GetAI_npc_deserter_agitator; 
    217217    newscript->pGossipHello = &GossipHello_npc_deserter_agitator; 
    218     m_scripts[nrscripts++] = newscript; 
     218    newscript->RegisterSelf(); 
    219219 
    220220    newscript = new Script; 
     
    222222    newscript->pGossipHello = &GossipHello_npc_lady_jaina_proudmoore; 
    223223    newscript->pGossipSelect = &GossipSelect_npc_lady_jaina_proudmoore; 
    224     m_scripts[nrscripts++] = newscript; 
     224    newscript->RegisterSelf(); 
    225225 
    226226    newscript = new Script; 
     
    228228    newscript->pGossipHello = &GossipHello_npc_nat_pagle; 
    229229    newscript->pGossipSelect = &GossipSelect_npc_nat_pagle; 
    230     m_scripts[nrscripts++] = newscript; 
    231 } 
     230    newscript->RegisterSelf(); 
     231} 
  • trunk/src/bindings/scripts/scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp

    r272 r279  
    159159    newscript->Name="mobs_ghoul_flayer"; 
    160160    newscript->GetAI = GetAI_mobs_ghoul_flayer; 
    161     m_scripts[nrscripts++] = newscript; 
     161    newscript->RegisterSelf(); 
    162162 
    163163    newscript = new Script; 
     
    165165    newscript->pGossipHello = &GossipHello_npc_augustus_the_touched; 
    166166    newscript->pGossipSelect = &GossipSelect_npc_augustus_the_touched; 
    167     m_scripts[nrscripts++] = newscript; 
     167    newscript->RegisterSelf(); 
    168168 
    169169    newscript = new Script; 
     
    171171    newscript->GetAI = GetAI_npc_darrowshire_spirit; 
    172172    newscript->pGossipHello = &GossipHello_npc_darrowshire_spirit; 
    173     m_scripts[nrscripts++] = newscript; 
     173    newscript->RegisterSelf(); 
    174174 
    175175    newscript = new Script; 
     
    177177    newscript->pGossipHello =  &GossipHello_npc_tirion_fordring; 
    178178    newscript->pGossipSelect = &GossipSelect_npc_tirion_fordring; 
    179     m_scripts[nrscripts++] = newscript; 
     179    newscript->RegisterSelf(); 
    180180} 
  • trunk/src/bindings/scripts/scripts/zone/elwynn_forest/elwynn_forest.cpp

    r272 r279  
    9595    newscript->Name="npc_henze_faulk"; 
    9696    newscript->GetAI = GetAI_npc_henze_faulk; 
    97     m_scripts[nrscripts++] = newscript; 
     97    newscript->RegisterSelf(); 
    9898} 
  • trunk/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp

    r272 r279  
    153153    newscript->Name="mobs_mana_tapped"; 
    154154    newscript->GetAI = GetAI_mobs_mana_tapped; 
    155     m_scripts[nrscripts++] = newscript; 
     155    newscript->RegisterSelf(); 
    156156 
    157157    newscript = new Script; 
     
    160160    newscript->pGossipHello =  &GossipHello_npc_prospector_anvilward; 
    161161    newscript->pGossipSelect = &GossipSelect_npc_prospector_anvilward; 
    162     m_scripts[nrscripts++] = newscript; 
     162    newscript->RegisterSelf(); 
    163163} 
  • trunk/src/bindings/scripts/scripts/zone/felwood/felwood.cpp

    r272 r279  
    8686    newscript->pGossipHello = &GossipHello_npcs_riverbreeze_and_silversky; 
    8787    newscript->pGossipSelect = &GossipSelect_npcs_riverbreeze_and_silversky; 
    88     m_scripts[nrscripts++] = newscript; 
     88    newscript->RegisterSelf(); 
    8989} 
  • trunk/src/bindings/scripts/scripts/zone/feralas/feralas.cpp

    r272 r279  
    7777    newscript->pGossipHello = &GossipHello_npc_gregan_brewspewer; 
    7878    newscript->pGossipSelect = &GossipSelect_npc_gregan_brewspewer; 
    79     m_scripts[nrscripts++] = newscript; 
     79    newscript->RegisterSelf(); 
    8080 
    8181    newscript = new Script; 
    8282    newscript->Name="npc_screecher_spirit"; 
    8383    newscript->pGossipHello = &GossipHello_npc_screecher_spirit; 
    84     m_scripts[nrscripts++] = newscript; 
     84    newscript->RegisterSelf(); 
    8585} 
  • trunk/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp

    r272 r279  
    134134    newscript->pGossipHello = &GossipHello_npc_blood_knight_dawnstar; 
    135135    newscript->pGossipSelect = &GossipSelect_npc_blood_knight_dawnstar; 
    136     m_scripts[nrscripts++] = newscript; 
     136    newscript->RegisterSelf(); 
    137137 
    138138    newscript = new Script; 
     
    140140    newscript->pGossipHello = &GossipHello_npc_budd_nedreck; 
    141141    newscript->pGossipSelect = &GossipSelect_npc_budd_nedreck; 
    142     m_scripts[nrscripts++] = newscript; 
     142    newscript->RegisterSelf(); 
    143143 
    144144    newscript = new Script; 
     
    146146    newscript->pGossipHello = &GossipHello_npc_rathis_tomber; 
    147147    newscript->pGossipSelect = &GossipSelect_npc_rathis_tomber; 
    148     m_scripts[nrscripts++] = newscript; 
     148    newscript->RegisterSelf(); 
    149149 
    150150    newscript = new Script; 
    151151    newscript->Name = "go_gilded_brazier"; 
    152152    newscript->pGOHello = &GOHello_gilded_brazier; 
    153     m_scripts[nrscripts++] = newscript; 
     153    newscript->RegisterSelf(); 
    154154} 
  • trunk/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp

    r272 r279  
    301301    newscript->Name="boss_gruul"; 
    302302    newscript->GetAI = GetAI_boss_gruul; 
    303     m_scripts[nrscripts++] = newscript; 
     303    newscript->RegisterSelf(); 
    304304} 
  • trunk/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp

    r272 r279  
    818818    newscript->Name="boss_high_king_maulgar"; 
    819819    newscript->GetAI = GetAI_boss_high_king_maulgar; 
    820     m_scripts[nrscripts++] = newscript; 
     820    newscript->RegisterSelf(); 
    821821 
    822822    newscript = new Script; 
    823823    newscript->Name="boss_kiggler_the_crazed"; 
    824824    newscript->GetAI = GetAI_boss_kiggler_the_crazed; 
    825     m_scripts[nrscripts++] = newscript; 
     825    newscript->RegisterSelf(); 
    826826 
    827827    newscript = new Script; 
    828828    newscript->Name="boss_blindeye_the_seer"; 
    829829    newscript->GetAI = GetAI_boss_blindeye_the_seer; 
    830     m_scripts[nrscripts++] = newscript; 
     830    newscript->RegisterSelf(); 
    831831 
    832832    newscript = new Script; 
    833833    newscript->Name="boss_olm_the_summoner"; 
    834834    newscript->GetAI = GetAI_boss_olm_the_summoner; 
    835     m_scripts[nrscripts++] = newscript; 
     835    newscript->RegisterSelf(); 
    836836 
    837837    newscript = new Script; 
    838838    newscript->Name="boss_krosh_firehand"; 
    839839    newscript->GetAI = GetAI_boss_krosh_firehand; 
    840     m_scripts[nrscripts++] = newscript; 
     840    newscript->RegisterSelf(); 
    841841} 
  • trunk/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp

    r272 r279  
    185185    newscript->Name = "instance_gruuls_lair"; 
    186186    newscript->GetInstanceData = GetInstanceData_instance_gruuls_lair; 
    187     m_scripts[nrscripts++] = newscript; 
     187    newscript->RegisterSelf(); 
    188188} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp

    r272 r279  
    124124    newscript->Name="boss_broggok"; 
    125125    newscript->GetAI = GetAI_boss_broggokAI; 
    126     m_scripts[nrscripts++] = newscript; 
     126    newscript->RegisterSelf(); 
    127127 
    128128    newscript = new Script; 
    129129    newscript->Name="mob_broggok_poisoncloud"; 
    130130    newscript->GetAI = GetAI_mob_broggok_poisoncloudAI; 
    131     m_scripts[nrscripts++] = newscript; 
     131    newscript->RegisterSelf(); 
    132132} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp

    r272 r279  
    226226    newscript->Name="boss_kelidan_the_breaker"; 
    227227    newscript->GetAI = GetAI_boss_kelidan_the_breaker; 
    228     m_scripts[nrscripts++] = newscript; 
     228    newscript->RegisterSelf(); 
    229229 
    230230    newscript = new Script; 
    231231    newscript->Name="mob_shadowmoon_channeler"; 
    232232    newscript->GetAI = GetAI_mob_shadowmoon_channeler; 
    233     m_scripts[nrscripts++] = newscript; 
     233    newscript->RegisterSelf(); 
    234234} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp

    r272 r279  
    128128    newscript->Name="boss_the_maker"; 
    129129    newscript->GetAI = GetAI_boss_the_makerAI; 
    130     m_scripts[nrscripts++] = newscript; 
     130    newscript->RegisterSelf(); 
    131131} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp

    r272 r279  
    210210    newscript->Name="boss_omor_the_unscarred"; 
    211211    newscript->GetAI = GetAI_boss_omor_the_unscarredAI; 
    212     m_scripts[nrscripts++] = newscript; 
     212    newscript->RegisterSelf(); 
    213213} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp

    r272 r279  
    165165    newscript->Name="boss_watchkeeper_gargolmar"; 
    166166    newscript->GetAI = GetAI_boss_watchkeeper_gargolmarAI; 
    167     m_scripts[nrscripts++] = newscript; 
     167    newscript->RegisterSelf(); 
    168168} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp

    r272 r279  
    546546    newscript->Name="boss_magtheridon"; 
    547547    newscript->GetAI = GetAI_boss_magtheridon; 
    548     m_scripts[nrscripts++] = newscript; 
     548    newscript->RegisterSelf(); 
    549549 
    550550    newscript = new Script; 
    551551    newscript->Name="mob_hellfire_channeler"; 
    552552    newscript->GetAI = GetAI_mob_hellfire_channeler; 
    553     m_scripts[nrscripts++] = newscript; 
     553    newscript->RegisterSelf(); 
    554554 
    555555    newscript = new Script; 
    556556    newscript->Name="go_manticron_cube"; 
    557557    newscript->pGOHello = &GOHello_go_Manticron_Cube; 
    558     m_scripts[nrscripts++] = newscript; 
     558    newscript->RegisterSelf(); 
    559559 
    560560    newscript = new Script; 
    561561    newscript->Name="mob_abyssal"; 
    562562    newscript->GetAI = GetAI_mob_abyssalAI; 
    563     m_scripts[nrscripts++] = newscript; 
     563    newscript->RegisterSelf(); 
    564564 
    565565} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp

    r272 r279  
    119119    void SetData(uint32 type, uint32 data) 
    120120    { 
    121         Player *player = GetPlayer(); 
    122         if(!player) return; 
    123  
    124121        switch(type) 
    125122        { 
     
    130127            if(data != IN_PROGRESS) 
    131128            { 
    132                 if(GameObject *Door = GameObject::GetGameObject(*player, DoorGUID)) 
     129                if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID)) 
    133130                    Door->SetGoState(0); 
    134131            } 
     
    143140                    for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) 
    144141                    { 
    145                         if(Creature *Channeler = (Creature*)Unit::GetUnit(*player, *i)) 
     142                        if(Creature *Channeler = instance->GetCreatureInMap(*i)) 
    146143                        { 
    147144                            if(Channeler->isAlive()) 
     
    152149                    } 
    153150                    CageTimer = 0; 
    154                     if(GameObject *Door = GameObject::GetGameObject(*player, DoorGUID)) 
     151                    if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID)) 
    155152                        Door->SetGoState(0); 
    156153                }break; 
     
    162159                    for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) 
    163160                    { 
    164                         Creature *Channeler = (Creature*)Unit::GetUnit(*player, *i); 
     161                        Creature *Channeler = instance->GetCreatureInMap(*i); 
    165162                        if(Channeler && Channeler->isAlive()) 
    166163                        { 
     
    171168                    } 
    172169                    // Release Magtheridon after two minutes. 
    173                     Creature *Magtheridon = (Creature*)Unit::GetUnit(*player, MagtheridonGUID); 
     170                    Creature *Magtheridon = instance->GetCreatureInMap(MagtheridonGUID); 
    174171                    if(Magtheridon && Magtheridon->isAlive()) 
    175172                    { 
     
    177174                        CageTimer = 120000; 
    178175                    } 
    179                     if(GameObject *Door = GameObject::GetGameObject(*player, DoorGUID)) 
     176                    if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID)) 
    180177                        Door->SetGoState(1); 
    181178                }break; 
     
    183180                for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) 
    184181                { 
    185                     Unit *Channeler = Unit::GetUnit(*player, *i); 
     182                    Creature *Channeler = instance->GetCreatureInMap(*i); 
    186183                    if(Channeler && Channeler->isAlive()) 
    187184                    { 
     
    198195            for(std::set<uint64>::iterator i = ColumnGUID.begin(); i != ColumnGUID.end(); ++i) 
    199196            { 
    200                 if(GameObject *Column = GameObject::GetGameObject(*player, *i)) 
     197                if(GameObject *Column = instance->GetGameObjectInMap(*i)) 
    201198                    Column->SetGoState(!data); 
    202199            } 
     
    214211    } 
    215212 
    216     Player* GetPlayer() 
    217     { 
    218         if(((InstanceMap*)instance)->GetPlayers().size()) 
    219             return ((InstanceMap*)instance)->GetPlayers().front(); 
    220         return NULL; 
    221     } 
    222  
    223213    void AttackNearestTarget(Creature *creature) 
    224214    { 
     
    226216        float range; 
    227217        Player* target = NULL; 
    228         InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)instance)->GetPlayers(); 
    229         InstanceMap::PlayerList::const_iterator i; 
     218        Map::PlayerList const &PlayerList = instance->GetPlayers(); 
     219        Map::PlayerList::const_iterator i; 
    230220        for(i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    231221        { 
    232             if((*i)->isTargetableForAttack()) 
    233             { 
    234                 range = (*i)->GetDistance(creature); 
    235                 if(range < minRange) 
    236                 { 
    237                     minRange = range; 
    238                     target = *i; 
    239                 }                 
     222            if(Player* i_pl = i->getSource()) 
     223            { 
     224                if(i_pl->isTargetableForAttack()) 
     225                { 
     226                    range = i_pl->GetDistance(creature); 
     227                    if(range < minRange) 
     228                    { 
     229                        minRange = range; 
     230                        target = i_pl; 
     231                    }                 
     232                } 
    240233            } 
    241234        } 
     
    249242            if(CageTimer <= diff) 
    250243            { 
    251                 if(Player *player = GetPlayer()) 
    252                 { 
    253                     Creature *Magtheridon = (Creature*)Unit::GetUnit(*player, MagtheridonGUID); 
    254                     if(Magtheridon && Magtheridon->isAlive()) 
    255                     { 
    256                         Magtheridon->clearUnitState(UNIT_STAT_STUNNED); 
    257                         AttackNearestTarget(Magtheridon); 
    258                     } 
     244                Creature *Magtheridon = instance->GetCreatureInMap(MagtheridonGUID); 
     245                if(Magtheridon && Magtheridon->isAlive()) 
     246                { 
     247                    Magtheridon->clearUnitState(UNIT_STAT_STUNNED); 
     248                    AttackNearestTarget(Magtheridon); 
    259249                } 
    260250                CageTimer = 0; 
     
    266256            if(RespawnTimer <= diff) 
    267257            { 
    268                 if(Player *player = GetPlayer()) 
    269                 { 
    270                     for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) 
    271                     { 
    272                         if(Creature *Channeler = (Creature*)Unit::GetUnit(*player, *i)) 
    273                         { 
    274                             if(Channeler->isAlive()) 
    275                                 Channeler->AI()->EnterEvadeMode(); 
    276                             else 
    277                                 Channeler->Respawn(); 
    278                         } 
     258                for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) 
     259                { 
     260                    if(Creature *Channeler = instance->GetCreatureInMap(*i)) 
     261                    { 
     262                        if(Channeler->isAlive()) 
     263                            Channeler->AI()->EnterEvadeMode(); 
     264                        else 
     265                            Channeler->Respawn(); 
    279266                    } 
    280267                } 
     
    296283    newscript->Name = "instance_magtheridons_lair"; 
    297284    newscript->GetInstanceData = GetInstanceData_instance_magtheridons_lair; 
    298     m_scripts[nrscripts++] = newscript; 
     285    newscript->RegisterSelf(); 
    299286} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp

    r272 r279  
    445445    newscript->Name="boss_grand_warlock_nethekurse"; 
    446446    newscript->GetAI = GetAI_boss_grand_warlock_nethekurse; 
    447     m_scripts[nrscripts++] = newscript; 
     447    newscript->RegisterSelf(); 
    448448 
    449449    newscript = new Script; 
    450450    newscript->Name="mob_fel_orc_convert"; 
    451451    newscript->GetAI = GetAI_mob_fel_orc_convert; 
    452     m_scripts[nrscripts++] = newscript; 
     452    newscript->RegisterSelf(); 
    453453 
    454454    newscript = new Script; 
    455455    newscript->Name="mob_lesser_shadow_fissure"; 
    456456    newscript->GetAI = GetAI_mob_lesser_shadow_fissure; 
    457     m_scripts[nrscripts++] = newscript; 
     457    newscript->RegisterSelf(); 
    458458} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp

    r272 r279  
    395395    newscript->Name="boss_warbringer_omrogg"; 
    396396    newscript->GetAI = GetAI_boss_warbringer_omrogg; 
    397     m_scripts[nrscripts++] = newscript; 
     397    newscript->RegisterSelf(); 
    398398 
    399399    newscript = new Script; 
    400400    newscript->Name="mob_omrogg_heads"; 
    401401    newscript->GetAI = GetAI_mob_omrogg_heads; 
    402     m_scripts[nrscripts++] = newscript; 
     402    newscript->RegisterSelf(); 
    403403} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp

    r272 r279  
    111111    newscript->Name = "instance_shattered_halls"; 
    112112    newscript->GetInstanceData = GetInstanceData_instance_shattered_halls; 
    113     m_scripts[nrscripts++] = newscript; 
     113    newscript->RegisterSelf(); 
    114114} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp

    r272 r279  
    138138    newscript->Name="boss_doomlord_kazzak"; 
    139139    newscript->GetAI = GetAI_boss_doomlordkazzak; 
    140     m_scripts[nrscripts++] = newscript; 
     140    newscript->RegisterSelf(); 
    141141} 
  • trunk/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp

    r272 r279  
    172172    newscript->pGossipHello =   &GossipHello_npc_wing_commander_dabiree; 
    173173    newscript->pGossipSelect =  &GossipSelect_npc_wing_commander_dabiree; 
    174     m_scripts[nrscripts++] = newscript; 
     174    newscript->RegisterSelf(); 
    175175 
    176176    newscript = new Script; 
     
    178178    newscript->pGossipHello =   &GossipHello_npc_gryphoneer_windbellow; 
    179179    newscript->pGossipSelect =  &GossipSelect_npc_gryphoneer_windbellow; 
    180     m_scripts[nrscripts++] = newscript; 
     180    newscript->RegisterSelf(); 
    181181 
    182182    newscript = new Script; 
     
    184184    newscript->pGossipHello =   &GossipHello_npc_wing_commander_brack; 
    185185    newscript->pGossipSelect =  &GossipSelect_npc_wing_commander_brack; 
    186     m_scripts[nrscripts++] = newscript; 
     186    newscript->RegisterSelf(); 
    187187} 
  • trunk/src/bindings/scripts/scripts/zone/ironforge/ironforge.cpp

    r272 r279  
    9090    newscript->pGossipHello =  &GossipHello_npc_royal_historian_archesonus; 
    9191    newscript->pGossipSelect = &GossipSelect_npc_royal_historian_archesonus; 
    92     m_scripts[nrscripts++] = newscript; 
     92    newscript->RegisterSelf(); 
    9393} 
  • trunk/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp

    r272 r279  
    141141    newscript->pGossipHello = &GossipHello_npc_ayren_cloudbreaker; 
    142142    newscript->pGossipSelect = &GossipSelect_npc_ayren_cloudbreaker; 
    143     m_scripts[nrscripts++] = newscript; 
     143    newscript->RegisterSelf(); 
    144144 
    145145    newscript = new Script; 
    146146    newscript->Name="npc_converted_sentry"; 
    147147    newscript->GetAI = GetAI_npc_converted_sentry; 
    148     m_scripts[nrscripts++] = newscript; 
     148    newscript->RegisterSelf(); 
    149149 
    150150    newscript = new Script; 
     
    152152    newscript->pGossipHello = &GossipHello_npc_unrestrained_dragonhawk; 
    153153    newscript->pGossipSelect = &GossipSelect_npc_unrestrained_dragonhawk; 
    154     m_scripts[nrscripts++] = newscript; 
     154    newscript->RegisterSelf(); 
    155155} 
  • trunk/src/bindings/scripts/scripts/zone/karazhan/boss_curator.cpp

    r272 r279  
    197197    newscript->Name="boss_curator"; 
    198198    newscript->GetAI = GetAI_boss_curator; 
    199     m_scripts[nrscripts++] = newscript; 
     199    newscript->RegisterSelf(); 
    200200} 
  • trunk/src/bindings/scripts/scripts/zone/karazhan/boss_maiden_of_virtue.cpp

    r272 r279  
    180180    newscript->Name="boss_maiden_of_virtue"; 
    181181    newscript->GetAI = GetAI_boss_maiden_of_virtue; 
    182     m_scripts[nrscripts++] = newscript; 
     182    newscript->RegisterSelf(); 
    183183} 
  • trunk/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp

    r272 r279  
    363363    newscript->Name="boss_attumen"; 
    364364    newscript->GetAI = GetAI_boss_attumen; 
    365     m_scripts[nrscripts++] = newscript; 
     365    newscript->RegisterSelf(); 
    366366 
    367367    newscript = new Script; 
    368368    newscript->Name="boss_midnight"; 
    369369    newscript->GetAI = GetAI_boss_midnight; 
    370     m_scripts[nrscripts++] = newscript; 
     370    newscript->RegisterSelf(); 
    371371} 
  • trunk/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp

    r272 r279  
    836836    newscript->Name="boss_moroes"; 
    837837    newscript->GetAI = GetAI_boss_moroes; 
    838     m_scripts[nrscripts++] = newscript; 
     838    newscript->RegisterSelf(); 
    839839 
    840840    newscript = new Script; 
    841841    newscript->Name="boss_baroness_dorothea_millstipe"; 
    842842    newscript->GetAI = GetAI_baroness_dorothea_millstipe; 
    843     m_scripts[nrscripts++] = newscript; 
     843    newscript->RegisterSelf(); 
    844844 
    845845    newscript = new Script; 
    846846    newscript->Name="boss_baron_rafe_dreuger"; 
    847847    newscript->GetAI = GetAI_baron_rafe_dreuger; 
    848     m_scripts[nrscripts++] = newscript; 
     848    newscript->RegisterSelf(); 
    849849 
    850850    newscript = new Script; 
    851851    newscript->Name="boss_lady_catriona_von_indi"; 
    852852    newscript->GetAI = GetAI_lady_catriona_von_indi; 
    853     m_scripts[nrscripts++] = newscript; 
     853    newscript->RegisterSelf(); 
    854854 
    855855    newscript = new Script; 
    856856    newscript->Name="boss_lady_keira_berrybuck"; 
    857857    newscript->GetAI = GetAI_lady_keira_berrybuck; 
    858     m_scripts[nrscripts++] = newscript; 
     858    newscript->RegisterSelf(); 
    859859 
    860860    newscript = new Script; 
    861861    newscript->Name="boss_lord_robin_daris"; 
    862862    newscript->GetAI = GetAI_lord_robin_daris; 
    863     m_scripts[nrscripts++] = newscript; 
     863    newscript->RegisterSelf(); 
    864864 
    865865    newscript = new Script; 
    866866    newscript->Name="boss_lord_crispin_ference"; 
    867867    newscript->GetAI = GetAI_lord_crispin_ference; 
    868     m_scripts[nrscripts++] = newscript; 
     868    newscript->RegisterSelf(); 
    869869} 
  • trunk/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp

    r272 r279  
    667667    newscript->Name="boss_malchezaar"; 
    668668    newscript->GetAI = GetAI_boss_malchezaar; 
    669     m_scripts[nrscripts++] = newscript; 
     669    newscript->RegisterSelf(); 
    670670 
    671671    newscript = new Script; 
    672672    newscript->Name="netherspite_infernal"; 
    673673    newscript->GetAI = GetAI_netherspite_infernal; 
    674     m_scripts[nrscripts++] = newscript; 
     674    newscript->RegisterSelf(); 
    675675} 
  • trunk/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp

    r272 r279  
    655655    newscript->Name="boss_shade_of_aran"; 
    656656    newscript->GetAI = GetAI_boss_aran; 
    657     m_scripts[nrscripts++] = newscript; 
     657    newscript->RegisterSelf(); 
    658658 
    659659    newscript = new Script; 
    660660    newscript->Name="mob_shadow_of_aran"; 
    661661    newscript->GetAI = GetAI_shadow_of_aran; 
    662     m_scripts[nrscripts++] = newscript; 
     662    newscript->RegisterSelf(); 
    663663 
    664664    newscript = new Script; 
    665665    newscript->Name="mob_aran_elemental"; 
    666666    newscript->GetAI = GetAI_water_elemental; 
    667     m_scripts[nrscripts++] = newscript; 
     667    newscript->RegisterSelf(); 
    668668 
    669669    //newscript = new Script; 
    670670    //newscript->Name="mob_aran_blizzard"; 
    671671    //newscript->GetAI = GetAI_boss_aran; 
    672     //m_scripts[nrscripts++] = newscript; 
     672    //newscript->RegisterSelf(); 
    673673} 
  • trunk/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp

    r272 r279  
    437437    newscript->Name="boss_terestian_illhoof"; 
    438438    newscript->GetAI = GetAI_boss_terestian_illhoof; 
    439     m_scripts[nrscripts++] = newscript; 
     439    newscript->RegisterSelf(); 
    440440 
    441441    newscript = new Script; 
    442442    newscript->Name="mob_karazhan_imp"; 
    443443    newscript->GetAI = GetAI_mob_karazhan_imp; 
    444     m_scripts[nrscripts++] = newscript; 
     444    newscript->RegisterSelf(); 
    445445 
    446446    newscript = new Script; 
    447447    newscript->Name="mob_kilrek"; 
    448448    newscript->GetAI = GetAI_mob_kilrek; 
    449     m_scripts[nrscripts++] = newscript; 
     449    newscript->RegisterSelf(); 
    450450 
    451451    newscript = new Script; 
    452452    newscript->Name = "mob_demon_chain"; 
    453453    newscript->GetAI = GetAI_mob_demon_chain; 
    454     m_scripts[nrscripts++] = newscript; 
     454    newscript->RegisterSelf(); 
    455455} 
  • trunk/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp

    r272 r279  
    14151415    newscript->GetAI = GetAI_boss_dorothee; 
    14161416    newscript->Name = "boss_dorothee"; 
    1417     m_scripts[nrscripts++] = newscript; 
     1417    newscript->RegisterSelf(); 
    14181418 
    14191419    newscript = new Script; 
    14201420    newscript->GetAI = GetAI_boss_strawman; 
    14211421    newscript->Name = "boss_strawman"; 
    1422     m_scripts[nrscripts++] = newscript; 
     1422    newscript->RegisterSelf(); 
    14231423 
    14241424    newscript = new Script; 
    14251425    newscript->GetAI = GetAI_boss_tinhead; 
    14261426    newscript->Name = "boss_tinhead"; 
    1427     m_scripts[nrscripts++] = newscript; 
     1427    newscript->RegisterSelf(); 
    14281428 
    14291429    newscript = new Script; 
    14301430    newscript->GetAI = GetAI_boss_roar; 
    14311431    newscript->Name = "boss_roar"; 
    1432     m_scripts[nrscripts++] = newscript; 
     1432    newscript->RegisterSelf(); 
    14331433 
    14341434    newscript = new Script; 
    14351435    newscript->GetAI = GetAI_boss_crone; 
    14361436    newscript->Name = "boss_crone"; 
    1437     m_scripts[nrscripts++] = newscript; 
     1437    newscript->RegisterSelf(); 
    14381438 
    14391439    newscript = new Script; 
    14401440    newscript->GetAI = GetAI_mob_tito; 
    14411441    newscript->Name = "mob_tito"; 
    1442     m_scripts[nrscripts++] = newscript; 
     1442    newscript->RegisterSelf(); 
    14431443 
    14441444    newscript = new Script; 
    14451445    newscript->GetAI = GetAI_mob_cyclone; 
    14461446    newscript->Name = "mob_cyclone"; 
    1447     m_scripts[nrscripts++] = newscript; 
     1447    newscript->RegisterSelf(); 
    14481448 
    14491449    // Hood 
     
    14521452    newscript->pGossipSelect = GossipSelect_npc_grandmother; 
    14531453    newscript->Name = "npc_grandmother"; 
    1454     m_scripts[nrscripts++] = newscript; 
     1454    newscript->RegisterSelf(); 
    14551455 
    14561456    newscript = new Script; 
    14571457    newscript->GetAI = GetAI_boss_bigbadwolf; 
    14581458    newscript->Name = "boss_bigbadwolf"; 
    1459     m_scripts[nrscripts++] = newscript; 
     1459    newscript->RegisterSelf(); 
    14601460 
    14611461    // Romeo And Juliet 
     
    14631463    newscript->GetAI = GetAI_boss_julianne; 
    14641464    newscript->Name = "boss_julianne"; 
    1465     m_scripts[nrscripts++] = newscript; 
     1465    newscript->RegisterSelf(); 
    14661466 
    14671467    newscript = new Script; 
    14681468    newscript->GetAI = GetAI_boss_romulo; 
    14691469    newscript->Name = "boss_romulo"; 
    1470     m_scripts[nrscripts++] = newscript; 
    1471 } 
     1470    newscript->RegisterSelf(); 
     1471} 
  • trunk/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp

    r272 r279  
    250250    newscript->Name = "instance_karazhan"; 
    251251    newscript->GetInstanceData = GetInstanceData_instance_karazhan; 
    252     m_scripts[nrscripts++] = newscript; 
     252    newscript->RegisterSelf(); 
    253253} 
  • trunk/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp

    r272 r279  
    286286                    if(!map->IsDungeon()) return; 
    287287 
    288                     InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    289                     if(PlayerList.empty()) 
     288                    Map::PlayerList const &PlayerList = map->GetPlayers(); 
     289                    if(PlayerList.isEmpty()) 
    290290                        return; 
    291291 
    292292                    RaidWiped = true; 
    293                     for(InstanceMap::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i) 
     293                    for(Map::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i) 
    294294                    { 
    295                         if((*i)->isAlive() && !(*i)->isGameMaster()) 
     295                        if (i->getSource()->isAlive() && !i->getSource()->isGameMaster()) 
    296296                        { 
    297297                            RaidWiped = false; 
     
    461461    newscript->pGossipHello = GossipHello_npc_barnes; 
    462462    newscript->pGossipSelect = GossipSelect_npc_barnes; 
    463     m_scripts[nrscripts++] = newscript; 
     463    newscript->RegisterSelf(); 
    464464 
    465465    newscript = new Script; 
     
    467467    newscript->pGossipHello = GossipHello_npc_berthold; 
    468468    newscript->pGossipSelect = GossipSelect_npc_berthold; 
    469     m_scripts[nrscripts++] = newscript; 
    470 } 
     469    newscript->RegisterSelf(); 
     470} 
  • trunk/src/bindings/scripts/scripts/zone/loch_modan/loch_modan.cpp

    r272 r279  
    8888    newscript->pGossipHello =  &GossipHello_npc_mountaineer_pebblebitty; 
    8989    newscript->pGossipSelect = &GossipSelect_npc_mountaineer_pebblebitty; 
    90     m_scripts[nrscripts++] = newscript; 
     90    newscript->RegisterSelf(); 
    9191} 
  • trunk/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp

    r272 r279  
    232232        m_creature->Relocate(KaelLocations[0][0], KaelLocations[0][1], LOCATION_Z, 0); 
    233233                Map *map = m_creature->GetMap(); 
    234         InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    235                 InstanceMap::PlayerList::const_iterator i; 
     234        Map::PlayerList const &PlayerList = map->GetPlayers(); 
     235                Map::PlayerList::const_iterator i; 
    236236                for (i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    237237                { 
    238                         //if(!(*i)->isGameMaster()) 
    239                         if((*i) && (*i)->isAlive()) 
    240                         { 
    241                                 (*i)->CastSpell((*i), SPELL_TELEPORT_CENTER, true); 
    242                                 m_creature->GetNearPoint(m_creature,x,y,z,5,5,0); 
    243                                 (*i)->TeleportTo(m_creature->GetMapId(),x,y,LOCATION_Z,(*i)->GetOrientation()); 
    244                         } 
     238                        if (Player* i_pl = i->getSource()) 
     239                            if(i_pl->isAlive()) 
     240                            { 
     241                                    i_pl->CastSpell(i_pl, SPELL_TELEPORT_CENTER, true); 
     242                                    m_creature->GetNearPoint(m_creature,x,y,z,5,5,0); 
     243                                    i_pl->TeleportTo(m_creature->GetMapId(),x,y,LOCATION_Z,i_pl->GetOrientation()); 
     244                            } 
    245245        } 
    246246        DoCast(m_creature, SPELL_TELEPORT_CENTER, true); 
     
    250250    { 
    251251                Map *map = m_creature->GetMap(); 
    252         InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    253                 InstanceMap::PlayerList::const_iterator i; 
     252        Map::PlayerList const &PlayerList = map->GetPlayers(); 
     253                Map::PlayerList::const_iterator i; 
    254254                for (i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    255                 {             
    256                         if((*i) && (*i)->isAlive()) 
     255                { 
     256            if (Player* i_pl = i->getSource()) 
     257                            if(i_pl->isAlive()) 
    257258                // Knockback into the air 
    258                 (*i)->CastSpell((*i), SPELL_GRAVITY_LAPSE_DOT, true, 0, 0, m_creature->GetGUID()); 
     259                    i_pl->CastSpell(i_pl, SPELL_GRAVITY_LAPSE_DOT, true, 0, 0, m_creature->GetGUID()); 
    259260        } 
    260261    } 
     
    263264    { 
    264265                Map *map = m_creature->GetMap(); 
    265                 InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    266                 InstanceMap::PlayerList::const_iterator i; 
     266                Map::PlayerList const &PlayerList = map->GetPlayers(); 
     267                Map::PlayerList::const_iterator i; 
     268                for (i = PlayerList.begin(); i != PlayerList.end(); ++i) 
     269                { 
     270            if (Player* i_pl = i->getSource()) 
     271            { 
     272                            if(i_pl->isAlive()) 
     273                { 
     274                    // Also needs an exception in spell system. 
     275                    i_pl->CastSpell(i_pl, SPELL_GRAVITY_LAPSE_FLY, true, 0, 0, m_creature->GetGUID()); 
     276                    // Use packet hack 
     277                    WorldPacket data(12); 
     278                    data.SetOpcode(SMSG_MOVE_SET_CAN_FLY); 
     279                    data.append(i_pl->GetPackGUID()); 
     280                    data << uint32(0); 
     281                    i_pl->SendMessageToSet(&data, true); 
     282                                    i_pl->SetSpeed(MOVE_FLY, 2.0f); 
     283                } 
     284            } 
     285        } 
     286    } 
     287 
     288    void RemoveGravityLapse() 
     289    { 
     290                Map *map = m_creature->GetMap(); 
     291        Map::PlayerList const &PlayerList = map->GetPlayers(); 
     292                Map::PlayerList::const_iterator i; 
    267293                for (i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    268294                {  
    269                         if((*i) && (*i)->isAlive()) 
     295            if(Player* i_pl = i->getSource()) 
    270296            { 
    271                 // Also needs an exception in spell system. 
    272                 (*i)->CastSpell((*i), SPELL_GRAVITY_LAPSE_FLY, true, 0, 0, m_creature->GetGUID()); 
    273                 // Use packet hack 
    274                 WorldPacket data(12); 
    275                 data.SetOpcode(SMSG_MOVE_SET_CAN_FLY); 
    276                 data.append((*i)->GetPackGUID()); 
    277                 data << uint32(0); 
    278                 (*i)->SendMessageToSet(&data, true); 
    279                                 (*i)->SetSpeed(MOVE_FLY, 2.0f); 
    280             } 
    281         } 
    282     } 
    283  
    284     void RemoveGravityLapse() 
    285     { 
    286                 Map *map = m_creature->GetMap(); 
    287         InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    288                 InstanceMap::PlayerList::const_iterator i; 
    289                 for (i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    290                 {  
    291             if((*i)) 
    292             { 
    293                 (*i)->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY); 
    294                 (*i)->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_DOT); 
     297                i_pl->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY); 
     298                i_pl->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_DOT); 
    295299                WorldPacket data(12); 
    296300                data.SetOpcode(SMSG_MOVE_UNSET_CAN_FLY); 
    297                 data.append((*i)->GetPackGUID()); 
     301                data.append(i_pl->GetPackGUID()); 
    298302                data << uint32(0); 
    299                 (*i)->SendMessageToSet(&data, true); 
     303                i_pl->SendMessageToSet(&data, true); 
    300304            } 
    301305        } 
     
    758762    newscript->Name = "boss_felblood_kaelthas"; 
    759763    newscript->GetAI = GetAI_boss_felblood_kaelthas; 
    760     m_scripts[nrscripts++] = newscript; 
     764    newscript->RegisterSelf(); 
    761765 
    762766    newscript = new Script; 
    763767    newscript->Name = "mob_arcane_sphere"; 
    764768    newscript->GetAI = GetAI_mob_arcane_sphere; 
    765     m_scripts[nrscripts++] = newscript; 
     769    newscript->RegisterSelf(); 
    766770 
    767771    newscript = new Script; 
    768772    newscript->Name="mob_felkael_phoenix"; 
    769773    newscript->GetAI = GetAI_mob_felkael_phoenix; 
    770     m_scripts[nrscripts++] = newscript; 
     774    newscript->RegisterSelf(); 
    771775 
    772776    newscript = new Script; 
    773777    newscript->Name="mob_felkael_phoenix_egg"; 
    774778    newscript->GetAI = GetAI_mob_felkael_phoenix_egg; 
    775     m_scripts[nrscripts++] = newscript; 
     779    newscript->RegisterSelf(); 
    776780 
    777781    newscript = new Script; 
    778782    newscript->Name="mob_felkael_flamestrike"; 
    779783    newscript->GetAI = GetAI_mob_felkael_flamestrike; 
    780     m_scripts[nrscripts++] = newscript; 
     784    newscript->RegisterSelf(); 
    781785 
    782786        newscript = new Script; 
    783787    newscript->Name="go_kael_orb"; 
    784788    newscript->pGOHello = &GOHello_go_kael_orb; 
    785     m_scripts[nrscripts++] = newscript; 
     789    newscript->RegisterSelf(); 
    786790 
    787791        newscript = new Script; 
    788792    newscript->Name="go_movie_orb"; 
    789793    newscript->pGOHello = &GOHello_go_movie_orb; 
    790     m_scripts[nrscripts++] = newscript; 
     794    newscript->RegisterSelf(); 
    791795} 
  • trunk/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp

    r272 r279  
    13561356    newscript->Name="boss_priestess_delrissa"; 
    13571357    newscript->GetAI = GetAI_boss_priestess_delrissa; 
    1358     m_scripts[nrscripts++] = newscript; 
     1358    newscript->RegisterSelf(); 
    13591359 
    13601360    newscript = new Script; 
    13611361    newscript->Name="boss_kagani_nightstrike"; 
    13621362    newscript->GetAI = GetAI_boss_kagani_nightstrike; 
    1363     m_scripts[nrscripts++] = newscript; 
     1363    newscript->RegisterSelf(); 
    13641364 
    13651365    newscript = new Script; 
    13661366    newscript->Name="boss_ellris_duskhallow"; 
    13671367    newscript->GetAI = GetAI_ellris_duskhallow; 
    1368     m_scripts[nrscripts++] = newscript; 
     1368    newscript->RegisterSelf(); 
    13691369 
    13701370    newscript = new Script; 
    13711371    newscript->Name="boss_eramas_brightblaze"; 
    13721372    newscript->GetAI = GetAI_eramas_brightblaze; 
    1373     m_scripts[nrscripts++] = newscript; 
     1373    newscript->RegisterSelf(); 
    13741374 
    13751375    newscript = new Script; 
    13761376    newscript->Name="boss_yazzai"; 
    13771377    newscript->GetAI = GetAI_yazzai; 
    1378     m_scripts[nrscripts++] = newscript; 
     1378    newscript->RegisterSelf(); 
    13791379 
    13801380    newscript = new Script; 
    13811381    newscript->Name="boss_warlord_salaris"; 
    13821382    newscript->GetAI = GetAI_warlord_salaris; 
    1383     m_scripts[nrscripts++] = newscript; 
     1383    newscript->RegisterSelf(); 
    13841384 
    13851385    newscript = new Script; 
    13861386    newscript->Name="boss_garaxxas"; 
    13871387    newscript->GetAI = GetAI_garaxxas; 
    1388     m_scripts[nrscripts++] = newscript; 
     1388    newscript->RegisterSelf(); 
    13891389 
    13901390    newscript = new Script; 
    13911391    newscript->Name="boss_apoko"; 
    13921392    newscript->GetAI = GetAI_apoko; 
    1393     m_scripts[nrscripts++] = newscript; 
     1393    newscript->RegisterSelf(); 
    13941394 
    13951395    newscript = new Script; 
    13961396    newscript->Name="boss_zelfan"; 
    13971397    newscript->GetAI = GetAI_zelfan; 
    1398     m_scripts[nrscripts++] = newscript; 
     1398    newscript->RegisterSelf(); 
    13991399 
    14001400    /*newscript = new Script; 
    14011401    newscript->Name="mob_high_explosive_sheep"; 
    14021402    newscript->GetAI = GetAI_mob_high_explosive_sheep; 
    1403     m_scripts[nrscripts++] = newscript;*/ 
     1403    newscript->RegisterSelf();*/ 
    14041404 
    14051405    /*newscript = new Script; 
    14061406    newscript->Name="mob_fizzle"; 
    14071407    newscript->GetAI = GetAI_mob_fizzle; 
    1408     m_scripts[nrscripts++] = newscript;*/ 
     1408    newscript->RegisterSelf();*/ 
    14091409 
    14101410    /*newscript = new Script; 
    14111411    newscript->Name="mob_sliver"; 
    14121412    newscript->GetAI = GetAI_mob_sliver; 
    1413     m_scripts[nrscripts++] = newscript;*/ 
     1413    newscript->RegisterSelf();*/ 
    14141414} 
  • trunk/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp

    r272 r279  
    404404    newscript->Name="boss_selin_fireheart"; 
    405405    newscript->GetAI = GetAI_boss_selin_fireheart; 
    406     m_scripts[nrscripts++] = newscript; 
     406    newscript->RegisterSelf(); 
    407407 
    408408    newscript = new Script; 
    409409    newscript->Name="mob_fel_crystal"; 
    410410    newscript->GetAI = GetAI_mob_fel_crystal; 
    411     m_scripts[nrscripts++] = newscript; 
     411    newscript->RegisterSelf(); 
    412412} 
  • trunk/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp

    r272 r279  
    239239    newscript->Name="boss_vexallus"; 
    240240    newscript->GetAI = GetAI_boss_vexallus; 
    241     m_scripts[nrscripts++] = newscript; 
     241    newscript->RegisterSelf(); 
    242242 
    243243    newscript = new Script; 
    244244    newscript->Name="mob_pure_energy"; 
    245245    newscript->GetAI = GetAI_mob_pure_energy; 
    246     m_scripts[nrscripts++] = newscript; 
     246    newscript->RegisterSelf(); 
    247247} 
  • trunk/src/bindings/scripts/scripts/zone/magisters_terrace/instance_magisters_terrace.cpp

    r272 r279  
    250250    newscript->Name = "instance_magisters_terrace"; 
    251251    newscript->GetInstanceData = GetInstanceData_instance_magisters_terrace; 
    252     m_scripts[nrscripts++] = newscript; 
     252    newscript->RegisterSelf(); 
    253253} 
  • trunk/src/bindings/scripts/scripts/zone/maraudon/boss_celebras_the_cursed.cpp

    r272 r279  
    9494    newscript->Name="celebras_the_cursed"; 
    9595    newscript->GetAI = GetAI_celebras_the_cursed; 
    96     m_scripts[nrscripts++] = newscript; 
     96    newscript->RegisterSelf(); 
    9797} 
  • trunk/src/bindings/scripts/scripts/zone/maraudon/boss_landslide.cpp

    r272 r279  
    9191    newscript->Name="boss_landslide"; 
    9292    newscript->GetAI = GetAI_boss_landslide; 
    93     m_scripts[nrscripts++] = newscript; 
     93    newscript->RegisterSelf(); 
    9494} 
  • trunk/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp

    r272 r279  
    146146    newscript->Name="boss_noxxion"; 
    147147    newscript->GetAI = GetAI_boss_noxxion; 
    148     m_scripts[nrscripts++] = newscript; 
     148    newscript->RegisterSelf(); 
    149149} 
  • trunk/src/bindings/scripts/scripts/zone/maraudon/boss_princess_theradras.cpp

    r272 r279  
    105105    newscript->Name="boss_princess_theradras"; 
    106106    newscript->GetAI = GetAI_boss_ptheradras; 
    107     m_scripts[nrscripts++] = newscript; 
     107    newscript->RegisterSelf(); 
    108108} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/boss_baron_geddon.cpp

    r272 r279  
    102102    newscript->Name="boss_baron_geddon"; 
    103103    newscript->GetAI = GetAI_boss_baron_geddon; 
    104     m_scripts[nrscripts++] = newscript; 
     104    newscript->RegisterSelf(); 
    105105} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/boss_garr.cpp

    r272 r279  
    141141    newscript->Name="boss_garr"; 
    142142    newscript->GetAI = GetAI_boss_garr; 
    143     m_scripts[nrscripts++] = newscript; 
     143    newscript->RegisterSelf(); 
    144144 
    145145    newscript = new Script; 
    146146    newscript->Name="mob_firesworn"; 
    147147    newscript->GetAI = GetAI_mob_firesworn; 
    148     m_scripts[nrscripts++] = newscript; 
     148    newscript->RegisterSelf(); 
    149149} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/boss_gehennas.cpp

    r272 r279  
    8888    newscript->Name="boss_gehennas"; 
    8989    newscript->GetAI = GetAI_boss_gehennas; 
    90     m_scripts[nrscripts++] = newscript; 
     90    newscript->RegisterSelf(); 
    9191} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp

    r272 r279  
    193193    newscript->Name="boss_golemagg"; 
    194194    newscript->GetAI = GetAI_boss_golemagg; 
    195     m_scripts[nrscripts++] = newscript; 
     195    newscript->RegisterSelf(); 
    196196 
    197197    newscript = new Script; 
    198198    newscript->Name="mob_core_rager"; 
    199199    newscript->GetAI = GetAI_mob_core_rager; 
    200     m_scripts[nrscripts++] = newscript; 
     200    newscript->RegisterSelf(); 
    201201} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/boss_lucifron.cpp

    r272 r279  
    8787    newscript->Name="boss_lucifron"; 
    8888    newscript->GetAI = GetAI_boss_lucifron; 
    89     m_scripts[nrscripts++] = newscript; 
     89    newscript->RegisterSelf(); 
    9090} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/boss_magmadar.cpp

    r272 r279  
    9494    newscript->Name="boss_magmadar"; 
    9595    newscript->GetAI = GetAI_boss_magmadar; 
    96     m_scripts[nrscripts++] = newscript; 
     96    newscript->RegisterSelf(); 
    9797} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp

    r272 r279  
    130130    newscript->Name="boss_majordomo"; 
    131131    newscript->GetAI = GetAI_boss_majordomo; 
    132     m_scripts[nrscripts++] = newscript; 
     132    newscript->RegisterSelf(); 
    133133} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp

    r272 r279  
    314314    newscript->Name="boss_ragnaros"; 
    315315    newscript->GetAI = GetAI_boss_ragnaros; 
    316     m_scripts[nrscripts++] = newscript; 
     316    newscript->RegisterSelf(); 
    317317} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/boss_shazzrah.cpp

    r272 r279  
    118118    newscript->Name="boss_shazzrah"; 
    119119    newscript->GetAI = GetAI_boss_shazzrah; 
    120     m_scripts[nrscripts++] = newscript; 
     120    newscript->RegisterSelf(); 
    121121} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp

    r272 r279  
    207207    newscript->Name="boss_sulfuron"; 
    208208    newscript->GetAI = GetAI_boss_sulfuron; 
    209     m_scripts[nrscripts++] = newscript; 
     209    newscript->RegisterSelf(); 
    210210 
    211211    newscript = new Script; 
    212212    newscript->Name="mob_flamewaker_priest"; 
    213213    newscript->GetAI = GetAI_mob_flamewaker_priest; 
    214     m_scripts[nrscripts++] = newscript; 
     214    newscript->RegisterSelf(); 
    215215} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/instance_molten_core.cpp

    r272 r279  
    254254    newscript->Name="instance_molten_core"; 
    255255    newscript->GetInstanceData = &GetInstance_instance_molten_core; 
    256     m_scripts[nrscripts++] = newscript; 
     256    newscript->RegisterSelf(); 
    257257} 
  • trunk/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp

    r272 r279  
    8585    newscript->Name="mob_ancient_core_hound"; 
    8686    newscript->GetAI = GetAI_mob_ancient_core_hound; 
    87     m_scripts[nrscripts++] = newscript; 
     87    newscript->RegisterSelf(); 
    8888} 
  • trunk/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp

    r272 r279  
    546546    newscript->pGossipHello =  &GossipHello_npc_bunthen_plainswind; 
    547547    newscript->pGossipSelect = &GossipSelect_npc_bunthen_plainswind; 
    548     m_scripts[nrscripts++] = newscript; 
     548    newscript->RegisterSelf(); 
    549549 
    550550    newscript = new Script; 
     
    552552    newscript->pGossipHello =  &GossipHello_npc_great_bear_spirit; 
    553553    newscript->pGossipSelect = &GossipSelect_npc_great_bear_spirit; 
    554     m_scripts[nrscripts++] = newscript; 
     554    newscript->RegisterSelf(); 
    555555 
    556556    newscript = new Script; 
     
    558558    newscript->pGossipHello =  &GossipHello_npc_silva_filnaveth; 
    559559    newscript->pGossipSelect = &GossipSelect_npc_silva_filnaveth; 
    560     m_scripts[nrscripts++] = newscript; 
     560    newscript->RegisterSelf(); 
    561561 
    562562        newscript = new Script; 
    563563    newscript->Name="npc_clintar_dreamwalker"; 
    564564    newscript->pQuestAccept = &QuestAccept_npc_clintar_dreamwalker; 
    565     m_scripts[nrscripts++] = newscript; 
     565    newscript->RegisterSelf(); 
    566566 
    567567    newscript = new Script; 
    568568    newscript->Name="npc_clintar_spirit"; 
    569569    newscript->GetAI = GetAI_npc_clintar_spirit; 
    570     m_scripts[nrscripts++] = newscript; 
    571 } 
     570    newscript->RegisterSelf(); 
     571} 
  • trunk/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp

    r272 r279  
    6161    newscript->pGossipHello          = &GossipHello_npc_skorn_whitecloud; 
    6262    newscript->pGossipSelect         = &GossipSelect_npc_skorn_whitecloud; 
    63     m_scripts[nrscripts++] = newscript; 
     63    newscript->RegisterSelf(); 
    6464} 
  • trunk/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp

    r272 r279  
    632632    newscript->Name="mob_shattered_rumbler"; 
    633633    newscript->GetAI = GetAI_mob_shattered_rumbler; 
    634     m_scripts[nrscripts++] = newscript; 
     634    newscript->RegisterSelf(); 
    635635 
    636636    newscript = new Script; 
     
    639639    newscript->pGossipHello =  &GossipHello_mob_lump; 
    640640    newscript->pGossipSelect = &GossipSelect_mob_lump; 
    641     m_scripts[nrscripts++] = newscript; 
     641    newscript->RegisterSelf(); 
    642642 
    643643    newscript = new Script; 
    644644    newscript->Name="mob_sunspring_villager"; 
    645645    newscript->GetAI = GetAI_mob_sunspring_villager; 
    646     m_scripts[nrscripts++] = newscript; 
     646    newscript->RegisterSelf(); 
    647647 
    648648    newscript = new Script; 
     
    651651    newscript->pGossipSelect = &GossipSelect_npc_altruis_the_sufferer; 
    652652    newscript->pQuestAccept =  &QuestAccept_npc_altruis_the_sufferer; 
    653     m_scripts[nrscripts++] = newscript; 
     653    newscript->RegisterSelf(); 
    654654 
    655655    newscript = new Script; 
     
    657657    newscript->pGossipHello =  &GossipHello_npc_greatmother_geyah; 
    658658    newscript->pGossipSelect = &GossipSelect_npc_greatmother_geyah; 
    659     m_scripts[nrscripts++] = newscript; 
     659    newscript->RegisterSelf(); 
    660660 
    661661    newscript = new Script; 
     
    663663    newscript->pGossipHello =  &GossipHello_npc_lantresor_of_the_blade; 
    664664    newscript->pGossipSelect = &GossipSelect_npc_lantresor_of_the_blade; 
    665     m_scripts[nrscripts++] = newscript; 
     665    newscript->RegisterSelf(); 
    666666 
    667667    newscript = new Script; 
    668668    newscript->Name="npc_creditmarker_visit_with_ancestors"; 
    669669    newscript->GetAI = GetAI_npc_creditmarker_visit_with_ancestors; 
    670     m_scripts[nrscripts++] = newscript; 
     670    newscript->RegisterSelf(); 
    671671 
    672672    newscript = new Script; 
    673673    newscript->Name="mob_sparrowhawk"; 
    674674    newscript->GetAI = GetAI_mob_sparrowhawk; 
    675     m_scripts[nrscripts++] = newscript; 
    676 } 
     675    newscript->RegisterSelf(); 
     676} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_anubrekhan.cpp

    r272 r279  
    209209    newscript->Name="boss_anubrekhan"; 
    210210    newscript->GetAI = GetAI_boss_anubrekhan; 
    211     m_scripts[nrscripts++] = newscript; 
     211    newscript->RegisterSelf(); 
    212212} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_faerlina.cpp

    r272 r279  
    198198    newscript->Name="boss_faerlina"; 
    199199    newscript->GetAI = GetAI_boss_faerlina; 
    200     m_scripts[nrscripts++] = newscript; 
     200    newscript->RegisterSelf(); 
    201201} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_gluth.cpp

    r272 r279  
    171171    newscript->Name="boss_gluth"; 
    172172    newscript->GetAI = GetAI_boss_gluth; 
    173     m_scripts[nrscripts++] = newscript; 
     173    newscript->RegisterSelf(); 
    174174} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_highlord_mograine.cpp

    r272 r279  
    175175    newscript->Name="boss_highlord_mograine"; 
    176176    newscript->GetAI = GetAI_boss_highlord_mograine; 
    177     m_scripts[nrscripts++] = newscript; 
     177    newscript->RegisterSelf(); 
    178178} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_kelthuzad.cpp

    r272 r279  
    538538    newscript->Name="boss_kelthuzad"; 
    539539    newscript->GetAI = GetAI_boss_kelthuzadAI; 
    540     m_scripts[nrscripts++] = newscript; 
     540    newscript->RegisterSelf(); 
    541541    */ 
    542542} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_lady_blaumeux.cpp

    r272 r279  
    144144    newscript->Name="boss_lady_blaumeux"; 
    145145    newscript->GetAI = GetAI_boss_lady_blaumeux; 
    146     m_scripts[nrscripts++] = newscript; 
     146    newscript->RegisterSelf(); 
    147147} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_loatheb.cpp

    r272 r279  
    213213    newscript->Name="boss_loatheb"; 
    214214    newscript->GetAI = GetAI_boss_loatheb; 
    215     m_scripts[nrscripts++] = newscript; 
     215    newscript->RegisterSelf(); 
    216216} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp

    r272 r279  
    238238    newscript->Name="boss_maexxna"; 
    239239    newscript->GetAI = GetAI_boss_maexxna; 
    240     m_scripts[nrscripts++] = newscript; 
     240    newscript->RegisterSelf(); 
    241241 
    242242    newscript = new Script; 
    243243    newscript->Name="mob_webwrap"; 
    244244    newscript->GetAI = GetAI_mob_webwrap; 
    245     m_scripts[nrscripts++] = newscript; 
     245    newscript->RegisterSelf(); 
    246246} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp

    r272 r279  
    177177    newscript->Name="boss_noth"; 
    178178    newscript->GetAI = GetAI_boss_noth; 
    179     m_scripts[nrscripts++] = newscript; 
     179    newscript->RegisterSelf(); 
    180180} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp

    r272 r279  
    157157    newscript->Name="boss_patchwerk"; 
    158158    newscript->GetAI = GetAI_boss_patchwerk; 
    159     m_scripts[nrscripts++] = newscript; 
     159    newscript->RegisterSelf(); 
    160160} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_razuvious.cpp

    r272 r279  
    164164    newscript->Name="boss_razuvious"; 
    165165    newscript->GetAI = GetAI_boss_razuvious; 
    166     m_scripts[nrscripts++] = newscript; 
     166    newscript->RegisterSelf(); 
    167167} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp

    r272 r279  
    196196    newscript->Name="boss_sapphiron"; 
    197197    newscript->GetAI = GetAI_boss_sapphiron; 
    198     m_scripts[nrscripts++] = newscript; 
     198    newscript->RegisterSelf(); 
    199199} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_sir_zeliek.cpp

    r272 r279  
    143143    newscript->Name="boss_sir_zeliek"; 
    144144    newscript->GetAI = GetAI_boss_sir_zeliek; 
    145     m_scripts[nrscripts++] = newscript; 
     145    newscript->RegisterSelf(); 
    146146} 
  • trunk/src/bindings/scripts/scripts/zone/naxxramas/boss_thane_korthazz.cpp

    r272 r279  
    144144    newscript->Name="boss_thane_korthazz"; 
    145145    newscript->GetAI = GetAI_boss_thane_korthazz; 
    146     m_scripts[nrscripts++] = newscript; 
     146    newscript->RegisterSelf(); 
    147147} 
  • trunk/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp

    r272 r279  
    401401    newscript->Name="go_manaforge_control_console"; 
    402402    newscript->pGOHello = &GOHello_go_manaforge_control_console; 
    403     m_scripts[nrscripts++] = newscript; 
     403    newscript->RegisterSelf(); 
    404404 
    405405    newscript = new Script; 
    406406    newscript->Name="npc_manaforge_control_console"; 
    407407    newscript->GetAI = GetAI_npc_manaforge_control_console; 
    408     m_scripts[nrscripts++] = newscript; 
     408    newscript->RegisterSelf(); 
    409409 
    410410    newscript = new Script; 
     
    412412    newscript->pGossipHello =   &GossipHello_npc_protectorate_nether_drake; 
    413413    newscript->pGossipSelect =  &GossipSelect_npc_protectorate_nether_drake; 
    414     m_scripts[nrscripts++] = newscript; 
     414    newscript->RegisterSelf(); 
    415415 
    416416    newscript = new Script; 
     
    418418    newscript->pGossipHello =   &GossipHello_npc_veronia; 
    419419    newscript->pGossipSelect =  &GossipSelect_npc_veronia; 
    420     m_scripts[nrscripts++] = newscript; 
    421 } 
     420    newscript->RegisterSelf(); 
     421} 
  • trunk/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp

    r272 r279  
    230230    newscript->Name="boss_onyxia"; 
    231231    newscript->GetAI = GetAI_boss_onyxiaAI; 
    232     m_scripts[nrscripts++] = newscript; 
     232    newscript->RegisterSelf(); 
    233233} 
  • trunk/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp

    r272 r279  
    248248    newscript->pGossipHello =  &GossipHello_npc_neeru_fireblade; 
    249249    newscript->pGossipSelect = &GossipSelect_npc_neeru_fireblade; 
    250     m_scripts[nrscripts++] = newscript; 
     250    newscript->RegisterSelf(); 
    251251 
    252252    newscript = new Script; 
     
    255255    newscript->pQuestAccept =  &QuestAccept_npc_shenthul; 
    256256    newscript->pReceiveEmote = &ReciveEmote_npc_shenthul; 
    257     m_scripts[nrscripts++] = newscript; 
     257    newscript->RegisterSelf(); 
    258258 
    259259    newscript = new Script; 
     
    262262    newscript->pGossipHello =  &GossipHello_npc_thrall_warchief; 
    263263    newscript->pGossipSelect = &GossipSelect_npc_thrall_warchief; 
    264     m_scripts[nrscripts++] = newscript; 
    265 } 
     264    newscript->RegisterSelf(); 
     265} 
  • trunk/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp

    r272 r279  
    137137    newscript->Name="boss_amnennar_the_coldbringer"; 
    138138    newscript->GetAI = GetAI_boss_amnennar_the_coldbringer; 
    139     m_scripts[nrscripts++] = newscript; 
     139    newscript->RegisterSelf(); 
    140140} 
  • trunk/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp

    r272 r279  
    104104    newscript->Name="boss_ayamiss"; 
    105105    newscript->GetAI = GetAI_boss_ayamiss; 
    106     m_scripts[nrscripts++] = newscript; 
     106    newscript->RegisterSelf(); 
    107107} 
  • trunk/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp

    r272 r279  
    9090    newscript->Name="boss_kurinnaxx"; 
    9191    newscript->GetAI = GetAI_boss_kurinnaxx; 
    92     m_scripts[nrscripts++] = newscript; 
     92    newscript->RegisterSelf(); 
    9393} 
  • trunk/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp

    r272 r279  
    114114    newscript->Name="boss_moam"; 
    115115    newscript->GetAI = GetAI_boss_moam; 
    116     m_scripts[nrscripts++] = newscript; 
     116    newscript->RegisterSelf(); 
    117117} 
  • trunk/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp

    r272 r279  
    168168    newscript->Name="boss_arcanist_doan"; 
    169169    newscript->GetAI = GetAI_boss_arcanist_doan; 
    170     m_scripts[nrscripts++] = newscript; 
     170    newscript->RegisterSelf(); 
    171171} 
  • trunk/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp

    r272 r279  
    9494    newscript->Name="boss_azshir_the_sleepless"; 
    9595    newscript->GetAI = GetAI_boss_azshir_the_sleepless; 
    96     m_scripts[nrscripts++] = newscript; 
     96    newscript->RegisterSelf(); 
    9797} 
  • trunk/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp

    r272 r279  
    133133    newscript->Name="boss_bloodmage_thalnos"; 
    134134    newscript->GetAI = GetAI_boss_bloodmage_thalnos; 
    135     m_scripts[nrscripts++] = newscript; 
     135    newscript->RegisterSelf(); 
    136136} 
  • trunk/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp

    r272 r279  
    194194    newscript->Name="boss_herod"; 
    195195    newscript->GetAI = GetAI_boss_herod; 
    196     m_scripts[nrscripts++] = newscript; 
     196    newscript->RegisterSelf(); 
    197197} 
  • trunk/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp

    r272 r279  
    129129    newscript->Name="boss_high_inquisitor_fairbanks"; 
    130130    newscript->GetAI = GetAI_boss_high_inquisitor_fairbanks; 
    131     m_scripts[nrscripts++] = newscript; 
     131    newscript->RegisterSelf(); 
    132132} 
  • trunk/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_whitemane.cpp

    r272 r279  
    174174    newscript->Name="boss_high_inquisitor_whitemane"; 
    175175    newscript->GetAI = GetAI_boss_high_inquisitor_whitemane; 
    176     m_scripts[nrscripts++] = newscript; 
     176    newscript->RegisterSelf(); 
    177177} 
  • trunk/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp

    r272 r279  
    7575    newscript->Name="boss_houndmaster_loksey"; 
    7676    newscript->GetAI = GetAI_boss_houndmaster_loksey; 
    77     m_scripts[nrscripts++] = newscript; 
     77    newscript->RegisterSelf(); 
    7878} 
  • trunk/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp

    r272 r279  
    110110    newscript->Name="boss_interrogator_vishas"; 
    111111    newscript->GetAI = GetAI_boss_interrogator_vishas; 
    112     m_scripts[nrscripts++] = newscript; 
     112    newscript->RegisterSelf(); 
    113113} 
  • trunk/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scarlet_commander_mograine.cpp

    r272 r279  
    157157    newscript->Name="boss_scarlet_commander_mograine"; 
    158158    newscript->GetAI = GetAI_boss_scarlet_commander_mograine; 
    159     m_scripts[nrscripts++] = newscript; 
     159    newscript->RegisterSelf(); 
    160160} 
  • trunk/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scorn.cpp

    r272 r279  
    9797    newscript->Name="boss_scorn"; 
    9898    newscript->GetAI = GetAI_boss_scorn; 
    99     m_scripts[nrscripts++] = newscript; 
     99    newscript->RegisterSelf(); 
    100100} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp

    r272 r279  
    189189    newscript->Name="boss_darkmaster_gandling"; 
    190190    newscript->GetAI = GetAI_boss_darkmaster_gandling; 
    191     m_scripts[nrscripts++] = newscript; 
     191    newscript->RegisterSelf(); 
    192192} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_death_knight_darkreaver.cpp

    r272 r279  
    5656    newscript->Name="boss_death_knight_darkreaver"; 
    5757    newscript->GetAI = GetAI_boss_death_knight_darkreaver; 
    58     m_scripts[nrscripts++] = newscript; 
     58    newscript->RegisterSelf(); 
    5959} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp

    r272 r279  
    105105    newscript->Name="boss_doctor_theolen_krastinov"; 
    106106    newscript->GetAI = GetAI_boss_theolenkrastinov; 
    107     m_scripts[nrscripts++] = newscript; 
     107    newscript->RegisterSelf(); 
    108108} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp

    r272 r279  
    113113    newscript->Name="boss_illucia_barov"; 
    114114    newscript->GetAI = GetAI_boss_illuciabarov; 
    115     m_scripts[nrscripts++] = newscript; 
     115    newscript->RegisterSelf(); 
    116116} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp

    r272 r279  
    149149    newscript->Name="boss_instructor_malicia"; 
    150150    newscript->GetAI = GetAI_boss_instructormalicia; 
    151     m_scripts[nrscripts++] = newscript; 
     151    newscript->RegisterSelf(); 
    152152} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp

    r272 r279  
    213213    newscript->Name="boss_jandice_barov"; 
    214214    newscript->GetAI = GetAI_boss_jandicebarov; 
    215     m_scripts[nrscripts++] = newscript; 
     215    newscript->RegisterSelf(); 
    216216 
    217217    newscript = new Script; 
    218218    newscript->Name="mob_illusionofjandicebarov"; 
    219219    newscript->GetAI = GetAI_mob_illusionofjandicebarov; 
    220     m_scripts[nrscripts++] = newscript; 
     220    newscript->RegisterSelf(); 
    221221} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp

    r272 r279  
    152152    newscript->Name="boss_kormok"; 
    153153    newscript->GetAI = GetAI_boss_kormok; 
    154     m_scripts[nrscripts++] = newscript; 
     154    newscript->RegisterSelf(); 
    155155} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp

    r272 r279  
    9595    newscript->Name="boss_lord_alexei_barov"; 
    9696    newscript->GetAI = GetAI_boss_lordalexeibarov; 
    97     m_scripts[nrscripts++] = newscript; 
     97    newscript->RegisterSelf(); 
    9898} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp

    r272 r279  
    110110    newscript->Name="boss_lorekeeper_polkelt"; 
    111111    newscript->GetAI = GetAI_boss_lorekeeperpolkelt; 
    112     m_scripts[nrscripts++] = newscript; 
     112    newscript->RegisterSelf(); 
    113113} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_ras_frostwhisper.cpp

    r272 r279  
    122122    newscript->Name="boss_boss_ras_frostwhisper"; 
    123123    newscript->GetAI = GetAI_boss_rasfrost; 
    124     m_scripts[nrscripts++] = newscript; 
     124    newscript->RegisterSelf(); 
    125125} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp

    r272 r279  
    115115    newscript->Name="boss_the_ravenian"; 
    116116    newscript->GetAI = GetAI_boss_theravenian; 
    117     m_scripts[nrscripts++] = newscript; 
     117    newscript->RegisterSelf(); 
    118118} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/boss_vectus.cpp

    r272 r279  
    9292    newscript->Name="boss_vectus"; 
    9393    newscript->GetAI = GetAI_boss_vectus; 
    94     m_scripts[nrscripts++] = newscript; 
     94    newscript->RegisterSelf(); 
    9595} 
  • trunk/src/bindings/scripts/scripts/zone/scholomance/instance_scholomance.cpp

    r272 r279  
    9999    newscript->Name = "instance_scholomance"; 
    100100    newscript->GetInstanceData = GetInstanceData_instance_scholomance; 
    101     m_scripts[nrscripts++] = newscript; 
     101    newscript->RegisterSelf(); 
    102102} 
  • trunk/src/bindings/scripts/scripts/zone/searing_gorge/searing_gorge.cpp

    r272 r279  
    144144    newscript->pGossipHello =  &GossipHello_npc_kalaran_windblade; 
    145145    newscript->pGossipSelect = &GossipSelect_npc_kalaran_windblade; 
    146     m_scripts[nrscripts++] = newscript; 
     146    newscript->RegisterSelf(); 
    147147 
    148148    newscript = new Script; 
     
    150150    newscript->pGossipHello          = &GossipHello_npc_lothos_riftwaker; 
    151151    newscript->pGossipSelect         = &GossipSelect_npc_lothos_riftwaker; 
    152     m_scripts[nrscripts++] = newscript; 
     152    newscript->RegisterSelf(); 
    153153 
    154154    newscript = new Script; 
     
    156156    newscript->pGossipHello =  &GossipHello_npc_zamael_lunthistle; 
    157157    newscript->pGossipSelect = &GossipSelect_npc_zamael_lunthistle; 
    158     m_scripts[nrscripts++] = newscript; 
     158    newscript->RegisterSelf(); 
    159159} 
  • trunk/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp

    r272 r279  
    149149    newscript->Name = "instance_shadowfang_keep"; 
    150150    newscript->GetInstanceData = GetInstanceData_instance_shadowfang_keep; 
    151     m_scripts[nrscripts++] = newscript; 
     151    newscript->RegisterSelf(); 
    152152} 
  • trunk/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp

    r272 r279  
    114114    newscript->pGossipSelect = &GossipSelect_npc_shadowfang_prisoner; 
    115115    newscript->GetAI = GetAI_npc_shadowfang_prisoner; 
    116     m_scripts[nrscripts++] = newscript; 
     116    newscript->RegisterSelf(); 
    117117} 
  • trunk/src/bindings/scripts/scripts/zone/shadowmoon_valley/boss_doomwalker.cpp

    r272 r279  
    213213    newscript->Name="boss_doomwalker"; 
    214214    newscript->GetAI = GetAI_boss_doomwalker; 
    215     m_scripts[nrscripts++] = newscript; 
     215    newscript->RegisterSelf(); 
    216216} 
  • trunk/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp

    r272 r279  
    11071107    newscript->Name = "mob_mature_netherwing_drake"; 
    11081108    newscript->GetAI = GetAI_mob_mature_netherwing_drake; 
    1109     m_scripts[nrscripts++] = newscript; 
     1109    newscript->RegisterSelf(); 
    11101110 
    11111111    newscript = new Script; 
    11121112    newscript->Name = "mob_enslaved_netherwing_drake"; 
    11131113    newscript->GetAI = GetAI_mob_enslaved_netherwing_drake; 
    1114     m_scripts[nrscripts++] = newscript; 
     1114    newscript->RegisterSelf(); 
    11151115 
    11161116        newscript = new Script; 
    11171117        newscript->Name = "mob_dragonmaw_peon"; 
    11181118        newscript->GetAI = GetAI_mob_dragonmaw_peon; 
    1119         m_scripts[nrscripts++] = newscript; 
     1119        newscript->RegisterSelf(); 
    11201120 
    11211121    newscript = new Script; 
     
    11231123    newscript->pGossipHello =  &GossipHello_npc_drake_dealer_hurlunk; 
    11241124    newscript->pGossipSelect = &GossipSelect_npc_drake_dealer_hurlunk; 
    1125     m_scripts[nrscripts++] = newscript; 
     1125    newscript->RegisterSelf(); 
    11261126 
    11271127    newscript = new Script; 
    11281128    newscript->Name="npc_invis_legion_teleporter"; 
    11291129    newscript->GetAI = GetAI_npc_invis_legion_teleporter; 
    1130     m_scripts[nrscripts++] = newscript; 
     1130    newscript->RegisterSelf(); 
    11311131 
    11321132    newscript = new Script; 
     
    11341134    newscript->pGossipHello =  &GossipHello_npcs_flanis_swiftwing_and_kagrosh; 
    11351135    newscript->pGossipSelect = &GossipSelect_npcs_flanis_swiftwing_and_kagrosh; 
    1136     m_scripts[nrscripts++] = newscript; 
     1136    newscript->RegisterSelf(); 
    11371137 
    11381138    newscript = new Script; 
     
    11401140    newscript->pGossipHello =  &GossipHello_npc_murkblood_overseer; 
    11411141    newscript->pGossipSelect = &GossipSelect_npc_murkblood_overseer; 
    1142     m_scripts[nrscripts++] = newscript; 
     1142    newscript->RegisterSelf(); 
    11431143 
    11441144    newscript = new Script; 
     
    11461146    newscript->pGossipHello =  &GossipHello_npc_neltharaku; 
    11471147    newscript->pGossipSelect = &GossipSelect_npc_neltharaku; 
    1148     m_scripts[nrscripts++] = newscript; 
     1148    newscript->RegisterSelf(); 
    11491149 
    11501150    newscript = new Script; 
    11511151    newscript->Name = "npc_karynaku"; 
    11521152    newscript->pQuestAccept = &QuestAccept_npc_karynaku; 
    1153     m_scripts[nrscripts++] = newscript; 
     1153    newscript->RegisterSelf(); 
    11541154 
    11551155    newscript = new Script; 
     
    11571157    newscript->pGossipHello =  &GossipHello_npc_oronok_tornheart; 
    11581158    newscript->pGossipSelect = &GossipSelect_npc_oronok_tornheart; 
    1159     m_scripts[nrscripts++] = newscript; 
     1159    newscript->RegisterSelf(); 
    11601160 
    11611161        newscript = new Script; 
     
    11631163        newscript->GetAI = GetAI_Overlord_Morghor; 
    11641164        newscript->pQuestAccept = &QuestAccept_Overlord_Morghor; 
    1165         m_scripts[nrscripts++] = newscript; 
     1165        newscript->RegisterSelf(); 
    11661166 
    11671167        newscript = new Script; 
    11681168        newscript->Name = "npc_lord_illidan_stormrage"; 
    11691169        newscript->GetAI = GetAI_Lord_Illidan; 
    1170         m_scripts[nrscripts++] = newscript; 
     1170        newscript->RegisterSelf(); 
    11711171 
    11721172        newscript = new Script; 
     
    11751175        newscript->pGossipHello = &GossipHello_npc_yarzill_fly; 
    11761176        newscript->pGossipSelect = &GossipSelect_npc_yarzill_fly; 
    1177         m_scripts[nrscripts++] = newscript; 
    1178 } 
     1177        newscript->RegisterSelf(); 
     1178} 
  • trunk/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp

    r272 r279  
    415415    newscript->pGossipHello =  &GossipHello_npc_raliq_the_drunk; 
    416416    newscript->pGossipSelect = &GossipSelect_npc_raliq_the_drunk; 
    417     m_scripts[nrscripts++] = newscript; 
     417    newscript->RegisterSelf(); 
    418418 
    419419    newscript = new Script; 
     
    421421    newscript->GetAI = GetAI_npc_salsalabim; 
    422422    newscript->pGossipHello =  &GossipHello_npc_salsalabim; 
    423     m_scripts[nrscripts++] = newscript; 
     423    newscript->RegisterSelf(); 
    424424 
    425425    newscript = new Script; 
     
    427427    newscript->pGossipHello =  &GossipHello_npc_shattrathflaskvendors; 
    428428    newscript->pGossipSelect = &GossipSelect_npc_shattrathflaskvendors; 
    429     m_scripts[nrscripts++] = newscript; 
     429    newscript->RegisterSelf(); 
    430430 
    431431    newscript = new Script; 
     
    433433    newscript->pGossipHello =  &GossipHello_npc_zephyr; 
    434434    newscript->pGossipSelect = &GossipSelect_npc_zephyr; 
    435     m_scripts[nrscripts++] = newscript; 
     435    newscript->RegisterSelf(); 
    436436 
    437437       newscript = new Script; 
    438438    newscript->Name="npc_kservant"; 
    439439    newscript->GetAI = GetAI_npc_kservantAI; 
    440     m_scripts[nrscripts++] = newscript; 
    441 } 
     440    newscript->RegisterSelf(); 
     441} 
  • trunk/src/bindings/scripts/scripts/zone/silithus/silithus.cpp

    r272 r279  
    146146    newscript->pGossipHello =   &GossipHello_npcs_rutgar_and_frankal; 
    147147    newscript->pGossipSelect =  &GossipSelect_npcs_rutgar_and_frankal; 
    148     m_scripts[nrscripts++] = newscript; 
     148    newscript->RegisterSelf(); 
    149149} 
  • trunk/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp

    r272 r279  
    100100    newscript->Name="npc_blood_knight_stillblade"; 
    101101    newscript->GetAI = GetAI_npc_blood_knight_stillblade; 
    102     m_scripts[nrscripts++] = newscript; 
     102    newscript->RegisterSelf(); 
    103103} 
  • trunk/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp

    r272 r279  
    9797    newscript->pGossipSelect = &GossipSelect_npc_astor_hadren; 
    9898    newscript->GetAI = GetAI_npc_astor_hadren; 
    99     m_scripts[nrscripts++] = newscript; 
     99    newscript->RegisterSelf(); 
    100100} 
  • trunk/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp

    r272 r279  
    7777    newscript->pGossipHello = &GossipHello_npc_braug_dimspirit; 
    7878    newscript->pGossipSelect = &GossipSelect_npc_braug_dimspirit; 
    79     m_scripts[nrscripts++] = newscript; 
     79    newscript->RegisterSelf(); 
    8080} 
  • trunk/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp

    r272 r279  
    246246    newscript->pGossipHello = &GossipHello_npc_archmage_malin; 
    247247    newscript->pGossipSelect = &GossipSelect_npc_archmage_malin; 
    248     m_scripts[nrscripts++] = newscript; 
     248    newscript->RegisterSelf(); 
    249249 
    250250    newscript = new Script; 
     
    252252    newscript->GetAI = GetAI_npc_bartleby; 
    253253    newscript->pQuestAccept = &QuestAccept_npc_bartleby; 
    254     m_scripts[nrscripts++] = newscript; 
     254    newscript->RegisterSelf(); 
    255255 
    256256    newscript = new Script; 
     
    258258    newscript->GetAI = GetAI_npc_dashel_stonefist; 
    259259    newscript->pQuestAccept = &QuestAccept_npc_dashel_stonefist; 
    260     m_scripts[nrscripts++] = newscript; 
     260    newscript->RegisterSelf(); 
    261261 
    262262    newscript = new Script; 
    263263    newscript->Name = "npc_general_marcus_jonathan"; 
    264264    newscript->pReceiveEmote = &ReceiveEmote_npc_general_marcus_jonathan; 
    265     m_scripts[nrscripts++] = newscript; 
     265    newscript->RegisterSelf(); 
    266266 
    267267    newscript = new Script; 
     
    269269    newscript->pGossipHello = &GossipHello_npc_lady_katrana_prestor; 
    270270    newscript->pGossipSelect = &GossipSelect_npc_lady_katrana_prestor; 
    271     m_scripts[nrscripts++] = newscript; 
    272 } 
     271    newscript->RegisterSelf(); 
     272} 
  • trunk/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp

    r272 r279  
    104104    newscript->Name = "mob_yenniku"; 
    105105    newscript->GetAI = GetAI_mob_yenniku; 
    106     m_scripts[nrscripts++] = newscript; 
     106    newscript->RegisterSelf(); 
    107107} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp

    r272 r279  
    212212    newscript->Name="boss_baron_rivendare"; 
    213213    newscript->GetAI = GetAI_boss_baron_rivendare; 
    214     m_scripts[nrscripts++] = newscript; 
     214    newscript->RegisterSelf(); 
    215215} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp

    r272 r279  
    121121    newscript->Name="boss_baroness_anastari"; 
    122122    newscript->GetAI = GetAI_boss_baroness_anastari; 
    123     m_scripts[nrscripts++] = newscript; 
     123    newscript->RegisterSelf(); 
    124124} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp

    r272 r279  
    218218    newscript->Name="boss_cannon_master_willey"; 
    219219    newscript->GetAI = GetAI_boss_cannon_master_willey; 
    220     m_scripts[nrscripts++] = newscript; 
     220    newscript->RegisterSelf(); 
    221221} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp

    r272 r279  
    313313    newscript->Name="boss_dathrohan_balnazzar"; 
    314314    newscript->GetAI = GetAI_boss_dathrohan_balnazzar; 
    315     m_scripts[nrscripts++] = newscript; 
     315    newscript->RegisterSelf(); 
    316316} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp

    r272 r279  
    111111    newscript->Name="boss_magistrate_barthilas"; 
    112112    newscript->GetAI = GetAI_boss_magistrate_barthilas; 
    113     m_scripts[nrscripts++] = newscript; 
     113    newscript->RegisterSelf(); 
    114114} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp

    r272 r279  
    116116    newscript->Name="boss_maleki_the_pallid"; 
    117117    newscript->GetAI = GetAI_boss_maleki_the_pallid; 
    118     m_scripts[nrscripts++] = newscript; 
     118    newscript->RegisterSelf(); 
    119119} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp

    r272 r279  
    135135    newscript->Name="boss_nerubenkan"; 
    136136    newscript->GetAI = GetAI_boss_nerubenkan; 
    137     m_scripts[nrscripts++] = newscript; 
     137    newscript->RegisterSelf(); 
    138138} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp

    r272 r279  
    158158    newscript->Name="boss_silver_hand_bosses"; 
    159159    newscript->GetAI = GetAI_boss_silver_hand_bossesAI; 
    160     m_scripts[nrscripts++] = newscript; 
     160    newscript->RegisterSelf(); 
    161161} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp

    r272 r279  
    141141    newscript->Name="boss_postmaster_malown"; 
    142142    newscript->GetAI = GetAI_boss_postmaster_malown; 
    143     m_scripts[nrscripts++] = newscript; 
     143    newscript->RegisterSelf(); 
    144144} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp

    r272 r279  
    8989    newscript->Name="boss_ramstein_the_gorger"; 
    9090    newscript->GetAI = GetAI_boss_ramstein_the_gorger; 
    91     m_scripts[nrscripts++] = newscript; 
     91    newscript->RegisterSelf(); 
    9292} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp

    r272 r279  
    9797    newscript->Name="boss_timmy_the_cruel"; 
    9898    newscript->GetAI = GetAI_boss_timmy_the_cruel; 
    99     m_scripts[nrscripts++] = newscript; 
     99    newscript->RegisterSelf(); 
    100100} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/instance_stratholme.cpp

    r272 r279  
    7474    newscript->Name = "instance_stratholme"; 
    7575    newscript->GetInstanceData = GetInstanceData_instance_stratholme; 
    76     m_scripts[nrscripts++] = newscript; 
     76    newscript->RegisterSelf(); 
    7777} 
  • trunk/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp

    r272 r279  
    311311    newscript->Name="mob_freed_soul"; 
    312312    newscript->GetAI = GetAI_mob_freed_soul; 
    313     m_scripts[nrscripts++] = newscript; 
     313    newscript->RegisterSelf(); 
    314314 
    315315    newscript = new Script; 
    316316    newscript->Name="mob_restless_soul"; 
    317317    newscript->GetAI = GetAI_mob_restless_soul; 
    318     m_scripts[nrscripts++] = newscript; 
     318    newscript->RegisterSelf(); 
    319319 
    320320    newscript = new Script; 
     
    322322    newscript->GetAI = GetAI_mobs_spectral_ghostly_citizen; 
    323323    newscript->pReceiveEmote = &ReciveEmote_mobs_spectral_ghostly_citizen; 
    324     m_scripts[nrscripts++] = newscript; 
     324    newscript->RegisterSelf(); 
    325325 
    326326    newscript = new Script; 
    327327    newscript->Name="mob_mindless_skeleton"; 
    328328    newscript->GetAI = GetAI_mob_mindless_skeleton; 
    329     m_scripts[nrscripts++] = newscript; 
     329    newscript->RegisterSelf(); 
    330330 
    331331    newscript = new Script; 
    332332    newscript->Name="mob_thuzadin_acolyte"; 
    333333    newscript->GetAI = GetAI_mob_thuzadin_acolyte; 
    334     m_scripts[nrscripts++] = newscript; 
    335 } 
     334    newscript->RegisterSelf(); 
     335} 
  • trunk/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp

    r272 r279  
    179179    newscript->Name="boss_brutallus"; 
    180180    newscript->GetAI = GetAI_boss_brutallus; 
    181     m_scripts[nrscripts++] = newscript; 
     181    newscript->RegisterSelf(); 
    182182} 
  • trunk/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp

    r272 r279  
    762762    newscript->Name="boss_sacrolash"; 
    763763    newscript->GetAI = GetAI_boss_sacrolash; 
    764     m_scripts[nrscripts++] = newscript; 
     764    newscript->RegisterSelf(); 
    765765 
    766766    newscript = new Script; 
    767767    newscript->Name="boss_alythess"; 
    768768    newscript->GetAI = GetAI_boss_alythess; 
    769     m_scripts[nrscripts++] = newscript; 
     769    newscript->RegisterSelf(); 
    770770 
    771771    newscript = new Script; 
    772772    newscript->Name="mob_shadow_image"; 
    773773    newscript->GetAI = GetAI_mob_shadow_image; 
    774     m_scripts[nrscripts++] = newscript; 
     774    newscript->RegisterSelf(); 
    775775} 
  • trunk/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp

    r272 r279  
    296296            break; 
    297297        case 2: 
    298             if(Player* target = SelectRandomPlayer(150)) 
     298            if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true)) 
    299299            { 
    300300                Creature* Vapor = m_creature->SummonCreature(MOB_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000); 
     
    312312            DespawnSummons(MOB_VAPOR_TRAIL); 
    313313            //m_creature->CastSpell(m_creature, SPELL_VAPOR_SELECT); need core support 
    314             if(Player* target = SelectRandomPlayer(150)) 
     314            if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true)) 
    315315            { 
    316316                //target->CastSpell(target, SPELL_VAPOR_SUMMON, true); need core support 
     
    331331            break; 
    332332        case 5: 
    333             if(Player* target = SelectRandomPlayer(150)) 
     333            if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true)) 
    334334            { 
    335335                BreathX = target->GetPositionX(); 
     
    434434                break; 
    435435            case EVENT_ENCAPSULATE: 
    436                 if(Unit* target = SelectRandomPlayer(150)) 
     436                if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true)) 
    437437                { 
    438438                    m_creature->CastSpell(target, SPELL_ENCAPSULATE_CHANNEL, false); 
     
    516516        } 
    517517    } 
    518  
    519     Player* SelectRandomPlayer(float range = 0.0f) 
    520     { 
    521         Map *map = m_creature->GetMap(); 
    522         if (!map->IsDungeon()) return NULL; 
    523  
    524         InstanceMap::PlayerList PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    525         InstanceMap::PlayerList::iterator i; 
    526         while(PlayerList.size()) 
    527         { 
    528             i = PlayerList.begin(); 
    529             advance(i, rand()%PlayerList.size()); 
    530             if((range == 0.0f || m_creature->IsWithinDistInMap(*i, range)) 
    531                 && (*i)->isTargetableForAttack()) 
    532                 return *i; 
    533             else 
    534                 PlayerList.erase(i); 
    535         } 
    536         return NULL; 
    537     } 
    538518}; 
    539519 
     
    595575    newscript->Name="boss_felmyst"; 
    596576    newscript->GetAI = GetAI_boss_felmyst; 
    597     m_scripts[nrscripts++] = newscript; 
     577    newscript->RegisterSelf(); 
    598578 
    599579    newscript = new Script; 
    600580    newscript->Name="mob_felmyst_vapor"; 
    601581    newscript->GetAI = GetAI_mob_felmyst_vapor; 
    602     m_scripts[nrscripts++] = newscript; 
     582    newscript->RegisterSelf(); 
    603583 
    604584    newscript = new Script; 
    605585    newscript->Name="mob_felmyst_trail"; 
    606586    newscript->GetAI = GetAI_mob_felmyst_trail; 
    607     m_scripts[nrscripts++] = newscript; 
     587    newscript->RegisterSelf(); 
    608588} 
  • trunk/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp

    r272 r279  
    369369        Map *map = m_creature->GetMap(); 
    370370        if(!map->IsDungeon()) return; 
    371         InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    372         InstanceMap::PlayerList::const_iterator i; 
    373         for (i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    374         { 
    375             if((*i)->HasAura(AURA_SPECTRAL_REALM,0)) 
    376                 (*i)->RemoveAurasDueToSpell(AURA_SPECTRAL_REALM); 
    377         } 
     371        Map::PlayerList const &PlayerList = map->GetPlayers(); 
     372        Map::PlayerList::const_iterator i; 
     373        for(i = PlayerList.begin(); i != PlayerList.end(); ++i) 
     374            if(Player* i_pl = i->getSource()) 
     375                if(i_pl->HasAura(AURA_SPECTRAL_REALM,0)) 
     376                    i_pl->RemoveAurasDueToSpell(AURA_SPECTRAL_REALM); 
    378377    } 
    379378 
     
    682681    newscript->Name="boss_kalecgos"; 
    683682    newscript->GetAI = GetAI_boss_kalecgos; 
    684     m_scripts[nrscripts++] = newscript; 
     683    newscript->RegisterSelf(); 
    685684 
    686685    newscript = new Script; 
    687686    newscript->Name="boss_sathrovarr"; 
    688687    newscript->GetAI = GetAI_boss_Sathrovarr; 
    689     m_scripts[nrscripts++] = newscript; 
     688    newscript->RegisterSelf(); 
    690689 
    691690    newscript = new Script; 
    692691    newscript->Name="boss_kalec"; 
    693692    newscript->GetAI = GetAI_boss_kalec; 
    694     m_scripts[nrscripts++] = newscript; 
     693    newscript->RegisterSelf(); 
    695694 
    696695    newscript = new Script; 
    697696    newscript->Name="kalocegos_teleporter"; 
    698697    newscript->pGOHello = &GOkalocegos_teleporter; 
    699     m_scripts[nrscripts++] = newscript; 
     698    newscript->RegisterSelf(); 
    700699} 
  • trunk/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp

    r272 r279  
    193193    newscript->Name = "instance_sunwell_plateau"; 
    194194    newscript->GetInstanceData = GetInstanceData_instance_sunwell_plateau; 
    195     m_scripts[nrscripts++] = newscript; 
     195    newscript->RegisterSelf(); 
    196196} 
  • trunk/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp

    r272 r279  
    375375    newscript->Name="mob_aquementas"; 
    376376    newscript->GetAI = GetAI_mob_aquementas; 
    377     m_scripts[nrscripts++] = newscript; 
     377    newscript->RegisterSelf(); 
    378378 
    379379    newscript = new Script; 
    380380    newscript->Name="npc_custodian_of_time"; 
    381381    newscript->GetAI = GetAI_npc_custodian_of_time; 
    382     m_scripts[nrscripts++] = newscript; 
     382    newscript->RegisterSelf(); 
    383383 
    384384    newscript = new Script; 
     
    386386    newscript->pGossipHello =  &GossipHello_npc_marin_noggenfogger; 
    387387    newscript->pGossipSelect = &GossipSelect_npc_marin_noggenfogger; 
    388     m_scripts[nrscripts++] = newscript; 
     388    newscript->RegisterSelf(); 
    389389 
    390390    newscript = new Script; 
     
    393393    newscript->pGossipSelect = &GossipSelect_npc_steward_of_time; 
    394394    newscript->pQuestAccept =  &QuestAccept_npc_steward_of_time; 
    395     m_scripts[nrscripts++] = newscript; 
     395    newscript->RegisterSelf(); 
    396396 
    397397    newscript = new Script; 
     
    399399    newscript->pGossipHello =  &GossipHello_npc_stone_watcher_of_norgannon; 
    400400    newscript->pGossipSelect = &GossipSelect_npc_stone_watcher_of_norgannon; 
    401     m_scripts[nrscripts++] = newscript; 
    402 } 
     401    newscript->RegisterSelf(); 
     402} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp

    r272 r279  
    576576    newscript->Name="npc_millhouse_manastorm"; 
    577577    newscript->GetAI = GetAI_npc_millhouse_manastorm; 
    578     m_scripts[nrscripts++] = newscript; 
     578    newscript->RegisterSelf(); 
    579579 
    580580    newscript = new Script; 
    581581    newscript->Name="npc_warden_mellichar"; 
    582582    newscript->GetAI = GetAI_npc_warden_mellichar; 
    583     m_scripts[nrscripts++] = newscript; 
     583    newscript->RegisterSelf(); 
    584584 
    585585    newscript = new Script; 
    586586    newscript->Name="mob_zerekethvoidzone"; 
    587587    newscript->GetAI = GetAI_mob_zerekethvoidzoneAI; 
    588     m_scripts[nrscripts++] = newscript; 
     588    newscript->RegisterSelf(); 
    589589} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp

    r272 r279  
    368368    newscript->Name="boss_harbinger_skyriss"; 
    369369    newscript->GetAI = GetAI_boss_harbinger_skyriss; 
    370     m_scripts[nrscripts++] = newscript; 
     370    newscript->RegisterSelf(); 
    371371 
    372372    newscript = new Script; 
    373373    newscript->Name="boss_harbinger_skyriss_illusion"; 
    374374    newscript->GetAI = GetAI_boss_harbinger_skyriss_illusion; 
    375     m_scripts[nrscripts++] = newscript; 
     375    newscript->RegisterSelf(); 
    376376} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp

    r272 r279  
    221221    newscript->Name = "instance_arcatraz"; 
    222222    newscript->GetInstanceData = GetInstanceData_instance_arcatraz; 
    223     m_scripts[nrscripts++] = newscript; 
     223    newscript->RegisterSelf(); 
    224224} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp

    r272 r279  
    212212    newscript->Name="boss_high_botanist_freywinn"; 
    213213    newscript->GetAI = GetAI_boss_high_botanist_freywinn; 
    214     m_scripts[nrscripts++] = newscript; 
     214    newscript->RegisterSelf(); 
    215215} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_laj.cpp

    r272 r279  
    195195    newscript->Name="boss_laj"; 
    196196    newscript->GetAI = GetAI_boss_laj; 
    197     m_scripts[nrscripts++] = newscript; 
     197    newscript->RegisterSelf(); 
    198198} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp

    r272 r279  
    294294    newscript->Name="boss_warp_splinter"; 
    295295    newscript->GetAI = GetAI_boss_warp_splinter; 
    296     m_scripts[nrscripts++] = newscript; 
     296    newscript->RegisterSelf(); 
    297297 
    298298    newscript = new Script; 
    299299    newscript->Name="mob_warp_splinter_treant"; 
    300300    newscript->GetAI = GetAI_mob_treant; 
    301     m_scripts[nrscripts++] = newscript; 
     301    newscript->RegisterSelf(); 
    302302} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp

    r272 r279  
    506506    newscript->Name="boss_alar"; 
    507507    newscript->GetAI = GetAI_boss_alar; 
    508     m_scripts[nrscripts++] = newscript; 
     508    newscript->RegisterSelf(); 
    509509 
    510510    newscript = new Script; 
    511511    newscript->Name="mob_ember_of_alar"; 
    512512    newscript->GetAI = GetAI_mob_ember_of_alar; 
    513     m_scripts[nrscripts++] = newscript; 
     513    newscript->RegisterSelf(); 
    514514 
    515515    newscript = new Script; 
    516516    newscript->Name="mob_flame_patch_alar"; 
    517517    newscript->GetAI = GetAI_mob_flame_patch_alar; 
    518     m_scripts[nrscripts++] = newscript; 
     518    newscript->RegisterSelf(); 
    519519} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp

    r272 r279  
    537537    newscript->Name="boss_high_astromancer_solarian"; 
    538538    newscript->GetAI = GetAI_boss_high_astromancer_solarian; 
    539     m_scripts[nrscripts++] = newscript; 
     539    newscript->RegisterSelf(); 
    540540 
    541541    newscript = new Script; 
    542542    newscript->Name="mob_solarium_priest"; 
    543543    newscript->GetAI = GetAI_mob_solarium_priest; 
    544     m_scripts[nrscripts++] = newscript; 
     544    newscript->RegisterSelf(); 
    545545} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp

    r272 r279  
    15821582    newscript->Name="boss_kaelthas"; 
    15831583    newscript->GetAI = GetAI_boss_kaelthas; 
    1584     m_scripts[nrscripts++] = newscript; 
     1584    newscript->RegisterSelf(); 
    15851585 
    15861586    newscript = new Script; 
    15871587    newscript->Name="boss_thaladred_the_darkener"; 
    15881588    newscript->GetAI = GetAI_boss_thaladred_the_darkener; 
    1589     m_scripts[nrscripts++] = newscript; 
     1589    newscript->RegisterSelf(); 
    15901590 
    15911591    newscript = new Script; 
    15921592    newscript->Name="boss_lord_sanguinar"; 
    15931593    newscript->GetAI = GetAI_boss_lord_sanguinar; 
    1594     m_scripts[nrscripts++] = newscript; 
     1594    newscript->RegisterSelf(); 
    15951595 
    15961596    newscript = new Script; 
    15971597    newscript->Name="boss_grand_astromancer_capernian"; 
    15981598    newscript->GetAI = GetAI_boss_grand_astromancer_capernian; 
    1599     m_scripts[nrscripts++] = newscript; 
     1599    newscript->RegisterSelf(); 
    16001600 
    16011601    newscript = new Script; 
    16021602    newscript->Name="boss_master_engineer_telonicus"; 
    16031603    newscript->GetAI = GetAI_boss_master_engineer_telonicus; 
    1604     m_scripts[nrscripts++] = newscript; 
     1604    newscript->RegisterSelf(); 
    16051605 
    16061606    newscript = new Script; 
    16071607    newscript->Name= "mob_kael_flamestrike"; 
    16081608    newscript->GetAI = GetAI_mob_kael_flamestrike; 
    1609     m_scripts[nrscripts++] = newscript; 
     1609    newscript->RegisterSelf(); 
    16101610 
    16111611    newscript = new Script; 
    16121612    newscript->Name="mob_phoenix"; 
    16131613    newscript->GetAI = GetAI_mob_phoenix; 
    1614     m_scripts[nrscripts++] = newscript; 
     1614    newscript->RegisterSelf(); 
    16151615} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp

    r272 r279  
    196196    newscript->Name="boss_void_reaver"; 
    197197    newscript->GetAI = GetAI_boss_void_reaver; 
    198     m_scripts[nrscripts++] = newscript; 
     198    newscript->RegisterSelf(); 
    199199} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp

    r272 r279  
    173173    newscript->Name = "instance_the_eye"; 
    174174    newscript->GetInstanceData = GetInstanceData_instance_the_eye; 
    175     m_scripts[nrscripts++] = newscript; 
     175    newscript->RegisterSelf(); 
    176176} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/the_eye.cpp

    r272 r279  
    9595    newscript->Name="mob_crystalcore_devastator"; 
    9696    newscript->GetAI = GetAI_mob_crystalcore_devastator; 
    97     m_scripts[nrscripts++] = newscript; 
     97    newscript->RegisterSelf(); 
    9898} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp

    r272 r279  
    158158    newscript->Name="boss_gatewatcher_iron_hand";     
    159159    newscript->GetAI = GetAI_boss_gatewatcher_iron_hand;     
    160     m_scripts[nrscripts++] = newscript; 
     160    newscript->RegisterSelf(); 
    161161} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp

    r272 r279  
    278278    newscript->Name="boss_nethermancer_sepethrea";     
    279279    newscript->GetAI = GetAI_boss_nethermancer_sepethrea;     
    280     m_scripts[nrscripts++] = newscript; 
     280    newscript->RegisterSelf(); 
    281281 
    282282    newscript = new Script;     
    283283    newscript->Name="mob_ragin_flames";     
    284284    newscript->GetAI = GetAI_mob_ragin_flames;     
    285     m_scripts[nrscripts++] = newscript; 
     285    newscript->RegisterSelf(); 
    286286} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp

    r272 r279  
    298298    newscript->Name="boss_pathaleon_the_calculator";     
    299299    newscript->GetAI = GetAI_boss_pathaleon_the_calculator;     
    300     m_scripts[nrscripts++] = newscript; 
     300    newscript->RegisterSelf(); 
    301301 
    302302    newscript = new Script;     
    303303    newscript->Name="mob_nether_wraith";     
    304304    newscript->GetAI = GetAI_mob_nether_wraith;     
    305     m_scripts[nrscripts++] = newscript; 
     305    newscript->RegisterSelf(); 
    306306} 
  • trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp

    r272 r279  
    8787    newscript->Name = "instance_mechanar"; 
    8888    newscript->GetInstanceData = GetInstanceData_instance_mechanar; 
    89     m_scripts[nrscripts++] = newscript; 
     89    newscript->RegisterSelf(); 
    9090} 
  • trunk/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp

    r272 r279  
    335335    newscript->Name="boss_kri"; 
    336336    newscript->GetAI = GetAI_boss_kri; 
    337     m_scripts[nrscripts++] = newscript; 
     337    newscript->RegisterSelf(); 
    338338 
    339339    newscript = new Script; 
    340340    newscript->Name="boss_vem"; 
    341341    newscript->GetAI = GetAI_boss_vem; 
    342     m_scripts[nrscripts++] = newscript; 
     342    newscript->RegisterSelf(); 
    343343 
    344344    newscript = new Script; 
    345345    newscript->Name="boss_yauj"; 
    346346    newscript->GetAI = GetAI_boss_yauj; 
    347     m_scripts[nrscripts++] = newscript; 
     347    newscript->RegisterSelf(); 
    348348} 
  • trunk/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp

    r272 r279  
    578578                if(!map->IsDungeon()) return; 
    579579 
    580                 InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    581                 for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    582                 { 
    583                     //Play random sound to the zone 
    584                     switch (rand()%8) 
     580                Map::PlayerList const &PlayerList = map->GetPlayers(); 
     581                for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) 
     582                { 
     583                    if (Player* i_pl = i->getSource()) 
    585584                    { 
    586                         case 0: (*i)->SendPlaySound(RND_WISPER_1, true); break; 
    587                         case 1: (*i)->SendPlaySound(RND_WISPER_2, true); break; 
    588                         case 2: (*i)->SendPlaySound(RND_WISPER_3, true); break; 
    589                         case 3: (*i)->SendPlaySound(RND_WISPER_4, true); break; 
    590                         case 4: (*i)->SendPlaySound(RND_WISPER_5, true); break; 
    591                         case 5: (*i)->SendPlaySound(RND_WISPER_6, true); break; 
    592                         case 6: (*i)->SendPlaySound(RND_WISPER_7, true); break; 
    593                         case 7: (*i)->SendPlaySound(RND_WISPER_8, true); break; 
     585                        //Play random sound to the zone 
     586                        switch (rand()%8) 
     587                        { 
     588                            case 0: i_pl->SendPlaySound(RND_WISPER_1, true); break; 
     589                            case 1: i_pl->SendPlaySound(RND_WISPER_2, true); break; 
     590                            case 2: i_pl->SendPlaySound(RND_WISPER_3, true); break; 
     591                            case 3: i_pl->SendPlaySound(RND_WISPER_4, true); break; 
     592                            case 4: i_pl->SendPlaySound(RND_WISPER_5, true); break; 
     593                            case 5: i_pl->SendPlaySound(RND_WISPER_6, true); break; 
     594                            case 6: i_pl->SendPlaySound(RND_WISPER_7, true); break; 
     595                            case 7: i_pl->SendPlaySound(RND_WISPER_8, true); break; 
     596                        } 
    594597                    } 
    595598                } 
     
    13271330    newscript->Name="boss_eye_of_cthun"; 
    13281331    newscript->GetAI = GetAI_eye_of_cthun; 
    1329     m_scripts[nrscripts++] = newscript; 
     1332    newscript->RegisterSelf(); 
    13301333 
    13311334    newscript = new Script; 
    13321335    newscript->Name="boss_cthun"; 
    13331336    newscript->GetAI = GetAI_cthun; 
    1334     m_scripts[nrscripts++] = newscript; 
     1337    newscript->RegisterSelf(); 
    13351338 
    13361339    newscript = new Script; 
    13371340    newscript->Name="mob_eye_tentacle"; 
    13381341    newscript->GetAI = GetAI_eye_tentacle; 
    1339     m_scripts[nrscripts++] = newscript; 
     1342    newscript->RegisterSelf(); 
    13401343 
    13411344    newscript = new Script; 
    13421345    newscript->Name="mob_claw_tentacle"; 
    13431346    newscript->GetAI = GetAI_claw_tentacle; 
    1344     m_scripts[nrscripts++] = newscript; 
     1347    newscript->RegisterSelf(); 
    13451348 
    13461349    newscript = new Script; 
    13471350    newscript->Name="mob_giant_claw_tentacle"; 
    13481351    newscript->GetAI = GetAI_giant_claw_tentacle; 
    1349     m_scripts[nrscripts++] = newscript; 
     1352    newscript->RegisterSelf(); 
    13501353 
    13511354    newscript = new Script; 
    13521355    newscript->Name="mob_giant_eye_tentacle"; 
    13531356    newscript->GetAI = GetAI_giant_eye_tentacle; 
    1354     m_scripts[nrscripts++] = newscript; 
     1357    newscript->RegisterSelf(); 
    13551358 
    13561359    newscript = new Script; 
    13571360    newscript->Name="mob_giant_flesh_tentacle"; 
    13581361    newscript->GetAI = GetAI_flesh_tentacle; 
    1359     m_scripts[nrscripts++] = newscript; 
     1362    newscript->RegisterSelf(); 
    13601363} 
  • trunk/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp

    r272 r279  
    187187    newscript->Name="boss_fankriss"; 
    188188    newscript->GetAI = GetAI_boss_fankriss; 
    189     m_scripts[nrscripts++] = newscript; 
     189    newscript->RegisterSelf(); 
    190190} 
  • trunk/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp

    r272 r279  
    140140    newscript->Name="boss_huhuran"; 
    141141    newscript->GetAI = GetAI_boss_huhuran; 
    142     m_scripts[nrscripts++] = newscript; 
     142    newscript->RegisterSelf(); 
    143143} 
  • trunk/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp

    r272 r279  
    137137    newscript->Name="boss_ouro"; 
    138138    newscript->GetAI = GetAI_boss_ouro; 
    139     m_scripts[nrscripts++] = newscript; 
     139    newscript->RegisterSelf(); 
    140140} 
  • trunk/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp

    r272 r279  
    260260    newscript->Name="boss_sartura"; 
    261261    newscript->GetAI = GetAI_boss_sartura; 
    262     m_scripts[nrscripts++] = newscript; 
     262    newscript->RegisterSelf(); 
    263263 
    264264    newscript = new Script; 
    265265    newscript->Name="mob_sartura_royal_guard"; 
    266266    newscript->GetAI = GetAI_mob_sartura_royal_guard; 
    267     m_scripts[nrscripts++] = newscript; 
     267    newscript->RegisterSelf(); 
    268268} 
  • trunk/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp

    r272 r279  
    311311    newscript->Name="boss_skeram"; 
    312312    newscript->GetAI = GetAI_boss_skeram; 
    313     m_scripts[nrscripts++] = newscript; 
     313    newscript->RegisterSelf(); 
    314314} 
  • trunk/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp

    r272 r279  
    690690    newscript->Name="boss_veknilash"; 
    691691    newscript->GetAI = GetAI_boss_veknilash; 
    692     m_scripts[nrscripts++] = newscript; 
     692    newscript->RegisterSelf(); 
    693693 
    694694    newscript = new Script; 
    695695    newscript->Name="boss_veklor"; 
    696696    newscript->GetAI = GetAI_boss_veklor; 
    697     m_scripts[nrscripts++] = newscript; 
     697    newscript->RegisterSelf(); 
    698698} 
  • trunk/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp

    r272 r279  
    162162    newscript->Name = "instance_temple_of_ahnqiraj"; 
    163163    newscript->GetInstanceData = GetInstanceData_instance_temple_of_ahnqiraj; 
    164     m_scripts[nrscripts++] = newscript; 
     164    newscript->RegisterSelf(); 
    165165} 
  • trunk/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp

    r272 r279  
    310310    newscript->Name="mob_anubisath_sentinel"; 
    311311    newscript->GetAI = GetAI_mob_anubisath_sentinelAI; 
    312     m_scripts[nrscripts++] = newscript; 
     312    newscript->RegisterSelf(); 
    313313} 
    314314 
  • trunk/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp

    r272 r279  
    369369    newscript->Name="mob_unkor_the_ruthless"; 
    370370    newscript->GetAI = GetAI_mob_unkor_the_ruthless; 
    371     m_scripts[nrscripts++] = newscript; 
     371    newscript->RegisterSelf(); 
    372372 
    373373    newscript = new Script; 
    374374    newscript->Name="mob_infested_root_walker"; 
    375375    newscript->GetAI = GetAI_mob_infested_root_walker; 
    376     m_scripts[nrscripts++] = newscript; 
     376    newscript->RegisterSelf(); 
    377377 
    378378    newscript = new Script; 
    379379    newscript->Name="mob_rotting_forest_rager"; 
    380380    newscript->GetAI = GetAI_mob_rotting_forest_rager; 
    381     m_scripts[nrscripts++] = newscript; 
     381    newscript->RegisterSelf(); 
    382382 
    383383    newscript = new Script; 
    384384    newscript->Name="mob_netherweb_victim"; 
    385385    newscript->GetAI = GetAI_mob_netherweb_victim; 
    386     m_scripts[nrscripts++] = newscript; 
     386    newscript->RegisterSelf(); 
    387387 
    388388    newscript = new Script; 
     
    390390    newscript->pGossipHello =  &GossipHello_npc_floon; 
    391391    newscript->pGossipSelect = &GossipSelect_npc_floon; 
    392     m_scripts[nrscripts++] = newscript; 
     392    newscript->RegisterSelf(); 
    393393 
    394394    newscript = new Script; 
     
    396396    newscript->pGossipHello =  &GossipHello_npc_skyguard_handler_deesak; 
    397397    newscript->pGossipSelect = &GossipSelect_npc_skyguard_handler_deesak; 
    398     m_scripts[nrscripts++] = newscript; 
    399 } 
     398    newscript->RegisterSelf(); 
     399} 
  • trunk/src/bindings/scripts/scripts/zone/thunder_bluff/thunder_bluff.cpp

    r272 r279  
    133133    newscript->pGossipHello = &GossipHello_npc_cairne_bloodhoof; 
    134134    newscript->pGossipSelect = &GossipSelect_npc_cairne_bloodhoof; 
    135     m_scripts[nrscripts++] = newscript; 
     135    newscript->RegisterSelf(); 
    136136} 
  • trunk/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp

    r272 r279  
    8585    newscript->GetAI = GetAI_npc_calvin_montague; 
    8686    newscript->pQuestAccept = &QuestAccept_npc_calvin_montague; 
    87     m_scripts[nrscripts++] = newscript; 
     87    newscript->RegisterSelf(); 
    8888} 
  • trunk/src/bindings/scripts/scripts/zone/uldaman/boss_ironaya.cpp

    r272 r279  
    104104    newscript->Name="boss_ironaya"; 
    105105    newscript->GetAI = GetAI_boss_ironaya; 
    106     m_scripts[nrscripts++] = newscript; 
     106    newscript->RegisterSelf(); 
    107107} 
  • trunk/src/bindings/scripts/scripts/zone/uldaman/uldaman.cpp

    r272 r279  
    178178    newscript->Name="mob_jadespine_basilisk"; 
    179179    newscript->GetAI = GetAI_mob_jadespine_basilisk; 
    180     m_scripts[nrscripts++] = newscript; 
     180    newscript->RegisterSelf(); 
    181181 
    182182    newscript = new Script; 
     
    184184    newscript->pGossipHello = &GossipHello_npc_lore_keeper_of_norgannon; 
    185185    newscript->pGossipSelect = &GossipSelect_npc_lore_keeper_of_norgannon; 
    186     m_scripts[nrscripts++] = newscript; 
     186    newscript->RegisterSelf(); 
    187187} 
  • trunk/src/bindings/scripts/scripts/zone/undercity/undercity.cpp

    r272 r279  
    246246    newscript->GetAI = GetAI_npc_lady_sylvanas_windrunner; 
    247247    newscript->pChooseReward = &ChooseReward_npc_lady_sylvanas_windrunner; 
    248     m_scripts[nrscripts++] = newscript; 
     248    newscript->RegisterSelf(); 
    249249 
    250250    newscript = new Script; 
    251251    newscript->Name="npc_highborne_lamenter"; 
    252252    newscript->GetAI = GetAI_npc_highborne_lamenter; 
    253     m_scripts[nrscripts++] = newscript; 
     253    newscript->RegisterSelf(); 
    254254 
    255255    newscript = new Script; 
     
    257257    newscript->pGossipHello = &GossipHello_npc_parqual_fintallas; 
    258258    newscript->pGossipSelect = &GossipSelect_npc_parqual_fintallas; 
    259     m_scripts[nrscripts++] = newscript; 
    260 } 
     259    newscript->RegisterSelf(); 
     260} 
  • trunk/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp

    r272 r279  
    168168    newscript->pGossipHello = &GossipHello_npcs_dithers_and_arbington; 
    169169    newscript->pGossipSelect = &GossipSelect_npcs_dithers_and_arbington; 
    170     m_scripts[nrscripts++] = newscript; 
     170    newscript->RegisterSelf(); 
    171171 
    172172    newscript = new Script; 
    173173    newscript->Name="npc_the_scourge_cauldron"; 
    174174    newscript->GetAI = GetAI_npc_the_scourge_cauldron; 
    175     m_scripts[nrscripts++] = newscript; 
     175    newscript->RegisterSelf(); 
    176176} 
  • trunk/src/bindings/scripts/scripts/zone/winterspring/winterspring.cpp

    r272 r279  
    142142    newscript->pGossipHello =  &GossipHello_npc_lorax; 
    143143    newscript->pGossipSelect = &GossipSelect_npc_lorax; 
    144     m_scripts[nrscripts++] = newscript; 
     144    newscript->RegisterSelf(); 
    145145 
    146146    newscript = new Script; 
     
    148148    newscript->pGossipHello =  &GossipHello_npc_rivern_frostwind; 
    149149    newscript->pGossipSelect = &GossipSelect_npc_rivern_frostwind; 
    150     m_scripts[nrscripts++] = newscript; 
     150    newscript->RegisterSelf(); 
    151151 
    152152    newscript = new Script; 
     
    154154    newscript->pGossipHello =  &GossipHello_npc_witch_doctor_mauari; 
    155155    newscript->pGossipSelect = &GossipSelect_npc_witch_doctor_mauari; 
    156     m_scripts[nrscripts++] = newscript; 
     156    newscript->RegisterSelf(); 
    157157} 
  • trunk/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp

    r272 r279  
    262262    newscript->pGossipHello =  &GossipHello_npcs_ashyen_and_keleth; 
    263263    newscript->pGossipSelect = &GossipSelect_npcs_ashyen_and_keleth; 
    264     m_scripts[nrscripts++] = newscript; 
     264    newscript->RegisterSelf(); 
    265265 
    266266    newscript = new Script; 
     
    268268    newscript->pGossipHello =  &GossipHello_npc_cooshcoosh; 
    269269    newscript->pGossipSelect = &GossipSelect_npc_cooshcoosh; 
    270     m_scripts[nrscripts++] = newscript; 
     270    newscript->RegisterSelf(); 
    271271 
    272272    newscript = new Script; 
     
    274274    newscript->pGossipHello =  &GossipHello_npc_elder_kuruti; 
    275275    newscript->pGossipSelect = &GossipSelect_npc_elder_kuruti; 
    276     m_scripts[nrscripts++] = newscript; 
     276    newscript->RegisterSelf(); 
    277277 
    278278    newscript = new Script; 
     
    280280    newscript->pGossipHello =  &GossipHello_npc_mortog_steamhead; 
    281281    newscript->pGossipSelect = &GossipSelect_npc_mortog_steamhead; 
    282     m_scripts[nrscripts++] = newscript; 
    283 } 
     282    newscript->RegisterSelf(); 
     283} 
  • trunk/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp

    r272 r279  
    462462    newscript->Name="boss_akilzon"; 
    463463    newscript->GetAI = GetAI_boss_akilzon; 
    464     m_scripts[nrscripts++] = newscript; 
     464    newscript->RegisterSelf(); 
    465465 
    466466    newscript = new Script; 
    467467    newscript->Name="mob_akilzon_eagle"; 
    468468    newscript->GetAI = GetAI_mob_soaring_eagle; 
    469     m_scripts[nrscripts++] = newscript; 
     469    newscript->RegisterSelf(); 
    470470} 
  • trunk/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp

    r272 r279  
    395395    newscript->Name="boss_halazzi"; 
    396396    newscript->GetAI = GetAI_boss_halazziAI; 
    397     m_scripts[nrscripts++] = newscript; 
     397    newscript->RegisterSelf(); 
    398398 
    399399    newscript = new Script; 
    400400    newscript->Name="mob_halazzi_lynx"; 
    401401    newscript->GetAI = GetAI_boss_spiritlynxAI; 
    402     m_scripts[nrscripts++] = newscript; 
     402    newscript->RegisterSelf(); 
    403403} 
  • trunk/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp

    r272 r279  
    372372        if(SiphonSoul_Timer < diff) 
    373373        { 
    374             Player* target = SelectRandomPlayer(50); 
     374            Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 70, true); 
    375375            Unit *trigger = DoSpawnCreature(MOB_TEMP_TRIGGER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 30000); 
    376376            if(!target || !trigger) EnterEvadeMode(); 
     
    436436        m_creature->CastSpell(target, PlayerAbility[PlayerClass][random].spell, false); 
    437437    } 
    438  
    439     Player* SelectRandomPlayer(float range = 0.0f, bool alive = true) 
    440     { 
    441         Map *map = m_creature->GetMap(); 
    442         if (!map->IsDungeon()) return NULL; 
    443  
    444         InstanceMap::PlayerList PlayerList = ((InstanceMap*)map)->GetPlayers(); 
    445         InstanceMap::PlayerList::iterator i; 
    446         while(PlayerList.size()) 
    447         { 
    448             i = PlayerList.begin(); 
    449             advance(i, rand()%PlayerList.size()); 
    450             if((range == 0.0f || m_creature->IsWithinDistInMap(*i, range)) 
    451                 && (!alive || (*i)->isAlive())) 
    452                 return *i; 
    453             else 
    454                 PlayerList.erase(i); 
    455         } 
    456         return NULL; 
    457     } 
    458438}; 
    459439 
     
    889869    newscript->Name="boss_hexlord_malacrass"; 
    890870    newscript->GetAI = GetAI_boss_hex_lord_malacrass; 
    891     m_scripts[nrscripts++] = newscript; 
     871    newscript->RegisterSelf(); 
    892872 
    893873    newscript = new Script; 
    894874    newscript->Name="boss_thurg"; 
    895875    newscript->GetAI = GetAI_boss_thurg; 
    896     m_scripts[nrscripts++] = newscript; 
     876    newscript->RegisterSelf(); 
    897877 
    898878    newscript = new Script; 
    899879    newscript->Name="boss_gazakroth"; 
    900880    newscript->GetAI = GetAI_boss_gazakroth; 
    901     m_scripts[nrscripts++] = newscript; 
     881    newscript->RegisterSelf(); 
    902882 
    903883    newscript = new Script; 
    904884    newscript->Name="boss_lord_raadan"; 
    905885    newscript->GetAI = GetAI_boss_lord_raadan; 
    906     m_scripts[nrscripts++] = newscript; 
     886    newscript->RegisterSelf(); 
    907887 
    908888    newscript = new Script; 
    909889    newscript->Name="boss_darkheart"; 
    910890    newscript->GetAI = GetAI_boss_darkheart; 
    911     m_scripts[nrscripts++] = newscript; 
     891    newscript->RegisterSelf(); 
    912892 
    913893    newscript = new Script; 
    914894    newscript->Name="boss_slither"; 
    915895    newscript->GetAI = GetAI_boss_slither; 
    916     m_scripts[nrscripts++] = newscript; 
     896    newscript->RegisterSelf(); 
    917897 
    918898    newscript = new Script; 
    919899    newscript->Name="boss_fenstalker"; 
    920900    newscript->GetAI = GetAI_boss_fenstalker; 
    921     m_scripts[nrscripts++] = newscript; 
     901    newscript->RegisterSelf(); 
    922902 
    923903    newscript = new Script; 
    924904    newscript->Name="boss_koragg"; 
    925905    newscript->GetAI = GetAI_boss_koragg; 
    926     m_scripts[nrscripts++] = newscript; 
     906    newscript->RegisterSelf(); 
    927907 
    928908    newscript = new Script; 
    929909    newscript->Name="boss_alyson_antille"; 
    930910    newscript->GetAI = GetAI_boss_alyson_antille; 
    931     m_scripts[nrscripts++] = newscript; 
     911    newscript->RegisterSelf(); 
    932912} 
  • trunk/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp

    r272 r279  
    398398            Map *map = m_creature->GetMap(); 
    399399            if(!map->IsDungeon()) return; 
    400             InstanceMap::PlayerList const &PlayerList =((InstanceMap*)map)->GetPlayers(); 
    401             for(InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) 
    402             { 
    403                 if((*i)->isAlive()) 
    404                     DoTeleportPlayer(*i, JanalainPos[0][0]-5+rand()%10, JanalainPos[0][1]-5+rand()%10, JanalainPos[0][2], 0); 
     400            Map::PlayerList const &PlayerList = map->GetPlayers(); 
     401            for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) 
     402            { 
     403                if (Player* i_pl = i->getSource()) 
     404                    if(i_pl->isAlive()) 
     405                        DoTeleportPlayer(i_pl, JanalainPos[0][0]-5+rand()%10, JanalainPos[0][1]-5+rand()%10, JanalainPos[0][2], 0); 
    405406            } 
    406407            //m_creature->CastSpell(Temp, SPELL_SUMMON_PLAYERS, true); // core bug, spell does not work if too far 
     
    706707    newscript->Name="boss_janalai"; 
    707708    newscript->GetAI = GetAI_boss_janalaiAI; 
    708     m_scripts[nrscripts++] = newscript 
     709    newscript->RegisterSelf() 
    709710 
    710711    newscript = new Script; 
    711712    newscript->Name="mob_janalai_firebomb"; 
    712713    newscript->GetAI = GetAI_mob_jandalai_firebombAI; 
    713     m_scripts[nrscripts++] = newscript 
     714    newscript->RegisterSelf() 
    714715 
    715716    newscript = new Script; 
    716717    newscript->Name="mob_janalai_hatcher"; 
    717718    newscript->GetAI = GetAI_mob_amanishi_hatcherAI; 
    718     m_scripts[nrscripts++] = newscript;  
     719    newscript->RegisterSelf();  
    719720 
    720721    newscript = new Script; 
    721722    newscript->Name="mob_janalai_hatchling"; 
    722723    newscript->GetAI = GetAI_mob_hatchlingAI; 
    723     m_scripts[nrscripts++] = newscript; 
     724    newscript->RegisterSelf(); 
    724725 
    725726    newscript = new Script; 
    726727    newscript->Name="mob_janalai_egg"; 
    727728    newscript->GetAI = GetAI_mob_eggAI; 
    728     m_scripts[nrscripts++] = newscript;  
     729    newscript->RegisterSelf();  
    729730} 
  • trunk/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp

    r272 r279  
    301301    newscript->Name="boss_nalorakk"; 
    302302    newscript->GetAI = GetAI_boss_nalorakk; 
    303     m_scripts[nrscripts++] = newscript; 
     303    newscript->RegisterSelf(); 
    304304} 
  • trunk/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp

    r272 r279  
    630630    newscript->Name="boss_zuljin"; 
    631631    newscript->GetAI = GetAI_boss_zuljin; 
    632     m_scripts[nrscripts++] = newscript; 
     632    newscript->RegisterSelf(); 
    633633 
    634634    newscript = new Script; 
    635635    newscript->Name="do_nothing"; 
    636636    newscript->GetAI = GetAI_do_nothing; 
    637     m_scripts[nrscripts++] = newscript; 
     637    newscript->RegisterSelf(); 
    638638 
    639639    newscript = new Script; 
    640640    newscript->Name="mob_zuljin_vortex"; 
    641641    newscript->GetAI = GetAI_feather_vortexAI; 
    642     m_scripts[nrscripts++] = newscript; 
     642    newscript->RegisterSelf(); 
    643643} 
  • trunk/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp

    r272 r279  
    140140    void OpenDoor(uint64 DoorGUID, bool open) 
    141141    { 
    142         if(((InstanceMap*)instance)->GetPlayers().size()) 
    143             if(Player* first = ((InstanceMap*)instance)->GetPlayers().front()) 
    144                 if(GameObject *Door = GameObject::GetGameObject(*first, DoorGUID)) 
    145                     Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1); 
     142        if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID)) 
     143            Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1); 
    146144    } 
    147145 
    148146    void SummonHostage(uint8 num) 
    149147    { 
    150         if(QuestMinute && ((InstanceMap*)instance)->GetPlayers().size()) 
    151             if(Player* first = ((InstanceMap*)instance)->GetPlayers().front()) 
    152                 if(Unit* Hostage = first->SummonCreature(HostageInfo[num].npc, HostageInfo[num].x, HostageInfo[num].y, HostageInfo[num].z, HostageInfo[num].o, TEMPSUMMON_DEAD_DESPAWN, 0)) 
    153                 { 
    154                     Hostage->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); 
    155                     Hostage->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); 
    156                 } 
     148        if(!QuestMinute) 
     149            return; 
     150 
     151        Map::PlayerList const &PlayerList = instance->GetPlayers(); 
     152        if (PlayerList.isEmpty()) 
     153            return; 
     154 
     155        Map::PlayerList::const_iterator i = PlayerList.begin(); 
     156        if(Player* i_pl = i->getSource()) 
     157        { 
     158            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)) 
     159            { 
     160                Hostage->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); 
     161                Hostage->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); 
     162            } 
     163        } 
    157164    } 
    158165 
     
    322329    newscript->Name = "instance_zulaman"; 
    323330    newscript->GetInstanceData = GetInstanceData_instance_zulaman; 
    324     m_scripts[nrscripts++] = newscript; 
     331    newscript->RegisterSelf(); 
    325332} 
  • trunk/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp

    r272 r279  
    172172    newscript->Name="npc_forest_frog"; 
    173173    newscript->GetAI = GetAI_npc_forest_frog; 
    174     m_scripts[nrscripts++] = newscript; 
     174    newscript->RegisterSelf(); 
    175175 
    176176    newscript = new Script; 
     
    179179    newscript->pGossipHello = GossipHello_npc_zulaman_hostage; 
    180180    newscript->pGossipSelect = GossipSelect_npc_zulaman_hostage; 
    181     m_scripts[nrscripts++] = newscript; 
     181    newscript->RegisterSelf(); 
    182182} 
  • trunk/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp

    r272 r279  
    214214    newscript->pGossipHello =  &GossipHello_npc_sergeant_bly; 
    215215    newscript->pGossipSelect = &GossipSelect_npc_sergeant_bly; 
    216     m_scripts[nrscripts++] = newscript; 
     216    newscript->RegisterSelf(); 
    217217 
    218218    newscript = new Script; 
     
    221221    newscript->pGossipHello =  &GossipHello_npc_weegli_blastfuse; 
    222222    newscript->pGossipSelect = &GossipSelect_npc_weegli_blastfuse; 
    223     m_scripts[nrscripts++] = newscript; 
    224 } 
     223    newscript->RegisterSelf(); 
     224} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp

    r272 r279  
    208208    newscript->Name="boss_arlokk"; 
    209209    newscript->GetAI = GetAI_boss_arlokk; 
    210     m_scripts[nrscripts++] = newscript; 
     210    newscript->RegisterSelf(); 
    211211} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_gahzranka.cpp

    r272 r279  
    8989    newscript->Name="boss_gahzranka"; 
    9090    newscript->GetAI = GetAI_boss_gahzranka; 
    91     m_scripts[nrscripts++] = newscript; 
     91    newscript->RegisterSelf(); 
    9292} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp

    r272 r279  
    8989    newscript->Name="boss_grilek"; 
    9090    newscript->GetAI = GetAI_boss_grilek; 
    91     m_scripts[nrscripts++] = newscript; 
     91    newscript->RegisterSelf(); 
    9292} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp

    r272 r279  
    253253    newscript->Name="boss_hakkar"; 
    254254    newscript->GetAI = GetAI_boss_hakkar; 
    255     m_scripts[nrscripts++] = newscript; 
     255    newscript->RegisterSelf(); 
    256256} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp

    r272 r279  
    9797    newscript->Name="boss_hazzarah"; 
    9898    newscript->GetAI = GetAI_boss_hazzarah; 
    99     m_scripts[nrscripts++] = newscript; 
     99    newscript->RegisterSelf(); 
    100100} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp

    r272 r279  
    289289    newscript->Name="boss_jeklik"; 
    290290    newscript->GetAI = GetAI_boss_jeklik; 
    291     m_scripts[nrscripts++] = newscript; 
     291    newscript->RegisterSelf(); 
    292292 
    293293    newscript = new Script; 
    294294    newscript->Name="mob_batrider"; 
    295295    newscript->GetAI = GetAI_mob_batrider; 
    296     m_scripts[nrscripts++] = newscript; 
     296    newscript->RegisterSelf(); 
    297297} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp

    r272 r279  
    259259    newscript->Name="boss_jindo"; 
    260260    newscript->GetAI = GetAI_boss_jindo; 
    261     m_scripts[nrscripts++] = newscript; 
     261    newscript->RegisterSelf(); 
    262262 
    263263    newscript = new Script; 
    264264    newscript->Name="mob_healing_ward"; 
    265265    newscript->GetAI = GetAI_mob_healing_ward; 
    266     m_scripts[nrscripts++] = newscript; 
     266    newscript->RegisterSelf(); 
    267267 
    268268    newscript = new Script; 
    269269    newscript->Name="mob_shade_of_jindo"; 
    270270    newscript->GetAI = GetAI_mob_shade_of_jindo; 
    271     m_scripts[nrscripts++] = newscript; 
    272 } 
     271    newscript->RegisterSelf(); 
     272} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp

    r272 r279  
    303303    newscript->Name="boss_mandokir"; 
    304304    newscript->GetAI = GetAI_boss_mandokir; 
    305     m_scripts[nrscripts++] = newscript; 
     305    newscript->RegisterSelf(); 
    306306 
    307307    newscript = new Script; 
    308308    newscript->Name="mob_ohgan"; 
    309309    newscript->GetAI = GetAI_mob_ohgan; 
    310     m_scripts[nrscripts++] = newscript; 
     310    newscript->RegisterSelf(); 
    311311} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp

    r272 r279  
    245245    newscript->Name="boss_marli"; 
    246246    newscript->GetAI = GetAI_boss_marli; 
    247     m_scripts[nrscripts++] = newscript; 
     247    newscript->RegisterSelf(); 
    248248 
    249249    newscript = new Script; 
    250250    newscript->Name="mob_spawn_of_marli"; 
    251251    newscript->GetAI = GetAI_mob_spawn_of_marli; 
    252     m_scripts[nrscripts++] = newscript; 
     252    newscript->RegisterSelf(); 
    253253} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp

    r272 r279  
    148148    newscript->Name="boss_renataki"; 
    149149    newscript->GetAI = GetAI_boss_renataki; 
    150     m_scripts[nrscripts++] = newscript; 
     150    newscript->RegisterSelf(); 
    151151} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp

    r272 r279  
    532532    newscript->Name="boss_thekal"; 
    533533    newscript->GetAI = GetAI_boss_thekal; 
    534     m_scripts[nrscripts++] = newscript; 
     534    newscript->RegisterSelf(); 
    535535 
    536536    newscript = new Script; 
    537537    newscript->Name="mob_zealot_lorkhan"; 
    538538    newscript->GetAI = GetAI_mob_zealot_lorkhan; 
    539     m_scripts[nrscripts++] = newscript; 
     539    newscript->RegisterSelf(); 
    540540 
    541541    newscript = new Script; 
    542542    newscript->Name="mob_zealot_zath"; 
    543543    newscript->GetAI = GetAI_mob_zealot_zath; 
    544     m_scripts[nrscripts++] = newscript; 
     544    newscript->RegisterSelf(); 
    545545} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp

    r272 r279  
    197197    newscript->Name="boss_venoxis"; 
    198198    newscript->GetAI = GetAI_boss_venoxis; 
    199     m_scripts[nrscripts++] = newscript; 
     199    newscript->RegisterSelf(); 
    200200} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/boss_wushoolay.cpp

    r272 r279  
    8181    newscript->Name="boss_wushoolay"; 
    8282    newscript->GetAI = GetAI_boss_wushoolay; 
    83     m_scripts[nrscripts++] = newscript; 
     83    newscript->RegisterSelf(); 
    8484} 
  • trunk/src/bindings/scripts/scripts/zone/zulgurub/instance_zulgurub.cpp

    r272 r279  
    235235    newscript->Name = "instance_zulgurub"; 
    236236    newscript->GetInstanceData = GetInstanceData_instance_zulgurub; 
    237     m_scripts[nrscripts++] = newscript; 
     237    newscript->RegisterSelf(); 
    238238}