Index: /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp (revision 90)
+++ /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp (revision 166)
@@ -24,4 +24,6 @@
 #include "precompiled.h"
 
+#define SAY_AGGRO               -1542008
+
 #define SPELL_SLIME_SPRAY       30913
 #define SPELL_POISON_CLOUD      30916
@@ -29,6 +31,4 @@
 
 #define SPELL_POISON            30914
-
-#define SAY_AGGRO "Come intruders...."
 
 struct TRINITY_DLL_DECL boss_broggokAI : public ScriptedAI
@@ -49,5 +49,5 @@
     void Aggro(Unit *who)
     {
-        DoYell(SAY_AGGRO, LANG_UNIVERSAL, NULL);
+        DoScriptText(SAY_AGGRO, m_creature);
     }
 
Index: /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp (revision 90)
+++ /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp (revision 166)
@@ -24,23 +24,15 @@
 #include "precompiled.h"
 
+#define SAY_AGGRO_1                 -1542009
+#define SAY_AGGRO_2                 -1542010
+#define SAY_AGGRO_3                 -1542011
+#define SAY_KILL_1                  -1542012
+#define SAY_KILL_2                  -1542013
+#define SAY_DIE                     -1542014
+
 #define SPELL_ACID_SPRAY            38153                   // heroic 38973 ??? 38153
 #define SPELL_EXPLODING_BREAKER     30925
 #define SPELL_KNOCKDOWN             20276
 #define SPELL_DOMINATION            25772                   // ???
-
-#define SAY_KILL_1          "Let's see what I can make of you."
-#define SOUND_KILL_1        10289
-#define SAY_KILL_2          "It is pointless to resist."
-#define SOUND_KILL_2        10290
-
-#define SAY_AGGRO_1         "My work must not be interrupted."
-#define SOUND_AGGRO_1       10286
-#define SAY_AGGRO_2         "Perhaps I can find a use for you."
-#define SOUND_AGGRO_2       10287
-#define SAY_AGGRO_3         "Anger... Hate... These are tools I can use."
-#define SOUND_AGGRO_3       10288
-
-#define SAY_DIE             "Stay away from... me."
-#define SOUND_DIE           10291
 
 struct TRINITY_DLL_DECL boss_the_makerAI : public ScriptedAI
@@ -65,16 +57,7 @@
         switch(rand()%3)
         {
-            case 0:
-                DoYell(SAY_AGGRO_1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_1);
-                break;
-            case 1:
-                DoYell(SAY_AGGRO_2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_2);
-                break;
-            case 2:
-                DoYell(SAY_AGGRO_3, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_3);
-                break;
+            case 0: DoScriptText(SAY_AGGRO_1, m_creature); break;
+            case 1: DoScriptText(SAY_AGGRO_2, m_creature); break;
+            case 2: DoScriptText(SAY_AGGRO_3, m_creature); break;
         }
     }
@@ -82,17 +65,8 @@
     void KilledUnit(Unit* victim)
     {
-        if (rand()%5)
-            return;
-
         switch(rand()%2)
         {
-            case 0:
-                DoYell(SAY_KILL_1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_KILL_1);
-                break;
-            case 1:
-                DoYell(SAY_KILL_2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_KILL_2);
-                break;
+            case 0: DoScriptText(SAY_KILL_1, m_creature); break;
+            case 1: DoScriptText(SAY_KILL_2, m_creature); break;
         }
     }
@@ -100,6 +74,5 @@
     void JustDied(Unit* Killer)
     {
-        DoYell(SAY_DIE,LANG_UNIVERSAL,NULL);
-        DoPlaySoundToSet(m_creature,SOUND_DIE);
+        DoScriptText(SAY_DIE, m_creature);
     }
 
@@ -109,5 +82,5 @@
             return;
 
-        if(AcidSpray_Timer < diff)
+        if (AcidSpray_Timer < diff)
         {
             DoCast(m_creature->getVictim(),SPELL_ACID_SPRAY);
@@ -115,10 +88,8 @@
         }else AcidSpray_Timer -=diff;
 
-        if(ExplodingBreaker_Timer < diff)
+        if (ExplodingBreaker_Timer < diff)
         {
-            Unit* target;
-            target = SelectUnit(SELECT_TARGET_RANDOM,0);
-
-            DoCast(target,SPELL_EXPLODING_BREAKER);
+            if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
+                DoCast(target,SPELL_EXPLODING_BREAKER);
             ExplodingBreaker_Timer = 4000+rand()%8000;
         }else ExplodingBreaker_Timer -=diff;
@@ -136,5 +107,5 @@
         */
 
-        if(Knockdown_Timer < diff)
+        if (Knockdown_Timer < diff)
         {
             DoCast(m_creature->getVictim(),SPELL_KNOCKDOWN);
Index: /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp (revision 90)
+++ /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp (revision 166)
@@ -29,24 +29,14 @@
 #include "precompiled.h"
 
-#define SAY_WAKE                    "Who dares interrupt... What is this? What have you done? You ruin everything!"
-#define SOUND_WAKE                  10164
-
-#define SAY_ADD_AGGRO_1             "You mustn't let him loose!"
-#define SOUND_ADD_AGGRO_1           10166
-#define SAY_ADD_AGGRO_2             "Ignorant whelps!"
-#define SOUND_ADD_AGGRO_2           10167
-#define SAY_ADD_AGGRO_3             "You fools! He'll kill us all!"
-#define SOUND_ADD_AGGRO_3           10168
-
-#define SAY_KILL_1                  "Just as you deserve!"
-#define SOUND_KILL_1                10169
-#define SAY_KILL_2                  "Your friends will soon be joining you."
-#define SOUND_KILL_2                10170
-
-#define SAY_NOVA                    "Closer... Come closer.. and burn!"
-#define SOUND_NOVA                  10165
-
-#define SAY_DIE                     "Good luck... you'll need it.."
-#define SOUND_DIE                   10171
+#define SAY_WAKE                    -1542000
+
+#define SAY_ADD_AGGRO_1             -1542001
+#define SAY_ADD_AGGRO_2             -1542002
+#define SAY_ADD_AGGRO_3             -1542003
+
+#define SAY_KILL_1                  -1542004
+#define SAY_KILL_2                  -1542005
+#define SAY_NOVA                    -1542006
+#define SAY_DIE                     -1542007
 
 #define SPELL_CORRUPTION            30938
@@ -89,6 +79,5 @@
     void Aggro(Unit *who)
     {
-        DoYell(SAY_WAKE, LANG_UNIVERSAL, NULL);
-        DoPlaySoundToSet(m_creature,SOUND_WAKE);
+        DoScriptText(SAY_WAKE, m_creature);
     }
 
@@ -100,12 +89,6 @@
         switch(rand()%2)
         {
-            case 0:
-                DoYell(SAY_KILL_1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_KILL_1);
-                break;
-            case 1:
-                DoYell(SAY_KILL_2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_KILL_2);
-                break;
+            case 0: DoScriptText(SAY_KILL_1, m_creature); break;
+            case 1: DoScriptText(SAY_KILL_2, m_creature); break;
         }
     }
@@ -113,16 +96,15 @@
     void JustDied(Unit* Killer)
     {
-        DoYell(SAY_DIE,LANG_UNIVERSAL,NULL);
-        DoPlaySoundToSet(m_creature,SOUND_DIE);
+        DoScriptText(SAY_DIE, m_creature);
     }
 
     void UpdateAI(const uint32 diff)
     {
-        if( !m_creature->SelectHostilTarget() || !m_creature->getVictim() )
-            return;
-
-        if( Firenova )
-        {
-            if( Firenova_Timer < diff )
+        if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
+            return;
+
+        if (Firenova)
+        {
+            if (Firenova_Timer < diff)
             {
                 DoCast(m_creature,HeroicMode ? H_SPELL_FIRE_NOVA : SPELL_FIRE_NOVA);
@@ -134,5 +116,5 @@
         }
 
-        if( ShadowVolley_Timer < diff )
+        if (ShadowVolley_Timer < diff)
         {
             DoCast(m_creature,HeroicMode ? H_SPELL_SHADOW_BOLT_VOLLEY : SPELL_SHADOW_BOLT_VOLLEY);
@@ -140,5 +122,5 @@
         }else ShadowVolley_Timer -=diff;
 
-        if( Corruption_Timer < diff )
+        if (Corruption_Timer < diff)
         {
             DoCast(m_creature,SPELL_CORRUPTION);
@@ -146,13 +128,12 @@
         }else Corruption_Timer -=diff;
 
-        if( BurningNova_Timer < diff )
-        {
-            if( m_creature->IsNonMeleeSpellCasted(false) )
+        if (BurningNova_Timer < diff)
+        {
+            if (m_creature->IsNonMeleeSpellCasted(false))
                 m_creature->InterruptNonMeleeSpells(true);
 
-            DoYell(SAY_NOVA, LANG_UNIVERSAL, NULL);
-            DoPlaySoundToSet(m_creature,SOUND_NOVA);
-
-            if( HeroicMode )
+            DoScriptText(SAY_NOVA, m_creature);
+
+            if (HeroicMode)
                 DoCast(m_creature,SPELL_VORTEX);
 
@@ -213,15 +194,15 @@
     void UpdateAI(const uint32 diff)
     {
-        if( !m_creature->SelectHostilTarget() || !m_creature->getVictim() )
-            return;
-
-        if( MarkOfShadow_Timer < diff )
-        {
-            if( Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 0) )
+        if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
+            return;
+
+        if (MarkOfShadow_Timer < diff)
+        {
+            if (Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 0))
                 DoCast(target,SPELL_MARK_OF_SHADOW);
             MarkOfShadow_Timer = 15000+rand()%5000;
         }else MarkOfShadow_Timer -=diff;
 
-        if( ShadowBolt_Timer < diff )
+        if (ShadowBolt_Timer < diff)
         {
             DoCast(m_creature->getVictim(),HeroicMode ? H_SPELL_SHADOW_BOLT : SPELL_SHADOW_BOLT);
Index: /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp (revision 109)
+++ /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp (revision 166)
@@ -18,5 +18,5 @@
 SDName: Boss_Watchkeeper_Gargolmar
 SD%Complete: 80
-SDComment: Normal/Heroic support: both, to be tested. Missing adds to heal him. Surge should be used on target furthest away, not random.
+SDComment: Missing adds to heal him. Surge should be used on target furthest away, not random.
 SDCategory: Hellfire Citadel, Hellfire Ramparts
 EndScriptData */
@@ -24,25 +24,13 @@
 #include "precompiled.h"
 
-#define SAY_HEAL                "Heal me! QUICKLY!"
-#define SOUND_HEAL              10329
-
-#define SAY_SURGE               "Back off, pup!"
-#define SOUND_SURGE             10330
-
-#define SAY_TAUNT               "Do you smell that? Fresh meat has somehow breached our citadel. Be wary of any intruders."
-
-#define SAY_AGGRO_1             "What have we here...?"
-#define SOUND_AGGRO_1           10331
-#define SAY_AGGRO_2             "Heh... this may hurt a little."
-#define SOUND_AGGRO_2           10332
-#define SAY_AGGRO_3             "I'm gonna enjoy this."
-#define SOUND_AGGRO_3           10333
-
-#define SAY_KILL_1              "Say farewell!"
-#define SOUND_KILL_1            10334
-#define SAY_KILL_2              "Much too easy..."
-#define SOUND_KILL_2            10335
-
-#define SOUND_DIE               10336
+#define SAY_TAUNT               -1543000
+#define SAY_HEAL                -1543001
+#define SAY_SURGE               -1543002
+#define SAY_AGGRO_1             -1543003
+#define SAY_AGGRO_2             -1543004
+#define SAY_AGGRO_3             -1543005
+#define SAY_KILL_1              -1543006
+#define SAY_KILL_2              -1543007
+#define SAY_DIE                 -1543008
 
 #define SPELL_MORTAL_WOUND      30641
@@ -53,5 +41,11 @@
 struct TRINITY_DLL_DECL boss_watchkeeper_gargolmarAI : public ScriptedAI
 {
-    boss_watchkeeper_gargolmarAI(Creature *c) : ScriptedAI(c) {Reset();}
+    boss_watchkeeper_gargolmarAI(Creature *c) : ScriptedAI(c)
+    {
+        HeroicMode = m_creature->GetMap()->IsHeroic();
+        Reset();
+    }
+
+    bool HeroicMode;
 
     uint32 Surge_Timer;
@@ -61,10 +55,7 @@
     bool HasTaunted;
     bool YelledForHeal;
-    bool HeroicMode;
 
     void Reset()
     {
-        HeroicMode = m_creature->GetMap()->IsHeroic();
-
         Surge_Timer = 5000;
         MortalWound_Timer = 4000;
@@ -79,16 +70,7 @@
         switch(rand()%3)
         {
-            case 0:
-                DoYell(SAY_AGGRO_1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_1);
-                break;
-            case 1:
-                DoYell(SAY_AGGRO_2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_2);
-                break;
-            case 2:
-                DoYell(SAY_AGGRO_3, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_3);
-                break;
+            case 0: DoScriptText(SAY_AGGRO_1, m_creature); break;
+            case 1: DoScriptText(SAY_AGGRO_2, m_creature); break;
+            case 2: DoScriptText(SAY_AGGRO_3, m_creature); break;
         }
     }
@@ -96,5 +78,5 @@
     void MoveInLineOfSight(Unit* who)
     {
-        if( !m_creature->getVictim() && who->isTargetableForAttack() && ( m_creature->IsHostileTo( who )) && who->isInAccessablePlaceFor(m_creature) )
+        if (!m_creature->getVictim() && who->isTargetableForAttack() && ( m_creature->IsHostileTo( who )) && who->isInAccessablePlaceFor(m_creature) )
         {
             if (!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
@@ -102,5 +84,5 @@
 
             float attackRadius = m_creature->GetAttackDistance(who);
-            if(m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->IsWithinLOSInMap(who))
+            if (m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->IsWithinLOSInMap(who))
             {
                 who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
@@ -109,5 +91,5 @@
             else if (!HasTaunted && m_creature->IsWithinDistInMap(who, 60.0f))
             {
-                DoYell(SAY_TAUNT, LANG_UNIVERSAL, NULL);
+                DoScriptText(SAY_TAUNT, m_creature);
                 HasTaunted = true;
             }
@@ -119,12 +101,6 @@
         switch(rand()%2)
         {
-            case 0:
-                DoYell(SAY_KILL_1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_KILL_1);
-                break;
-            case 1:
-                DoYell(SAY_KILL_2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_KILL_2);
-                break;
+            case 0: DoScriptText(SAY_KILL_1, m_creature); break;
+            case 1: DoScriptText(SAY_KILL_2, m_creature); break;
         }
     }
@@ -132,5 +108,5 @@
     void JustDied(Unit* Killer)
     {
-        DoPlaySoundToSet(m_creature,SOUND_DIE);
+        DoScriptText(SAY_DIE, m_creature);
     }
 
@@ -140,18 +116,15 @@
             return;
 
-        if( MortalWound_Timer < diff )
+        if (MortalWound_Timer < diff)
         {
-            if( HeroicMode ) DoCast(m_creature->getVictim(),H_SPELL_MORTAL_WOUND);
-            else DoCast(m_creature->getVictim(),SPELL_MORTAL_WOUND);
-
+            DoCast(m_creature->getVictim(),HeroicMode ? H_SPELL_MORTAL_WOUND : SPELL_MORTAL_WOUND);
             MortalWound_Timer = 5000+rand()%8000;
         }else MortalWound_Timer -= diff;
 
-        if( Surge_Timer < diff )
+        if (Surge_Timer < diff)
         {
-            DoYell(SAY_SURGE, LANG_UNIVERSAL, NULL);
-            DoPlaySoundToSet(m_creature,SOUND_SURGE);
+            DoScriptText(SAY_SURGE, m_creature);
 
-            if( Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0) )
+            if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
                 DoCast(target,SPELL_SURGE);
 
@@ -159,7 +132,7 @@
         }else Surge_Timer -= diff;
 
-        if((m_creature->GetHealth()*100) / m_creature->GetMaxHealth() < 20)
+        if ((m_creature->GetHealth()*100) / m_creature->GetMaxHealth() < 20)
         {
-            if( Retaliation_Timer < diff )
+            if (Retaliation_Timer < diff)
             {
                 DoCast(m_creature,SPELL_RETALIATION);
@@ -168,10 +141,11 @@
         }
 
-        if( !YelledForHeal )
-            if((m_creature->GetHealth()*100) / m_creature->GetMaxHealth() < 40)
+        if (!YelledForHeal)
         {
-            DoYell(SAY_HEAL, LANG_UNIVERSAL, NULL);
-            DoPlaySoundToSet(m_creature,SOUND_HEAL);
-            YelledForHeal = true;
+            if ((m_creature->GetHealth()*100) / m_creature->GetMaxHealth() < 40)
+            {
+                DoScriptText(SAY_HEAL, m_creature);
+                YelledForHeal = true;
+            }
         }
 
Index: /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp (revision 158)
+++ /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp (revision 166)
@@ -18,9 +18,18 @@
 SDName: Boss_Omar_The_Unscarred
 SD%Complete: 90
-SDComment: Normal/Heroic support: both, to be tested. Temporary solution for orbital/shadow whip-ability. Needs more core support before making it more proper.
+SDComment: Temporary solution for orbital/shadow whip-ability. Needs more core support before making it more proper.
 SDCategory: Hellfire Citadel, Hellfire Ramparts
 EndScriptData */
 
 #include "precompiled.h"
+
+#define SAY_AGGRO_1                 -1543009
+#define SAY_AGGRO_2                 -1543010
+#define SAY_AGGRO_3                 -1543011
+#define SAY_SUMMON                  -1543012
+#define SAY_CURSE                   -1543013
+#define SAY_KILL_1                  -1543014
+#define SAY_DIE                     -1543015
+#define SAY_WIPE                    -1543016
 
 #define SPELL_ORBITAL_STRIKE        30637
@@ -33,29 +42,13 @@
 #define SPELL_SUMMON_FIENDISH_HOUND 30707
 
-#define SAY_AGGRO_1                 "You dare stand against me?!"
-#define SOUND_AGGRO_1               10280
-#define SAY_AGGRO_2                 "I will not be defeated!"
-#define SOUND_AGGRO_2               10279
-#define SAY_AGGRO_3                 "Your insolence will be your death."
-#define SOUND_AGGRO_3               10281
-
-#define SAY_SUMMON                  "Achor-she-ki! Feast my pet! Eat your fill!"
-#define SOUND_SUMMON                10277
-
-#define SAY_CURSE                   "A-Kreesh!"
-#define SOUND_CURSE                 10278
-
-#define SAY_KILL_1                  "Die, weakling!"
-#define SOUND_KILL_1                10282
-
-#define SAY_DIE                     "It is... not over."
-#define SOUND_DIE                   10284
-
-#define SAY_WIPE                    "I am victorious!"
-#define SOUND_WIPE                  10283
-
 struct TRINITY_DLL_DECL boss_omor_the_unscarredAI : public Scripted_NoMovementAI
 {
-    boss_omor_the_unscarredAI(Creature *c) : Scripted_NoMovementAI(c) {Reset();}
+    boss_omor_the_unscarredAI(Creature *c) : Scripted_NoMovementAI(c)
+    {
+        HeroicMode = m_creature->GetMap()->IsHeroic();
+        Reset();
+    }
+
+    bool HeroicMode;
 
     uint32 OrbitalStrike_Timer;
@@ -68,12 +61,8 @@
     uint64 playerGUID;
     bool CanPullBack;
-    bool HeroicMode;
 
     void Reset()
     {
-        HeroicMode = m_creature->GetMap()->IsHeroic();
-
-        DoYell(SAY_WIPE,LANG_UNIVERSAL,NULL);
-        DoPlaySoundToSet(m_creature,SOUND_WIPE);
+        DoScriptText(SAY_WIPE, m_creature);
 
         OrbitalStrike_Timer = 25000;
@@ -92,16 +81,7 @@
         switch(rand()%3)
         {
-            case 0:
-                DoYell(SAY_AGGRO_1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_1);
-                break;
-            case 1:
-                DoYell(SAY_AGGRO_2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_2);
-                break;
-            case 2:
-                DoYell(SAY_AGGRO_3, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_3);
-                break;
+            case 0: DoScriptText(SAY_AGGRO_1, m_creature); break;
+            case 1: DoScriptText(SAY_AGGRO_2, m_creature); break;
+            case 2: DoScriptText(SAY_AGGRO_3, m_creature); break;
         }
     }
@@ -112,14 +92,12 @@
             return;
 
-        DoYell(SAY_KILL_1,LANG_UNIVERSAL,NULL);
-        DoPlaySoundToSet(m_creature,SOUND_KILL_1);
+        DoScriptText(SAY_KILL_1, m_creature);
     }
 
     void JustSummoned(Creature* summoned)
     {
-        DoYell(SAY_SUMMON,LANG_UNIVERSAL,NULL);
-        DoPlaySoundToSet(m_creature,SOUND_SUMMON);
-
-        if( Unit* random = SelectUnit(SELECT_TARGET_RANDOM,0) )
+        DoScriptText(SAY_SUMMON, m_creature);
+
+        if (Unit* random = SelectUnit(SELECT_TARGET_RANDOM,0))
             summoned->AI()->AttackStart(random);
 
@@ -129,6 +107,5 @@
     void JustDied(Unit* Killer)
     {
-        DoYell(SAY_DIE,LANG_UNIVERSAL,NULL);
-        DoPlaySoundToSet(m_creature,SOUND_DIE);
+        DoScriptText(SAY_DIE, m_creature);
     }
 
@@ -139,7 +116,7 @@
 
         //only two may be wrong, perhaps increase timer and spawn periodically instead.
-        if( SummonedCount < 2 )
-        {
-            if( Summon_Timer < diff )
+        if (SummonedCount < 2)
+        {
+            if (Summon_Timer < diff)
             {
                 m_creature->InterruptNonMeleeSpells(false);
@@ -149,12 +126,12 @@
         }
 
-        if( CanPullBack )
-        {
-            if( ShadowWhip_Timer < diff )
-            {
-                if( Unit* temp = Unit::GetUnit(*m_creature,playerGUID) )
+        if (CanPullBack)
+        {
+            if (ShadowWhip_Timer < diff)
+            {
+                if (Unit* temp = Unit::GetUnit(*m_creature,playerGUID))
                 {
                     //if unit dosen't have this flag, then no pulling back (script will attempt cast, even if orbital strike was resisted)
-                    if( temp->HasUnitMovementFlag(MOVEMENTFLAG_FALLING) )
+                    if (temp->HasUnitMovementFlag(MOVEMENTFLAG_FALLING))
                     {
                         m_creature->InterruptNonMeleeSpells(false);
@@ -167,24 +144,25 @@
             }else ShadowWhip_Timer -= diff;
         }
-        else if( OrbitalStrike_Timer < diff )
+        else if (OrbitalStrike_Timer < diff)
         {
             Unit* temp = NULL;
-            if( m_creature->IsWithinCombatDist(m_creature->getVictim(), ATTACK_DISTANCE) )
+            if (m_creature->IsWithinDistInMap(m_creature->getVictim(), ATTACK_DISTANCE))
                 temp = m_creature->getVictim();
             else temp = SelectUnit(SELECT_TARGET_RANDOM,0);
 
-            if( temp && temp->GetTypeId() == TYPEID_PLAYER )
+            if (temp && temp->GetTypeId() == TYPEID_PLAYER)
             {
                 DoCast(temp,SPELL_ORBITAL_STRIKE);
                 OrbitalStrike_Timer = 14000+rand()%2000;
                 playerGUID = temp->GetGUID();
-                if( playerGUID )
+
+                if (playerGUID)
                     CanPullBack = true;
             }
         }else OrbitalStrike_Timer -= diff;
 
-        if( (m_creature->GetHealth()*100) / m_creature->GetMaxHealth() < 20 )
-        {
-            if( DemonicShield_Timer < diff )
+        if ((m_creature->GetHealth()*100) / m_creature->GetMaxHealth() < 20)
+        {
+            if (DemonicShield_Timer < diff)
             {
                 DoCast(m_creature,SPELL_DEMONIC_SHIELD);
@@ -193,28 +171,23 @@
         }
 
-        if( Aura_Timer < diff )
-        {
-            DoYell(SAY_CURSE,LANG_UNIVERSAL,NULL);
-            DoPlaySoundToSet(m_creature,SOUND_CURSE);
-
-            if( Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0) )
-            {
-                if( HeroicMode ) DoCast(target,H_SPELL_BANE_OF_TREACHERY);
-                else DoCast(target,SPELL_TREACHEROUS_AURA);
-
+        if (Aura_Timer < diff)
+        {
+            DoScriptText(SAY_CURSE, m_creature);
+
+            if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
+            {
+                DoCast(target,HeroicMode ? H_SPELL_BANE_OF_TREACHERY : SPELL_TREACHEROUS_AURA);
                 Aura_Timer = 8000+rand()%8000;
             }
         }else Aura_Timer -= diff;
 
-        if( Shadowbolt_Timer < diff )
-        {
-            if( Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0) )
-            {
-                if( target )
+        if (Shadowbolt_Timer < diff)
+        {
+            if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
+            {
+                if (target)
                     target = m_creature->getVictim();
 
-                if( HeroicMode ) DoCast(target,H_SPELL_SHADOW_BOLT);
-                else DoCast(target,SPELL_SHADOW_BOLT);
-
+                DoCast(target,HeroicMode ? H_SPELL_SHADOW_BOLT : SPELL_SHADOW_BOLT);
                 Shadowbolt_Timer = 4000+rand()%2500;
             }
Index: /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp (revision 90)
+++ /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp (revision 166)
@@ -35,6 +35,5 @@
 struct Yell
 {
-    const char* text;
-    uint32 sound;
+    int32 id;
     uint32 creature;
 };
@@ -42,54 +41,51 @@
 static Yell GoCombat[]=
 {
-    {"Smash!", 10306, ENTRY_LEFT_HEAD},
-    {"If you nice me let you live.", 10308, ENTRY_LEFT_HEAD},
-    {"Me hungry!", 10309, ENTRY_LEFT_HEAD},
+    {-1540018, ENTRY_LEFT_HEAD},
+    {-1540019, ENTRY_LEFT_HEAD},
+    {-1540020, ENTRY_LEFT_HEAD},
 };
 static Yell GoCombatDelay[]=
 {
-    {"Why don't you let me do the talking?", 10317, ENTRY_RIGHT_HEAD},
-    {"No, we will NOT let you live!", 10318, ENTRY_RIGHT_HEAD},
-    {"You always hungry. That why we so fat!", 10319, ENTRY_RIGHT_HEAD},
+    {-1540021, ENTRY_RIGHT_HEAD},
+    {-1540022, ENTRY_RIGHT_HEAD},
+    {-1540023, ENTRY_RIGHT_HEAD},
 };
 
 static Yell Threat[]=
 {
-    {"You stay here. Me go kill someone else!", 10303, ENTRY_LEFT_HEAD},
-    {"What are you doing!", 10315, ENTRY_RIGHT_HEAD},
-    {"Me kill someone else...", 10302, ENTRY_LEFT_HEAD},
-    {"Me not like this one...",10300, ENTRY_LEFT_HEAD},
+    {-1540024, ENTRY_LEFT_HEAD},
+    {-1540025, ENTRY_RIGHT_HEAD},
+    {-1540026, ENTRY_LEFT_HEAD},
+    {-1540027, ENTRY_LEFT_HEAD},
 };
 static Yell ThreatDelay1[]=
 {
-    {"That's not funny!", 10314, ENTRY_RIGHT_HEAD},
-    {"Me get bored...", 10305, ENTRY_LEFT_HEAD},
-    {"I'm not done yet, idiot!", 10313, ENTRY_RIGHT_HEAD},
-    {"Hey you numbskull!", 10312, ENTRY_RIGHT_HEAD},
+    {-1540028, ENTRY_RIGHT_HEAD},
+    {-1540029, ENTRY_LEFT_HEAD},
+    {-1540030, ENTRY_RIGHT_HEAD},
+    {-1540031, ENTRY_RIGHT_HEAD},
 };
 static Yell ThreatDelay2[]=
 {
-    {"Ha ha ha.", 10304, ENTRY_LEFT_HEAD},
-    {"Whhy! He almost dead!", 10316, ENTRY_RIGHT_HEAD},
-    {"H'ey...", 10307, ENTRY_LEFT_HEAD},
-    {"We kill his friend!", 10301, ENTRY_LEFT_HEAD},
+    {-1540032, ENTRY_LEFT_HEAD},
+    {-1540033, ENTRY_RIGHT_HEAD},
+    {-1540034, ENTRY_LEFT_HEAD},
+    {-1540035, ENTRY_LEFT_HEAD},
 };
 
 static Yell Killing[]=
 {
-    {"This one die easy!", 10310, ENTRY_LEFT_HEAD},
-    {"I'm tired. You kill next one!", 10320, ENTRY_RIGHT_HEAD},
+    {-1540036, ENTRY_LEFT_HEAD},
+    {-1540037, ENTRY_RIGHT_HEAD},
 };
 static Yell KillingDelay[]=
 {
-    {"That's because I do all the hard work!", 10321, ENTRY_RIGHT_HEAD},
-    {"SD2 script error, should not see this.", 0, ENTRY_LEFT_HEAD},
-};
-
-#define EMOTE_ENRAGE                "enrages"
-
-#define YELL_DIE_L                  "This all...your fault!"
-#define SOUND_DIE_L                 10311
-#define YELL_DIE_R                  "I...hate...you..."
-#define SOUND_DIE_R                 10322
+    {-1540038, ENTRY_RIGHT_HEAD},
+    {-1000000, ENTRY_LEFT_HEAD},
+};
+
+#define YELL_DIE_L                  -1540039
+#define YELL_DIE_R                  -1540040
+#define EMOTE_ENRAGE                -1540041
 
 #define SPELL_BLAST_WAVE            30600
@@ -118,11 +114,10 @@
     void UpdateAI(const uint32 diff)
     {
-        if( !DeathYell )
+        if (!DeathYell)
             return;
 
-        if( Death_Timer < diff )
-        {
-            DoYell(YELL_DIE_R,LANG_UNIVERSAL,NULL);
-            DoPlaySoundToSet(m_creature, SOUND_DIE_R);
+        if (Death_Timer < diff)
+        {
+            DoScriptText(YELL_DIE_R, m_creature);
             DeathYell = false;
         }else Death_Timer -= diff;
@@ -140,4 +135,5 @@
 
     ScriptedInstance* pInstance;
+    bool HeroicMode;
 
     uint64 LeftHead;
@@ -147,5 +143,4 @@
     int ikilling;
 
-    bool HeroicMode;
     bool AggroYell;
     bool ThreatYell;
@@ -182,5 +177,5 @@
         ResetThreat_Timer = 30000;
 
-        if( pInstance )
+        if (pInstance)
             pInstance->SetData(TYPE_OMROGG, NOT_STARTED);   //End boss can use this later. O'mrogg must be defeated(DONE) or he will come to aid.
     }
@@ -188,10 +183,10 @@
     void DoYellForThreat()
     {
-        if( LeftHead && RightHead )
+        if (LeftHead && RightHead)
         {
             Unit *Left  = Unit::GetUnit(*m_creature,LeftHead);
             Unit *Right = Unit::GetUnit(*m_creature,RightHead);
 
-            if( !Left && !Right )
+            if (!Left && !Right)
                 return;
 
@@ -200,6 +195,5 @@
             Unit *source = (Left->GetEntry() == Threat[ithreat].creature ? Left : Right);
 
-            source->MonsterYell(Threat[ithreat].text, LANG_UNIVERSAL, 0);
-            DoPlaySoundToSet(source, Threat[ithreat].sound);
+            DoScriptText(Threat[ithreat].id, source);
 
             Delay_Timer = 3500;
@@ -213,15 +207,15 @@
         DoSpawnCreature(ENTRY_RIGHT_HEAD,0,0,0,0,TEMPSUMMON_TIMED_DESPAWN,1800000);
 
-        if( Unit *Left = Unit::GetUnit(*m_creature,LeftHead) )
+        if (Unit *Left = Unit::GetUnit(*m_creature,LeftHead))
         {
             iaggro = rand()%3;
 
-            Left->MonsterYell(GoCombat[iaggro].text, LANG_UNIVERSAL, 0);
-            DoPlaySoundToSet(Left, GoCombat[iaggro].sound);
+            DoScriptText(GoCombat[iaggro].id, Left);
 
             Delay_Timer = 3500;
             AggroYell = true;
         }
-        if( pInstance )
+
+        if (pInstance)
             pInstance->SetData(TYPE_OMROGG, IN_PROGRESS);
     }
@@ -229,8 +223,8 @@
     void JustSummoned(Creature *summoned)
     {
-        if( summoned->GetEntry() == ENTRY_LEFT_HEAD )
+        if (summoned->GetEntry() == ENTRY_LEFT_HEAD)
             LeftHead = summoned->GetGUID();
 
-        if( summoned->GetEntry() == ENTRY_RIGHT_HEAD )
+        if (summoned->GetEntry() == ENTRY_RIGHT_HEAD)
             RightHead = summoned->GetGUID();
 
@@ -242,10 +236,10 @@
     void KilledUnit(Unit* victim)
     {
-        if( LeftHead && RightHead )
+        if (LeftHead && RightHead)
         {
             Unit *Left  = Unit::GetUnit(*m_creature,LeftHead);
             Unit *Right = Unit::GetUnit(*m_creature,RightHead);
 
-            if( !Left && !Right )
+            if (!Left && !Right)
                 return;
 
@@ -257,12 +251,10 @@
             {
                 case 0:
-                    source->MonsterYell(Killing[ikilling].text, LANG_UNIVERSAL, 0);
-                    DoPlaySoundToSet(source, Killing[ikilling].sound);
+                    DoScriptText(Killing[ikilling].id, source);
                     Delay_Timer = 3500;
                     KillingYell = true;
                     break;
                 case 1:
-                    source->MonsterYell(Killing[ikilling].text, LANG_UNIVERSAL, 0);
-                    DoPlaySoundToSet(source, Killing[ikilling].sound);
+                    DoScriptText(Killing[ikilling].id, source);
                     KillingYell = false;
                     break;
@@ -273,18 +265,18 @@
     void JustDied(Unit* Killer)
     {
-        if( LeftHead && RightHead )
+        if (LeftHead && RightHead)
         {
             Unit *Left  = Unit::GetUnit(*m_creature,LeftHead);
             Unit *Right = Unit::GetUnit(*m_creature,RightHead);
 
-            if( !Left && !Right )
+            if (!Left && !Right)
                 return;
 
-            Left->MonsterYell(YELL_DIE_L, LANG_UNIVERSAL, 0);
-            DoPlaySoundToSet(Left,SOUND_DIE_L);
+            DoScriptText(YELL_DIE_L, Left);
 
             ((mob_omrogg_headsAI*)((Creature*)Right)->AI())->DoDeathYell();
         }
-        if( pInstance )
+
+        if (pInstance)
             pInstance->SetData(TYPE_OMROGG, DONE);
     }
@@ -292,9 +284,9 @@
     void UpdateAI(const uint32 diff)
     {
-        if( Delay_Timer < diff )
+        if (Delay_Timer < diff)
         {
             Delay_Timer = 3500;
 
-            if( !LeftHead && !RightHead )
+            if (!LeftHead && !RightHead)
                 return;
 
@@ -302,58 +294,55 @@
             Unit *Right = Unit::GetUnit(*m_creature,RightHead);
 
-            if( !Left && !Right )
+            if (!Left && !Right)
                 return;
 
-            if( AggroYell )
-            {
-                Right->MonsterYell(GoCombatDelay[iaggro].text, LANG_UNIVERSAL, 0);
-                DoPlaySoundToSet(Right, GoCombatDelay[iaggro].sound);
+            if (AggroYell)
+            {
+                DoScriptText(GoCombatDelay[iaggro].id, Right);
                 AggroYell = false;
             }
 
-            if( ThreatYell2 )
+            if (ThreatYell2)
             {
                 Unit *source = (Left->GetEntry() == ThreatDelay2[ithreat].creature ? Left : Right);
 
-                source->MonsterYell(ThreatDelay2[ithreat].text, LANG_UNIVERSAL, 0);
-                DoPlaySoundToSet(source, ThreatDelay2[ithreat].sound);
+                DoScriptText(ThreatDelay2[ithreat].id, source);
                 ThreatYell2 = false;
             }
 
-            if( ThreatYell )
+            if (ThreatYell)
             {
                 Unit *source = (Left->GetEntry() == ThreatDelay1[ithreat].creature ? Left : Right);
 
-                source->MonsterYell(ThreatDelay1[ithreat].text, LANG_UNIVERSAL, 0);
-                DoPlaySoundToSet(source, ThreatDelay1[ithreat].sound);
+                DoScriptText(ThreatDelay1[ithreat].id, source);
                 ThreatYell = false;
                 ThreatYell2 = true;
             }
 
-            if( KillingYell )
+            if (KillingYell)
             {
                 Unit *source = (Left->GetEntry() == KillingDelay[ikilling].creature ? Left : Right);
 
-                source->MonsterYell(KillingDelay[ikilling].text, LANG_UNIVERSAL, 0);
-                DoPlaySoundToSet(source, KillingDelay[ikilling].sound);
+                DoScriptText(KillingDelay[ikilling].id, source);
                 KillingYell = false;
             }
         }else Delay_Timer -= diff;
 
-        if( !m_creature->SelectHostilTarget() || !m_creature->getVictim() )
+        if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
             return;
 
-        if( BlastCount && BlastWave_Timer <= diff )
+        if (BlastCount && BlastWave_Timer <= diff)
         {
             DoCast(m_creature,SPELL_BLAST_WAVE);
             BlastWave_Timer = 5000;
             ++BlastCount;
-            if( BlastCount == 3 )
+
+            if (BlastCount == 3)
                 BlastCount = 0;
         }else BlastWave_Timer -= diff;
 
-        if( BurningMaul_Timer < diff )
-        {
-            DoTextEmote(EMOTE_ENRAGE,NULL);
+        if (BurningMaul_Timer < diff)
+        {
+            DoScriptText(EMOTE_ENRAGE, m_creature);
             DoCast(m_creature,HeroicMode ? H_SPELL_BURNING_MAUL : SPELL_BURNING_MAUL);
             BurningMaul_Timer = 40000;
@@ -362,7 +351,7 @@
         }else BurningMaul_Timer -= diff;
 
-        if( ResetThreat_Timer < diff )
-        {
-            if( Unit *target = SelectUnit(SELECT_TARGET_RANDOM,0) )
+        if (ResetThreat_Timer < diff)
+        {
+            if (Unit *target = SelectUnit(SELECT_TARGET_RANDOM,0))
             {
                 DoYellForThreat();
@@ -373,5 +362,5 @@
         }else ResetThreat_Timer -= diff;
 
-        if( Fear_Timer < diff )
+        if (Fear_Timer < diff)
         {
             DoCast(m_creature,SPELL_FEAR);
@@ -379,5 +368,5 @@
         }else Fear_Timer -= diff;
 
-        if( ThunderClap_Timer < diff )
+        if (ThunderClap_Timer < diff)
         {
             DoCast(m_creature,SPELL_THUNDERCLAP);
Index: /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp (revision 109)
+++ /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp (revision 166)
@@ -18,5 +18,5 @@
 SDName: Boss_Grand_Warlock_Nethekurse
 SD%Complete: 75
-SDComment: encounter not fully complete. missing part where boss kill minions.
+SDComment: encounter not fully completed. missing part where boss kill minions.
 SDCategory: Hellfire Citadel, Shattered Halls
 EndScriptData */
@@ -33,47 +33,32 @@
 struct Say
 {
-    const char* text;
-    uint32 sound;
-};
-
-#define SAY_INTRO       "You wish to fight us all at once? This should be amusing!"
-#define SOUND_INTRO     10262
+    int32 id;
+};
 
 static Say PeonAttacked[]=
 {
-    {"You can have that one. I no longer need him.", 10263},
-    {"Yes, beat him mercilessly. His skull is a thick as an ogres.", 10264},
-    {"Don't waste your time on that one. He's weak!", 10265},
-    {"You want him? Very well, take him!", 10266},
+    {-1540001},
+    {-1540002},
+    {-1540003},
+    {-1540004},
 };
 static Say PeonDies[]=
 {
-    {"One pitiful wretch down. Go on, take another one.", 10267},
-    {"Ahh, what a waste... Next!", 10268},
-    {"I was going to kill him anyway!", 10269},
-    {"Thank you for saving me the trouble! Now it's my turn to have some fun...", 10270},
-};
-
-#define SAY_TAUNT_1         "Beg for your pittyfull life!"
-#define SOUND_TAUNT_1       10259
-#define SAY_TAUNT_2         "Run covad, ruun!"
-#define SOUND_TAUNT_2       10260
-#define SAY_TAUNT_3         "Your pain amuses me."
-#define SOUND_TAUNT_3       10261
-
-#define SAY_AGGRO_1         "I'm already bored."
-#define SOUND_AGGRO_1       10271
-#define SAY_AGGRO_2         "Come on! ... Show me a real fight."
-#define SOUND_AGGRO_2       10272
-#define SAY_AGGRO_3         "I had more fun torturing the peons."
-#define SOUND_AGGRO_3       10273
-
-#define SAY_SLAY_1          "You Loose."
-#define SOUND_SLAY_1        10274
-#define SAY_SLAY_2          "Ohh! Just die."
-#define SOUND_SLAY_2        10275
-
-#define SAY_DIE             "What a ... a shame."
-#define SOUND_DIE           10276
+    {-1540005},
+    {-1540006},
+    {-1540007},
+    {-1540008},
+};
+
+#define SAY_INTRO           -1540000
+#define SAY_TAUNT_1         -1540009
+#define SAY_TAUNT_2         -1540010
+#define SAY_TAUNT_3         -1540011
+#define SAY_AGGRO_1         -1540012
+#define SAY_AGGRO_2         -1540013
+#define SAY_AGGRO_3         -1540014
+#define SAY_SLAY_1          -1540015
+#define SAY_SLAY_2          -1540016
+#define SAY_DIE             -1540017
 
 #define SPELL_DEATH_COIL            30500
@@ -94,10 +79,11 @@
     {
         pInstance = ((ScriptedInstance*)c->GetInstanceData());
+        HeroicMode = m_creature->GetMap()->IsHeroic();
         Reset();
     }
 
     ScriptedInstance* pInstance;
-
     bool HeroicMode;
+
     bool IntroOnce;
     bool IsIntroEvent;
@@ -119,5 +105,4 @@
         m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
 
-        HeroicMode = m_creature->GetMap()->IsHeroic();
         IsIntroEvent = false;
         IntroOnce = false;
@@ -138,9 +123,8 @@
     void DoYellForPeonAggro()
     {
-        if( PeonEngagedCount >= 4 )
-            return;
-
-        DoYell(PeonAttacked[PeonEngagedCount].text, LANG_UNIVERSAL, NULL);
-        DoPlaySoundToSet(m_creature, PeonAttacked[PeonEngagedCount].sound);
+        if (PeonEngagedCount >= 4)
+            return;
+
+        DoScriptText(PeonAttacked[PeonEngagedCount].id, m_creature);
         ++PeonEngagedCount;
     }
@@ -148,12 +132,11 @@
     void DoYellForPeonDeath()
     {
-        if( PeonKilledCount >= 4 )
-            return;
-
-        DoYell(PeonDies[PeonKilledCount].text, LANG_UNIVERSAL, NULL);
-        DoPlaySoundToSet(m_creature, PeonDies[PeonKilledCount].sound);
+        if (PeonKilledCount >= 4)
+            return;
+
+        DoScriptText(PeonDies[PeonKilledCount].id, m_creature);
         ++PeonKilledCount;
 
-        if( PeonKilledCount == 4 )
+        if (PeonKilledCount == 4)
         {
             IsIntroEvent = false;
@@ -167,16 +150,7 @@
         switch(rand()%3)
         {
-            case 0:
-                DoPlaySoundToSet(m_creature,SOUND_TAUNT_1);
-                DoYell(SAY_TAUNT_1,LANG_UNIVERSAL,NULL);
-                break;
-            case 1:
-                DoPlaySoundToSet(m_creature,SOUND_TAUNT_2);
-                DoYell(SAY_TAUNT_2,LANG_UNIVERSAL,NULL);
-                break;
-            case 2:
-                DoPlaySoundToSet(m_creature,SOUND_TAUNT_3);
-                DoYell(SAY_TAUNT_3,LANG_UNIVERSAL,NULL);
-                break;
+            case 0: DoScriptText(SAY_TAUNT_1, m_creature); break;
+            case 1: DoScriptText(SAY_TAUNT_2, m_creature); break;
+            case 2: DoScriptText(SAY_TAUNT_3, m_creature); break;
         }
 
@@ -191,5 +165,5 @@
     void AttackStart(Unit* who)
     {
-        if ( IsIntroEvent || !IsMainEvent )
+        if (IsIntroEvent || !IsMainEvent)
             return;
 
@@ -213,25 +187,24 @@
     void MoveInLineOfSight(Unit *who)
     {
-        if( !m_creature->getVictim() && who->isTargetableForAttack() && ( m_creature->IsHostileTo( who )) && who->isInAccessablePlaceFor(m_creature) )
-        {
-            if( !IntroOnce && m_creature->IsWithinDistInMap(who, 75) )
-            {
-                DoYell(SAY_INTRO, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature, SOUND_INTRO);
+        if (!m_creature->getVictim() && who->isTargetableForAttack() && ( m_creature->IsHostileTo( who )) && who->isInAccessablePlaceFor(m_creature) )
+        {
+            if (!IntroOnce && m_creature->IsWithinDistInMap(who, 75))
+            {
+                DoScriptText(SAY_INTRO, m_creature);
                 IntroOnce = true;
                 IsIntroEvent = true;
 
-                if( pInstance )
+                if (pInstance)
                     pInstance->SetData(TYPE_NETHEKURSE,IN_PROGRESS);
             }
 
-            if(!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE )
+            if (!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE )
                 return;
 
-            if( IsIntroEvent || !IsMainEvent )
+            if (IsIntroEvent || !IsMainEvent)
                 return;
 
             float attackRadius = m_creature->GetAttackDistance(who);
-            if( m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->IsWithinLOSInMap(who) )
+            if (m_creature->IsWithinDistInMap(who, attackRadius) && m_creature->IsWithinLOSInMap(who) )
             {
                 who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
@@ -245,16 +218,7 @@
         switch(rand()%3)
         {
-            case 0:
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_1);
-                DoYell(SAY_AGGRO_1,LANG_UNIVERSAL,NULL);
-                break;
-            case 1:
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_2);
-                DoYell(SAY_AGGRO_2,LANG_UNIVERSAL,NULL);
-                break;
-            case 2:
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_3);
-                DoYell(SAY_AGGRO_3,LANG_UNIVERSAL,NULL);
-                break;
+            case 0: DoScriptText(SAY_AGGRO_1, m_creature); break;
+            case 1: DoScriptText(SAY_AGGRO_2, m_creature); break;
+            case 2: DoScriptText(SAY_AGGRO_3, m_creature); break;
         }
     }
@@ -271,12 +235,6 @@
         switch(rand()%2)
         {
-            case 0:
-                DoPlaySoundToSet(m_creature,SOUND_SLAY_1);
-                DoYell(SAY_SLAY_1,LANG_UNIVERSAL,NULL);
-                break;
-            case 1:
-                DoPlaySoundToSet(m_creature,SOUND_SLAY_2);
-                DoYell(SAY_SLAY_2,LANG_UNIVERSAL,NULL);
-                break;
+            case 0: DoScriptText(SAY_SLAY_1, m_creature); break;
+            case 1: DoScriptText(SAY_SLAY_2, m_creature); break;
         }
     }
@@ -284,15 +242,14 @@
     void JustDied(Unit* Killer)
     {
-        DoPlaySoundToSet(m_creature,SOUND_DIE);
-        DoYell(SAY_DIE,LANG_UNIVERSAL,NULL);
-
-        if( !pInstance )
+        DoScriptText(SAY_DIE, m_creature);
+
+        if (!pInstance)
             return;
 
         pInstance->SetData(TYPE_NETHEKURSE,DONE);
 
-        if( pInstance->GetData64(DATA_NETHEKURSE_DOOR) )
-        {
-            if( GameObject *Door = GameObject::GetGameObject(*m_creature,pInstance->GetData64(DATA_NETHEKURSE_DOOR)) )
+        if (pInstance->GetData64(DATA_NETHEKURSE_DOOR))
+        {
+            if (GameObject *Door = GameObject::GetGameObject(*m_creature,pInstance->GetData64(DATA_NETHEKURSE_DOOR)))
                 Door->SetGoState(0);
         }
@@ -301,12 +258,12 @@
     void UpdateAI(const uint32 diff)
     {
-        if( IsIntroEvent )
-        {
-            if( !pInstance )
+        if (IsIntroEvent)
+        {
+            if (!pInstance)
                 return;
 
-            if( pInstance->GetData(TYPE_NETHEKURSE) == IN_PROGRESS )
-            {
-                if( IntroEvent_Timer < diff )
+            if (pInstance->GetData(TYPE_NETHEKURSE) == IN_PROGRESS)
+            {
+                if (IntroEvent_Timer < diff)
                 {
                     DoTauntPeons();
@@ -315,13 +272,13 @@
         }
 
-        if( !m_creature->SelectHostilTarget() || !m_creature->getVictim() )
-            return;
-
-        if( !IsMainEvent )
-            return;
-
-        if( Phase )
-        {
-            if( !SpinOnce )
+        if (!m_creature->SelectHostilTarget() || !m_creature->getVictim() )
+            return;
+
+        if (!IsMainEvent)
+            return;
+
+        if (Phase)
+        {
+            if (!SpinOnce)
             {
                 DoCast(m_creature->getVictim(),SPELL_DARK_SPIN);
@@ -329,5 +286,5 @@
             }
 
-            if( Cleave_Timer < diff )
+            if (Cleave_Timer < diff)
             {
                 DoCast(m_creature->getVictim(),(HeroicMode ? H_SPELL_SHADOW_SLAM : SPELL_SHADOW_CLEAVE));
@@ -337,19 +294,19 @@
         else
         {
-            if( ShadowFissure_Timer < diff )
-            {
-                if( Unit *target = SelectUnit(SELECT_TARGET_RANDOM,0) )
+            if (ShadowFissure_Timer < diff)
+            {
+                if (Unit *target = SelectUnit(SELECT_TARGET_RANDOM,0))
                     DoCast(target,SPELL_SHADOW_FISSURE);
                 ShadowFissure_Timer = 7500+rand()%7500;
             }else ShadowFissure_Timer -= diff;
 
-            if( DeathCoil_Timer < diff )
-            {
-                if( Unit *target = SelectUnit(SELECT_TARGET_RANDOM,0) )
+            if (DeathCoil_Timer < diff)
+            {
+                if (Unit *target = SelectUnit(SELECT_TARGET_RANDOM,0))
                     DoCast(target,SPELL_DEATH_COIL);
                 DeathCoil_Timer = 15000+rand()%5000;
             }else DeathCoil_Timer -= diff;
 
-            if( (m_creature->GetHealth()*100) / m_creature->GetMaxHealth() <= 20 )
+            if ((m_creature->GetHealth()*100) / m_creature->GetMaxHealth() <= 20)
                 Phase = true;
 
@@ -383,14 +340,14 @@
     void Aggro(Unit* who)
     {
-        if( pInstance )
-        {
-            if( pInstance->GetData64(DATA_NETHEKURSE) )
+        if (pInstance)
+        {
+            if (pInstance->GetData64(DATA_NETHEKURSE))
             {
                 Creature *pKurse = (Creature*)Unit::GetUnit(*m_creature,pInstance->GetData64(DATA_NETHEKURSE));
-                if( pKurse )
+                if (pKurse)
                     ((boss_grand_warlock_nethekurseAI*)pKurse->AI())->DoYellForPeonAggro();
             }
 
-            if( pInstance->GetData(TYPE_NETHEKURSE) == IN_PROGRESS )
+            if (pInstance->GetData(TYPE_NETHEKURSE) == IN_PROGRESS )
                 return;
             else pInstance->SetData(TYPE_NETHEKURSE,IN_PROGRESS);
@@ -400,10 +357,10 @@
     void JustDied(Unit* Killer)
     {
-        if( pInstance )
-        {
-            if( pInstance->GetData64(DATA_NETHEKURSE) )
+        if (pInstance)
+        {
+            if (pInstance->GetData64(DATA_NETHEKURSE))
             {
                 Creature *pKurse = (Creature*)Unit::GetUnit(*m_creature,pInstance->GetData64(DATA_NETHEKURSE));
-                if( pKurse )
+                if (pKurse)
                     ((boss_grand_warlock_nethekurseAI*)pKurse->AI())->DoYellForPeonDeath();
             }
@@ -413,8 +370,8 @@
     void UpdateAI(const uint32 diff)
     {
-        if( !m_creature->SelectHostilTarget() || !m_creature->getVictim() )
-            return;
-
-        if( Hemorrhage_Timer < diff )
+        if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
+            return;
+
+        if (Hemorrhage_Timer < diff)
         {
             DoCast(m_creature->getVictim(),SPELL_HEMORRHAGE);
@@ -448,5 +405,5 @@
     void UpdateAI(const uint32 diff)
     {
-        if( !Start )
+        if (!Start)
         {
             //triggered spell of consumption does not properly show it's SpellVisual, hack it a bit
@@ -456,5 +413,5 @@
         }
 
-        if( Stop_Timer < diff)
+        if (Stop_Timer < diff)
         {
             m_creature->setDeathState(JUST_DIED);
Index: /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp (revision 141)
+++ /trunk/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp (revision 166)
@@ -25,4 +25,30 @@
 #include "def_magtheridons_lair.h"
 
+struct Yell
+{
+    int32 id;
+};
+
+static Yell RandomTaunt[]=
+{
+    {-1544000},
+    {-1544001},
+    {-1544002},
+    {-1544003},
+    {-1544004},
+    {-1544005},
+};
+
+#define SAY_FREED                   -1544006
+#define SAY_AGGRO                   -1544007
+#define SAY_BANISH                  -1544008
+#define SAY_CHAMBER_DESTROY         -1544009
+#define SAY_PLAYER_KILLED           -1544010
+#define SAY_DEATH                   -1544011
+
+#define EMOTE_BERSERK               -1544012
+#define EMOTE_BLASTNOVA             -1544013
+#define EMOTE_BEGIN                 -1544014
+
 #define MOB_MAGTHERIDON     17257
 #define MOB_ROOM            17516
@@ -58,26 +84,6 @@
 #define SPELL_FIRE_BLAST			37110
 
-//Dialog
-#define SAY_AGGRO                   "Thank you for releasing me. Now...die!"
-#define SOUND_AGGRO                 10254
-#define SAY_BANISH                  "Not again...NOT AGAIN!"
-#define SOUND_BANISH                10256
-#define SAY_FREED                   "I...am...UNLEASHED!!!"
-#define SOUND_FREED                 10253
-#define SAY_CHAMBER_DESTROY         "I will not be taken so easily. Let the walls of this prison tremble...and FALL!!!"
-#define SOUND_CHAMBER_DESTROY       10257
-#define SAY_PLAYER_KILLED           "Did you think me weak? Soft? Who is the weak one now?!"
-#define SOUND_PLAYER_KILLED         10255
-#define SAY_DEATH                   "The Legion...will consume you...all...."
-#define SOUND_DEATH                 10258 
-#define EMOTE_BERSERK               "becomes enraged!"
-#define EMOTE_BLASTNOVA             "begins to cast Blast Nova!"
-#define EMOTE_BEGIN                 "%s's bonds begin to weaken!"
-
 // count of clickers needed to interrupt blast nova
 #define CLICKERS_COUNT				5
-
-// Unkown sounds
-uint32 RandomSound[] = {10247, 10248, 10249, 10250, 10251, 10252};
 
 typedef std::map<uint64, uint64> CubeMap;
@@ -197,4 +203,5 @@
     uint32 Blaze_Timer;
     uint32 Debris_Timer;
+	uint32 RandChat_Timer;
 
     bool Phase3;
@@ -215,4 +222,5 @@
         BlastNova_Timer = 60000;
         Cleave_Timer = 15000;
+        RandChat_Timer = 90000;
 
         Phase3 = false;
@@ -262,6 +270,5 @@
         if(ClickerNum >= CLICKERS_COUNT && !m_creature->HasAura(SPELL_SHADOW_CAGE, 0))
         {
-            DoYell(SAY_BANISH, LANG_UNIVERSAL, NULL);
-            DoPlaySoundToSet(m_creature, SOUND_BANISH);  
+            DoScriptText(SAY_BANISH, m_creature);
             m_creature->CastSpell(m_creature, SPELL_SHADOW_CAGE, true);
         }
@@ -274,6 +281,5 @@
     void KilledUnit(Unit* victim)
     {
-        DoYell(SAY_PLAYER_KILLED, LANG_UNIVERSAL, NULL);
-        DoPlaySoundToSet(m_creature, SOUND_PLAYER_KILLED);
+        DoScriptText(SAY_PLAYER_KILLED, m_creature);
     }
 
@@ -283,6 +289,5 @@
             pInstance->SetData(DATA_MAGTHERIDON_EVENT, DONE);
 
-        DoYell(SAY_DEATH,LANG_UNIVERSAL, NULL);
-        DoPlaySoundToSet(m_creature, SOUND_DEATH);
+        DoScriptText(SAY_DEATH, m_creature);
     }
 
@@ -304,10 +309,18 @@
         m_creature->RemoveAurasDueToSpell(SPELL_SHADOW_CAGE_C);
 
-        DoYell(SAY_FREED, LANG_UNIVERSAL, NULL);
-        DoPlaySoundToSet(m_creature, SOUND_FREED);          
+        DoScriptText(SAY_FREED, m_creature);
    }
 
     void UpdateAI(const uint32 diff)
     {
+        if (!InCombat)
+        {
+            if (RandChat_Timer < diff)
+            {
+                DoScriptText(RandomTaunt[rand()%6].id, m_creature);
+                RandChat_Timer = 90000;
+            }else RandChat_Timer -= diff;
+        }
+
         if(!m_creature->SelectHostilTarget() && !m_creature->getVictim())
             return;
@@ -318,5 +331,5 @@
         {
             m_creature->CastSpell(m_creature, SPELL_BERSERK, true);
-            DoTextEmote(EMOTE_BERSERK, NULL);
+            DoScriptText(EMOTE_BERSERK, m_creature);
             Berserk_Timer = 60000;
         }else Berserk_Timer -= diff;
@@ -333,5 +346,5 @@
             if(!m_creature->hasUnitState(UNIT_STAT_STUNNED))
             {
-                DoTextEmote(EMOTE_BLASTNOVA, NULL);
+                DoScriptText(EMOTE_BLASTNOVA, m_creature);
                 DoCast(m_creature, SPELL_BLASTNOVA);
                 BlastNova_Timer = 60000;
@@ -371,6 +384,5 @@
         {                        
             Phase3 = true;
-            DoYell(SAY_CHAMBER_DESTROY, LANG_UNIVERSAL, NULL);
-            DoPlaySoundToSet(m_creature, SOUND_CHAMBER_DESTROY);
+            DoScriptText(SAY_CHAMBER_DESTROY, m_creature);
             m_creature->CastSpell(m_creature, SPELL_CAMERA_SHAKE, true);
             m_creature->CastSpell(m_creature, SPELL_DEBRIS_KNOCKDOWN, true);
Index: /trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp (revision 90)
+++ /trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp (revision 166)
@@ -18,5 +18,5 @@
 SDName: Boss_Hydromancer_Thespia
 SD%Complete: 80
-SDComment: Normal/heroic mode: to be tested. Needs additional adjustments (when instance script is adjusted)
+SDComment: Needs additional adjustments (when instance script is adjusted)
 SDCategory: Coilfang Resevoir, The Steamvault
 EndScriptData */
@@ -30,21 +30,11 @@
 #include "def_steam_vault.h"
 
-#define SAY_SUMMON                  "Surge forth my pets!"
-#define SOUND_SUMMON                10360
-
-#define SAY_AGGRO_1                 "The depths will consume you!"
-#define SOUND_AGGRO_1               10361
-#define SAY_AGGRO_2                 "Meet your doom, surface dwellers!"
-#define SOUND_AGGRO_2               10362
-#define SAY_AGGRO_3                 "You will drown in blood!"
-#define SOUND_AGGRO_3               10363
-
-#define SAY_SLAY_1                  "To the depths of oblivion with you!"
-#define SOUND_SLAY_1                10364
-#define SAY_SLAY_2                  "For my lady and master!"
-#define SOUND_SLAY_2                10365
-
-#define SAY_DEAD                    "Our matron will be.. the end of.. you.."
-#define SOUND_DEAD                  10366
+#define SAY_SUMMON                  -1545000
+#define SAY_AGGRO_1                 -1545001
+#define SAY_AGGRO_2                 -1545002
+#define SAY_AGGRO_3                 -1545003
+#define SAY_SLAY_1                  -1545004
+#define SAY_SLAY_2                  -1545005
+#define SAY_DEAD                    -1545006
 
 #define SPELL_LIGHTNING_CLOUD       25033
@@ -57,4 +47,5 @@
     {
         pInstance = ((ScriptedInstance*)c->GetInstanceData());
+        HeroicMode = m_creature->GetMap()->IsHeroic();
         Reset();
     }
@@ -69,19 +60,18 @@
     void Reset()
     {
-        HeroicMode = m_creature->GetMap()->IsHeroic();
-
         LightningCloud_Timer = 28000;
         LungBurst_Timer = 7000;
         EnvelopingWinds_Timer = 9000;
 
-        if( pInstance ) pInstance->SetData(TYPE_HYDROMANCER_THESPIA, NOT_STARTED);
+        if (pInstance)
+            pInstance->SetData(TYPE_HYDROMANCER_THESPIA, NOT_STARTED);
     }
 
     void JustDied(Unit* Killer)
     {
-        DoYell(SAY_DEAD, LANG_UNIVERSAL, NULL);
-        DoPlaySoundToSet(m_creature,SOUND_DEAD);
+        DoScriptText(SAY_DEAD, m_creature);
 
-        if( pInstance ) pInstance->SetData(TYPE_HYDROMANCER_THESPIA, DONE);
+        if (pInstance)
+            pInstance->SetData(TYPE_HYDROMANCER_THESPIA, DONE);
     }
 
@@ -90,12 +80,6 @@
         switch(rand()%2)
         {
-            case 0:
-                DoYell(SAY_SLAY_1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_SLAY_1);
-                break;
-            case 1:
-                DoYell(SAY_SLAY_2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_SLAY_2);
-                break;
+            case 0: DoScriptText(SAY_SLAY_1, m_creature); break;
+            case 1: DoScriptText(SAY_SLAY_2, m_creature); break;
         }
     }
@@ -105,19 +89,11 @@
         switch(rand()%3)
         {
-            case 0:
-                DoYell(SAY_AGGRO_1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_1);
-                break;
-            case 1:
-                DoYell(SAY_AGGRO_2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_2);
-                break;
-            case 2:
-                DoYell(SAY_AGGRO_3, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_3);
-                break;
+            case 0: DoScriptText(SAY_AGGRO_1, m_creature); break;
+            case 1: DoScriptText(SAY_AGGRO_2, m_creature); break;
+            case 2: DoScriptText(SAY_AGGRO_3, m_creature); break;
         }
 
-        if( pInstance ) pInstance->SetData(TYPE_HYDROMANCER_THESPIA, IN_PROGRESS);
+        if (pInstance)
+            pInstance->SetData(TYPE_HYDROMANCER_THESPIA, IN_PROGRESS);
     }
 
@@ -128,11 +104,11 @@
 
         //LightningCloud_Timer
-        if( LightningCloud_Timer < diff )
+        if (LightningCloud_Timer < diff)
         {
             //cast twice in Heroic mode
-            if( Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0) )
+            if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
                 DoCast(target, SPELL_LIGHTNING_CLOUD);
-            if( HeroicMode )
-                if( Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0) )
+            if (HeroicMode)
+                if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
                     DoCast(target, SPELL_LIGHTNING_CLOUD);
             LightningCloud_Timer = 28000;
@@ -140,7 +116,7 @@
 
         //LungBurst_Timer
-        if( LungBurst_Timer < diff )
+        if (LungBurst_Timer < diff)
         {
-            if( Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0) )
+            if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
                 DoCast(target, SPELL_LUNG_BURST);
             LungBurst_Timer = 10000+rand()%5000;
@@ -148,11 +124,11 @@
 
         //EnvelopingWinds_Timer
-        if( EnvelopingWinds_Timer < diff )
+        if (EnvelopingWinds_Timer < diff)
         {
             //cast twice in Heroic mode
-            if( Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0) )
+            if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
                 DoCast(target, SPELL_ENVELOPING_WINDS);
-            if( HeroicMode )
-                if( Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0) )
+            if (HeroicMode)
+                if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
                     DoCast(target, SPELL_ENVELOPING_WINDS);
             EnvelopingWinds_Timer = 10000+rand()%5000;
@@ -186,9 +162,7 @@
             return;
 
-        if( WaterBoltVolley_Timer < diff )
+        if (WaterBoltVolley_Timer < diff)
         {
-            if( HeroicMode ) DoCast(m_creature,H_SPELL_WATER_BOLT_VOLLEY);
-            else DoCast(m_creature,SPELL_WATER_BOLT_VOLLEY);
-
+            DoCast(m_creature, HeroicMode ? H_SPELL_WATER_BOLT_VOLLEY : SPELL_WATER_BOLT_VOLLEY);
             WaterBoltVolley_Timer = 10000+rand()%5000;
         }else WaterBoltVolley_Timer -= diff;
Index: /trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp (revision 90)
+++ /trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp (revision 166)
@@ -25,24 +25,12 @@
 #include "def_steam_vault.h"
 
-#define SAY_INTRO           "You deem yourselves worthy simply because you bested my guards? Our work here will not be compromised!"
-#define SOUND_INTRO         10390
-
-#define SAY_REGEN           "This is not nearly over..."
-#define SOUND_REGEN         10391
-
-#define SAY_AGGRO1          "Your head will roll!"
-#define SOUND_AGGRO1        10392
-#define SAY_AGGRO2          "I despise all of your kind!"
-#define SOUND_AGGRO2        10393
-#define SAY_AGGRO3          "Ba'ahntha sol'dorei!"
-#define SOUND_AGGRO3        10394
-
-#define SAY_SLAY1           "Scram, surface filth!"
-#define SOUND_SLAY1         10395
-#define SAY_SLAY2           "Ah ha ha ha ha ha ha!"
-#define SOUND_SLAY2         10396
-
-#define SAY_DEATH           "For her Excellency... for... Vashj!"
-#define SOUND_DEATH         10397
+#define SAY_INTRO                   -1545016
+#define SAY_REGEN                   -1545017
+#define SAY_AGGRO1                  -1545018
+#define SAY_AGGRO2                  -1545019
+#define SAY_AGGRO3                  -1545020
+#define SAY_SLAY1                   -1545021
+#define SAY_SLAY2                   -1545022
+#define SAY_DEATH                   -1545023
 
 #define SPELL_SPELL_REFLECTION      31534
@@ -69,9 +57,11 @@
 
         //hack, due to really weird spell behaviour :(
-        if( pInstance )
-            if( pInstance->GetData(TYPE_DISTILLER) == IN_PROGRESS )
-        {
-            m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
-            m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+        if (pInstance)
+        {
+            if (pInstance->GetData(TYPE_DISTILLER) == IN_PROGRESS)
+            {
+                m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+                m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+            }
         }
     }
@@ -83,12 +73,16 @@
         m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
         m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+
         DoCast(m_creature,SPELL_WARLORDS_RAGE_NAGA,true);
-        if( pInstance ) pInstance->SetData(TYPE_DISTILLER,IN_PROGRESS);
+
+        if (pInstance)
+            pInstance->SetData(TYPE_DISTILLER,IN_PROGRESS);
     }
 
     void DamageTaken(Unit *done_by, uint32 &damage)
     {
-        if( m_creature->GetHealth() <= damage )
-            if( pInstance ) pInstance->SetData(TYPE_DISTILLER,DONE);
+        if (m_creature->GetHealth() <= damage)
+            if (pInstance)
+                pInstance->SetData(TYPE_DISTILLER,DONE);
     }
 };
@@ -116,5 +110,6 @@
         CanRage = false;
 
-        if( pInstance ) pInstance->SetData(TYPE_WARLORD_KALITHRESH, NOT_STARTED);
+        if (pInstance)
+            pInstance->SetData(TYPE_WARLORD_KALITHRESH, NOT_STARTED);
     }
 
@@ -123,19 +118,11 @@
         switch(rand()%3)
         {
-            case 0:
-                DoYell(SAY_AGGRO1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO1);
-                break;
-            case 1:
-                DoYell(SAY_AGGRO2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO2);
-                break;
-            case 2:
-                DoYell(SAY_AGGRO3, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO3);
-                break;
+            case 0: DoScriptText(SAY_AGGRO1, m_creature); break;
+            case 1: DoScriptText(SAY_AGGRO2, m_creature); break;
+            case 2: DoScriptText(SAY_AGGRO3, m_creature); break;
         }
 
-        if( pInstance ) pInstance->SetData(TYPE_WARLORD_KALITHRESH, IN_PROGRESS);
+        if (pInstance)
+            pInstance->SetData(TYPE_WARLORD_KALITHRESH, IN_PROGRESS);
     }
 
@@ -144,12 +131,6 @@
         switch(rand()%2)
         {
-            case 0:
-                DoYell(SAY_SLAY1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(victim, SOUND_SLAY1);
-                break;
-            case 1:
-                DoYell(SAY_SLAY2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(victim, SOUND_SLAY2);
-                break;
+            case 0: DoScriptText(SAY_SLAY1, m_creature); break;
+            case 1: DoScriptText(SAY_SLAY2, m_creature); break;
         }
     }
@@ -178,7 +159,7 @@
     {
         //hack :(
-        if( spell->Id == SPELL_WARLORDS_RAGE_PROC )
-            if( pInstance )
-                if( pInstance->GetData(TYPE_DISTILLER) == DONE )
+        if (spell->Id == SPELL_WARLORDS_RAGE_PROC)
+            if (pInstance)
+                if (pInstance->GetData(TYPE_DISTILLER) == DONE)
                     m_creature->RemoveAurasDueToSpell(SPELL_WARLORDS_RAGE_PROC);
     }
@@ -186,8 +167,8 @@
     void JustDied(Unit* Killer)
     {
-        DoYell(SAY_DEATH, LANG_UNIVERSAL, NULL);
-        DoPlaySoundToSet(m_creature, SOUND_DEATH);
-
-        if( pInstance ) pInstance->SetData(TYPE_WARLORD_KALITHRESH, DONE);
+        DoScriptText(SAY_DEATH, m_creature);
+
+        if (pInstance)
+            pInstance->SetData(TYPE_WARLORD_KALITHRESH, DONE);
     }
 
@@ -197,11 +178,10 @@
             return;
 
-        if( Rage_Timer < diff )
+        if (Rage_Timer < diff)
         {
             Creature* distiller = SelectCreatureInGrid(17954, 100);
-            if( distiller )
+            if (distiller)
             {
-                DoYell(SAY_REGEN, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_REGEN);
+                DoScriptText(SAY_REGEN, m_creature);
                 DoCast(m_creature,SPELL_WARLORDS_RAGE);
                 ((mob_naga_distillerAI*)distiller->AI())->StartRageGen(m_creature);
@@ -211,5 +191,5 @@
 
         //Reflection_Timer
-        if( Reflection_Timer < diff )
+        if (Reflection_Timer < diff)
         {
             DoCast(m_creature, SPELL_SPELL_REFLECTION);
@@ -218,7 +198,7 @@
 
         //Impale_Timer
-        if( Impale_Timer < diff )
-        {
-            if( Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0) )
+        if (Impale_Timer < diff)
+        {
+            if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0))
                 DoCast(target,SPELL_IMPALE);
 
Index: /trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp
===================================================================
--- /trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp (revision 90)
+++ /trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp (revision 166)
@@ -30,25 +30,13 @@
 #include "def_steam_vault.h"
 
-#define SAY_MECHANICS               "I'm bringin' the pain!"
-#define SOUND_MECHANICS             10367
-
-#define SAY_AGGRO_1                 "You're in for a world of hurt!"
-#define SOUND_AGGRO_1               10368
-#define SAY_AGGRO_2                 "Eat hot metal, scumbag!"
-#define SOUND_AGGRO_2               10369
-#define SAY_AGGRO_3                 "I'll come over there!"
-#define SOUND_AGGRO_3               10370
-#define SAY_AGGRO_4                 "I'm bringin' the pain!"
-#define SOUND_AGGRO_4               10371
-
-#define SAY_SLAY_1                  "You just got served, punk!"
-#define SOUND_SLAY_1                10372
-#define SAY_SLAY_2                  "I own you!"
-#define SOUND_SLAY_2                10373
-#define SAY_SLAY_3                  "Have fun dyin', cupcake!"
-#define SOUND_SLAY_3                10374
-
-#define SAY_DEATH                   "Mommy!"
-#define SOUND_DEATH                 10375
+#define SAY_MECHANICS               -1545007
+#define SAY_AGGRO_1                 -1545008
+#define SAY_AGGRO_2                 -1545009
+#define SAY_AGGRO_3                 -1545010
+#define SAY_AGGRO_4                 -1545011
+#define SAY_SLAY_1                  -1545012
+#define SAY_SLAY_2                  -1545013
+#define SAY_SLAY_3                  -1545014
+#define SAY_DEATH                   -1545015
 
 #define SPELL_SUPER_SHRINK_RAY      31485
@@ -64,8 +52,10 @@
     {
         pInstance = ((ScriptedInstance*)c->GetInstanceData());
+        HeroicMode = m_creature->GetMap()->IsHeroic();
         Reset();
     }
 
     ScriptedInstance *pInstance;
+    bool HeroicMode;
 
     uint32 Shrink_Timer;
@@ -86,13 +76,14 @@
         Summon25 = false;
 
-        if( pInstance ) pInstance->SetData(TYPE_MEKGINEER_STEAMRIGGER, NOT_STARTED);
+        if (pInstance)
+            pInstance->SetData(TYPE_MEKGINEER_STEAMRIGGER, NOT_STARTED);
     }
 
     void JustDied(Unit* Killer)
     {
-        DoYell(SAY_DEATH, LANG_UNIVERSAL, NULL);
-        DoPlaySoundToSet(m_creature,SOUND_DEATH);
-
-        if( pInstance ) pInstance->SetData(TYPE_MEKGINEER_STEAMRIGGER, DONE);
+        DoScriptText(SAY_DEATH, m_creature);
+
+        if (pInstance)
+            pInstance->SetData(TYPE_MEKGINEER_STEAMRIGGER, DONE);
     }
 
@@ -101,16 +92,7 @@
         switch(rand()%3)
         {
-            case 0:
-                DoYell(SAY_SLAY_1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_SLAY_1);
-                break;
-            case 1:
-                DoYell(SAY_SLAY_2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_SLAY_2);
-                break;
-            case 2:
-                DoYell(SAY_SLAY_3, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_SLAY_3);
-                break;
+            case 0: DoScriptText(SAY_SLAY_1, m_creature); break;
+            case 1: DoScriptText(SAY_SLAY_2, m_creature); break;
+            case 2: DoScriptText(SAY_SLAY_3, m_creature); break;
         }
     }
@@ -120,19 +102,11 @@
         switch(rand()%3)
         {
-            case 0:
-                DoYell(SAY_AGGRO_1, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_1);
-                break;
-            case 1:
-                DoYell(SAY_AGGRO_2, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_2);
-                break;
-            case 2:
-                DoYell(SAY_AGGRO_3, LANG_UNIVERSAL, NULL);
-                DoPlaySoundToSet(m_creature,SOUND_AGGRO_3);
-                break;
-        }
-
-        if( pInstance ) pInstance->SetData(TYPE_MEKGINEER_STEAMRIGGER, IN_PROGRESS);
+            case 0: DoScriptText(SAY_AGGRO_1, m_creature); break;
+            case 1: DoScriptText(SAY_AGGRO_2, m_creature); break;
+            case 2: DoScriptText(SAY_AGGRO_3, m_creature); break;
+        }
+
+        if (pInstance)
+            pInstance->SetData(TYPE_MEKGINEER_STEAMRIGGER, IN_PROGRESS);
     }
 
@@ -140,6 +114,5 @@
     void SummonMechanichs()
     {
-        DoYell(SAY_MECHANICS, LANG_UNIVERSAL, NULL);
-        DoPlaySoundToSet(m_creature,SOUND_MECHANICS);
+        DoScriptText(SAY_MECHANICS, m_creature);
 
         DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC,5,5,0,0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
@@ -147,7 +120,7 @@
         DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC,-5,-5,0,0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
 
-        if( rand()%2 )
+        if (rand()%2)
             DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC,5,-7,0,0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
-        if( rand()%2 )
+        if (rand()%2)
             DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC,7,-5,0,0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000);
     }
@@ -158,5 +131,5 @@
             return;
 
-        if( Shrink_Timer < diff )
+        if (Shrink_Timer < diff)
         {
             DoCast(m_creature->getVictim(),SPELL_SUPER_SHRINK_RAY);
@@ -164,12 +137,15 @@
         }else Shrink_Timer -= diff;
 
-        if( Saw_Blade_Timer < diff )
-        {
-            if( Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1) ) DoCast(target,SPELL_SAW_BLADE);
-            else DoCast(m_creature->getVictim(),SPELL_SAW_BLADE);
+        if (Saw_Blade_Timer < diff)
+        {
+            if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,1))
+                DoCast(target,SPELL_SAW_BLADE);
+            else
+                DoCast(m_creature->getVictim(),SPELL_SAW_BLADE);
+
             Saw_Blade_Timer = 15000;
         } else Saw_Blade_Timer -= diff;
 
-        if( Electrified_Net_Timer < diff )
+        if (Electrified_Net_Timer < diff)
         {
             DoCast(m_creature->getVictim(),SPELL_ELECTRIFIED_NET);
@@ -178,21 +154,29 @@
         else Electrified_Net_Timer -= diff;
 
-        if( !Summon75 )
-            if( (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 75 )
-        {
-            SummonMechanichs();
-            Summon75 = true;
-        }
-        if( !Summon50 )
-            if( (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 50 )
-        {
-            SummonMechanichs();
-            Summon50 = true;
-        }
-        if( !Summon25 )
-            if( (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25 )
-        {
-            SummonMechanichs();
-            Summon25 = true;
+        if (!Summon75)
+        {
+            if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 75)
+            {
+                SummonMechanichs();
+                Summon75 = true;
+            }
+        }
+
+        if (!Summon50)
+        {
+            if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 50)
+            {
+                SummonMechanichs();
+                Summon50 = true;
+            }
+        }
+
+        if (!Summon25)
+        {
+            if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25)
+            {
+                SummonMechanichs();
+                Summon25 = true;
+            }
         }
 
@@ -218,15 +202,15 @@
     {
         pInstance = ((ScriptedInstance*)c->GetInstanceData());
+        HeroicMode = m_creature->GetMap()->IsHeroic();
         Reset();
     }
 
     ScriptedInstance* pInstance;
+    bool HeroicMode;
 
     uint32 Repair_Timer;
-    bool HeroicMode;
 
     void Reset()
     {
-        HeroicMode = m_creature->GetMap()->IsHeroic();
         Repair_Timer = 2000;
     }
@@ -242,20 +226,19 @@
     void UpdateAI(const uint32 diff)
     {
-        if( Repair_Timer < diff )
-        {
-            if( pInstance && pInstance->GetData64(DATA_MEKGINEERSTEAMRIGGER) && pInstance->GetData(TYPE_MEKGINEER_STEAMRIGGER) == IN_PROGRESS)
-            {
-                if( Unit* pMekgineer = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_MEKGINEERSTEAMRIGGER)) )
+        if (Repair_Timer < diff)
+        {
+            if (pInstance && pInstance->GetData64(DATA_MEKGINEERSTEAMRIGGER) && pInstance->GetData(TYPE_MEKGINEER_STEAMRIGGER) == IN_PROGRESS)
+            {
+                if (Unit* pMekgineer = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_MEKGINEERSTEAMRIGGER)))
                 {
-                    if( m_creature->IsWithinDistInMap(pMekgineer, MAX_REPAIR_RANGE) )
+                    if (m_creature->IsWithinDistInMap(pMekgineer, MAX_REPAIR_RANGE))
                     {
                         //are we already channeling? Doesn't work very well, find better check?
-                        if( !m_creature->GetUInt32Value(UNIT_CHANNEL_SPELL) )
+                        if (!m_creature->GetUInt32Value(UNIT_CHANNEL_SPELL))
                         {
                             //m_creature->GetMotionMaster()->MovementExpired();
                             //m_creature->GetMotionMaster()->MoveIdle();
 
-                            if( HeroicMode ) DoCast(m_creature,H_SPELL_REPAIR,true);
-                            else DoCast(m_creature,SPELL_REPAIR,true);
+                            DoCast(m_creature,HeroicMode ? H_SPELL_REPAIR : SPELL_REPAIR, true);
                         }
                         Repair_Timer = 5000;
@@ -270,5 +253,5 @@
         }else Repair_Timer -= diff;
 
-        if( !m_creature->SelectHostilTarget() || !m_creature->getVictim() )
+        if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
             return;
 
