Show
Ignore:
Timestamp:
11/19/08 13:42:11 (17 years ago)
Author:
yumileroy
Message:

[svn] * Updated Serpentshrine Cavern scripts to use script_texts
* Added script_texts for (nearly) all scripts
* Added documentation for script_texts
* Fixed tabs in chat.cpp

Original author: slg
Date: 2008-11-04 15:21:02-06:00

Location:
trunk/src/bindings/scripts
Files:
1 added
5 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp

    r130 r164  
    2626#include "../../../npc/npc_escortAI.h" 
    2727 
     28#define SAY_AGGRO                   -1548021 
     29#define SAY_GAIN_BLESSING           -1548022 
     30#define SAY_GAIN_ABILITY1           -1548023 
     31#define SAY_GAIN_ABILITY2           -1548024 
     32#define SAY_GAIN_ABILITY3           -1548025 
     33#define SAY_SLAY1                   -1548026 
     34#define SAY_SLAY2                   -1548027 
     35#define SAY_SLAY3                   -1548028 
     36#define SAY_DEATH                   -1548029 
     37 
    2838//Karathress spells 
    29 #define SPELL_CATACLYSMIC_BOLT                  38441 
    30 #define SPELL_POWER_OF_SHARKKIS                 38455 
    31 #define SPELL_POWER_OF_TIDALVESS                38452 
    32 #define SPELL_POWER_OF_CARIBDIS                 38451 
    33 #define SPELL_ENRAGE                                    45078 
    34 #define SPELL_SEAR_NOVA                                 38445 
     39#define SPELL_CATACLYSMIC_BOLT          38441 
     40#define SPELL_POWER_OF_SHARKKIS         38455 
     41#define SPELL_POWER_OF_TIDALVESS        38452 
     42#define SPELL_POWER_OF_CARIBDIS         38451 
     43#define SPELL_ENRAGE                    24318 
     44#define SPELL_SEAR_NOVA                 38445 
    3545#define SPELL_BLESSING_OF_THE_TIDES             38449 
    3646 
    3747//Sharkkis spells 
    38 #define SPELL_LEECHING_THROW                    29436 
    39 #define SPELL_THE_BEAST_WITHIN                  38373 
    40 #define SPELL_LEECHING_THROW                    29436 
     48#define SPELL_LEECHING_THROW            29436 
     49#define SPELL_THE_BEAST_WITHIN          38373 
    4150#define SPELL_MULTISHOT                                 38366 
    42 #define SPELL_THE_BEAST_WITHIN                  38373 
    4351#define SPELL_SUMMON_FATHOM_LURKER              38433 
    4452#define SPELL_SUMMON_FATHOM_SPOREBAT    38431 
     
    6371 
    6472//Yells and Quotes 
    65 #define SAY_AGGRO                                               "Guards, attention! We have visitors..." 
    66 #define SOUND_AGGRO                                             11277 
    67 #define SAY_SLAY1                                               "I am rid of you." 
    68 #define SOUND_SLAY1                                             11282 
    69 #define SAY_SLAY2                                               "Land-dwelling scum!" 
    70 #define SOUND_SLAY2                                             11284 
    71 #define SAY_GAIN_ABILITY1                               "I am more powerful than ever!" 
    72 #define SOUND_GAIN_ABILITY1                             11279 
    73 #define SAY_GAIN_ABILITY2                               "Go on, kill them! I'll be the better for it!" 
    74 #define SOUND_GAIN_ABILITY2                             11280 
    75 #define SAY_GAIN_ABILITY3                               "More knowledge, more power!" 
    76 #define SOUND_GAIN_ABILITY3                             11281 
    77 #define SAY_DEATH                                               "Her ... excellency ... awaits!" 
    78 #define SOUND_DEATH                                             11285 
    7973#define SAY_GAIN_BLESSING_OF_TIDES              "Your overconfidence will be your undoing! Guards, lend me your strength!" 
    8074#define SOUND_GAIN_BLESSING_OF_TIDES    11278 
     
    158152    void EventSharkkisDeath() 
    159153    { 
    160         DoPlaySoundToSet(m_creature, SOUND_GAIN_ABILITY1); 
    161         DoYell(SAY_GAIN_ABILITY1, LANG_UNIVERSAL, NULL); 
     154        DoScriptText(SAY_GAIN_ABILITY1, m_creature); 
    162155        DoCast(m_creature, SPELL_POWER_OF_SHARKKIS); 
    163156    } 
     
    165158    void EventTidalvessDeath() 
    166159    { 
    167         DoPlaySoundToSet(m_creature, SOUND_GAIN_ABILITY2); 
    168         DoYell(SAY_GAIN_ABILITY2, LANG_UNIVERSAL, NULL); 
     160        DoScriptText(SAY_GAIN_ABILITY2, m_creature); 
    169161        DoCast(m_creature, SPELL_POWER_OF_TIDALVESS); 
    170162    } 
     
    172164    void EventCaribdisDeath() 
    173165    { 
    174         DoPlaySoundToSet(m_creature, SOUND_GAIN_ABILITY3); 
    175         DoYell(SAY_GAIN_ABILITY3, LANG_UNIVERSAL, NULL); 
     166        DoScriptText(SAY_GAIN_ABILITY3, m_creature); 
    176167        DoCast(m_creature, SPELL_POWER_OF_CARIBDIS); 
    177168    } 
     
    179170    void GetAdvisors() 
    180171    { 
    181         if(!pInstance) 
     172        if (!pInstance) 
    182173            return; 
    183174 
     
    189180    void StartEvent(Unit *who) 
    190181    { 
    191         if(!pInstance) 
     182        if (!pInstance) 
    192183            return; 
    193184 
    194185        GetAdvisors(); 
    195186 
    196         DoPlaySoundToSet(m_creature, SOUND_AGGRO); 
    197         DoYell(SAY_AGGRO, LANG_UNIVERSAL, NULL); 
     187        DoScriptText(SAY_AGGRO, m_creature); 
    198188                DoZoneInCombat(); 
    199189 
     
    206196        switch(rand()%3) 
    207197        { 
    208             case 0: 
    209                 DoPlaySoundToSet(m_creature, SOUND_SLAY1); 
    210                 DoYell(SAY_SLAY1, LANG_UNIVERSAL, NULL); 
    211                 break; 
    212             case 1: 
    213                 DoPlaySoundToSet(m_creature, SOUND_SLAY2); 
    214                                 DoYell(SAY_SLAY2, LANG_UNIVERSAL, NULL); 
    215                 break; 
     198            case 0: DoScriptText(SAY_SLAY1, m_creature); break; 
     199            case 1: DoScriptText(SAY_SLAY2, m_creature); break; 
     200            case 2: DoScriptText(SAY_SLAY3, m_creature); break; 
    216201        } 
    217202    } 
     
    219204    void JustDied(Unit *killer) 
    220205    { 
    221         DoPlaySoundToSet(m_creature, SOUND_DEATH); 
    222         DoYell(SAY_DEATH, LANG_UNIVERSAL, NULL); 
    223  
    224         if( pInstance ) 
    225             pInstance->SetData(DATA_FATHOMLORDKARATHRESSEVENT, DONE); 
     206        DoScriptText(SAY_DEATH, m_creature); 
     207 
     208        if (pInstance) 
     209            pInstance->SetData(DATA_FATHOMLORDKARATHRESSEVENT, NOT_STARTED); 
    226210 
    227211        //support for quest 10944 
     
    237221    { 
    238222        //Only if not incombat check if the event is started 
    239         if(!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) 
     223        if (!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) 
    240224        { 
    241225            Unit* target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESSEVENT_STARTER)); 
    242226 
    243             if(target) 
     227            if (target) 
    244228            { 
    245229                AttackStart(target); 
     
    253237 
    254238        //someone evaded! 
    255         if(pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) 
     239        if (pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) 
    256240                { 
    257241            EnterEvadeMode(); 
     
    260244 
    261245        //CataclysmicBolt_Timer 
    262         if(CataclysmicBolt_Timer < diff) 
     246        if (CataclysmicBolt_Timer < diff) 
    263247        { 
    264248            //select a random unit other than the main tank 
     
    266250 
    267251            //if there aren't other units, cast on the tank 
    268             if(!target) 
     252            if (!target) 
    269253                target = m_creature->getVictim(); 
    270254 
     
    283267 
    284268        //Enrage_Timer 
    285         if(Enrage_Timer < diff) 
     269        if (Enrage_Timer < diff) 
    286270        { 
    287271            DoCast(m_creature, SPELL_ENRAGE); 
     
    364348    void JustDied(Unit *victim) 
    365349    { 
    366         if(pInstance) 
     350        if (pInstance) 
    367351        { 
    368352            Creature *Karathress = NULL; 
    369353            Karathress = (Creature*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESS))); 
    370354 
    371             if(Karathress) 
    372                                 if(!m_creature->isAlive() && Karathress) 
     355            if (Karathress) 
     356                ((boss_fathomlord_karathressAI*)Karathress->AI())->EventSharkkisDeath(); 
    373357                                        ((boss_fathomlord_karathressAI*)Karathress->AI())->EventSharkkisDeath(); 
    374358        } 
     
    377361    void Aggro(Unit *who) 
    378362    { 
    379         if(pInstance) 
     363        if (pInstance) 
    380364        { 
    381365            pInstance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); 
     
    387371    { 
    388372        //Only if not incombat check if the event is started 
    389         if(!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) 
     373        if (!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) 
    390374        { 
    391375            Unit* target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESSEVENT_STARTER)); 
    392376 
    393             if(target) 
     377            if (target) 
    394378            { 
    395379                AttackStart(target); 
     
    402386 
    403387        //someone evaded! 
    404         if(pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) 
     388        if (pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) 
    405389                { 
    406390                        EnterEvadeMode(); 
     
    488472                Earthbind_Timer = 45000; 
    489473 
    490         if( pInstance ) 
     474        if (pInstance) 
    491475            pInstance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED); 
    492476    } 
     
    494478    void JustDied(Unit *victim) 
    495479    { 
    496         if(pInstance) 
     480        if (pInstance) 
    497481        { 
    498482            Creature *Karathress = NULL; 
    499483            Karathress = (Creature*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESS))); 
    500484 
    501             if(Karathress) 
     485            if (Karathress) 
    502486                                if(!m_creature->isAlive() && Karathress) 
    503487                                        ((boss_fathomlord_karathressAI*)Karathress->AI())->EventTidalvessDeath(); 
     
    507491    void Aggro(Unit *who) 
    508492    { 
    509         if(pInstance) 
     493        if (pInstance) 
    510494        { 
    511495            pInstance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); 
     
    518502    { 
    519503        //Only if not incombat check if the event is started 
    520         if(!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) 
     504        if (!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) 
    521505        { 
    522506            Unit* target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESSEVENT_STARTER)); 
    523507 
    524             if(target) 
     508            if (target) 
    525509            { 
    526510                AttackStart(target); 
     
    533517 
    534518        //someone evaded! 
    535         if(pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) 
     519        if (pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) 
    536520                { 
    537521            EnterEvadeMode(); 
     
    545529 
    546530        //FrostShock_Timer 
    547         if(FrostShock_Timer < diff) 
     531        if (FrostShock_Timer < diff) 
    548532        { 
    549533            DoCast(m_creature->getVictim(), SPELL_FROST_SHOCK); 
     
    604588                Cyclone_Timer = 30000+rand()%10000; 
    605589 
    606         if(pInstance) 
     590        if (pInstance) 
    607591            pInstance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED); 
    608592    } 
     
    610594    void JustDied(Unit *victim) 
    611595    { 
    612         if(pInstance) 
     596        if (pInstance) 
    613597        { 
    614598            Creature *Karathress = NULL; 
    615599            Karathress = (Creature*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESS))); 
    616600 
    617             if(Karathress) 
     601            if (Karathress) 
    618602                                if(!m_creature->isAlive() && Karathress) 
    619603                                        ((boss_fathomlord_karathressAI*)Karathress->AI())->EventCaribdisDeath(); 
     
    623607    void Aggro(Unit *who) 
    624608    { 
    625         if(pInstance) 
     609        if (pInstance) 
    626610        { 
    627611            pInstance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); 
     
    633617    { 
    634618        //Only if not incombat check if the event is started 
    635         if(!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) 
     619        if (!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) 
    636620        { 
    637621            Unit* target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESSEVENT_STARTER)); 
    638622 
    639             if(target) 
     623            if (target) 
    640624            { 
    641625                AttackStart(target); 
     
    648632 
    649633        //someone evaded! 
    650         if(pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) 
     634        if (pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) 
    651635                { 
    652636            EnterEvadeMode(); 
     
    655639 
    656640        //WaterBoltVolley_Timer 
    657         if(WaterBoltVolley_Timer < diff) 
     641        if (WaterBoltVolley_Timer < diff) 
    658642        { 
    659643            DoCast(m_creature->getVictim(), SPELL_WATER_BOLT_VOLLEY); 
     
    662646 
    663647        //TidalSurge_Timer 
    664         if(TidalSurge_Timer < diff) 
     648        if (TidalSurge_Timer < diff) 
    665649        { 
    666650            DoCast(m_creature->getVictim(), SPELL_TIDAL_SURGE); 
     
    706690                }else Heal_Timer -= diff; 
    707691 
    708                 DoMeleeAttackIfReady(); 
    709         } 
     692        DoMeleeAttackIfReady(); 
     693    } 
    710694 
    711695        Unit* selectAdvisorUnit() 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp

    r90 r164  
    2424#include "precompiled.h" 
    2525#include "def_serpent_shrine.h" 
     26 
     27#define SAY_AGGRO                   -1548000 
     28#define SAY_SWITCH_TO_CLEAN         -1548001 
     29#define SAY_CLEAN_SLAY1             -1548002 
     30#define SAY_CLEAN_SLAY2             -1548003 
     31#define SAY_CLEAN_DEATH             -1548004 
     32#define SAY_SWITCH_TO_CORRUPT       -1548005 
     33#define SAY_CORRUPT_SLAY1           -1548006 
     34#define SAY_CORRUPT_SLAY2           -1548007 
     35#define SAY_CORRUPT_DEATH           -1548008 
    2636 
    2737#define SWITCH_RADIUS               18 
     
    5262#define ENTRY_TAINTED_SPAWN         22036 
    5363 
    54 #define SAY_AGGRO                   "I cannot allow you to interfere!" 
    55 #define SAY_SWITCH_TO_CLEAN         "Better, much better." 
    56 #define SAY_CLEAN_SLAY1             "They have forced me to this..." 
    57 #define SAY_CLEAN_SLAY2             "I have no choice." 
    58 #define SAY_CLEAN_DEATH             "I am... released..." 
    59 #define SAY_SWITCH_TO_CORRUPT       "Aaghh, the poison..." 
    60 #define SAY_CORRUPT_SLAY1           "I will purge you from this place." 
    61 #define SAY_CORRUPT_SLAY2           "You are no better than they!" 
    62 #define SAY_CORRUPT_DEATH           "You are the disease, not I" 
    63  
    64 #define SOUND_AGGRO                 11289 
    65 #define SOUND_SWITCH_TO_CLEAN       11290 
    66 #define SOUND_CLEAN_SLAY1           11291 
    67 #define SOUND_CLEAN_SLAY2           11292 
    68 #define SOUND_CLEAN_DEATH           11293 
    69 #define SOUND_SWITCH_TO_CORRUPT     11297 
    70 #define SOUND_CORRUPT_SLAY1         11298 
    71 #define SOUND_CORRUPT_SLAY2         11299 
    72 #define SOUND_CORRUPT_DEATH         11300 
    73  
    7464#define HYDROSS_X                   -239.439 
    7565#define HYDROSS_Y                   -363.481 
     
    122112        m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_CLEAN); 
    123113 
    124         if( pInstance ) 
     114        if (pInstance) 
    125115            pInstance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, NOT_STARTED); 
    126116    } 
     
    128118    void Aggro(Unit *who) 
    129119    { 
    130         DoYell(SAY_AGGRO, LANG_UNIVERSAL, NULL); 
    131         DoPlaySoundToSet(m_creature, SOUND_AGGRO); 
    132  
    133         if( pInstance ) 
     120        DoScriptText(SAY_AGGRO, m_creature); 
     121 
     122        if (pInstance) 
    134123            pInstance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, IN_PROGRESS); 
    135124    } 
     
    137126    void KilledUnit(Unit *victim) 
    138127    { 
    139         if(CorruptedForm) 
     128        if (CorruptedForm) 
     129        { 
    140130            switch(rand()%2) 
    141131            { 
    142                 case 0: 
    143                     DoYell(SAY_CORRUPT_SLAY1, LANG_UNIVERSAL, NULL); 
    144                     DoPlaySoundToSet(m_creature, SOUND_CORRUPT_SLAY1); 
    145                     break; 
    146                 case 1: 
    147                     DoYell(SAY_CORRUPT_SLAY2, LANG_UNIVERSAL, NULL); 
    148                     DoPlaySoundToSet(m_creature, SOUND_CORRUPT_SLAY2); 
    149                     break; 
     132                case 0: DoScriptText(SAY_CORRUPT_SLAY1, m_creature); break; 
     133                case 1: DoScriptText(SAY_CORRUPT_SLAY2, m_creature); break; 
    150134            } 
    151             else 
    152             { 
    153                 switch(rand()%2) 
    154                 { 
    155                     case 0: 
    156                         DoYell(SAY_CLEAN_SLAY1, LANG_UNIVERSAL, NULL); 
    157                         DoPlaySoundToSet(m_creature, SOUND_CLEAN_SLAY1); 
    158                         break; 
    159                     case 1: 
    160                         DoYell(SAY_CLEAN_SLAY2, LANG_UNIVERSAL, NULL); 
    161                         DoPlaySoundToSet(m_creature, SOUND_CLEAN_SLAY2); 
    162                         break; 
    163                 } 
    164             } 
    165     } 
    166  
    167     void JustSummoned(Creature* summoned) 
    168     { 
    169         if( summoned->GetEntry() == ENTRY_PURE_SPAWN ) 
    170             summoned->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true); 
    171         if( summoned->GetEntry() == ENTRY_TAINTED_SPAWN ) 
    172             summoned->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true); 
    173  
    174         summoned->CastSpell(summoned,SPELL_ELEMENTAL_SPAWNIN,true); 
    175     } 
    176  
    177     void JustDied(Unit *victim) 
    178     { 
    179         if( CorruptedForm ) 
    180         { 
    181             DoYell(SAY_CORRUPT_DEATH, LANG_UNIVERSAL, NULL); 
    182             DoPlaySoundToSet(m_creature, SOUND_CORRUPT_DEATH); 
    183135        } 
    184136        else 
    185137        { 
    186             DoYell(SAY_CLEAN_DEATH, LANG_UNIVERSAL, NULL); 
    187             DoPlaySoundToSet(m_creature, SOUND_CLEAN_DEATH); 
     138            switch(rand()%2) 
     139            { 
     140                case 0: DoScriptText(SAY_CLEAN_SLAY1, m_creature); break; 
     141                case 1: DoScriptText(SAY_CLEAN_SLAY2, m_creature); break; 
     142            } 
    188143        } 
    189  
    190         if( pInstance ) 
     144    } 
     145 
     146    void JustSummoned(Creature* summoned) 
     147    { 
     148        if (summoned->GetEntry() == ENTRY_PURE_SPAWN) 
     149            summoned->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true); 
     150        if (summoned->GetEntry() == ENTRY_TAINTED_SPAWN) 
     151            summoned->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true); 
     152 
     153        summoned->CastSpell(summoned,SPELL_ELEMENTAL_SPAWNIN,true); 
     154    } 
     155 
     156    void JustDied(Unit *victim) 
     157    { 
     158        if (CorruptedForm) 
     159            DoScriptText(SAY_CORRUPT_DEATH, m_creature); 
     160        else 
     161            DoScriptText(SAY_CLEAN_DEATH, m_creature); 
     162 
     163        if (pInstance) 
    191164            pInstance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, NOT_STARTED); 
    192165    } 
     
    199172 
    200173        // corrupted form 
    201         if( CorruptedForm ) 
     174        if (CorruptedForm) 
    202175        { 
    203176            //MarkOfCorruption_Timer 
    204             if( MarkOfCorruption_Timer < diff ) 
    205             { 
    206                 if( MarkOfCorruption_Count <= 5 ) 
     177            if (MarkOfCorruption_Timer < diff) 
     178            { 
     179                if (MarkOfCorruption_Count <= 5) 
    207180                { 
    208181                    uint32 mark_spell; 
     
    220193                    DoCast(m_creature->getVictim(), mark_spell); 
    221194 
    222                     if( MarkOfCorruption_Count < 5 ) 
     195                    if (MarkOfCorruption_Count < 5) 
    223196                        MarkOfCorruption_Count++; 
    224197                } 
     
    228201 
    229202            //VileSludge_Timer 
    230             if( VileSludge_Timer < diff ) 
     203            if (VileSludge_Timer < diff) 
    231204            { 
    232205                Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 0); 
    233                 if( target ) 
     206                if (target) 
    234207                    DoCast(target, SPELL_VILE_SLUDGE); 
    235208 
     
    238211 
    239212            //PosCheck_Timer 
    240             if( PosCheck_Timer < diff ) 
    241             { 
    242                 if( m_creature->GetDistance2d(HYDROSS_X, HYDROSS_Y) < SWITCH_RADIUS ) 
     213            if (PosCheck_Timer < diff) 
     214            { 
     215                if (m_creature->GetDistance2d(HYDROSS_X, HYDROSS_Y) < SWITCH_RADIUS) 
    243216                { 
    244217                    // switch to clean form 
     
    247220                    MarkOfHydross_Count = 0; 
    248221 
    249                     DoYell(SAY_SWITCH_TO_CLEAN, LANG_UNIVERSAL, NULL); 
    250                     DoPlaySoundToSet(m_creature, SOUND_SWITCH_TO_CLEAN); 
     222                    DoScriptText(SAY_SWITCH_TO_CLEAN, m_creature); 
    251223                    DoResetThreat(); 
    252224 
     
    269241        { 
    270242            //MarkOfHydross_Timer 
    271             if( MarkOfHydross_Timer < diff ) 
    272             { 
    273                 if( MarkOfHydross_Count <= 5 ) 
     243            if (MarkOfHydross_Timer < diff) 
     244            { 
     245                if (MarkOfHydross_Count <= 5) 
    274246                { 
    275247                    uint32 mark_spell; 
     
    287259                    DoCast(m_creature->getVictim(), mark_spell); 
    288260 
    289                     if( MarkOfHydross_Count < 5 ) 
     261                    if (MarkOfHydross_Count < 5) 
    290262                        MarkOfHydross_Count++; 
    291263                } 
     
    295267 
    296268            //WaterTomb_Timer 
    297             if( WaterTomb_Timer < diff ) 
     269            if (WaterTomb_Timer < diff) 
    298270            { 
    299271                Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 0); 
    300                 if( target ) 
     272                if (target) 
    301273                    DoCast(target, SPELL_WATER_TOMB); 
    302274 
     
    305277 
    306278            //PosCheck_Timer 
    307             if( PosCheck_Timer < diff ) 
    308             { 
    309                 if( m_creature->GetDistance2d(HYDROSS_X, HYDROSS_Y) >= SWITCH_RADIUS ) 
     279            if (PosCheck_Timer < diff) 
     280            { 
     281                if (m_creature->GetDistance2d(HYDROSS_X, HYDROSS_Y) >= SWITCH_RADIUS) 
    310282                { 
    311283                    // switch to corrupted form 
     
    314286                    CorruptedForm = true; 
    315287 
    316                     DoYell(SAY_SWITCH_TO_CORRUPT, LANG_UNIVERSAL, NULL); 
    317                     DoPlaySoundToSet(m_creature, SOUND_SWITCH_TO_CORRUPT); 
     288                    DoScriptText(SAY_SWITCH_TO_CORRUPT, m_creature); 
    318289                    DoResetThreat(); 
    319290 
     
    334305 
    335306        //EnrageTimer 
    336         if( EnrageTimer < diff ) 
     307        if (EnrageTimer < diff) 
    337308        { 
    338309            DoCast(m_creature, SPELL_ENRAGE); 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp

    r117 r164  
    2828#include "Spell.h" 
    2929 
    30 #define SPELL_MULTI_SHOT              38310 
    31 #define SPELL_SHOCK_BLAST             38509 
    32 #define SPELL_ENTANGLE                38316 
    33 #define SPELL_STATIC_CHARGE_TRIGGER   38280 
    34 #define SPELL_FORKED_LIGHTNING        40088 
    35 #define SPELL_SHOOT                   40873 
    36 #define SPELL_POISON_BOLT             40095 
    37 #define SPELL_TOXIC_SPORES            38575 
    38 #define SPELL_MAGIC_BARRIER           38112 
    39  
    40 #define SAY_INTRO                     "Water is life. It has become a rare commodity here in Outland. A commodity that we alone shall control. We are the Highborne, and the time has come at last for us to retake our rightful place in the world!" 
    41 #define SAY_AGGRO1                    "I'll split you from stem to stern! " 
    42 #define SAY_AGGRO2                    "Victory to Lord Illidan!" 
    43 #define SAY_AGGRO3                    "I spit on you, surface filth!" 
    44 #define SAY_AGGRO4                    "Death to the outsiders!" 
    45 #define SAY_PHASE1                    "I did not wish to lower myself by engaging your kind, but you leave me little choice!" 
    46 #define SAY_PHASE2                    "The time is now! Leave none standing!" 
    47 #define SAY_PHASE3                    "You may want to take cover." 
    48 #define SAY_BOWSHOT1                  "Straight to the heart!" 
    49 #define SAY_BOWSHOT2                  "Seek your mark!" 
    50 #define SAY_SLAY1                     "Your time ends now!" 
    51 #define SAY_SLAY2                     "You have failed!" 
    52 #define SAY_DEATH                     "Lord Illidan, I... I am... sorry." 
    53  
    54 #define SOUND_INTRO                   11531 
    55 #define SOUND_AGGRO1                  11532 
    56 #define SOUND_AGGRO2                  11533 
    57 #define SOUND_AGGRO3                  11534 
    58 #define SOUND_AGGRO4                  11535 
    59 #define SOUND_PHASE1                  11538 
    60 #define SOUND_PHASE2                  11539 
    61 #define SOUND_PHASE3                  11540 
    62 #define SOUND_BOWSHOT1                11536 
    63 #define SOUND_BOWSHOT2                11537 
    64 #define SOUND_SLAY1                   11541 
    65 #define SOUND_SLAY2                   11542 
    66 #define SOUND_DEATH                   11544 
    67  
    68 #define MIDDLE_X                      30.134 
    69 #define MIDDLE_Y                      -923.65 
    70 #define MIDDLE_Z                      42.9 
    71  
    72 #define SPOREBAT_X                    30.977156 
    73 #define SPOREBAT_Y                    -925.297761 
    74 #define SPOREBAT_Z                    77.176567 
    75 #define SPOREBAT_O                    5.223932 
    76  
    77 #define SHIED_GENERATOR_CHANNEL       19870 
    78 #define ENCHANTED_ELEMENTAL           21958 
    79 #define TAINTED_ELEMENTAL             22009 
    80 #define COILFANG_STRIDER              22056 
    81 #define COILFANG_ELITE                22055 
    82 #define TOXIC_SPOREBAT               22140 
     30#define SAY_INTRO                   -1548042 
     31#define SAY_AGGRO1                  -1548043 
     32#define SAY_AGGRO2                  -1548044 
     33#define SAY_AGGRO3                  -1548045 
     34#define SAY_AGGRO4                  -1548046 
     35#define SAY_PHASE1                  -1548047 
     36#define SAY_PHASE2                  -1548048 
     37#define SAY_PHASE3                  -1548049 
     38#define SAY_BOWSHOT1                -1548050 
     39#define SAY_BOWSHOT2                -1548051 
     40#define SAY_SLAY1                   -1548052 
     41#define SAY_SLAY2                   -1548053 
     42#define SAY_SLAY3                   -1548054 
     43#define SAY_DEATH                   -1548055 
     44 
     45#define SPELL_MULTI_SHOT            38310 
     46#define SPELL_SHOCK_BLAST           38509 
     47#define SPELL_ENTANGLE              38316 
     48#define SPELL_STATIC_CHARGE_TRIGGER 38280 
     49#define SPELL_FORKED_LIGHTNING      40088 
     50#define SPELL_SHOOT                 40873 
     51#define SPELL_POISON_BOLT           40095 
     52#define SPELL_TOXIC_SPORES          38575 
     53#define SPELL_MAGIC_BARRIER         38112 
     54 
     55#define MIDDLE_X                    30.134 
     56#define MIDDLE_Y                    -923.65 
     57#define MIDDLE_Z                    42.9 
     58 
     59#define SPOREBAT_X                  30.977156 
     60#define SPOREBAT_Y                  -925.297761 
     61#define SPOREBAT_Z                  77.176567 
     62#define SPOREBAT_O                  5.223932 
     63 
     64#define SHIED_GENERATOR_CHANNEL     19870 
     65#define ENCHANTED_ELEMENTAL         21958 
     66#define TAINTED_ELEMENTAL           22009 
     67#define COILFANG_STRIDER            22056 
     68#define COILFANG_ELITE              22055 
     69#define TOXIC_SPOREBAT             22140 
    8370 
    8471float ElementPos[8][4] = 
     
    214201                m_creature->GetMotionMaster()->Clear(false); 
    215202                m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); 
    216                 DoYell(SAY_INTRO,LANG_UNIVERSAL,NULL); 
    217                 DoPlaySoundToSet(m_creature, SOUND_INTRO); 
     203                DoScriptText(SAY_INTRO, m_creature); 
    218204                m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK); 
    219205                AggroTargetGUID = who->GetGUID(); 
     
    225211    void KilledUnit(Unit *victim) 
    226212    { 
    227         switch(rand()%2) 
    228         { 
    229             case 0: 
    230                 DoYell(SAY_SLAY1, LANG_UNIVERSAL, NULL); 
    231                 DoPlaySoundToSet(m_creature, SOUND_SLAY1); 
    232                 break; 
    233  
    234             case 1: 
    235                 DoPlaySoundToSet(m_creature, SOUND_SLAY1); 
    236                 DoYell(SAY_SLAY2, LANG_UNIVERSAL, NULL); 
    237                 break; 
     213        switch(rand()%3) 
     214        { 
     215            case 0: DoScriptText(SAY_SLAY1, m_creature); break; 
     216            case 1: DoScriptText(SAY_SLAY2, m_creature); break; 
     217            case 2: DoScriptText(SAY_SLAY3, m_creature); break; 
    238218        } 
    239219    } 
     
    241221    void JustDied(Unit *victim) 
    242222    { 
    243         DoPlaySoundToSet(m_creature, SOUND_DEATH); 
    244         DoYell(SAY_DEATH, LANG_UNIVERSAL, NULL); 
     223        DoScriptText(SAY_DEATH, m_creature); 
    245224 
    246225        if(pInstance) 
     
    252231        switch(rand()%4) 
    253232        { 
    254             case 0: 
    255                 DoPlaySoundToSet(m_creature, SOUND_AGGRO1); 
    256                 DoYell(SAY_AGGRO1, LANG_UNIVERSAL, NULL); 
    257                 break; 
    258             case 1: 
    259                 DoPlaySoundToSet(m_creature, SOUND_AGGRO2); 
    260                 DoYell(SAY_AGGRO2, LANG_UNIVERSAL, NULL); 
    261                 break; 
    262             case 2: 
    263                 DoPlaySoundToSet(m_creature, SOUND_AGGRO3); 
    264                 DoYell(SAY_AGGRO3, LANG_UNIVERSAL, NULL); 
    265                 break; 
    266             case 3: 
    267                 DoPlaySoundToSet(m_creature, SOUND_AGGRO4); 
    268                 DoYell(SAY_AGGRO4, LANG_UNIVERSAL, NULL); 
    269                 break; 
     233            case 0: DoScriptText(SAY_AGGRO1, m_creature); break; 
     234            case 1: DoScriptText(SAY_AGGRO2, m_creature); break; 
     235            case 2: DoScriptText(SAY_AGGRO3, m_creature); break; 
     236            case 3: DoScriptText(SAY_AGGRO4, m_creature); break; 
    270237        } 
    271238 
     
    298265            switch(rand()%2) 
    299266            { 
    300                 case 0: 
    301                     DoPlaySoundToSet(m_creature, SOUND_BOWSHOT1); 
    302                     DoYell(SAY_BOWSHOT1, LANG_UNIVERSAL, NULL); 
    303                     break; 
    304                 case 1: 
    305                     DoPlaySoundToSet(m_creature, SOUND_BOWSHOT2); 
    306                     DoYell(SAY_BOWSHOT2, LANG_UNIVERSAL, NULL); 
    307                     break; 
     267                case 0: DoScriptText(SAY_BOWSHOT1, m_creature); break; 
     268                case 1: DoScriptText(SAY_BOWSHOT2, m_creature); break; 
    308269            } 
    309270        } 
     
    332293                                switch(rand()%4) 
    333294                                { 
    334                                 case 0: 
    335                                         DoPlaySoundToSet(m_creature, SOUND_AGGRO1); 
    336                                         DoYell(SAY_AGGRO1, LANG_UNIVERSAL, NULL); 
    337                                         break; 
    338                                 case 1: 
    339                                         DoPlaySoundToSet(m_creature, SOUND_AGGRO2); 
    340                                         DoYell(SAY_AGGRO2, LANG_UNIVERSAL, NULL); 
    341                                         break; 
    342                                 case 2: 
    343                                         DoPlaySoundToSet(m_creature, SOUND_AGGRO3); 
    344                                         DoYell(SAY_AGGRO3, LANG_UNIVERSAL, NULL); 
    345                                         break; 
    346                                 case 3: 
    347                                         DoPlaySoundToSet(m_creature, SOUND_AGGRO4); 
    348                                         DoYell(SAY_AGGRO4, LANG_UNIVERSAL, NULL); 
    349                                         break; 
     295                    case 0: DoScriptText(SAY_AGGRO1, m_creature); break; 
     296                    case 1: DoScriptText(SAY_AGGRO2, m_creature); break; 
     297                    case 2: DoScriptText(SAY_AGGRO3, m_creature); break; 
     298                    case 3: DoScriptText(SAY_AGGRO4, m_creature); break; 
    350299                                } 
    351300                                Phase = 1; 
     
    439388                    } 
    440389 
    441                     DoPlaySoundToSet(m_creature, SOUND_PHASE2); 
    442                     DoYell(SAY_PHASE2, LANG_UNIVERSAL, NULL); 
     390                    DoScriptText(SAY_PHASE2, m_creature); 
    443391                } 
    444392            } 
     
    591539                    m_creature->RemoveAurasDueToSpell(SPELL_MAGIC_BARRIER); 
    592540 
    593                     DoPlaySoundToSet(m_creature, SOUND_PHASE3); 
    594                     DoYell(SAY_PHASE3, LANG_UNIVERSAL, NULL); 
     541                    DoScriptText(SAY_PHASE3, m_creature); 
    595542 
    596543                    Phase = 3; 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp

    r90 r164  
    2525#include "def_serpent_shrine.h" 
    2626 
     27#define SAY_AGGRO               -1548009 
     28#define SAY_SWITCH_TO_DEMON     -1548010 
     29#define SAY_INNER_DEMONS        -1548011 
     30#define SAY_DEMON_SLAY1         -1548012 
     31#define SAY_DEMON_SLAY2         -1548013 
     32#define SAY_DEMON_SLAY3         -1548014 
     33#define SAY_NIGHTELF_SLAY1      -1548015 
     34#define SAY_NIGHTELF_SLAY2      -1548016 
     35#define SAY_NIGHTELF_SLAY3      -1548017 
     36#define SAY_FINAL_FORM          -1548018 
     37#define SAY_FREE                -1548019 
     38#define SAY_DEATH               -1548020 
     39 
    2740#define SPELL_WHIRLWIND         40653 
    2841#define SPELL_CHAOS_BLAST       37675 
    2942//#define SPELL_INSIDIOUS_WHISPER 37676                       // useless - dummy effect that can't be implemented 
    3043 
    31 #define SAY_AGGRO               "Finally my banishment ends!" 
    32 #define SAY_SWITCH_TO_DEMON     "Be gone trifling elf. I'm in control now." 
    33 #define SAY_INNER_DEMONS        "We all have our demons..." 
    34 #define SAY_DEMON_SLAY1         "I have no equal." 
    35 #define SAY_DEMON_SLAY2         "Perish, mortal." 
    36 #define SAY_DEMON_SLAY3         "Yes, YES! Ahahah!" 
    37 #define SAY_NIGHTELF_SLAY1      "Kill! KILL!" 
    38 #define SAY_NIGHTELF_SLAY2      "That's right! Yes!" 
    39 #define SAY_NIGHTELF_SLAY3      "Who's the master now?" 
    40 #define SAY_FINAL_FORM          "No! NO! What have you done?! I am the master, do you hear me? I... aaghh... Can't... contain him..." 
    41 #define SAY_FREE                "At last I am liberated. It has been too long since I have tasted true freedom!" 
    42 #define SAY_DEATH               "You cannot kill me! Fools, I'll be back! I'll... aarghh..." 
    43  
    44 #define SOUND_AGGRO             11312 
    45 #define SOUND_SWITCH_TO_DEMON   11304 
    46 #define SOUND_INNER_DEMONS      11305 
    47 #define SOUND_DEMON_SLAY1       11306 
    48 #define SOUND_DEMON_SLAY2       11307 
    49 #define SOUND_DEMON_SLAY3       11308 
    50 #define SOUND_NIGHTELF_SLAY1    11314 
    51 #define SOUND_NIGHTELF_SLAY2    11315 
    52 #define SOUND_NIGHTELF_SLAY3    11316 
    53 #define SOUND_FINAL_FORM        11313 
    54 #define SOUND_FREE              11309 
    55 #define SOUND_DEATH             11317 
    56  
    5744#define MODEL_DEMON             14555 
    5845#define MODEL_NIGHTELF          20514 
     
    6552    boss_leotheras_the_blindAI(Creature *c) : ScriptedAI(c) 
    6653    { 
    67         pInstance = (c->GetInstanceData()) ? ((ScriptedInstance*)c->GetInstanceData()) : NULL; 
     54        pInstance = ((ScriptedInstance*)c->GetInstanceData()); 
    6855        Demon = 0; 
    6956        Reset(); 
     
    9279        m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_NIGHTELF); 
    9380 
    94         if(pInstance) 
    95             pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, 0); 
     81        if (pInstance) 
     82            pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, NOT_STARTED); 
    9683    } 
    9784 
    9885    void StartEvent() 
    9986    { 
    100         DoYell(SAY_AGGRO, LANG_UNIVERSAL, NULL); 
    101         DoPlaySoundToSet(m_creature, SOUND_AGGRO); 
    102  
    103         if(pInstance) 
    104             pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, 1); 
     87        DoScriptText(SAY_AGGRO, m_creature); 
     88 
     89        if (pInstance) 
     90            pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, IN_PROGRESS); 
    10591    } 
    10692 
    10793    void KilledUnit(Unit *victim) 
    10894    { 
    109         if(victim->GetTypeId() != TYPEID_PLAYER) 
    110             return; 
    111  
    112         if(DemonForm) 
     95        if (victim->GetTypeId() != TYPEID_PLAYER) 
     96            return; 
     97 
     98        if (DemonForm) 
     99        { 
    113100            switch(rand()%3) 
    114101            { 
    115                 case 0: 
    116                     DoYell(SAY_DEMON_SLAY1, LANG_UNIVERSAL, NULL); 
    117                     DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY1); 
    118                     break; 
    119                 case 1: 
    120                     DoYell(SAY_DEMON_SLAY2, LANG_UNIVERSAL, NULL); 
    121                     DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY2); 
    122                     break; 
    123                 case 2: 
    124                     DoYell(SAY_DEMON_SLAY3, LANG_UNIVERSAL, NULL); 
    125                     DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY3); 
    126                     break; 
    127             } 
    128             else 
    129                 switch(rand()%3) 
    130                 { 
    131                     case 0: 
    132                         DoYell(SAY_NIGHTELF_SLAY1, LANG_UNIVERSAL, NULL); 
    133                         DoPlaySoundToSet(m_creature, SOUND_NIGHTELF_SLAY1); 
    134                         break; 
    135                     case 1: 
    136                         DoYell(SAY_NIGHTELF_SLAY2, LANG_UNIVERSAL, NULL); 
    137                         DoPlaySoundToSet(m_creature, SOUND_NIGHTELF_SLAY2); 
    138                         break; 
    139                     case 2: 
    140                         DoYell(SAY_NIGHTELF_SLAY3, LANG_UNIVERSAL, NULL); 
    141                         DoPlaySoundToSet(m_creature, SOUND_NIGHTELF_SLAY3); 
    142                         break; 
    143                 } 
     102                case 0: DoScriptText(SAY_DEMON_SLAY1, m_creature); break; 
     103                case 1: DoScriptText(SAY_DEMON_SLAY2, m_creature); break; 
     104                case 2: DoScriptText(SAY_DEMON_SLAY3, m_creature); break; 
     105            } 
     106        } 
     107        else 
     108        { 
     109            switch(rand()%3) 
     110            { 
     111                case 0: DoScriptText(SAY_NIGHTELF_SLAY1, m_creature); break; 
     112                case 1: DoScriptText(SAY_NIGHTELF_SLAY2, m_creature); break; 
     113                case 2: DoScriptText(SAY_NIGHTELF_SLAY3, m_creature); break; 
     114            } 
     115        } 
    144116    } 
    145117 
    146118    void JustDied(Unit *victim) 
    147119    { 
    148         DoYell(SAY_DEATH, LANG_UNIVERSAL, NULL); 
    149         DoPlaySoundToSet(m_creature, SOUND_DEATH); 
     120        DoScriptText(SAY_DEATH, m_creature); 
    150121 
    151122        //despawn copy 
    152         if(Demon) 
     123        if (Demon) 
    153124        { 
    154125            Unit *pUnit = NULL; 
    155126            pUnit = Unit::GetUnit((*m_creature), Demon); 
    156127 
    157             if(pUnit) 
     128            if (pUnit) 
    158129                pUnit->DealDamage(pUnit, pUnit->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); 
    159130        } 
    160131 
    161         if(pInstance) 
    162             pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, 0); 
     132        if (pInstance) 
     133            pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, DONE); 
    163134    } 
    164135 
     
    174145            return; 
    175146 
    176         if(!DemonForm) 
     147        if (!DemonForm) 
    177148        { 
    178149            //Whirlwind_Timer 
    179             if(Whirlwind_Timer < diff) 
     150            if (Whirlwind_Timer < diff) 
    180151            { 
    181152                DoCast(m_creature, SPELL_WHIRLWIND); 
     
    184155 
    185156            //Switch_Timer 
    186             if(!IsFinalForm) 
    187                 if(Switch_Timer < diff) 
    188             { 
    189                 //switch to demon form 
    190                 m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_DEMON); 
    191                 DoYell(SAY_SWITCH_TO_DEMON, LANG_UNIVERSAL, NULL); 
    192                 DoPlaySoundToSet(m_creature, SOUND_SWITCH_TO_DEMON); 
    193                 DemonForm = true; 
    194  
    195                 Switch_Timer = 60000; 
    196             }else Switch_Timer -= diff; 
     157            if (!IsFinalForm) 
     158            { 
     159                if (Switch_Timer < diff) 
     160                { 
     161                    //switch to demon form 
     162                    m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_DEMON); 
     163                    DoScriptText(SAY_SWITCH_TO_DEMON, m_creature); 
     164                    DemonForm = true; 
     165                    Switch_Timer = 60000; 
     166                }else Switch_Timer -= diff; 
     167            } 
    197168 
    198169            DoMeleeAttackIfReady(); 
     
    201172        { 
    202173            //ChaosBlast_Timer 
    203             if(ChaosBlast_Timer < diff) 
     174            if (ChaosBlast_Timer < diff) 
    204175            { 
    205176                DoCast(m_creature->getVictim(), SPELL_CHAOS_BLAST); 
     
    208179 
    209180            //Switch_Timer 
    210             if(Switch_Timer < diff) 
     181            if (Switch_Timer < diff) 
    211182            { 
    212183                //switch to nightelf form 
     
    218189        } 
    219190 
    220         if(!IsFinalForm && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 15) 
     191        if (!IsFinalForm && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 15) 
    221192        { 
    222193            //at this point he divides himself in two parts 
     
    224195            Copy = DoSpawnCreature(DEMON_FORM, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); 
    225196 
    226             if(Copy) 
     197            if (Copy) 
    227198            { 
    228199                Demon = Copy->GetGUID(); 
     
    234205            DemonForm = false; 
    235206 
    236             DoYell(SAY_FINAL_FORM, LANG_UNIVERSAL, NULL); 
    237             DoPlaySoundToSet(m_creature, SOUND_FINAL_FORM); 
    238  
     207            DoScriptText(SAY_FINAL_FORM, m_creature); 
    239208            m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_NIGHTELF); 
    240209        } 
     
    259228    void StartEvent() 
    260229    { 
    261         DoYell(SAY_FREE, LANG_UNIVERSAL, NULL); 
    262         DoPlaySoundToSet(m_creature, SOUND_FREE); 
     230        DoScriptText(SAY_FREE, m_creature); 
    263231    } 
    264232 
    265233    void KilledUnit(Unit *victim) 
    266234    { 
    267         if(victim->GetTypeId() != TYPEID_PLAYER) 
     235        if (victim->GetTypeId() != TYPEID_PLAYER) 
    268236            return; 
    269237 
    270238        switch(rand()%3) 
    271239        { 
    272             case 0: 
    273                 DoYell(SAY_DEMON_SLAY1, LANG_UNIVERSAL, NULL); 
    274                 DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY1); 
    275                 break; 
    276             case 1: 
    277                 DoYell(SAY_DEMON_SLAY2, LANG_UNIVERSAL, NULL); 
    278                 DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY2); 
    279                 break; 
    280             case 2: 
    281                 DoYell(SAY_DEMON_SLAY3, LANG_UNIVERSAL, NULL); 
    282                 DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY3); 
    283                 break; 
     240            case 0: DoScriptText(SAY_DEMON_SLAY1, m_creature); break; 
     241            case 1: DoScriptText(SAY_DEMON_SLAY2, m_creature); break; 
     242            case 2: DoScriptText(SAY_DEMON_SLAY3, m_creature); break; 
    284243        } 
    285244    } 
     
    303262 
    304263        //ChaosBlast_Timer 
    305         if(ChaosBlast_Timer < diff) 
     264        if (ChaosBlast_Timer < diff) 
    306265        { 
    307266            DoCast(m_creature->getVictim(), SPELL_CHAOS_BLAST); 
  • trunk/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp

    r109 r164  
    2525#include "def_serpent_shrine.h" 
    2626 
    27 #define SPELL_TIDAL_WAVE             37730 
    28 #define SPELL_WATERY_GRAVE           38049 
    29 #define SPELL_EARTHQUAKE             37764 
     27#define SAY_AGGRO                   -1548030 
     28#define SAY_SUMMON1                 -1548031 
     29#define SAY_SUMMON2                 -1548032 
     30#define SAY_SUMMON_BUBL1            -1548033 
     31#define SAY_SUMMON_BUBL2            -1548034 
     32#define SAY_SLAY1                   -1548035 
     33#define SAY_SLAY2                   -1548036 
     34#define SAY_SLAY3                   -1548037 
     35#define SAY_DEATH                   -1548038 
     36#define EMOTE_WATERY_GRAVE          -1548039 
     37#define EMOTE_EARTHQUAKE            -1548040 
     38#define EMOTE_WATERY_GLOBULES       -1548041 
     39 
     40#define SPELL_TIDAL_WAVE            37730 
     41#define SPELL_WATERY_GRAVE          38049 
     42#define SPELL_EARTHQUAKE            37764 
    3043#define SPELL_WATERY_GRAVE_EXPLOSION 37852 
    3144 
    32 #define SAY_AGGRO                    "Flood of the deep, take you!" 
    33 #define SAY_SUMMON1                  "By the Tides, kill them at once!" 
    34 #define SAY_SUMMON2                  "Destroy them my subjects!" 
    35 #define SAY_SLAY1                    "It is done!" 
    36 #define SAY_SLAY2                    "Strugging only makes it worse." 
    37 #define SAY_SLAY3                    "Only the strong survive." 
    38 #define SAY_SUMMON_BUBL1             "There is nowhere to hide!" 
    39 #define SAY_SUMMON_BUBL2             "Soon it will be finished!" 
    40 #define SAY_DEATH                    "Great... currents of... Ageon." 
    41  
    42 #define SOUND_AGGRO                  11321 
    43 #define SOUND_SUMMON1                11322 
    44 #define SOUND_SUMMON2                11323 
    45 #define SOUND_SLAY1                  11326 
    46 #define SOUND_SLAY2                  11327 
    47 #define SOUND_SLAY3                  11328 
    48 #define SOUND_SUMMON_BUBL1           11324 
    49 #define SOUND_SUMMON_BUBL2           11325 
    50 #define SOUND_DEATH                  11329 
    51  
    52 #define WATERY_GRAVE_X1              334.64 
    53 #define WATERY_GRAVE_Y1              -728.89 
    54 #define WATERY_GRAVE_Z1              -14.42 
    55 #define WATERY_GRAVE_X2              365.51 
    56 #define WATERY_GRAVE_Y2              -737.14 
    57 #define WATERY_GRAVE_Z2              -14.44 
    58 #define WATERY_GRAVE_X3              366.19 
    59 #define WATERY_GRAVE_Y3              -709.59 
    60 #define WATERY_GRAVE_Z3              -14.36 
    61 #define WATERY_GRAVE_X4              372.93 
    62 #define WATERY_GRAVE_Y4              -690.96 
    63 #define WATERY_GRAVE_Z4              -14.44 
    64  
    65 #define EMOTE_WATERY_GRAVE         "sends his enemies to their watery graves!" 
    66 #define EMOTE_EARTHQUAKE           "The violent earthquake has alerted nearby murlocs!" 
    67 #define EMOTE_WATERY_GLOBULES      "summons Watery Globules!" 
    68  
    69 #define WATER_GLOBULE              21913 
    70 #define TIDEWALKER_LURKER          21920 
     45#define WATERY_GRAVE_X1             334.64 
     46#define WATERY_GRAVE_Y1             -728.89 
     47#define WATERY_GRAVE_Z1             -14.42 
     48#define WATERY_GRAVE_X2             365.51 
     49#define WATERY_GRAVE_Y2             -737.14 
     50#define WATERY_GRAVE_Z2             -14.44 
     51#define WATERY_GRAVE_X3             366.19 
     52#define WATERY_GRAVE_Y3             -709.59 
     53#define WATERY_GRAVE_Z3             -14.36 
     54#define WATERY_GRAVE_X4             372.93 
     55#define WATERY_GRAVE_Y4             -690.96 
     56#define WATERY_GRAVE_Z4             -14.44 
     57 
     58#define WATER_GLOBULE               21913 
     59#define TIDEWALKER_LURKER           21920 
    7160 
    7261//Morogrim Tidewalker AI 
     
    9988        Phase2 = false; 
    10089 
    101         if(pInstance) 
     90        if (pInstance) 
    10291            pInstance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, NOT_STARTED); 
    10392    } 
     
    10594    void StartEvent() 
    10695    { 
    107         DoPlaySoundToSet(m_creature, SOUND_AGGRO); 
    108         DoYell(SAY_AGGRO, LANG_UNIVERSAL, NULL); 
    109  
    110         if(pInstance) 
     96        DoScriptText(SAY_AGGRO, m_creature); 
     97 
     98        if (pInstance) 
    11199            pInstance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, IN_PROGRESS);  
    112100    } 
     
    116104        switch(rand()%3) 
    117105        { 
     106            case 0: DoScriptText(SAY_SLAY1, m_creature); break; 
     107            case 1: DoScriptText(SAY_SLAY2, m_creature); break; 
     108            case 2: DoScriptText(SAY_SLAY3, m_creature); break; 
     109        } 
     110    } 
     111 
     112    void JustDied(Unit *victim) 
     113    { 
     114        DoScriptText(SAY_DEATH, m_creature); 
     115 
     116        if (pInstance) 
     117            pInstance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, NOT_STARTED); 
     118    } 
     119 
     120    void Aggro(Unit *who) { StartEvent(); } 
     121 
     122    void ApplyWateryGrave(Unit *player, uint8 pos) 
     123    { 
     124        float x, y, z; 
     125 
     126        switch(pos) 
     127        { 
    118128            case 0: 
    119                 DoPlaySoundToSet(m_creature, SOUND_SLAY1); 
    120                 DoYell(SAY_SLAY1, LANG_UNIVERSAL, NULL); 
     129                x = WATERY_GRAVE_X1; 
     130                y = WATERY_GRAVE_Y1; 
     131                z = WATERY_GRAVE_Z1; 
    121132                break; 
    122  
    123133            case 1: 
    124                 DoPlaySoundToSet(m_creature, SOUND_SLAY2); 
    125                 DoYell(SAY_SLAY2, LANG_UNIVERSAL, NULL); 
     134                x = WATERY_GRAVE_X2; 
     135                y = WATERY_GRAVE_Y2; 
     136                z = WATERY_GRAVE_Z2; 
    126137                break; 
    127  
    128138            case 2: 
    129                 DoPlaySoundToSet(m_creature, SOUND_SLAY3); 
    130                 DoYell(SAY_SLAY3, LANG_UNIVERSAL, NULL); 
     139                x = WATERY_GRAVE_X3; 
     140                y = WATERY_GRAVE_Y3; 
     141                z = WATERY_GRAVE_Z3; 
    131142                break; 
    132         } 
    133     } 
    134  
    135     void JustDied(Unit *victim) 
    136     { 
    137         DoPlaySoundToSet(m_creature, SOUND_DEATH); 
    138         DoYell(SAY_DEATH, LANG_UNIVERSAL, NULL); 
    139  
    140         if(pInstance) 
    141             pInstance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, NOT_STARTED); 
    142     } 
    143  
    144     void Aggro(Unit *who) { StartEvent(); } 
    145  
    146     void ApplyWateryGrave(Unit *player, uint8 pos) 
    147     { 
    148         float x, y, z; 
    149  
    150         switch(pos) 
    151         { 
    152             case 0: 
    153             x = WATERY_GRAVE_X1; 
    154             y = WATERY_GRAVE_Y1; 
    155             z = WATERY_GRAVE_Z1; 
    156             break; 
    157  
    158             case 1: 
    159             x = WATERY_GRAVE_X2; 
    160             y = WATERY_GRAVE_Y2; 
    161             z = WATERY_GRAVE_Z2; 
    162             break; 
    163              
    164             case 2: 
    165             x = WATERY_GRAVE_X3; 
    166             y = WATERY_GRAVE_Y3; 
    167             z = WATERY_GRAVE_Z3; 
    168             break; 
    169  
    170143            case 3: 
    171             x = WATERY_GRAVE_X4; 
    172             y = WATERY_GRAVE_Y4; 
    173             z = WATERY_GRAVE_Z4; 
    174             break; 
     144                x = WATERY_GRAVE_X4; 
     145                y = WATERY_GRAVE_Y4; 
     146                z = WATERY_GRAVE_Z4; 
     147                break; 
    175148        } 
    176149 
     
    184157 
    185158        Summoned = m_creature->SummonCreature(TIDEWALKER_LURKER, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); 
    186         if(Summoned) 
     159        if (Summoned) 
    187160        { 
    188161            Unit *target = NULL; 
    189162            target = SelectUnit(SELECT_TARGET_RANDOM, 0); 
    190             if(target) 
     163            if (target) 
    191164                Summoned->AI()->AttackStart(target); 
    192165        } 
     
    198171 
    199172        Globule = m_creature->SummonCreature(WATER_GLOBULE, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN, 30000); //they despawn after 30 seconds 
    200         if(Globule) 
     173        if (Globule) 
    201174        { 
    202175            Unit *target = NULL; 
    203176            target = SelectUnit(SELECT_TARGET_RANDOM, 0); 
    204             if(target) 
     177            if (target) 
    205178                Globule->AI()->AttackStart(target); 
    206179        } 
     
    214187 
    215188        //Earthquake_Timer 
    216         if(Earthquake_Timer < diff) 
    217         { 
    218             if(!Earthquake) 
     189        if (Earthquake_Timer < diff) 
     190        { 
     191            if (!Earthquake) 
    219192            { 
    220193                DoCast(m_creature->getVictim(), SPELL_EARTHQUAKE); 
     
    226199                switch(rand()%2) 
    227200                { 
    228                     case 0: 
    229                     DoPlaySoundToSet(m_creature, SOUND_SUMMON1); 
    230                     DoYell(SAY_SUMMON1, LANG_UNIVERSAL, NULL); 
    231                     break; 
    232  
    233                     case 1: 
    234                     DoPlaySoundToSet(m_creature, SOUND_SUMMON2); 
    235                     DoYell(SAY_SUMMON2, LANG_UNIVERSAL, NULL); 
    236                     break; 
     201                    case 0: DoScriptText(SAY_SUMMON1, m_creature); break; 
     202                    case 1: DoScriptText(SAY_SUMMON2, m_creature); break; 
    237203                } 
    238204 
     
    253219                SummonMurloc(293.64, -726.64, -9.81); 
    254220 
    255                 DoTextEmote(EMOTE_EARTHQUAKE, NULL); 
     221                DoScriptText(EMOTE_EARTHQUAKE, m_creature); 
    256222 
    257223                Earthquake = false; 
     
    261227 
    262228        //TidalWave_Timer 
    263         if(TidalWave_Timer < diff) 
     229        if (TidalWave_Timer < diff) 
    264230        { 
    265231            DoCast(m_creature->getVictim(), SPELL_TIDAL_WAVE); 
     
    267233        }else TidalWave_Timer -= diff; 
    268234 
    269         if(!Phase2) 
     235        if (!Phase2) 
    270236        { 
    271237            //WateryGrave_Timer 
    272             if(WateryGrave_Timer < diff) 
     238            if (WateryGrave_Timer < diff) 
    273239            { 
    274240                //Teleport 4 players under the waterfalls 
     
    277243                { 
    278244                    target = SelectUnit(SELECT_TARGET_RANDOM, 1); 
    279                     if(target && (target->GetTypeId() == TYPEID_PLAYER) && !target->HasAura(SPELL_WATERY_GRAVE, 0) && target->IsWithinDistInMap(m_creature, 50)) 
     245                    if (target && (target->GetTypeId() == TYPEID_PLAYER) && !target->HasAura(SPELL_WATERY_GRAVE, 0) && target->IsWithinDistInMap(m_creature, 50)) 
    280246                        ApplyWateryGrave(target, i); 
    281247                } 
     
    283249                switch(rand()%2) 
    284250                { 
    285                 case 0: 
    286                     DoPlaySoundToSet(m_creature, SOUND_SUMMON_BUBL1); 
    287                     DoYell(SAY_SUMMON_BUBL1, LANG_UNIVERSAL, NULL); 
    288                     break; 
    289  
    290                 case 1: 
    291                     DoPlaySoundToSet(m_creature, SOUND_SUMMON_BUBL2); 
    292                     DoYell(SAY_SUMMON_BUBL2, LANG_UNIVERSAL, NULL); 
    293                     break; 
    294  
    295                 case 2: 
    296                     break; 
     251                    case 0: DoScriptText(SAY_SUMMON_BUBL1, m_creature); break; 
     252                    case 1: DoScriptText(SAY_SUMMON_BUBL2, m_creature); break; 
    297253                } 
    298254 
    299                 DoTextEmote(EMOTE_WATERY_GRAVE, NULL); 
    300  
     255                DoScriptText(EMOTE_WATERY_GRAVE, m_creature); 
    301256                WateryGrave_Timer = 30000; 
    302257            }else WateryGrave_Timer -= diff; 
    303258 
    304259            //Start Phase2 
    305             if((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25) 
     260            if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25) 
    306261                Phase2 = true; 
    307262        } 
     
    309264        { 
    310265            //WateryGlobules_Timer 
    311             if(WateryGlobules_Timer < diff) 
     266            if (WateryGlobules_Timer < diff) 
    312267            { 
    313268                SummonWaterGlobule(WATERY_GRAVE_X1, WATERY_GRAVE_Y1, WATERY_GRAVE_Z1); 
     
    316271                SummonWaterGlobule(WATERY_GRAVE_X4, WATERY_GRAVE_Y4, WATERY_GRAVE_Z4); 
    317272 
    318                 DoTextEmote(EMOTE_WATERY_GLOBULES, NULL); 
     273                DoScriptText(EMOTE_WATERY_GLOBULES, m_creature); 
    319274 
    320275                WateryGlobules_Timer = 25000; 
     
    363318            return; 
    364319 
    365         if(Check_Timer < diff) 
    366         { 
    367             if(m_creature->IsWithinDistInMap(m_creature->getVictim(), 5)) 
     320        if (Check_Timer < diff) 
     321        { 
     322            if (m_creature->IsWithinDistInMap(m_creature->getVictim(), 5)) 
    368323            { 
    369324                uint32 damage = 4000+rand()%2000;