diff options
Diffstat (limited to 'src')
7 files changed, 393 insertions, 492 deletions
diff --git a/src/bindings/scripts/docs/Text-tables.txt b/src/bindings/scripts/docs/Text-tables.txt new file mode 100644 index 00000000000..a9cbe929d29 --- /dev/null +++ b/src/bindings/scripts/docs/Text-tables.txt @@ -0,0 +1,85 @@ +=========================================
+Texts Documentation
+=========================================
+
+Scriptdev2 Revision 695 introduces a new format for using texts in EventAI and SD2 Scripts.
+This information relates to the three *_texts tables located in the ScriptDev Database.
+
+Any script can at any time access and use text from any of the three text tables, as long as the entry does in fact exist.
+Custom scripters are adviced to store their text data in custom_texts.
+
+The three different tables has ranges of entries allowed for that table.
+eventai_texts: entry -1 -> -999999
+script_texts: entry -1000000 -> -1999999
+custom_texts: entry -2000000 -> -2999999
+Any entry out of range for that table will display a startup error.
+
+
+=========================================
+Basic Structure of eventai_texts, script_texts and custom_texts
+=========================================
+Below is a the list of current fields within the texts tables.
+
+Field_Name Description
+-----------------------------------------------------------
+entry This value is mearly an NEGATIVE identifier of the current text number. Required for sql queries.
+content_default This is the actual text presented in the default language (English).
+
+content_loc1 This is the actual text presented in the Localization #1 Clients (Korean)
+content_loc2 This is the actual text presented in the Localization #2 Clients (French)
+content_loc3 This is the actual text presented in the Localization #3 Clients (German)
+content_loc4 This is the actual text presented in the Localization #4 Clients (Chinese)
+content_loc5 This is the actual text presented in the Localization #5 Clients (Taiwanese)
+content_loc6 This is the actual text presented in the Localization #6 Clients (Spanish)
+content_loc7 This is the actual text presented in the Localization #7 Clients (Spanish Mexico)
+content_loc8 This is the actual text presented in the Localization #8 Clients (Russian)
+
+sound This value is the Sound ID that corresponds to the actual text used (Defined in SoundEntries.dbc).
+type Variables used to define type of text (Say/Yell/Textemote/Whisper).
+language This value is the Language that the text is native in (Defined in Languages.dbc).
+comment This is a comment regarding the text entry (For ACID, accepted format is to use Creature ID of NPC using it).
+
+Note: Fields `content_loc1` to `content_loc8` are NULL values by default and are handled by seperate localization projects.
+
+
+=========================================
+Text Types (type)
+=========================================
+Below is the list of current Text types that texts tables can handle. These were previously seperate Actions in ACID.
+
+# Internal Name Description
+-----------------------------------------------------------
+0 CHAT_TYPE_SAY This type sets the text to be displayed as a Say (Speech Bubble).
+1 CHAT_TYPE_YELL This type sets the text to be displayed as a Yell (Red Speech Bubble) and usually has a matching Sound ID.
+2 CHAT_TYPE_TEXT_EMOTE This type sets the text to be displayed as a text emote in orange in the chat log.
+3 CHAT_TYPE_BOSS_EMOTE This type sets the text to be displayed as a text emote in orange in the chat log (Used only for specific Bosses).
+4 CHAT_TYPE_WHISPER This type sets the text to be displayed as a whisper to the player in the chat log.
+5 CHAT_TYPE_BOSS_WHISPER This type sets the text to be displayed as a whisper to the player in the chat log (Used only for specific Bosses).
+
+
+=========================================
+Language Types (language)
+=========================================
+Below is the list of current Language types that are allowed.
+This is the Race Language that the text is native to (So it will display properly)
+
+# Internal Name Description
+-----------------------------------------------------------
+0 UNIVERSAL Text in this language is understood by ALL Races.
+1 ORCISH Text in this language is understood ONLY by Horde Races.
+2 DARNASSIAN Text in this language is understood ONLY by the Night Elf Race.
+3 TAURAHE Text in this language is understood ONLY by the Tauren Race.
+6 DWARVISH Text in this language is understood ONLY by the Dwarf Race.
+7 COMMON Text in this language is understood ONLY by Alliance Races.
+8 DEMONIC Text in this language is understood ONLY by the Demon Race (Not Implimented).
+9 TITAN This language was used by Sargeras to speak with other Titians (Not Implemented).
+10 THALASSIAN Text in this language is understood ONLY by the Blood Elf Race.
+11 DRACONIC Text in this language is understood ONLY by the Dragon Race.
+12 KALIMAG Text will display as Kalimag (not readable by players, language of all elementals)
+13 GNOMISH Text in this language is understood ONLY by the Gnome Race.
+14 TROLL Text in this language is understood ONLY by the Troll Race.
+33 GUTTERSPEAK Text in this language is understood ONLY by the Undead Race.
+35 DRAENEI Text in this language is understood ONLY by the Draenai Race.
+36 ZOMBIE (not currently used?)
+37 GNOMISH BINARY Binary language used by Alliance when drinking Binary Brew
+38 GOBLIN BINARY Binary language used by Horce when drinking Binary Brew
\ No newline at end of file diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp index 2ba76a57bd5..9199bcadaf1 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp @@ -25,21 +25,29 @@ EndScriptData */ #include "def_serpent_shrine.h" #include "../../../npc/npc_escortAI.h" +#define SAY_AGGRO -1548021 +#define SAY_GAIN_BLESSING -1548022 +#define SAY_GAIN_ABILITY1 -1548023 +#define SAY_GAIN_ABILITY2 -1548024 +#define SAY_GAIN_ABILITY3 -1548025 +#define SAY_SLAY1 -1548026 +#define SAY_SLAY2 -1548027 +#define SAY_SLAY3 -1548028 +#define SAY_DEATH -1548029 + //Karathress spells -#define SPELL_CATACLYSMIC_BOLT 38441 -#define SPELL_POWER_OF_SHARKKIS 38455 -#define SPELL_POWER_OF_TIDALVESS 38452 -#define SPELL_POWER_OF_CARIBDIS 38451 -#define SPELL_ENRAGE 45078 -#define SPELL_SEAR_NOVA 38445 +#define SPELL_CATACLYSMIC_BOLT 38441 +#define SPELL_POWER_OF_SHARKKIS 38455 +#define SPELL_POWER_OF_TIDALVESS 38452 +#define SPELL_POWER_OF_CARIBDIS 38451 +#define SPELL_ENRAGE 24318 +#define SPELL_SEAR_NOVA 38445 #define SPELL_BLESSING_OF_THE_TIDES 38449 //Sharkkis spells -#define SPELL_LEECHING_THROW 29436 -#define SPELL_THE_BEAST_WITHIN 38373 -#define SPELL_LEECHING_THROW 29436 +#define SPELL_LEECHING_THROW 29436 +#define SPELL_THE_BEAST_WITHIN 38373 #define SPELL_MULTISHOT 38366 -#define SPELL_THE_BEAST_WITHIN 38373 #define SPELL_SUMMON_FATHOM_LURKER 38433 #define SPELL_SUMMON_FATHOM_SPOREBAT 38431 #define SPELL_PET_ENRAGE 19574 @@ -62,20 +70,6 @@ EndScriptData */ #define SPELL_CYCLONE_CYCLONE 29538 //Yells and Quotes -#define SAY_AGGRO "Guards, attention! We have visitors..." -#define SOUND_AGGRO 11277 -#define SAY_SLAY1 "I am rid of you." -#define SOUND_SLAY1 11282 -#define SAY_SLAY2 "Land-dwelling scum!" -#define SOUND_SLAY2 11284 -#define SAY_GAIN_ABILITY1 "I am more powerful than ever!" -#define SOUND_GAIN_ABILITY1 11279 -#define SAY_GAIN_ABILITY2 "Go on, kill them! I'll be the better for it!" -#define SOUND_GAIN_ABILITY2 11280 -#define SAY_GAIN_ABILITY3 "More knowledge, more power!" -#define SOUND_GAIN_ABILITY3 11281 -#define SAY_DEATH "Her ... excellency ... awaits!" -#define SOUND_DEATH 11285 #define SAY_GAIN_BLESSING_OF_TIDES "Your overconfidence will be your undoing! Guards, lend me your strength!" #define SOUND_GAIN_BLESSING_OF_TIDES 11278 #define SAY_MISC "Alana be'lendor!" //don't know what use this @@ -157,28 +151,25 @@ struct TRINITY_DLL_DECL boss_fathomlord_karathressAI : public ScriptedAI void EventSharkkisDeath() { - DoPlaySoundToSet(m_creature, SOUND_GAIN_ABILITY1); - DoYell(SAY_GAIN_ABILITY1, LANG_UNIVERSAL, NULL); + DoScriptText(SAY_GAIN_ABILITY1, m_creature); DoCast(m_creature, SPELL_POWER_OF_SHARKKIS); } void EventTidalvessDeath() { - DoPlaySoundToSet(m_creature, SOUND_GAIN_ABILITY2); - DoYell(SAY_GAIN_ABILITY2, LANG_UNIVERSAL, NULL); + DoScriptText(SAY_GAIN_ABILITY2, m_creature); DoCast(m_creature, SPELL_POWER_OF_TIDALVESS); } void EventCaribdisDeath() { - DoPlaySoundToSet(m_creature, SOUND_GAIN_ABILITY3); - DoYell(SAY_GAIN_ABILITY3, LANG_UNIVERSAL, NULL); + DoScriptText(SAY_GAIN_ABILITY3, m_creature); DoCast(m_creature, SPELL_POWER_OF_CARIBDIS); } void GetAdvisors() { - if(!pInstance) + if (!pInstance) return; Advisors[0] = pInstance->GetData64(DATA_SHARKKIS); @@ -188,13 +179,12 @@ struct TRINITY_DLL_DECL boss_fathomlord_karathressAI : public ScriptedAI void StartEvent(Unit *who) { - if(!pInstance) + if (!pInstance) return; GetAdvisors(); - DoPlaySoundToSet(m_creature, SOUND_AGGRO); - DoYell(SAY_AGGRO, LANG_UNIVERSAL, NULL); + DoScriptText(SAY_AGGRO, m_creature); DoZoneInCombat(); pInstance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); @@ -205,24 +195,18 @@ struct TRINITY_DLL_DECL boss_fathomlord_karathressAI : public ScriptedAI { switch(rand()%3) { - case 0: - DoPlaySoundToSet(m_creature, SOUND_SLAY1); - DoYell(SAY_SLAY1, LANG_UNIVERSAL, NULL); - break; - case 1: - DoPlaySoundToSet(m_creature, SOUND_SLAY2); - DoYell(SAY_SLAY2, LANG_UNIVERSAL, NULL); - break; + case 0: DoScriptText(SAY_SLAY1, m_creature); break; + case 1: DoScriptText(SAY_SLAY2, m_creature); break; + case 2: DoScriptText(SAY_SLAY3, m_creature); break; } } void JustDied(Unit *killer) { - DoPlaySoundToSet(m_creature, SOUND_DEATH); - DoYell(SAY_DEATH, LANG_UNIVERSAL, NULL); + DoScriptText(SAY_DEATH, m_creature); - if( pInstance ) - pInstance->SetData(DATA_FATHOMLORDKARATHRESSEVENT, DONE); + if (pInstance) + pInstance->SetData(DATA_FATHOMLORDKARATHRESSEVENT, NOT_STARTED); //support for quest 10944 m_creature->SummonCreature(SEER_OLUM, OLUM_X, OLUM_Y, OLUM_Z, OLUM_O, TEMPSUMMON_TIMED_DESPAWN, 3600000); @@ -236,11 +220,11 @@ struct TRINITY_DLL_DECL boss_fathomlord_karathressAI : public ScriptedAI void UpdateAI(const uint32 diff) { //Only if not incombat check if the event is started - if(!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) + if (!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) { Unit* target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESSEVENT_STARTER)); - if(target) + if (target) { AttackStart(target); GetAdvisors(); @@ -252,20 +236,20 @@ struct TRINITY_DLL_DECL boss_fathomlord_karathressAI : public ScriptedAI return; //someone evaded! - if(pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) + if (pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) { EnterEvadeMode(); return; } //CataclysmicBolt_Timer - if(CataclysmicBolt_Timer < diff) + if (CataclysmicBolt_Timer < diff) { //select a random unit other than the main tank Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 1); //if there aren't other units, cast on the tank - if(!target) + if (!target) target = m_creature->getVictim(); int32 dmg = target->GetMaxHealth() / 2; @@ -282,7 +266,7 @@ struct TRINITY_DLL_DECL boss_fathomlord_karathressAI : public ScriptedAI }else SearNova_Timer -= diff; //Enrage_Timer - if(Enrage_Timer < diff) + if (Enrage_Timer < diff) { DoCast(m_creature, SPELL_ENRAGE); Enrage_Timer = 90000; @@ -363,20 +347,20 @@ struct TRINITY_DLL_DECL boss_fathomguard_sharkkisAI : public ScriptedAI void JustDied(Unit *victim) { - if(pInstance) + if (pInstance) { Creature *Karathress = NULL; Karathress = (Creature*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESS))); - if(Karathress) - if(!m_creature->isAlive() && Karathress) + if (Karathress) + ((boss_fathomlord_karathressAI*)Karathress->AI())->EventSharkkisDeath(); ((boss_fathomlord_karathressAI*)Karathress->AI())->EventSharkkisDeath(); } } void Aggro(Unit *who) { - if(pInstance) + if (pInstance) { pInstance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); pInstance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); @@ -386,11 +370,11 @@ struct TRINITY_DLL_DECL boss_fathomguard_sharkkisAI : public ScriptedAI void UpdateAI(const uint32 diff) { //Only if not incombat check if the event is started - if(!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) + if (!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) { Unit* target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESSEVENT_STARTER)); - if(target) + if (target) { AttackStart(target); } @@ -401,7 +385,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_sharkkisAI : public ScriptedAI return; //someone evaded! - if(pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) + if (pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) { EnterEvadeMode(); return; @@ -487,18 +471,18 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI PoisonCleansing_Timer = 30000; Earthbind_Timer = 45000; - if( pInstance ) + if (pInstance) pInstance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED); } void JustDied(Unit *victim) { - if(pInstance) + if (pInstance) { Creature *Karathress = NULL; Karathress = (Creature*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESS))); - if(Karathress) + if (Karathress) if(!m_creature->isAlive() && Karathress) ((boss_fathomlord_karathressAI*)Karathress->AI())->EventTidalvessDeath(); } @@ -506,7 +490,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI void Aggro(Unit *who) { - if(pInstance) + if (pInstance) { pInstance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); pInstance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); @@ -517,11 +501,11 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI void UpdateAI(const uint32 diff) { //Only if not incombat check if the event is started - if(!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) + if (!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) { Unit* target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESSEVENT_STARTER)); - if(target) + if (target) { AttackStart(target); } @@ -532,7 +516,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI return; //someone evaded! - if(pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) + if (pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) { EnterEvadeMode(); return; @@ -544,7 +528,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_tidalvessAI : public ScriptedAI } //FrostShock_Timer - if(FrostShock_Timer < diff) + if (FrostShock_Timer < diff) { DoCast(m_creature->getVictim(), SPELL_FROST_SHOCK); FrostShock_Timer = 25000+rand()%5000; @@ -603,18 +587,18 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI Heal_Timer = 55000; Cyclone_Timer = 30000+rand()%10000; - if(pInstance) + if (pInstance) pInstance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED); } void JustDied(Unit *victim) { - if(pInstance) + if (pInstance) { Creature *Karathress = NULL; Karathress = (Creature*)(Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESS))); - if(Karathress) + if (Karathress) if(!m_creature->isAlive() && Karathress) ((boss_fathomlord_karathressAI*)Karathress->AI())->EventCaribdisDeath(); } @@ -622,7 +606,7 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI void Aggro(Unit *who) { - if(pInstance) + if (pInstance) { pInstance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); pInstance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); @@ -632,11 +616,11 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI void UpdateAI(const uint32 diff) { //Only if not incombat check if the event is started - if(!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) + if (!InCombat && pInstance && pInstance->GetData(DATA_KARATHRESSEVENT)) { Unit* target = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_KARATHRESSEVENT_STARTER)); - if(target) + if (target) { AttackStart(target); } @@ -647,21 +631,21 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI return; //someone evaded! - if(pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) + if (pInstance && !pInstance->GetData(DATA_KARATHRESSEVENT)) { EnterEvadeMode(); return; } //WaterBoltVolley_Timer - if(WaterBoltVolley_Timer < diff) + if (WaterBoltVolley_Timer < diff) { DoCast(m_creature->getVictim(), SPELL_WATER_BOLT_VOLLEY); WaterBoltVolley_Timer = 30000; }else WaterBoltVolley_Timer -= diff; //TidalSurge_Timer - if(TidalSurge_Timer < diff) + if (TidalSurge_Timer < diff) { DoCast(m_creature->getVictim(), SPELL_TIDAL_SURGE); // Hacky way to do it - won't trigger elseways @@ -705,8 +689,8 @@ struct TRINITY_DLL_DECL boss_fathomguard_caribdisAI : public ScriptedAI Heal_Timer = 60000; }else Heal_Timer -= diff; - DoMeleeAttackIfReady(); - } + DoMeleeAttackIfReady(); + } Unit* selectAdvisorUnit() { diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp index 44debd8d485..c0fe62fd120 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp @@ -24,6 +24,16 @@ EndScriptData */ #include "precompiled.h" #include "def_serpent_shrine.h" +#define SAY_AGGRO -1548000 +#define SAY_SWITCH_TO_CLEAN -1548001 +#define SAY_CLEAN_SLAY1 -1548002 +#define SAY_CLEAN_SLAY2 -1548003 +#define SAY_CLEAN_DEATH -1548004 +#define SAY_SWITCH_TO_CORRUPT -1548005 +#define SAY_CORRUPT_SLAY1 -1548006 +#define SAY_CORRUPT_SLAY2 -1548007 +#define SAY_CORRUPT_DEATH -1548008 + #define SWITCH_RADIUS 18 #define MODEL_CORRUPT 20609 @@ -51,26 +61,6 @@ EndScriptData */ #define ENTRY_PURE_SPAWN 22035 #define ENTRY_TAINTED_SPAWN 22036 -#define SAY_AGGRO "I cannot allow you to interfere!" -#define SAY_SWITCH_TO_CLEAN "Better, much better." -#define SAY_CLEAN_SLAY1 "They have forced me to this..." -#define SAY_CLEAN_SLAY2 "I have no choice." -#define SAY_CLEAN_DEATH "I am... released..." -#define SAY_SWITCH_TO_CORRUPT "Aaghh, the poison..." -#define SAY_CORRUPT_SLAY1 "I will purge you from this place." -#define SAY_CORRUPT_SLAY2 "You are no better than they!" -#define SAY_CORRUPT_DEATH "You are the disease, not I" - -#define SOUND_AGGRO 11289 -#define SOUND_SWITCH_TO_CLEAN 11290 -#define SOUND_CLEAN_SLAY1 11291 -#define SOUND_CLEAN_SLAY2 11292 -#define SOUND_CLEAN_DEATH 11293 -#define SOUND_SWITCH_TO_CORRUPT 11297 -#define SOUND_CORRUPT_SLAY1 11298 -#define SOUND_CORRUPT_SLAY2 11299 -#define SOUND_CORRUPT_DEATH 11300 - #define HYDROSS_X -239.439 #define HYDROSS_Y -363.481 @@ -121,54 +111,43 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_CLEAN); - if( pInstance ) + if (pInstance) pInstance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, NOT_STARTED); } void Aggro(Unit *who) { - DoYell(SAY_AGGRO, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_AGGRO); + DoScriptText(SAY_AGGRO, m_creature); - if( pInstance ) + if (pInstance) pInstance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, IN_PROGRESS); } void KilledUnit(Unit *victim) { - if(CorruptedForm) + if (CorruptedForm) + { switch(rand()%2) { - case 0: - DoYell(SAY_CORRUPT_SLAY1, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_CORRUPT_SLAY1); - break; - case 1: - DoYell(SAY_CORRUPT_SLAY2, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_CORRUPT_SLAY2); - break; + case 0: DoScriptText(SAY_CORRUPT_SLAY1, m_creature); break; + case 1: DoScriptText(SAY_CORRUPT_SLAY2, m_creature); break; } - else + } + else + { + switch(rand()%2) { - switch(rand()%2) - { - case 0: - DoYell(SAY_CLEAN_SLAY1, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_CLEAN_SLAY1); - break; - case 1: - DoYell(SAY_CLEAN_SLAY2, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_CLEAN_SLAY2); - break; - } + case 0: DoScriptText(SAY_CLEAN_SLAY1, m_creature); break; + case 1: DoScriptText(SAY_CLEAN_SLAY2, m_creature); break; } + } } void JustSummoned(Creature* summoned) { - if( summoned->GetEntry() == ENTRY_PURE_SPAWN ) + if (summoned->GetEntry() == ENTRY_PURE_SPAWN) summoned->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true); - if( summoned->GetEntry() == ENTRY_TAINTED_SPAWN ) + if (summoned->GetEntry() == ENTRY_TAINTED_SPAWN) summoned->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true); summoned->CastSpell(summoned,SPELL_ELEMENTAL_SPAWNIN,true); @@ -176,18 +155,12 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI void JustDied(Unit *victim) { - if( CorruptedForm ) - { - DoYell(SAY_CORRUPT_DEATH, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_CORRUPT_DEATH); - } + if (CorruptedForm) + DoScriptText(SAY_CORRUPT_DEATH, m_creature); else - { - DoYell(SAY_CLEAN_DEATH, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_CLEAN_DEATH); - } + DoScriptText(SAY_CLEAN_DEATH, m_creature); - if( pInstance ) + if (pInstance) pInstance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, NOT_STARTED); } @@ -198,12 +171,12 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI return; // corrupted form - if( CorruptedForm ) + if (CorruptedForm) { //MarkOfCorruption_Timer - if( MarkOfCorruption_Timer < diff ) + if (MarkOfCorruption_Timer < diff) { - if( MarkOfCorruption_Count <= 5 ) + if (MarkOfCorruption_Count <= 5) { uint32 mark_spell; @@ -219,7 +192,7 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI DoCast(m_creature->getVictim(), mark_spell); - if( MarkOfCorruption_Count < 5 ) + if (MarkOfCorruption_Count < 5) MarkOfCorruption_Count++; } @@ -227,27 +200,26 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI }else MarkOfCorruption_Timer -= diff; //VileSludge_Timer - if( VileSludge_Timer < diff ) + if (VileSludge_Timer < diff) { Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 0); - if( target ) + if (target) DoCast(target, SPELL_VILE_SLUDGE); VileSludge_Timer = 15000; }else VileSludge_Timer -= diff; //PosCheck_Timer - if( PosCheck_Timer < diff ) + if (PosCheck_Timer < diff) { - if( m_creature->GetDistance2d(HYDROSS_X, HYDROSS_Y) < SWITCH_RADIUS ) + if (m_creature->GetDistance2d(HYDROSS_X, HYDROSS_Y) < SWITCH_RADIUS) { // switch to clean form m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_CLEAN); CorruptedForm = false; MarkOfHydross_Count = 0; - DoYell(SAY_SWITCH_TO_CLEAN, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_SWITCH_TO_CLEAN); + DoScriptText(SAY_SWITCH_TO_CLEAN, m_creature); DoResetThreat(); // spawn 4 adds @@ -268,9 +240,9 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI else { //MarkOfHydross_Timer - if( MarkOfHydross_Timer < diff ) + if (MarkOfHydross_Timer < diff) { - if( MarkOfHydross_Count <= 5 ) + if (MarkOfHydross_Count <= 5) { uint32 mark_spell; @@ -286,7 +258,7 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI DoCast(m_creature->getVictim(), mark_spell); - if( MarkOfHydross_Count < 5 ) + if (MarkOfHydross_Count < 5) MarkOfHydross_Count++; } @@ -294,27 +266,26 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI }else MarkOfHydross_Timer -= diff; //WaterTomb_Timer - if( WaterTomb_Timer < diff ) + if (WaterTomb_Timer < diff) { Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 0); - if( target ) + if (target) DoCast(target, SPELL_WATER_TOMB); WaterTomb_Timer = 7000; }else WaterTomb_Timer -= diff; //PosCheck_Timer - if( PosCheck_Timer < diff ) + if (PosCheck_Timer < diff) { - if( m_creature->GetDistance2d(HYDROSS_X, HYDROSS_Y) >= SWITCH_RADIUS ) + if (m_creature->GetDistance2d(HYDROSS_X, HYDROSS_Y) >= SWITCH_RADIUS) { // switch to corrupted form m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_CORRUPT); MarkOfCorruption_Count = 0; CorruptedForm = true; - DoYell(SAY_SWITCH_TO_CORRUPT, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_SWITCH_TO_CORRUPT); + DoScriptText(SAY_SWITCH_TO_CORRUPT, m_creature); DoResetThreat(); // spawn 4 adds @@ -333,7 +304,7 @@ struct TRINITY_DLL_DECL boss_hydross_the_unstableAI : public ScriptedAI } //EnrageTimer - if( EnrageTimer < diff ) + if (EnrageTimer < diff) { DoCast(m_creature, SPELL_ENRAGE); EnrageTimer = 60000; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp index b7348969c4f..b2c3d64b2a5 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp @@ -27,59 +27,46 @@ EndScriptData */ #include "Item.h" #include "Spell.h" -#define SPELL_MULTI_SHOT 38310 -#define SPELL_SHOCK_BLAST 38509 -#define SPELL_ENTANGLE 38316 -#define SPELL_STATIC_CHARGE_TRIGGER 38280 -#define SPELL_FORKED_LIGHTNING 40088 -#define SPELL_SHOOT 40873 -#define SPELL_POISON_BOLT 40095 -#define SPELL_TOXIC_SPORES 38575 -#define SPELL_MAGIC_BARRIER 38112 - -#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!" -#define SAY_AGGRO1 "I'll split you from stem to stern! " -#define SAY_AGGRO2 "Victory to Lord Illidan!" -#define SAY_AGGRO3 "I spit on you, surface filth!" -#define SAY_AGGRO4 "Death to the outsiders!" -#define SAY_PHASE1 "I did not wish to lower myself by engaging your kind, but you leave me little choice!" -#define SAY_PHASE2 "The time is now! Leave none standing!" -#define SAY_PHASE3 "You may want to take cover." -#define SAY_BOWSHOT1 "Straight to the heart!" -#define SAY_BOWSHOT2 "Seek your mark!" -#define SAY_SLAY1 "Your time ends now!" -#define SAY_SLAY2 "You have failed!" -#define SAY_DEATH "Lord Illidan, I... I am... sorry." - -#define SOUND_INTRO 11531 -#define SOUND_AGGRO1 11532 -#define SOUND_AGGRO2 11533 -#define SOUND_AGGRO3 11534 -#define SOUND_AGGRO4 11535 -#define SOUND_PHASE1 11538 -#define SOUND_PHASE2 11539 -#define SOUND_PHASE3 11540 -#define SOUND_BOWSHOT1 11536 -#define SOUND_BOWSHOT2 11537 -#define SOUND_SLAY1 11541 -#define SOUND_SLAY2 11542 -#define SOUND_DEATH 11544 - -#define MIDDLE_X 30.134 -#define MIDDLE_Y -923.65 -#define MIDDLE_Z 42.9 - -#define SPOREBAT_X 30.977156 -#define SPOREBAT_Y -925.297761 -#define SPOREBAT_Z 77.176567 -#define SPOREBAT_O 5.223932 - -#define SHIED_GENERATOR_CHANNEL 19870 -#define ENCHANTED_ELEMENTAL 21958 -#define TAINTED_ELEMENTAL 22009 -#define COILFANG_STRIDER 22056 -#define COILFANG_ELITE 22055 -#define TOXIC_SPOREBAT 22140 +#define SAY_INTRO -1548042 +#define SAY_AGGRO1 -1548043 +#define SAY_AGGRO2 -1548044 +#define SAY_AGGRO3 -1548045 +#define SAY_AGGRO4 -1548046 +#define SAY_PHASE1 -1548047 +#define SAY_PHASE2 -1548048 +#define SAY_PHASE3 -1548049 +#define SAY_BOWSHOT1 -1548050 +#define SAY_BOWSHOT2 -1548051 +#define SAY_SLAY1 -1548052 +#define SAY_SLAY2 -1548053 +#define SAY_SLAY3 -1548054 +#define SAY_DEATH -1548055 + +#define SPELL_MULTI_SHOT 38310 +#define SPELL_SHOCK_BLAST 38509 +#define SPELL_ENTANGLE 38316 +#define SPELL_STATIC_CHARGE_TRIGGER 38280 +#define SPELL_FORKED_LIGHTNING 40088 +#define SPELL_SHOOT 40873 +#define SPELL_POISON_BOLT 40095 +#define SPELL_TOXIC_SPORES 38575 +#define SPELL_MAGIC_BARRIER 38112 + +#define MIDDLE_X 30.134 +#define MIDDLE_Y -923.65 +#define MIDDLE_Z 42.9 + +#define SPOREBAT_X 30.977156 +#define SPOREBAT_Y -925.297761 +#define SPOREBAT_Z 77.176567 +#define SPOREBAT_O 5.223932 + +#define SHIED_GENERATOR_CHANNEL 19870 +#define ENCHANTED_ELEMENTAL 21958 +#define TAINTED_ELEMENTAL 22009 +#define COILFANG_STRIDER 22056 +#define COILFANG_ELITE 22055 +#define TOXIC_SPOREBAT 22140 float ElementPos[8][4] = { @@ -213,8 +200,7 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI m_creature->GetMotionMaster()->Clear(false); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - DoYell(SAY_INTRO,LANG_UNIVERSAL,NULL); - DoPlaySoundToSet(m_creature, SOUND_INTRO); + DoScriptText(SAY_INTRO, m_creature); m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK); AggroTargetGUID = who->GetGUID(); Intro = true; @@ -224,24 +210,17 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI void KilledUnit(Unit *victim) { - switch(rand()%2) + switch(rand()%3) { - case 0: - DoYell(SAY_SLAY1, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_SLAY1); - break; - - case 1: - DoPlaySoundToSet(m_creature, SOUND_SLAY1); - DoYell(SAY_SLAY2, LANG_UNIVERSAL, NULL); - break; + case 0: DoScriptText(SAY_SLAY1, m_creature); break; + case 1: DoScriptText(SAY_SLAY2, m_creature); break; + case 2: DoScriptText(SAY_SLAY3, m_creature); break; } } void JustDied(Unit *victim) { - DoPlaySoundToSet(m_creature, SOUND_DEATH); - DoYell(SAY_DEATH, LANG_UNIVERSAL, NULL); + DoScriptText(SAY_DEATH, m_creature); if(pInstance) pInstance->SetData(DATA_LADYVASHJEVENT, DONE); @@ -251,22 +230,10 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI { switch(rand()%4) { - case 0: - DoPlaySoundToSet(m_creature, SOUND_AGGRO1); - DoYell(SAY_AGGRO1, LANG_UNIVERSAL, NULL); - break; - case 1: - DoPlaySoundToSet(m_creature, SOUND_AGGRO2); - DoYell(SAY_AGGRO2, LANG_UNIVERSAL, NULL); - break; - case 2: - DoPlaySoundToSet(m_creature, SOUND_AGGRO3); - DoYell(SAY_AGGRO3, LANG_UNIVERSAL, NULL); - break; - case 3: - DoPlaySoundToSet(m_creature, SOUND_AGGRO4); - DoYell(SAY_AGGRO4, LANG_UNIVERSAL, NULL); - 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; + case 3: DoScriptText(SAY_AGGRO4, m_creature); break; } Phase = 1; @@ -297,14 +264,8 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI { switch(rand()%2) { - case 0: - DoPlaySoundToSet(m_creature, SOUND_BOWSHOT1); - DoYell(SAY_BOWSHOT1, LANG_UNIVERSAL, NULL); - break; - case 1: - DoPlaySoundToSet(m_creature, SOUND_BOWSHOT2); - DoYell(SAY_BOWSHOT2, LANG_UNIVERSAL, NULL); - break; + case 0: DoScriptText(SAY_BOWSHOT1, m_creature); break; + case 1: DoScriptText(SAY_BOWSHOT2, m_creature); break; } } } @@ -331,22 +292,10 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); switch(rand()%4) { - case 0: - DoPlaySoundToSet(m_creature, SOUND_AGGRO1); - DoYell(SAY_AGGRO1, LANG_UNIVERSAL, NULL); - break; - case 1: - DoPlaySoundToSet(m_creature, SOUND_AGGRO2); - DoYell(SAY_AGGRO2, LANG_UNIVERSAL, NULL); - break; - case 2: - DoPlaySoundToSet(m_creature, SOUND_AGGRO3); - DoYell(SAY_AGGRO3, LANG_UNIVERSAL, NULL); - break; - case 3: - DoPlaySoundToSet(m_creature, SOUND_AGGRO4); - DoYell(SAY_AGGRO4, LANG_UNIVERSAL, NULL); - 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; + case 3: DoScriptText(SAY_AGGRO4, m_creature); break; } Phase = 1; m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); @@ -438,8 +387,7 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI ShieldGeneratorChannel[i] = pCreature->GetGUID(); } - DoPlaySoundToSet(m_creature, SOUND_PHASE2); - DoYell(SAY_PHASE2, LANG_UNIVERSAL, NULL); + DoScriptText(SAY_PHASE2, m_creature); } } //Phase 3 @@ -590,8 +538,7 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); m_creature->RemoveAurasDueToSpell(SPELL_MAGIC_BARRIER); - DoPlaySoundToSet(m_creature, SOUND_PHASE3); - DoYell(SAY_PHASE3, LANG_UNIVERSAL, NULL); + DoScriptText(SAY_PHASE3, m_creature); Phase = 3; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp index 5f0dc7e1c04..e3ec3527d05 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp @@ -24,36 +24,23 @@ EndScriptData */ #include "precompiled.h" #include "def_serpent_shrine.h" +#define SAY_AGGRO -1548009 +#define SAY_SWITCH_TO_DEMON -1548010 +#define SAY_INNER_DEMONS -1548011 +#define SAY_DEMON_SLAY1 -1548012 +#define SAY_DEMON_SLAY2 -1548013 +#define SAY_DEMON_SLAY3 -1548014 +#define SAY_NIGHTELF_SLAY1 -1548015 +#define SAY_NIGHTELF_SLAY2 -1548016 +#define SAY_NIGHTELF_SLAY3 -1548017 +#define SAY_FINAL_FORM -1548018 +#define SAY_FREE -1548019 +#define SAY_DEATH -1548020 + #define SPELL_WHIRLWIND 40653 #define SPELL_CHAOS_BLAST 37675 //#define SPELL_INSIDIOUS_WHISPER 37676 // useless - dummy effect that can't be implemented -#define SAY_AGGRO "Finally my banishment ends!" -#define SAY_SWITCH_TO_DEMON "Be gone trifling elf. I'm in control now." -#define SAY_INNER_DEMONS "We all have our demons..." -#define SAY_DEMON_SLAY1 "I have no equal." -#define SAY_DEMON_SLAY2 "Perish, mortal." -#define SAY_DEMON_SLAY3 "Yes, YES! Ahahah!" -#define SAY_NIGHTELF_SLAY1 "Kill! KILL!" -#define SAY_NIGHTELF_SLAY2 "That's right! Yes!" -#define SAY_NIGHTELF_SLAY3 "Who's the master now?" -#define SAY_FINAL_FORM "No! NO! What have you done?! I am the master, do you hear me? I... aaghh... Can't... contain him..." -#define SAY_FREE "At last I am liberated. It has been too long since I have tasted true freedom!" -#define SAY_DEATH "You cannot kill me! Fools, I'll be back! I'll... aarghh..." - -#define SOUND_AGGRO 11312 -#define SOUND_SWITCH_TO_DEMON 11304 -#define SOUND_INNER_DEMONS 11305 -#define SOUND_DEMON_SLAY1 11306 -#define SOUND_DEMON_SLAY2 11307 -#define SOUND_DEMON_SLAY3 11308 -#define SOUND_NIGHTELF_SLAY1 11314 -#define SOUND_NIGHTELF_SLAY2 11315 -#define SOUND_NIGHTELF_SLAY3 11316 -#define SOUND_FINAL_FORM 11313 -#define SOUND_FREE 11309 -#define SOUND_DEATH 11317 - #define MODEL_DEMON 14555 #define MODEL_NIGHTELF 20514 @@ -64,7 +51,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI { boss_leotheras_the_blindAI(Creature *c) : ScriptedAI(c) { - pInstance = (c->GetInstanceData()) ? ((ScriptedInstance*)c->GetInstanceData()) : NULL; + pInstance = ((ScriptedInstance*)c->GetInstanceData()); Demon = 0; Reset(); } @@ -91,75 +78,59 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_NIGHTELF); - if(pInstance) - pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, 0); + if (pInstance) + pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, NOT_STARTED); } void StartEvent() { - DoYell(SAY_AGGRO, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_AGGRO); + DoScriptText(SAY_AGGRO, m_creature); - if(pInstance) - pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, 1); + if (pInstance) + pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, IN_PROGRESS); } void KilledUnit(Unit *victim) { - if(victim->GetTypeId() != TYPEID_PLAYER) + if (victim->GetTypeId() != TYPEID_PLAYER) return; - if(DemonForm) + if (DemonForm) + { switch(rand()%3) { - case 0: - DoYell(SAY_DEMON_SLAY1, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY1); - break; - case 1: - DoYell(SAY_DEMON_SLAY2, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY2); - break; - case 2: - DoYell(SAY_DEMON_SLAY3, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY3); - break; + case 0: DoScriptText(SAY_DEMON_SLAY1, m_creature); break; + case 1: DoScriptText(SAY_DEMON_SLAY2, m_creature); break; + case 2: DoScriptText(SAY_DEMON_SLAY3, m_creature); break; } - else - switch(rand()%3) - { - case 0: - DoYell(SAY_NIGHTELF_SLAY1, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_NIGHTELF_SLAY1); - break; - case 1: - DoYell(SAY_NIGHTELF_SLAY2, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_NIGHTELF_SLAY2); - break; - case 2: - DoYell(SAY_NIGHTELF_SLAY3, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_NIGHTELF_SLAY3); - break; - } + } + else + { + switch(rand()%3) + { + case 0: DoScriptText(SAY_NIGHTELF_SLAY1, m_creature); break; + case 1: DoScriptText(SAY_NIGHTELF_SLAY2, m_creature); break; + case 2: DoScriptText(SAY_NIGHTELF_SLAY3, m_creature); break; + } + } } void JustDied(Unit *victim) { - DoYell(SAY_DEATH, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_DEATH); + DoScriptText(SAY_DEATH, m_creature); //despawn copy - if(Demon) + if (Demon) { Unit *pUnit = NULL; pUnit = Unit::GetUnit((*m_creature), Demon); - if(pUnit) + if (pUnit) pUnit->DealDamage(pUnit, pUnit->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); } - if(pInstance) - pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, 0); + if (pInstance) + pInstance->SetData(DATA_LEOTHERASTHEBLINDEVENT, DONE); } void Aggro(Unit *who) @@ -173,41 +144,41 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI if (!m_creature->SelectHostilTarget() || !m_creature->getVictim() ) return; - if(!DemonForm) + if (!DemonForm) { //Whirlwind_Timer - if(Whirlwind_Timer < diff) + if (Whirlwind_Timer < diff) { DoCast(m_creature, SPELL_WHIRLWIND); Whirlwind_Timer = 25000; }else Whirlwind_Timer -= diff; //Switch_Timer - if(!IsFinalForm) - if(Switch_Timer < diff) + if (!IsFinalForm) { - //switch to demon form - m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_DEMON); - DoYell(SAY_SWITCH_TO_DEMON, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_SWITCH_TO_DEMON); - DemonForm = true; - - Switch_Timer = 60000; - }else Switch_Timer -= diff; + if (Switch_Timer < diff) + { + //switch to demon form + m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_DEMON); + DoScriptText(SAY_SWITCH_TO_DEMON, m_creature); + DemonForm = true; + Switch_Timer = 60000; + }else Switch_Timer -= diff; + } DoMeleeAttackIfReady(); } else { //ChaosBlast_Timer - if(ChaosBlast_Timer < diff) + if (ChaosBlast_Timer < diff) { DoCast(m_creature->getVictim(), SPELL_CHAOS_BLAST); ChaosBlast_Timer = 1500; }else ChaosBlast_Timer -= diff; //Switch_Timer - if(Switch_Timer < diff) + if (Switch_Timer < diff) { //switch to nightelf form m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_NIGHTELF); @@ -217,13 +188,13 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI }else Switch_Timer -= diff; } - if(!IsFinalForm && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 15) + if (!IsFinalForm && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 15) { //at this point he divides himself in two parts Creature *Copy = NULL; Copy = DoSpawnCreature(DEMON_FORM, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); - if(Copy) + if (Copy) { Demon = Copy->GetGUID(); Copy->AI()->AttackStart(m_creature->getVictim()); @@ -233,9 +204,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blindAI : public ScriptedAI IsFinalForm = true; DemonForm = false; - DoYell(SAY_FINAL_FORM, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_FINAL_FORM); - + DoScriptText(SAY_FINAL_FORM, m_creature); m_creature->SetUInt32Value(UNIT_FIELD_DISPLAYID, MODEL_NIGHTELF); } } @@ -258,29 +227,19 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blind_demonformAI : public ScriptedAI void StartEvent() { - DoYell(SAY_FREE, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_FREE); + DoScriptText(SAY_FREE, m_creature); } void KilledUnit(Unit *victim) { - if(victim->GetTypeId() != TYPEID_PLAYER) + if (victim->GetTypeId() != TYPEID_PLAYER) return; switch(rand()%3) { - case 0: - DoYell(SAY_DEMON_SLAY1, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY1); - break; - case 1: - DoYell(SAY_DEMON_SLAY2, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY2); - break; - case 2: - DoYell(SAY_DEMON_SLAY3, LANG_UNIVERSAL, NULL); - DoPlaySoundToSet(m_creature, SOUND_DEMON_SLAY3); - break; + case 0: DoScriptText(SAY_DEMON_SLAY1, m_creature); break; + case 1: DoScriptText(SAY_DEMON_SLAY2, m_creature); break; + case 2: DoScriptText(SAY_DEMON_SLAY3, m_creature); break; } } @@ -302,7 +261,7 @@ struct TRINITY_DLL_DECL boss_leotheras_the_blind_demonformAI : public ScriptedAI return; //ChaosBlast_Timer - if(ChaosBlast_Timer < diff) + if (ChaosBlast_Timer < diff) { DoCast(m_creature->getVictim(), SPELL_CHAOS_BLAST); ChaosBlast_Timer = 1500; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp index 66f787d2ddc..38f27d7d382 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp @@ -24,50 +24,39 @@ EndScriptData */ #include "precompiled.h" #include "def_serpent_shrine.h" -#define SPELL_TIDAL_WAVE 37730 -#define SPELL_WATERY_GRAVE 38049 -#define SPELL_EARTHQUAKE 37764 +#define SAY_AGGRO -1548030 +#define SAY_SUMMON1 -1548031 +#define SAY_SUMMON2 -1548032 +#define SAY_SUMMON_BUBL1 -1548033 +#define SAY_SUMMON_BUBL2 -1548034 +#define SAY_SLAY1 -1548035 +#define SAY_SLAY2 -1548036 +#define SAY_SLAY3 -1548037 +#define SAY_DEATH -1548038 +#define EMOTE_WATERY_GRAVE -1548039 +#define EMOTE_EARTHQUAKE -1548040 +#define EMOTE_WATERY_GLOBULES -1548041 + +#define SPELL_TIDAL_WAVE 37730 +#define SPELL_WATERY_GRAVE 38049 +#define SPELL_EARTHQUAKE 37764 #define SPELL_WATERY_GRAVE_EXPLOSION 37852 -#define SAY_AGGRO "Flood of the deep, take you!" -#define SAY_SUMMON1 "By the Tides, kill them at once!" -#define SAY_SUMMON2 "Destroy them my subjects!" -#define SAY_SLAY1 "It is done!" -#define SAY_SLAY2 "Strugging only makes it worse." -#define SAY_SLAY3 "Only the strong survive." -#define SAY_SUMMON_BUBL1 "There is nowhere to hide!" -#define SAY_SUMMON_BUBL2 "Soon it will be finished!" -#define SAY_DEATH "Great... currents of... Ageon." - -#define SOUND_AGGRO 11321 -#define SOUND_SUMMON1 11322 -#define SOUND_SUMMON2 11323 -#define SOUND_SLAY1 11326 -#define SOUND_SLAY2 11327 -#define SOUND_SLAY3 11328 -#define SOUND_SUMMON_BUBL1 11324 -#define SOUND_SUMMON_BUBL2 11325 -#define SOUND_DEATH 11329 - -#define WATERY_GRAVE_X1 334.64 -#define WATERY_GRAVE_Y1 -728.89 -#define WATERY_GRAVE_Z1 -14.42 -#define WATERY_GRAVE_X2 365.51 -#define WATERY_GRAVE_Y2 -737.14 -#define WATERY_GRAVE_Z2 -14.44 -#define WATERY_GRAVE_X3 366.19 -#define WATERY_GRAVE_Y3 -709.59 -#define WATERY_GRAVE_Z3 -14.36 -#define WATERY_GRAVE_X4 372.93 -#define WATERY_GRAVE_Y4 -690.96 -#define WATERY_GRAVE_Z4 -14.44 - -#define EMOTE_WATERY_GRAVE "sends his enemies to their watery graves!" -#define EMOTE_EARTHQUAKE "The violent earthquake has alerted nearby murlocs!" -#define EMOTE_WATERY_GLOBULES "summons Watery Globules!" - -#define WATER_GLOBULE 21913 -#define TIDEWALKER_LURKER 21920 +#define WATERY_GRAVE_X1 334.64 +#define WATERY_GRAVE_Y1 -728.89 +#define WATERY_GRAVE_Z1 -14.42 +#define WATERY_GRAVE_X2 365.51 +#define WATERY_GRAVE_Y2 -737.14 +#define WATERY_GRAVE_Z2 -14.44 +#define WATERY_GRAVE_X3 366.19 +#define WATERY_GRAVE_Y3 -709.59 +#define WATERY_GRAVE_Z3 -14.36 +#define WATERY_GRAVE_X4 372.93 +#define WATERY_GRAVE_Y4 -690.96 +#define WATERY_GRAVE_Z4 -14.44 + +#define WATER_GLOBULE 21913 +#define TIDEWALKER_LURKER 21920 //Morogrim Tidewalker AI struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI @@ -98,16 +87,15 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI Earthquake = false; Phase2 = false; - if(pInstance) + if (pInstance) pInstance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, NOT_STARTED); } void StartEvent() { - DoPlaySoundToSet(m_creature, SOUND_AGGRO); - DoYell(SAY_AGGRO, LANG_UNIVERSAL, NULL); + DoScriptText(SAY_AGGRO, m_creature); - if(pInstance) + if (pInstance) pInstance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, IN_PROGRESS); } @@ -115,29 +103,17 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI { switch(rand()%3) { - case 0: - DoPlaySoundToSet(m_creature, SOUND_SLAY1); - DoYell(SAY_SLAY1, LANG_UNIVERSAL, NULL); - break; - - case 1: - DoPlaySoundToSet(m_creature, SOUND_SLAY2); - DoYell(SAY_SLAY2, LANG_UNIVERSAL, NULL); - break; - - case 2: - DoPlaySoundToSet(m_creature, SOUND_SLAY3); - DoYell(SAY_SLAY3, LANG_UNIVERSAL, NULL); - break; + case 0: DoScriptText(SAY_SLAY1, m_creature); break; + case 1: DoScriptText(SAY_SLAY2, m_creature); break; + case 2: DoScriptText(SAY_SLAY3, m_creature); break; } } void JustDied(Unit *victim) { - DoPlaySoundToSet(m_creature, SOUND_DEATH); - DoYell(SAY_DEATH, LANG_UNIVERSAL, NULL); + DoScriptText(SAY_DEATH, m_creature); - if(pInstance) + if (pInstance) pInstance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, NOT_STARTED); } @@ -150,28 +126,25 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI switch(pos) { case 0: - x = WATERY_GRAVE_X1; - y = WATERY_GRAVE_Y1; - z = WATERY_GRAVE_Z1; - break; - + x = WATERY_GRAVE_X1; + y = WATERY_GRAVE_Y1; + z = WATERY_GRAVE_Z1; + break; case 1: - x = WATERY_GRAVE_X2; - y = WATERY_GRAVE_Y2; - z = WATERY_GRAVE_Z2; - break; - + x = WATERY_GRAVE_X2; + y = WATERY_GRAVE_Y2; + z = WATERY_GRAVE_Z2; + break; case 2: - x = WATERY_GRAVE_X3; - y = WATERY_GRAVE_Y3; - z = WATERY_GRAVE_Z3; - break; - + x = WATERY_GRAVE_X3; + y = WATERY_GRAVE_Y3; + z = WATERY_GRAVE_Z3; + break; case 3: - x = WATERY_GRAVE_X4; - y = WATERY_GRAVE_Y4; - z = WATERY_GRAVE_Z4; - break; + x = WATERY_GRAVE_X4; + y = WATERY_GRAVE_Y4; + z = WATERY_GRAVE_Z4; + break; } DoTeleportPlayer(player, x, y, z+1, player->GetOrientation()); @@ -183,11 +156,11 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI Creature *Summoned; Summoned = m_creature->SummonCreature(TIDEWALKER_LURKER, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); - if(Summoned) + if (Summoned) { Unit *target = NULL; target = SelectUnit(SELECT_TARGET_RANDOM, 0); - if(target) + if (target) Summoned->AI()->AttackStart(target); } } @@ -197,11 +170,11 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI Creature *Globule; Globule = m_creature->SummonCreature(WATER_GLOBULE, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN, 30000); //they despawn after 30 seconds - if(Globule) + if (Globule) { Unit *target = NULL; target = SelectUnit(SELECT_TARGET_RANDOM, 0); - if(target) + if (target) Globule->AI()->AttackStart(target); } } @@ -213,9 +186,9 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI return; //Earthquake_Timer - if(Earthquake_Timer < diff) + if (Earthquake_Timer < diff) { - if(!Earthquake) + if (!Earthquake) { DoCast(m_creature->getVictim(), SPELL_EARTHQUAKE); Earthquake = true; @@ -225,15 +198,8 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI { switch(rand()%2) { - case 0: - DoPlaySoundToSet(m_creature, SOUND_SUMMON1); - DoYell(SAY_SUMMON1, LANG_UNIVERSAL, NULL); - break; - - case 1: - DoPlaySoundToSet(m_creature, SOUND_SUMMON2); - DoYell(SAY_SUMMON2, LANG_UNIVERSAL, NULL); - break; + case 0: DoScriptText(SAY_SUMMON1, m_creature); break; + case 1: DoScriptText(SAY_SUMMON2, m_creature); break; } //north @@ -252,7 +218,7 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI SummonMurloc(296.82, -726.33, -10.82); SummonMurloc(293.64, -726.64, -9.81); - DoTextEmote(EMOTE_EARTHQUAKE, NULL); + DoScriptText(EMOTE_EARTHQUAKE, m_creature); Earthquake = false; Earthquake_Timer = 40000+rand()%5000; @@ -260,62 +226,51 @@ struct TRINITY_DLL_DECL boss_morogrim_tidewalkerAI : public ScriptedAI }else Earthquake_Timer -= diff; //TidalWave_Timer - if(TidalWave_Timer < diff) + if (TidalWave_Timer < diff) { DoCast(m_creature->getVictim(), SPELL_TIDAL_WAVE); TidalWave_Timer = 20000; }else TidalWave_Timer -= diff; - if(!Phase2) + if (!Phase2) { //WateryGrave_Timer - if(WateryGrave_Timer < diff) + if (WateryGrave_Timer < diff) { //Teleport 4 players under the waterfalls Unit *target; for(uint8 i = 0; i < 4; i++) { target = SelectUnit(SELECT_TARGET_RANDOM, 1); - if(target && (target->GetTypeId() == TYPEID_PLAYER) && !target->HasAura(SPELL_WATERY_GRAVE, 0) && target->IsWithinDistInMap(m_creature, 50)) + if (target && (target->GetTypeId() == TYPEID_PLAYER) && !target->HasAura(SPELL_WATERY_GRAVE, 0) && target->IsWithinDistInMap(m_creature, 50)) ApplyWateryGrave(target, i); } switch(rand()%2) { - case 0: - DoPlaySoundToSet(m_creature, SOUND_SUMMON_BUBL1); - DoYell(SAY_SUMMON_BUBL1, LANG_UNIVERSAL, NULL); - break; - - case 1: - DoPlaySoundToSet(m_creature, SOUND_SUMMON_BUBL2); - DoYell(SAY_SUMMON_BUBL2, LANG_UNIVERSAL, NULL); - break; - - case 2: - break; + case 0: DoScriptText(SAY_SUMMON_BUBL1, m_creature); break; + case 1: DoScriptText(SAY_SUMMON_BUBL2, m_creature); break; } - DoTextEmote(EMOTE_WATERY_GRAVE, NULL); - + DoScriptText(EMOTE_WATERY_GRAVE, m_creature); WateryGrave_Timer = 30000; }else WateryGrave_Timer -= diff; //Start Phase2 - if((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25) + if ((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25) Phase2 = true; } else { //WateryGlobules_Timer - if(WateryGlobules_Timer < diff) + if (WateryGlobules_Timer < diff) { SummonWaterGlobule(WATERY_GRAVE_X1, WATERY_GRAVE_Y1, WATERY_GRAVE_Z1); SummonWaterGlobule(WATERY_GRAVE_X2, WATERY_GRAVE_Y2, WATERY_GRAVE_Z2); SummonWaterGlobule(WATERY_GRAVE_X3, WATERY_GRAVE_Y3, WATERY_GRAVE_Z3); SummonWaterGlobule(WATERY_GRAVE_X4, WATERY_GRAVE_Y4, WATERY_GRAVE_Z4); - DoTextEmote(EMOTE_WATERY_GLOBULES, NULL); + DoScriptText(EMOTE_WATERY_GLOBULES, m_creature); WateryGlobules_Timer = 25000; }else WateryGlobules_Timer -= diff; @@ -362,9 +317,9 @@ struct TRINITY_DLL_DECL mob_water_globuleAI : public ScriptedAI if (!m_creature->SelectHostilTarget() || !m_creature->getVictim() ) return; - if(Check_Timer < diff) + if (Check_Timer < diff) { - if(m_creature->IsWithinDistInMap(m_creature->getVictim(), 5)) + if (m_creature->IsWithinDistInMap(m_creature->getVictim(), 5)) { uint32 damage = 4000+rand()%2000; m_creature->DealDamage(m_creature->getVictim(), damage, NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_FROST, NULL, false); diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index 5dde9b2cb1d..b72a02c3373 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -525,7 +525,7 @@ ChatCommand * ChatHandler::getCommandTable() { "neargrave", SEC_ADMINISTRATOR, false, &ChatHandler::HandleNearGraveCommand, "", NULL }, { "explorecheat", SEC_ADMINISTRATOR, false, &ChatHandler::HandleExploreCheatCommand, "", NULL }, { "hover", SEC_ADMINISTRATOR, false, &ChatHandler::HandleHoverCommand, "", NULL }, - { "waterwalk", SEC_ADMINISTRATOR, false, &ChatHandler::HandleWaterwalkCommand, "", NULL }, + { "waterwalk", SEC_ADMINISTRATOR, false, &ChatHandler::HandleWaterwalkCommand, "", NULL }, { "levelup", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLevelUpCommand, "", NULL }, { "showarea", SEC_ADMINISTRATOR, false, &ChatHandler::HandleShowAreaCommand, "", NULL }, { "hidearea", SEC_ADMINISTRATOR, false, &ChatHandler::HandleHideAreaCommand, "", NULL }, |