diff options
Diffstat (limited to 'src')
84 files changed, 1705 insertions, 1851 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 41c46cf55d2..75845ebdb4f 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -16677,13 +16677,11 @@ bool Player::LoadPositionFromDB(uint32& mapid, float& x, float& y, float& z, flo return true; } -void Player::SetHomebind(WorldLocation const& /*loc*/, uint32 /*area_id*/) +void Player::SetHomebind(WorldLocation const& loc, uint32 areaId) { - m_homebindMapId = GetMapId(); - m_homebindAreaId = GetAreaId(); - m_homebindX = GetPositionX(); - m_homebindY = GetPositionY(); - m_homebindZ = GetPositionZ(); + loc.GetPosition(m_homebindX, m_homebindY, m_homebindZ); + m_homebindMapId = loc.GetMapId(); + m_homebindAreaId = areaId; // update sql homebind PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_PLAYER_HOMEBIND); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 7d5b0487f4d..cc08e9c2e18 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2312,7 +2312,7 @@ class Player : public Unit, public GridObject<Player> float m_recallO; void SaveRecallPosition(); - void SetHomebind(WorldLocation const& loc, uint32 area_id); + void SetHomebind(WorldLocation const& loc, uint32 areaId); // Homebind coordinates uint32 m_homebindMapId; diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp index f3b26452435..a9cb7e9b806 100644 --- a/src/server/game/Handlers/NPCHandler.cpp +++ b/src/server/game/Handlers/NPCHandler.cpp @@ -470,22 +470,6 @@ void WorldSession::SendBindPoint(Creature* npc) uint32 bindspell = 3286; - // update sql homebind - PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_PLAYER_HOMEBIND); - stmt->setUInt16(0, _player->GetMapId()); - stmt->setUInt16(1, _player->GetAreaId()); - stmt->setFloat (2, _player->GetPositionX()); - stmt->setFloat (3, _player->GetPositionY()); - stmt->setFloat (4, _player->GetPositionZ()); - stmt->setUInt32(5, _player->GetGUIDLow()); - CharacterDatabase.Execute(stmt); - - _player->m_homebindMapId = _player->GetMapId(); - _player->m_homebindAreaId = _player->GetAreaId(); - _player->m_homebindX = _player->GetPositionX(); - _player->m_homebindY = _player->GetPositionY(); - _player->m_homebindZ = _player->GetPositionZ(); - // send spell for homebinding (3286) npc->CastSpell(_player, bindspell, true); diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 115d56a607c..831b29c2cfd 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -1098,7 +1098,7 @@ bool GridMap::loadData(char *filename) return false; } // loadup height data - if (header.heightMapOffset && !loadHeihgtData(in, header.heightMapOffset, header.heightMapSize)) + if (header.heightMapOffset && !loadHeightData(in, header.heightMapOffset, header.heightMapSize)) { sLog->outError(LOG_FILTER_MAPS, "Error loading map height data\n"); fclose(in); @@ -1154,7 +1154,7 @@ bool GridMap::loadAreaData(FILE* in, uint32 offset, uint32 /*size*/) return true; } -bool GridMap::loadHeihgtData(FILE* in, uint32 offset, uint32 /*size*/) +bool GridMap::loadHeightData(FILE* in, uint32 offset, uint32 /*size*/) { map_heightHeader header; fseek(in, offset, SEEK_SET); diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index 4e4b638faa4..a2ce227e2ea 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -176,7 +176,7 @@ class GridMap bool loadAreaData(FILE* in, uint32 offset, uint32 size); - bool loadHeihgtData(FILE* in, uint32 offset, uint32 size); + bool loadHeightData(FILE* in, uint32 offset, uint32 size); bool loadLiquidData(FILE* in, uint32 offset, uint32 size); // Get height functions and pointers diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 58f9d2856da..bb51d9d0e34 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -1392,7 +1392,7 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici if (SpellTargetPosition const* st = sSpellMgr->GetSpellTargetPosition(m_spellInfo->Id)) { // TODO: fix this check - if (m_spellInfo->HasEffect(SPELL_EFFECT_TELEPORT_UNITS)) + if (m_spellInfo->HasEffect(SPELL_EFFECT_TELEPORT_UNITS) || m_spellInfo->HasEffect(SPELL_EFFECT_BIND)) m_targets.SetDst(st->target_X, st->target_Y, st->target_Z, st->target_Orientation, (int32)st->target_mapId); else if (st->target_mapId == m_caster->GetMapId()) m_targets.SetDst(st->target_X, st->target_Y, st->target_Z, st->target_Orientation); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 72ef429bed0..a642d40c24d 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -6264,51 +6264,38 @@ void Spell::EffectBind(SpellEffIndex effIndex) Player* player = unitTarget->ToPlayer(); - uint32 area_id; - WorldLocation loc; - if (m_spellInfo->Effects[effIndex].TargetA.GetTarget() == TARGET_DEST_DB || m_spellInfo->Effects[effIndex].TargetB.GetTarget() == TARGET_DEST_DB) - { - SpellTargetPosition const* st = sSpellMgr->GetSpellTargetPosition(m_spellInfo->Id); - if (!st) - { - sLog->outError(LOG_FILTER_SPELLS_AURAS, "Spell::EffectBind - unknown teleport coordinates for spell ID %u", m_spellInfo->Id); - return; - } + WorldLocation homeLoc; + uint32 areaId = player->GetAreaId(); - loc.m_mapId = st->target_mapId; - loc.m_positionX = st->target_X; - loc.m_positionY = st->target_Y; - loc.m_positionZ = st->target_Z; - loc.m_orientation = st->target_Orientation; - area_id = player->GetAreaId(); - } + if (m_spellInfo->Effects[effIndex].MiscValue) + areaId = m_spellInfo->Effects[effIndex].MiscValue; + + if (m_targets.HasDst()) + homeLoc.WorldRelocate(*destTarget); else { - player->GetPosition(&loc); - area_id = player->GetAreaId(); + player->GetPosition(&homeLoc); + homeLoc.m_mapId = player->GetMapId(); } - player->SetHomebind(loc, area_id); + player->SetHomebind(homeLoc, areaId); // binding WorldPacket data(SMSG_BINDPOINTUPDATE, (4+4+4+4+4)); - data << float(loc.m_positionX); - data << float(loc.m_positionY); - data << float(loc.m_positionZ); - data << uint32(loc.m_mapId); - data << uint32(area_id); + data << float(homeLoc.GetPositionX()); + data << float(homeLoc.GetPositionY()); + data << float(homeLoc.GetPositionZ()); + data << uint32(homeLoc.GetMapId()); + data << uint32(areaId); player->SendDirectMessage(&data); - sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "New homebind X : %f", loc.m_positionX); - sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "New homebind Y : %f", loc.m_positionY); - sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "New homebind Z : %f", loc.m_positionZ); - sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "New homebind MapId : %u", loc.m_mapId); - sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "New homebind AreaId : %u", area_id); + sLog->outDebug(LOG_FILTER_SPELLS_AURAS, "EffectBind: New homebind X: %f, Y: %f, Z: %f, MapId: %u, AreaId: %u", + homeLoc.GetPositionX(), homeLoc.GetPositionY(), homeLoc.GetPositionZ(), homeLoc.GetMapId(), areaId); // zone update data.Initialize(SMSG_PLAYERBOUND, 8+4); data << uint64(player->GetGUID()); - data << uint32(area_id); + data << uint32(areaId); player->SendDirectMessage(&data); } diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index ecab3712af1..3eefd969eed 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -2978,6 +2978,9 @@ void SpellMgr::LoadDbcDataCorrections() switch (spellInfo->Id) { + case 53096: // Quetz'lun's Judgment + spellInfo->MaxAffectedTargets = 1; + break; case 42730: spellInfo->EffectTriggerSpell[EFFECT_1] = 42739; break; diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp index 4bbb4c1a5ed..b17c471c81b 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_eregos.cpp @@ -34,9 +34,12 @@ enum Events enum Says { - SAY_AGGRO = 0, - SAY_ENRAGE = 1, - SAY_DEATH = 2 + SAY_SPAWN = 0, + SAY_AGGRO = 1, + SAY_ENRAGE = 2, + SAY_KILL = 3, + SAY_DEATH = 4, + SAY_SHIELD = 5, }; enum Spells @@ -101,6 +104,11 @@ public: DoAction(ACTION_SET_NORMAL_EVENTS); } + void KilledUnit(Unit* /*victim*/) + { + Talk(SAY_KILL); + } + void EnterCombat(Unit* /*who*/) { _EnterCombat(); @@ -176,6 +184,7 @@ public: events.Reset(); _phase = (me->GetHealthPct() < 60.0f && me->GetHealthPct() > 20.0f) ? PHASE_FIRST_PLANAR : PHASE_SECOND_PLANAR; + Talk(SAY_SHIELD); DoCast(SPELL_PLANAR_SHIFT); // not sure about the amount, and if we should despawn previous spawns (dragon trashs) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 5699616563a..921d67d6d65 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -1176,7 +1176,7 @@ class npc_lorekeeper : public CreatureScript if (Creature* Branz = creature->FindNearestCreature(NPC_BRANZ_BRONZBEARD, 1000, true)) { Delorah->GetMotionMaster()->MovePoint(0, Branz->GetPositionX()-4, Branz->GetPositionY(), Branz->GetPositionZ()); - //TODO DoScriptText(xxxx, Delorah, Branz); when reached at branz + //TODO Delorah->AI()->Talk(xxxx, Branz->GetGUID()); when reached at branz } } } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp index 0d4e3aad132..82845d10b8c 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp @@ -56,7 +56,7 @@ class boss_thorim : public CreatureScript void EnterEvadeMode() { - DoScriptText(SAY_WIPE, me); + Talk(SAY_WIPE); _EnterEvadeMode(); } @@ -68,7 +68,7 @@ class boss_thorim : public CreatureScript void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); _JustDied(); } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp index aaa95631792..4fe56b346b2 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp @@ -29,14 +29,14 @@ EndScriptData */ enum Yells { //Yells Ingvar - YELL_AGGRO_1 = -1574005, - YELL_AGGRO_2 = -1574006, + YELL_AGGRO_1 = 0, + YELL_AGGRO_2 = 1, - YELL_DEAD_1 = -1574007, - YELL_DEAD_2 = -1574008, + YELL_DEAD_1 = 2, + YELL_DEAD_2 = 3, - YELL_KILL_1 = -1574009, - YELL_KILL_2 = -1574010, + YELL_KILL_1 = 4, + YELL_KILL_2 = 5, }; enum Creatures @@ -151,7 +151,7 @@ public: events.SetPhase(PHASE_EVENT); events.ScheduleEvent(EVENT_SUMMON_BANSHEE, 3 * IN_MILLISECONDS, 0, PHASE_EVENT); - DoScriptText(YELL_DEAD_1, me); + Talk(YELL_DEAD_1); } if (events.GetPhaseMask() & (1 << PHASE_EVENT)) @@ -164,13 +164,13 @@ public: me->UpdateEntry(MOB_INGVAR_UNDEAD); events.ScheduleEvent(EVENT_JUST_TRANSFORMED, 2 * IN_MILLISECONDS, 0, PHASE_EVENT); - DoScriptText(YELL_AGGRO_2, me); + Talk(YELL_AGGRO_2); } void EnterCombat(Unit* /*who*/) { if (!bIsUndead) - DoScriptText(YELL_AGGRO_1, me); + Talk(YELL_AGGRO_1); if (instance) instance->SetData(DATA_INGVAR_EVENT, IN_PROGRESS); @@ -180,7 +180,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(YELL_DEAD_2, me); + Talk(YELL_DEAD_2); if (instance) { @@ -201,10 +201,7 @@ public: void KilledUnit(Unit* /*victim*/) { - if (bIsUndead) - DoScriptText(YELL_KILL_1, me); - else - DoScriptText(YELL_KILL_2, me); + Talk(bIsUndead ? YELL_KILL_1 : YELL_KILL_2); } void UpdateAI(const uint32 diff) @@ -329,7 +326,7 @@ public: { me->GetMotionMaster()->MovePoint(1, x, y, z+15); - // DoScriptText(YELL_RESSURECT, me); + // Talk(YELL_RESSURECT); } } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp index 7c977250e79..aad4c9989c1 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_skarvald_dalronn.cpp @@ -29,18 +29,18 @@ EndScriptData */ enum eEnums { //signed for 24200, but used by 24200, 27390 - YELL_SKARVALD_AGGRO = -1574011, - YELL_SKARVALD_DAL_DIED = -1574012, - YELL_SKARVALD_SKA_DIEDFIRST = -1574013, - YELL_SKARVALD_KILL = -1574014, - YELL_SKARVALD_DAL_DIEDFIRST = -1574015, + YELL_SKARVALD_AGGRO = 0, + YELL_SKARVALD_DAL_DIED = 1, + YELL_SKARVALD_SKA_DIEDFIRST = 2, + YELL_SKARVALD_KILL = 3, + YELL_SKARVALD_DAL_DIEDFIRST = 4, //signed for 24201, but used by 24201, 27389 - YELL_DALRONN_AGGRO = -1574016, - YELL_DALRONN_SKA_DIED = -1574017, - YELL_DALRONN_DAL_DIEDFIRST = -1574018, - YELL_DALRONN_KILL = -1574019, - YELL_DALRONN_SKA_DIEDFIRST = -1574020, + YELL_DALRONN_AGGRO = 0, + YELL_DALRONN_SKA_DIED = 1, + YELL_DALRONN_DAL_DIEDFIRST = 2, + YELL_DALRONN_KILL = 3, + YELL_DALRONN_SKA_DIEDFIRST = 4, //Spells of Skarvald and his Ghost MOB_SKARVALD_THE_CONSTRUCTOR = 24200, @@ -123,7 +123,7 @@ public: { if (!ghost && instance) { - DoScriptText(YELL_SKARVALD_AGGRO, me); + Talk(YELL_SKARVALD_AGGRO); Unit* dalronn = Unit::GetUnit(*me, instance->GetData64(DATA_DALRONN)); if (dalronn && dalronn->isAlive() && !dalronn->getVictim()) @@ -151,13 +151,13 @@ public: { if (dalronn->isDead()) { - DoScriptText(YELL_SKARVALD_DAL_DIED, me); + Talk(YELL_SKARVALD_DAL_DIED); instance->SetData(DATA_SKARVALD_DALRONN_EVENT, DONE); } else { - DoScriptText(YELL_SKARVALD_SKA_DIEDFIRST, me); + Talk(YELL_SKARVALD_SKA_DIEDFIRST); me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); //DoCast(me, SPELL_SUMMON_SKARVALD_GHOST, true); @@ -176,7 +176,7 @@ public: { if (!ghost) { - DoScriptText(YELL_SKARVALD_KILL, me); + Talk(YELL_SKARVALD_KILL); } } @@ -211,7 +211,7 @@ public: { if (Response_Timer <= diff) { - DoScriptText(YELL_SKARVALD_DAL_DIEDFIRST, me); + Talk(YELL_SKARVALD_DAL_DIEDFIRST); Response_Timer = 0; } else Response_Timer -= diff; @@ -310,14 +310,14 @@ public: { if (skarvald->isDead()) { - DoScriptText(YELL_DALRONN_SKA_DIED, me); + Talk(YELL_DALRONN_SKA_DIED); if (instance) instance->SetData(DATA_SKARVALD_DALRONN_EVENT, DONE); } else { - DoScriptText(YELL_DALRONN_DAL_DIEDFIRST, me); + Talk(YELL_DALRONN_DAL_DIEDFIRST); me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_LOOTABLE); //DoCast(me, SPELL_SUMMON_DALRONN_GHOST, true); @@ -336,7 +336,7 @@ public: { if (!ghost) { - DoScriptText(YELL_DALRONN_KILL, me); + Talk(YELL_DALRONN_KILL); } } @@ -355,7 +355,7 @@ public: { if (AggroYell_Timer <= diff) { - DoScriptText(YELL_DALRONN_AGGRO, me); + Talk(YELL_DALRONN_AGGRO); AggroYell_Timer = 0; } else AggroYell_Timer -= diff; @@ -382,7 +382,7 @@ public: { if (Response_Timer <= diff) { - DoScriptText(YELL_DALRONN_SKA_DIEDFIRST, me); + Talk(YELL_DALRONN_SKA_DIEDFIRST); Response_Timer = 0; } else Response_Timer -= diff; } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp index 8cbfe4bafb4..d2772514edf 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_palehoof.cpp @@ -47,10 +47,9 @@ enum OrbSpells //not in db enum Yells { - SAY_AGGRO = -1575000, - SAY_SLAY_1 = -1575001, - SAY_SLAY_2 = -1575002, - SAY_DEATH = -1575003 + SAY_AGGRO = 0, + SAY_SLAY = 1 + //SAY_DEATH = 2 Missing in database }; enum Creatures @@ -155,7 +154,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); } void AttackStart(Unit* who) @@ -212,7 +211,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + //Talk(SAY_DEATH); if (instance) instance->SetData(DATA_GORTOK_PALEHOOF_EVENT, DONE); Creature* temp = Unit::GetCreature((*me), instance ? instance->GetData64(DATA_MOB_ORB) : 0); @@ -222,7 +221,7 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + Talk(SAY_SLAY); } void NextPhase() diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp index 63898e57c08..45bab11c46a 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp @@ -34,16 +34,13 @@ Script Data End */ //Yell enum eYells { - SAY_AGGRO = -1575004, - SAY_KILL_1 = -1575005, - SAY_KILL_2 = -1575006, - EMOTE_RANGE = -1575007, //Skadi - SAY_DEATH = -1575008, - SAY_DRAKE_DEATH = -1575009, - EMOTE_BREATH = -1575010, //Grauf - SAY_DRAKE_BREATH_1 = -1575011, - SAY_DRAKE_BREATH_2 = -1575012, - SAY_DRAKE_BREATH_3 = -1575013, + SAY_AGGRO = 0, + SAY_KILL = 1, + EMOTE_RANGE = 2, + SAY_DEATH = 3, + SAY_DRAKE_DEATH = 4, + EMOTE_BREATH = 5, + SAY_DRAKE_BREATH = 6 }; static Position SpawnLoc = {468.931f, -513.555f, 104.723f, 0}; @@ -230,7 +227,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE); @@ -297,7 +294,7 @@ public: } me->GetMotionMaster()->MoveJump(Location[4].GetPositionX(), Location[4].GetPositionY(), Location[4].GetPositionZ(), 5.0f, 10.0f); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE); - DoScriptText(SAY_DRAKE_DEATH, me); + Talk(SAY_DRAKE_DEATH); m_uiCrushTimer = 8000; m_uiPoisonedSpearTimer = 10000; m_uiWhirlwindTimer = 20000; @@ -319,7 +316,7 @@ public: me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE); if (!m_bSaidEmote) { - DoScriptText(EMOTE_RANGE, me); + Talk(EMOTE_RANGE); m_bSaidEmote = true; } } @@ -360,8 +357,8 @@ public: break; case 3: me->GetMotionMaster()->MovePoint(0, Location[69].GetPositionX(), Location[69].GetPositionY(), Location[69].GetPositionZ()); - DoScriptText(RAND(SAY_DRAKE_BREATH_1, SAY_DRAKE_BREATH_2), me); - DoScriptText(EMOTE_BREATH, me); + Talk(SAY_DRAKE_BREATH); + Talk(EMOTE_BREATH); m_uiMovementTimer = 2500; break; case 4: @@ -413,7 +410,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); Summons.DespawnAll(); if (instance) instance->SetData(DATA_SKADI_THE_RUTHLESS_EVENT, DONE); @@ -421,7 +418,7 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me); + Talk(SAY_KILL); } void SpawnMobs() diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp index 0278125deb3..96cfee7c2b8 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp @@ -55,16 +55,13 @@ enum Spells //not in db enum Yells { - SAY_AGGRO = -1575028, - SAY_SLAY_1 = -1575029, - SAY_SLAY_2 = -1575030, - SAY_SLAY_3 = -1575031, - SAY_SLAY_4 = -1575032, - SAY_DEATH = -1575033, - SAY_SUMMON_BJORN = -1575034, - SAY_SUMMON_HALDOR = -1575035, - SAY_SUMMON_RANULF = -1575036, - SAY_SUMMON_TORGYN = -1575037 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SUMMON_BJORN = 3, + SAY_SUMMON_HALDOR = 4, + SAY_SUMMON_RANULF = 5, + SAY_SUMMON_TORGYN = 6 }; enum Creatures @@ -190,7 +187,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (instance) instance->SetData(DATA_KING_YMIRON_EVENT, IN_PROGRESS); @@ -216,7 +213,7 @@ public: { if (m_uiPause_Timer <= diff) { - DoScriptText(ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].say, me); + Talk(ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].say); DoCast(me, SPELL_CHANNEL_YMIRON_TO_SPIRIT); // should be on spirit if (Creature* temp = me->SummonCreature(ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].npc, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnX, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnY, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnZ, ActiveBoat[m_uiActiveOrder[m_uiActivedNumber]].SpawnO, TEMPSUMMON_CORPSE_DESPAWN, 0)) { @@ -370,7 +367,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); DespawnBoatGhosts(m_uiActivedCreatureGUID); DespawnBoatGhosts(m_uiOrbGUID); @@ -381,7 +378,7 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3, SAY_SLAY_4), me); + Talk(SAY_SLAY); } void DespawnBoatGhosts(uint64 m_uiCreatureGUID) diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp index 96e0bc66bd1..8a5e25e4487 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp @@ -19,7 +19,10 @@ #include "ScriptedCreature.h" #include "vault_of_archavon.h" -#define EMOTE_BERSERK -1590002 +enum +{ + EMOTE_BERSERK = 0 +}; //Spells Archavon #define SPELL_ROCK_SHARDS 58678 @@ -109,7 +112,7 @@ class boss_archavon : public CreatureScript break; case EVENT_BERSERK: DoCast(me, SPELL_BERSERK); - DoScriptText(EMOTE_BERSERK, me); + Talk(EMOTE_BERSERK); break; default: break; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp index 903280d317a..b61bb20389d 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp @@ -37,9 +37,9 @@ enum Spells enum BossEmotes { - EMOTE_OVERCHARGE = -1590000, - EMOTE_MINION_RESPAWN = -1590001, - EMOTE_BERSERK = -1590002, + EMOTE_OVERCHARGE = 0, + EMOTE_MINION_RESPAWN = 1, + EMOTE_BERSERK = 2 }; enum Events @@ -146,14 +146,14 @@ class boss_emalon : public CreatureScript { minion->CastSpell(me, SPELL_OVERCHARGED, true); minion->SetFullHealth(); - DoScriptText(EMOTE_OVERCHARGE, me); + Talk(EMOTE_OVERCHARGE); events.ScheduleEvent(EVENT_OVERCHARGE, 45000); } } break; case EVENT_BERSERK: DoCast(me, SPELL_BERSERK); - DoScriptText(EMOTE_BERSERK, me); + Talk(EMOTE_BERSERK); break; default: break; @@ -198,7 +198,7 @@ class mob_tempest_minion : public CreatureScript if (emalon->isAlive()) { emalon->SummonCreature(MOB_TEMPEST_MINION, 0, 0, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 0); - DoScriptText(EMOTE_MINION_RESPAWN, me); + Talk(EMOTE_MINION_RESPAWN); } } } @@ -244,7 +244,7 @@ class mob_tempest_minion : public CreatureScript { DoCast(me, SPELL_OVERCHARGED_BLAST); me->DespawnOrUnsummon(); - DoScriptText(EMOTE_MINION_RESPAWN, me); + Talk(EMOTE_MINION_RESPAWN); } } } diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp index b4ce402e7de..7b1b9e96baf 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp @@ -34,16 +34,13 @@ enum Spells enum Yells { - SAY_AGGRO = -1608000, - SAY_SLAY_1 = -1608001, - SAY_SLAY_2 = -1608002, - SAY_SLAY_3 = -1608003, - SAY_DEATH = -1608004, - SAY_SPAWN = -1608005, - SAY_DISRUPTION = -1608006, - SAY_BREATH_ATTACK = -1608007, - SAY_SPECIAL_ATTACK_1 = -1608008, - SAY_SPECIAL_ATTACK_2 = -1608009 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SPAWN = 3, + SAY_DISRUPTION = 4, + SAY_BREATH_ATTACK = 5, + SAY_SPECIAL_ATTACK = 6 }; class boss_cyanigosa : public CreatureScript @@ -84,7 +81,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (instance) instance->SetData(DATA_CYANIGOSA_EVENT, IN_PROGRESS); @@ -144,7 +141,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(DATA_CYANIGOSA_EVENT, DONE); @@ -154,7 +151,7 @@ public: { if (victim == me) return; - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me); + Talk(SAY_SLAY); } }; diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp index bd59b731c3c..15cd12140cf 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp @@ -34,14 +34,12 @@ enum Spells enum Yells { - SAY_AGGRO = -1608010, - SAY_SLAY_1 = -1608011, - SAY_SLAY_2 = -1608012, - SAY_SLAY_3 = -1608013, - SAY_DEATH = -1608014, - SAY_SPAWN = -1608015, - SAY_ADD_KILLED = -1608016, - SAY_BOTH_ADDS_KILLED = -1608017 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SPAWN = 3, + SAY_ADD_KILLED = 4, + SAY_BOTH_ADDS_KILLED = 5 }; class boss_erekem : public CreatureScript @@ -125,7 +123,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); DoCast(me, SPELL_EARTH_SHIELD); if (instance) @@ -209,7 +207,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) { @@ -230,7 +228,7 @@ public: { if (victim == me) return; - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me); + Talk(SAY_SLAY); } uint64 GetChainHealTargetGUID() diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp index cea00417233..fba7efe43ab 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp @@ -40,15 +40,13 @@ enum IchoronCreatures enum Yells { - SAY_AGGRO = -1608018, - SAY_SLAY_1 = -1608019, - SAY_SLAY_2 = -1608020, - SAY_SLAY_3 = -1608021, - SAY_DEATH = -1608022, - SAY_SPAWN = -1608023, - SAY_ENRAGE = -1608024, - SAY_SHATTER = -1608025, - SAY_BUBBLE = -1608026 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SPAWN = 3, + SAY_ENRAGE = 4, + SAY_SHATTER = 5, + SAY_BUBBLE = 6 }; enum Actions @@ -120,7 +118,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); DoCast(me, SPELL_PROTECTIVE_BUBBLE); @@ -189,7 +187,7 @@ public: if (!HealthBelowPct(25)) { - DoScriptText(SAY_BUBBLE, me); + Talk(SAY_BUBBLE); DoCast(me, SPELL_PROTECTIVE_BUBBLE, true); } @@ -214,7 +212,7 @@ public: if (!bIsFrenzy && HealthBelowPct(25) && !bIsExploded) { - DoScriptText(SAY_ENRAGE, me); + Talk(SAY_ENRAGE); DoCast(me, SPELL_FRENZY, true); bIsFrenzy = true; } @@ -227,7 +225,7 @@ public: { if (!me->HasAura(SPELL_PROTECTIVE_BUBBLE, 0)) { - DoScriptText(SAY_SHATTER, me); + Talk(SAY_SHATTER); DoCast(me, SPELL_WATER_BLAST); DoCast(me, SPELL_DRAINED); bIsExploded = true; @@ -277,7 +275,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (bIsExploded) { @@ -326,7 +324,7 @@ public: { if (victim == me) return; - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me); + Talk(SAY_SLAY); } }; diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp index 58d7b59c7dd..429b2ac32ea 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp @@ -22,41 +22,38 @@ enum Spells { - SPELL_ARCANE_BARRAGE_VOLLEY = 54202, - SPELL_ARCANE_BARRAGE_VOLLEY_H = 59483, - SPELL_ARCANE_BUFFET = 54226, - SPELL_ARCANE_BUFFET_H = 59485, - SPELL_SUMMON_ETHEREAL_SPHERE_1 = 54102, - SPELL_SUMMON_ETHEREAL_SPHERE_2 = 54137, - SPELL_SUMMON_ETHEREAL_SPHERE_3 = 54138, + SPELL_ARCANE_BARRAGE_VOLLEY = 54202, + SPELL_ARCANE_BARRAGE_VOLLEY_H = 59483, + SPELL_ARCANE_BUFFET = 54226, + SPELL_ARCANE_BUFFET_H = 59485, + SPELL_SUMMON_ETHEREAL_SPHERE_1 = 54102, + SPELL_SUMMON_ETHEREAL_SPHERE_2 = 54137, + SPELL_SUMMON_ETHEREAL_SPHERE_3 = 54138, }; enum NPCs { - NPC_ETHEREAL_SPHERE = 29271, - //NPC_ETHEREAL_SPHERE2 = 32582, // heroic only? + NPC_ETHEREAL_SPHERE = 29271, + //NPC_ETHEREAL_SPHERE2 = 32582, // heroic only? }; enum CreatureSpells { - SPELL_ARCANE_POWER = 54160, - H_SPELL_ARCANE_POWER = 59474, - SPELL_SUMMON_PLAYERS = 54164, - SPELL_POWER_BALL_VISUAL = 54141, + SPELL_ARCANE_POWER = 54160, + H_SPELL_ARCANE_POWER = 59474, + SPELL_SUMMON_PLAYERS = 54164, + SPELL_POWER_BALL_VISUAL = 54141, }; enum Yells { - SAY_AGGRO = -1608027, - SAY_SLAY_1 = -1608028, - SAY_SLAY_2 = -1608029, - SAY_SLAY_3 = -1608030, - SAY_DEATH = -1608031, - SAY_SPAWN = -1608032, - SAY_CHARGED = -1608033, - SAY_REPEAT_SUMMON_1 = -1608034, - SAY_REPEAT_SUMMON_2 = -1608035, - SAY_SUMMON_ENERGY = -1608036 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SPAWN = 3, + SAY_CHARGED = 4, + SAY_REPEAT_SUMMON = 5, + SAY_SUMMON_ENERGY = 6 }; class boss_xevozz : public CreatureScript @@ -139,7 +136,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (instance) { if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetData64(DATA_XEVOZZ_CELL))) @@ -182,7 +179,7 @@ public: if (uiSummonEtherealSphere_Timer < uiDiff) { - DoScriptText(SAY_SPAWN, me); + Talk(SAY_SPAWN); DoCast(me, SPELL_SUMMON_ETHEREAL_SPHERE_1); if (IsHeroic()) // extra one for heroic me->SummonCreature(NPC_ETHEREAL_SPHERE, me->GetPositionX()-5+rand()%10, me->GetPositionY()-5+rand()%10, me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 40000); @@ -197,7 +194,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); DespawnSphere(); @@ -220,7 +217,7 @@ public: if (victim == me) return; - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me); + Talk(SAY_SLAY); } }; diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp index 408a7083383..5216ae9f08d 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp @@ -38,14 +38,12 @@ enum ZuramatCreatures enum Yells { - SAY_AGGRO = -1608037, - SAY_SLAY_1 = -1608038, - SAY_SLAY_2 = -1608039, - SAY_SLAY_3 = -1608040, - SAY_DEATH = -1608041, - SAY_SPAWN = -1608042, - SAY_SHIELD = -1608043, - SAY_WHISPER = -1608044 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_SPAWN = 3, + SAY_SHIELD = 4, + SAY_WHISPER = 5 }; #define DATA_VOID_DANCE 2153 @@ -106,7 +104,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (instance) { if (GameObject* pDoor = instance->instance->GetGameObject(instance->GetData64(DATA_ZURAMAT_CELL))) @@ -168,7 +166,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) { @@ -190,7 +188,7 @@ public: if (victim == me) return; - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me); + Talk(SAY_SLAY); } void JustSummoned(Creature* summon) diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp index 5e3bbc01025..c1c93c789de 100644 --- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp @@ -16,6 +16,7 @@ */ #include "ScriptMgr.h" +#include "ScriptedCreature.h" #include "InstanceScript.h" #include "violet_hold.h" #include "Player.h" @@ -94,7 +95,7 @@ const Position MiddleRoomPortalSaboLocation = {1896.622925f, 804.854126f, 38.504 //Cyanigosa's prefight event data enum Yells { - CYANIGOSA_SAY_SPAWN = -1608005 + CYANIGOSA_SAY_SPAWN = 0 }; enum Spells @@ -742,7 +743,7 @@ public: { case 1: pCyanigosa->CastSpell(pCyanigosa, CYANIGOSA_BLUE_AURA, false); - DoScriptText(CYANIGOSA_SAY_SPAWN, pCyanigosa); + pCyanigosa->AI()->Talk(CYANIGOSA_SAY_SPAWN); uiCyanigosaEventTimer = 7*IN_MILLISECONDS; ++uiCyanigosaEventPhase; break; diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index c73cb97f2d1..5e326af9891 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -125,7 +125,7 @@ enum Spells enum eSinclari { - SAY_SINCLARI_1 = -1608045 + SAY_SINCLARI_1 = 0 }; float FirstPortalWPs [6][3] = @@ -353,7 +353,7 @@ public: switch (uiPhase) { case 1: - DoScriptText(SAY_SINCLARI_1, me); + Talk(SAY_SINCLARI_1); uiTimer = 4000; uiPhase = 2; break; diff --git a/src/server/scripts/Northrend/sholazar_basin.cpp b/src/server/scripts/Northrend/sholazar_basin.cpp index a6d6cda11b1..c0635f897d9 100644 --- a/src/server/scripts/Northrend/sholazar_basin.cpp +++ b/src/server/scripts/Northrend/sholazar_basin.cpp @@ -722,10 +722,17 @@ class npc_adventurous_dwarf : public CreatureScript public: npc_adventurous_dwarf() : CreatureScript("npc_adventurous_dwarf") { } + struct npc_adventurous_dwarfAI : public ScriptedAI + { + npc_adventurous_dwarfAI(Creature* creature) : ScriptedAI(creature) + { + Talk(SAY_DWARF_OUCH); + } + }; + CreatureAI* GetAI(Creature* creature) const { - creature->AI()->Talk(SAY_DWARF_OUCH); - return NULL; + return new npc_adventurous_dwarfAI(creature); } bool OnGossipHello(Player* player, Creature* creature) @@ -750,14 +757,23 @@ public: { player->PlayerTalkClass->ClearMenus(); uint32 spellId = 0; + switch (action) { - case GOSSIP_ACTION_INFO_DEF + 1: spellId = SPELL_ADD_ORANGE; break; - case GOSSIP_ACTION_INFO_DEF + 2: spellId = SPELL_ADD_BANANAS; break; - case GOSSIP_ACTION_INFO_DEF + 3: spellId = SPELL_ADD_PAPAYA; break; + case GOSSIP_ACTION_INFO_DEF + 1: + spellId = SPELL_ADD_ORANGE; + break; + case GOSSIP_ACTION_INFO_DEF + 2: + spellId = SPELL_ADD_BANANAS; + break; + case GOSSIP_ACTION_INFO_DEF + 3: + spellId = SPELL_ADD_PAPAYA; + break; } + if (spellId) player->CastSpell(player, spellId, true); + creature->AI()->Talk(SAY_DWARF_HELP); creature->DespawnOrUnsummon(); return true; diff --git a/src/server/scripts/Northrend/zuldrak.cpp b/src/server/scripts/Northrend/zuldrak.cpp index e5763e5baf6..506c34d40fb 100644 --- a/src/server/scripts/Northrend/zuldrak.cpp +++ b/src/server/scripts/Northrend/zuldrak.cpp @@ -121,9 +121,9 @@ enum eRageclaw SPELL_KNEEL = 39656 }; -const char * SAY_RAGECLAW_1 = "I poop on you, trollses!"; -const char * SAY_RAGECLAW_2 = "ARRRROOOOGGGGAAAA!"; -const char * SAY_RAGECLAW_3 = "No more mister nice wolvar!"; +const char* SAY_RAGECLAW_1 = "I poop on you, trollses!"; +const char* SAY_RAGECLAW_2 = "ARRRROOOOGGGGAAAA!"; +const char* SAY_RAGECLAW_3 = "No more mister nice wolvar!"; #define SAY_RAGECLAW RAND(SAY_RAGECLAW_1, SAY_RAGECLAW_2, SAY_RAGECLAW_3) @@ -265,14 +265,16 @@ enum eGurgthock NPC_FIEND_FIRE = 30042, NPC_FIEND_EARTH = 30043, - SAY_QUEST_ACCEPT_TUSKARRMAGEDON = -1571031, - SAY_QUEST_ACCEPT_KORRAK_1 = -1571033, - SAY_QUEST_ACCEPT_KORRAK_2 = -1571034, - SAY_QUEST_ACCEPT_MAGNATAUR = -1571035, + SAY_QUEST_ACCEPT_TUSKARRMAGEDON = 0, + SAY_QUEST_ACCEPT_KORRAK_1 = 1, + SAY_QUEST_ACCEPT_KORRAK_2 = 2, + SAY_QUEST_ACCEPT_MAGNATAUR = 3, + EMOTE_YGGDRAS_SPAWN = 4, + SAY_STINKBEARD_SPAWN = 5, + SAY_GURGTHOCK_ELEMENTAL_SPAWN = 6, - EMOTE_YGGDRAS_SPAWN = -1571039, - SAY_STINKBEARD_SPAWN = -1571040, - SAY_GURGTHOCK_ELEMENTAL_SPAWN = -1571041, + SAY_CALL_FOR_HELP = 0, + SAY_RECRUIT = 0, SPELL_CRASHING_WAVE = 55909, // water SPELL_SHOCKWAVE = 55918, // earth @@ -380,12 +382,12 @@ public: switch (uiValue) { case QUEST_AMPHITHEATER_ANGUISH_TUSKARRMAGEDDON: - DoScriptText(SAY_QUEST_ACCEPT_TUSKARRMAGEDON, me); + Talk(SAY_QUEST_ACCEPT_TUSKARRMAGEDON); uiPhase = 1; uiTimer = 4000; break; case QUEST_AMPHITHEATER_ANGUISH_KORRAK_BLOODRAGER: - DoScriptText(SAY_QUEST_ACCEPT_KORRAK_1, me); + Talk(SAY_QUEST_ACCEPT_KORRAK_1); uiPhase = 3; uiTimer = 3000; break; @@ -443,7 +445,7 @@ public: SummonGUID = 0; break; case 3: - DoScriptText(SAY_QUEST_ACCEPT_KORRAK_2, me); + Talk(SAY_QUEST_ACCEPT_KORRAK_2); uiTimer = 3000; uiPhase = 4; break; @@ -477,7 +479,7 @@ public: } break; case 8: - DoScriptText(SAY_QUEST_ACCEPT_MAGNATAUR, me); + Talk(SAY_QUEST_ACCEPT_MAGNATAUR); uiTimer = 5000; uiPhase = 11; break; @@ -494,12 +496,12 @@ public: break; case 10: me->SummonCreature(NPC_YGGDRAS, SpawnPosition[1], TEMPSUMMON_CORPSE_DESPAWN, 1000); - DoScriptText(EMOTE_YGGDRAS_SPAWN, me); + Talk(EMOTE_YGGDRAS_SPAWN); uiPhase = 0; break; case 11: if (Creature* creature = me->SummonCreature(NPC_STINKBEARD, SpawnPosition[0], TEMPSUMMON_CORPSE_DESPAWN, 1000)) - DoScriptText(SAY_STINKBEARD_SPAWN, creature); + creature->AI()->Talk(SAY_STINKBEARD_SPAWN); uiPhase = 0; break; case 12: @@ -514,7 +516,7 @@ public: } break; case 13: - DoScriptText(SAY_GURGTHOCK_ELEMENTAL_SPAWN, me); + Talk(SAY_GURGTHOCK_ELEMENTAL_SPAWN); uiTimer = 3000; uiPhase = 14; break; @@ -575,9 +577,7 @@ enum eOrinokoTuskbreaker SPELL_SUMMON_WHISKER = 55946, NPC_WHISKER = 30113, - NPC_HUNGRY_PENGUIN = 30110, - - SAY_CALL_FOR_HELP = -1571032 + NPC_HUNGRY_PENGUIN = 30110 }; class npc_orinoko_tuskbreaker : public CreatureScript @@ -659,7 +659,7 @@ public: if (!bSummoned && !HealthAbovePct(50)) { - DoScriptText(SAY_CALL_FOR_HELP, me); + Talk(SAY_CALL_FOR_HELP); //DoCast(me->getVictim(), SPELL_SUMMON_WHISKER); petai is not working correctly??? if (Creature* pWhisker = me->SummonCreature(NPC_WHISKER, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 0)) @@ -1282,11 +1282,7 @@ enum eCrusade_recruit QUEST_TROLL_PATROL_INTESTINAL_FORTITUDE = 12509, - GOSSIP_CRUSADE_TEXT = 13069, - - SAY_RECRUIT_1 = -1571036, - SAY_RECRUIT_2 = -1571037, - SAY_RECRUIT_3 = -1571038 + GOSSIP_CRUSADE_TEXT = 13069 }; #define GOSSIP_ITEM_1 "Get out there and make those Scourge wish they were never reborn!" @@ -1325,7 +1321,7 @@ public: // say random text me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); - DoScriptText(RAND(SAY_RECRUIT_1, SAY_RECRUIT_2, SAY_RECRUIT_3), me); + Talk(SAY_RECRUIT); m_uiTimer = 3000; m_uiPhase = 2; break; diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp index a8b4b1797cb..5739aa49549 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp @@ -126,30 +126,23 @@ public: }; -#define SAY_INTRO -1558000 -#define SAY_SUMMON -1558001 - -#define SAY_AGGRO_1 -1558002 -#define SAY_AGGRO_2 -1558003 -#define SAY_AGGRO_3 -1558004 - -#define SAY_ROAR -1558005 -#define SAY_SOUL_CLEAVE -1558006 - -#define SAY_SLAY_1 -1558007 -#define SAY_SLAY_2 -1558008 - -#define SAY_DEATH -1558009 - -#define SPELL_RIBBON_OF_SOULS 32422 -#define SPELL_SOUL_SCREAM 32421 - -#define SPELL_STOLEN_SOUL 32346 -#define SPELL_STOLEN_SOUL_VISUAL 32395 - -#define SPELL_SUMMON_AVATAR 32424 - -#define ENTRY_STOLEN_SOUL 18441 +enum ExarchMaladaar +{ + SAY_INTRO = 0, + SAY_SUMMON = 1, + SAY_AGGRO = 2, + SAY_ROAR = 3, + SAY_SLAY = 4, + SAY_DEATH = 5, + + SPELL_RIBBON_OF_SOULS = 32422, + SPELL_SOUL_SCREAM = 32421, + SPELL_STOLEN_SOUL = 32346, + SPELL_STOLEN_SOUL_VISUAL = 32395, + SPELL_SUMMON_AVATAR = 32424, + + ENTRY_STOLEN_SOUL = 18441 +}; class boss_exarch_maladaar : public CreatureScript { @@ -196,7 +189,7 @@ public: { if (!HasTaunted && me->IsWithinDistInMap(who, 150.0f)) { - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); HasTaunted = true; } @@ -205,7 +198,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); } void JustSummoned(Creature* summoned) @@ -231,12 +224,12 @@ public: if (rand()%2) return; - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); //When Exarch Maladar is defeated D'ore appear. me->SummonCreature(19412, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 600000); } @@ -251,7 +244,7 @@ public: if (me->IsNonMeleeSpellCasted(false)) me->InterruptNonMeleeSpells(true); - DoScriptText(SAY_SUMMON, me); + Talk(SAY_SUMMON); DoCast(me, SPELL_SUMMON_AVATAR); Avatar_summoned = true; @@ -267,11 +260,7 @@ public: if (me->IsNonMeleeSpellCasted(false)) me->InterruptNonMeleeSpells(true); - uint32 i = urand(1, 2); - if (i == 1) - DoScriptText(SAY_ROAR, me); - else - DoScriptText(SAY_SOUL_CLEAVE, me); + Talk(SAY_ROAR); soulmodel = target->GetDisplayId(); soulholder = target->GetGUID(); diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp index 351f30c926f..f7a2eb87d67 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_nexusprince_shaffar.cpp @@ -33,14 +33,11 @@ EndContentData */ enum ePrince { - SAY_INTRO = -1557000, - SAY_AGGRO_1 = -1557001, - SAY_AGGRO_2 = -1557002, - SAY_AGGRO_3 = -1557003, - SAY_SLAY_1 = -1557004, - SAY_SLAY_2 = -1557005, - SAY_SUMMON = -1557006, - SAY_DEAD = -1557007, + SAY_INTRO = 0, + SAY_AGGRO = 1, + SAY_SLAY = 2, + SAY_SUMMON = 3, + SAY_DEAD = 4, SPELL_BLINK = 34605, SPELL_FROSTBOLT = 32364, @@ -110,14 +107,14 @@ public: { if (!HasTaunted && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 100.0f)) { - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); HasTaunted = true; } } void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); DoZoneInCombat(); summons.DoZoneInCombat(); @@ -143,12 +140,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEAD, me); + Talk(SAY_DEAD); summons.DespawnAll(); } @@ -203,7 +200,7 @@ public: me->InterruptNonMeleeSpells(true); if (!urand(0, 3)) - DoScriptText(SAY_SUMMON, me); + Talk(SAY_SUMMON); DoCast(me, SPELL_ETHEREAL_BEACON, true); diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp index 459ba3a8f86..f174091311b 100644 --- a/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/boss_pandemonius.cpp @@ -26,21 +26,19 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" -#define SAY_AGGRO_1 -1557008 -#define SAY_AGGRO_2 -1557009 -#define SAY_AGGRO_3 -1557010 - -#define SAY_KILL_1 -1557011 -#define SAY_KILL_2 -1557012 - -#define SAY_DEATH -1557013 - -#define EMOTE_DARK_SHELL -1557014 +enum Pandemonius +{ + SAY_AGGRO = 0, + SAY_KILL = 1, + SAY_DEATH = 2, + EMOTE_DARK_SHELL = 3, + + SPELL_VOID_BLAST = 32325, + H_SPELL_VOID_BLAST = 38760, + SPELL_DARK_SHELL = 32358, + H_SPELL_DARK_SHELL = 38759 +}; -#define SPELL_VOID_BLAST 32325 -#define H_SPELL_VOID_BLAST 38760 -#define SPELL_DARK_SHELL 32358 -#define H_SPELL_DARK_SHELL 38759 class boss_pandemonius : public CreatureScript { @@ -71,17 +69,17 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me); + Talk(SAY_KILL); } void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); } void UpdateAI(const uint32 diff) @@ -112,7 +110,7 @@ public: if (me->IsNonMeleeSpellCasted(false)) me->InterruptNonMeleeSpells(true); - DoScriptText(EMOTE_DARK_SHELL, me); + Talk(EMOTE_DARK_SHELL); DoCast(me, SPELL_DARK_SHELL); DarkShell_Timer = 20000; diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp index 0a85cf1dc5b..5bb396965a6 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_darkweaver_syth.cpp @@ -26,28 +26,25 @@ EndScriptData */ #include "ScriptMgr.h" #include "ScriptedCreature.h" -#define SAY_SUMMON -1556000 - -#define SAY_AGGRO_1 -1556001 -#define SAY_AGGRO_2 -1556002 -#define SAY_AGGRO_3 -1556003 - -#define SAY_SLAY_1 -1556004 -#define SAY_SLAY_2 -1556005 - -#define SAY_DEATH -1556006 - -#define SPELL_FROST_SHOCK 21401 //37865 -#define SPELL_FLAME_SHOCK 34354 -#define SPELL_SHADOW_SHOCK 30138 -#define SPELL_ARCANE_SHOCK 37132 - -#define SPELL_CHAIN_LIGHTNING 15659 //15305 - -#define SPELL_SUMMON_SYTH_FIRE 33537 // Spawns 19203 -#define SPELL_SUMMON_SYTH_ARCANE 33538 // Spawns 19205 -#define SPELL_SUMMON_SYTH_FROST 33539 // Spawns 19204 -#define SPELL_SUMMON_SYTH_SHADOW 33540 // Spawns 19206 +enum DarkweaverSyth +{ + SAY_SUMMON = 0, + SAY_AGGRO = 1, + SAY_SLAY = 2, + SAY_DEATH = 3, + + SPELL_FROST_SHOCK = 21401, //37865 + SPELL_FLAME_SHOCK = 34354, + SPELL_SHADOW_SHOCK = 30138, + SPELL_ARCANE_SHOCK = 37132, + + SPELL_CHAIN_LIGHTNING = 15659, //15305 + + SPELL_SUMMON_SYTH_FIRE = 33537, // Spawns 19203 + SPELL_SUMMON_SYTH_ARCANE = 33538, // Spawns 19205 + SPELL_SUMMON_SYTH_FROST = 33539, // Spawns 19204 + SPELL_SUMMON_SYTH_SHADOW = 33540 // Spawns 19206 +}; #define SPELL_FLAME_BUFFET DUNGEON_MODE(33526, 38141) #define SPELL_ARCANE_BUFFET DUNGEON_MODE(33527, 38138) @@ -95,12 +92,12 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } void KilledUnit(Unit* /*victim*/) @@ -108,7 +105,7 @@ public: if (rand()%2) return; - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + Talk(SAY_SLAY); } void JustSummoned(Creature* summoned) @@ -119,7 +116,7 @@ public: void SythSummoning() { - DoScriptText(SAY_SUMMON, me); + Talk(SAY_SUMMON); if (me->IsNonMeleeSpellCasted(false)) me->InterruptNonMeleeSpells(false); diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp index ec35d6c80b3..07169f031ab 100644 --- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp +++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_tailonking_ikiss.cpp @@ -27,31 +27,26 @@ EndScriptData */ #include "ScriptedCreature.h" #include "sethekk_halls.h" -#define SAY_INTRO -1556007 - -#define SAY_AGGRO_1 -1556008 -#define SAY_AGGRO_2 -1556009 -#define SAY_AGGRO_3 -1556010 - -#define SAY_SLAY_1 -1556011 -#define SAY_SLAY_2 -1556012 -#define SAY_DEATH -1556013 -#define EMOTE_ARCANE_EXP -1556015 - -#define SPELL_BLINK 38194 -#define SPELL_BLINK_TELEPORT 38203 -#define SPELL_MANA_SHIELD 38151 -#define SPELL_ARCANE_BUBBLE 9438 -#define H_SPELL_SLOW 35032 - -#define SPELL_POLYMORPH 38245 -#define H_SPELL_POLYMORPH 43309 - -#define SPELL_ARCANE_VOLLEY 35059 -#define H_SPELL_ARCANE_VOLLEY 40424 - -#define SPELL_ARCANE_EXPLOSION 38197 -#define H_SPELL_ARCANE_EXPLOSION 40425 +enum TailonkingIkiss +{ + SAY_INTRO = 0, + SAY_AGGRO = 1, + SAY_SLAY = 2, + SAY_DEATH = 3, + EMOTE_ARCANE_EXP = 4, + + SPELL_BLINK = 38194, + SPELL_BLINK_TELEPORT = 38203, + SPELL_MANA_SHIELD = 38151, + SPELL_ARCANE_BUBBLE = 9438, + H_SPELL_SLOW = 35032, + SPELL_POLYMORPH = 38245, + H_SPELL_POLYMORPH = 43309, + SPELL_ARCANE_VOLLEY = 35059, + H_SPELL_ARCANE_VOLLEY = 40424, + SPELL_ARCANE_EXPLOSION = 38197, + H_SPELL_ARCANE_EXPLOSION = 40425 +}; class boss_talon_king_ikiss : public CreatureScript { @@ -99,7 +94,7 @@ public: if (!Intro && me->IsWithinDistInMap(who, 100)) { Intro = true; - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); } if (!me->CanFly() && me->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE) @@ -116,12 +111,12 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(DATA_IKISSDOOREVENT, DONE); @@ -129,7 +124,7 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + Talk(SAY_SLAY); } void UpdateAI(const uint32 diff) @@ -183,7 +178,7 @@ public: if (Blink_Timer <= diff) { - DoScriptText(EMOTE_ARCANE_EXP, me); + Talk(EMOTE_ARCANE_EXP); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) { diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp index a109e3738b1..c93143c1c5c 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp @@ -30,14 +30,11 @@ EndScriptData */ enum eEnums { - SAY_INTRO = -1555000, - SAY_AGGRO1 = -1555001, - SAY_AGGRO2 = -1555002, - SAY_AGGRO3 = -1555003, - SAY_HELP = -1555004, - SAY_SLAY1 = -1555005, - SAY_SLAY2 = -1555006, - SAY_DEATH = -1555007, + SAY_INTRO = 0, + SAY_AGGRO = 1, + SAY_HELP = 2, + SAY_SLAY = 3, + SAY_DEATH = 4, SPELL_BANISH = 30231, SPELL_CORROSIVE_ACID = 33551, @@ -119,7 +116,7 @@ public: { if (instance->GetData(TYPE_HELLMAW) != FAIL) { - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); Start(true, false, 0, NULL, false, true); } @@ -129,17 +126,17 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me); + Talk(SAY_AGGRO); } void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(TYPE_HELLMAW, DONE); diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp index e7063e479ee..eb06cce87fc 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp @@ -27,33 +27,26 @@ EndScriptData */ #include "ScriptedCreature.h" #include "shadow_labyrinth.h" -#define SPELL_INCITE_CHAOS 33676 -#define SPELL_INCITE_CHAOS_B 33684 //debuff applied to each member of party -#define SPELL_CHARGE 33709 -#define SPELL_WAR_STOMP 33707 - -#define SAY_INTRO1 -1555008 //not used -#define SAY_INTRO2 -1555009 //not used -#define SAY_INTRO3 -1555010 //not used -#define SAY_AGGRO1 -1555011 -#define SAY_AGGRO2 -1555012 -#define SAY_AGGRO3 -1555013 -#define SAY_SLAY1 -1555014 -#define SAY_SLAY2 -1555015 -#define SAY_HELP -1555016 //not used -#define SAY_DEATH -1555017 - -//below, not used -#define SAY2_INTRO1 -1555018 -#define SAY2_INTRO2 -1555019 -#define SAY2_INTRO3 -1555020 -#define SAY2_AGGRO1 -1555021 -#define SAY2_AGGRO2 -1555022 -#define SAY2_AGGRO3 -1555023 -#define SAY2_SLAY1 -1555024 -#define SAY2_SLAY2 -1555025 -#define SAY2_HELP -1555026 -#define SAY2_DEATH -1555027 +enum BlackheartTheInciter +{ + SPELL_INCITE_CHAOS = 33676, + SPELL_INCITE_CHAOS_B = 33684, //debuff applied to each member of party + SPELL_CHARGE = 33709, + SPELL_WAR_STOMP = 33707, + + SAY_INTRO = 0, + SAY_AGGRO = 1, + SAY_SLAY = 2, + SAY_HELP = 3, + SAY_DEATH = 4, + + //below, not used + SAY2_INTRO = 5, + SAY2_AGGRO = 6, + SAY2_SLAY = 7, + SAY2_HELP = 8, + SAY2_DEATH = 9 +}; class boss_blackheart_the_inciter : public CreatureScript { @@ -94,12 +87,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, DONE); @@ -107,7 +100,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me); + Talk(SAY_AGGRO); if (instance) instance->SetData(DATA_BLACKHEARTTHEINCITEREVENT, IN_PROGRESS); diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp index 303a30bea8f..d7dbb8ef722 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp @@ -28,30 +28,30 @@ EndScriptData */ #include "shadow_labyrinth.h" #include "Player.h" -#define SAY_INTRO -1555028 -#define SAY_AGGRO1 -1555029 -#define SAY_AGGRO2 -1555030 -#define SAY_AGGRO3 -1555031 -#define SAY_HELP -1555032 -#define SAY_SLAY1 -1555033 -#define SAY_SLAY2 -1555034 -#define SAY_DEATH -1555035 - -#define SPELL_RAIN_OF_FIRE 33617 -#define H_SPELL_RAIN_OF_FIRE 39363 - -#define SPELL_DRAW_SHADOWS 33563 -#define SPELL_SHADOWBOLT_VOLLEY 33841 -#define SPELL_BANISH 38791 - -#define MOB_VOID_TRAVELER 19226 -#define SPELL_SACRIFICE 33587 -#define SPELL_SHADOW_NOVA 33846 -#define SPELL_EMPOWERING_SHADOWS 33783 -#define H_SPELL_EMPOWERING_SHADOWS 39364 - -#define MOB_VOID_PORTAL 19224 -#define SPELL_VOID_PORTAL_VISUAL 33569 +enum GrandmasterVorpil +{ + SAY_INTRO = 0, + SAY_AGGRO = 1, + SAY_HELP = 2, + SAY_SLAY = 3, + SAY_DEATH = 4, + + SPELL_RAIN_OF_FIRE = 33617, + H_SPELL_RAIN_OF_FIRE = 39363, + + SPELL_DRAW_SHADOWS = 33563, + SPELL_SHADOWBOLT_VOLLEY = 33841, + SPELL_BANISH = 38791, + + MOB_VOID_TRAVELER = 19226, + SPELL_SACRIFICE = 33587, + SPELL_SHADOW_NOVA = 33846, + SPELL_EMPOWERING_SHADOWS = 33783, + H_SPELL_EMPOWERING_SHADOWS = 39364, + + MOB_VOID_PORTAL = 19224, + SPELL_VOID_PORTAL_VISUAL = 33569 +}; float VorpilPosition[3] = {-252.8820f, -264.3030f, 17.1f}; @@ -219,7 +219,7 @@ public: me->SummonCreature(MOB_VOID_TRAVELER, VoidPortalCoords[pos][0], VoidPortalCoords[pos][1], VoidPortalCoords[pos][2], 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000); if (!HelpYell) { - DoScriptText(SAY_HELP, me); + Talk(SAY_HELP); HelpYell = true; } } @@ -232,12 +232,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); destroyPortals(); if (instance) @@ -246,7 +246,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me); + Talk(SAY_AGGRO); summonPortals(); if (instance) @@ -259,7 +259,7 @@ public: if (!Intro && me->IsWithinLOSInMap(who)&& me->IsWithinDistInMap(who, 100) && me->IsValidAttackTarget(who)) { - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); Intro = true; } } diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp index 1503c9f7234..9ca9f7d089c 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp @@ -28,15 +28,20 @@ EndScriptData */ #include "shadow_labyrinth.h" #include "SpellInfo.h" -#define EMOTE_SONIC_BOOM -1555036 +enum Murmur +{ + SPELL_RESONANCE = 33657, + SPELL_MAGNETIC_PULL = 33689, + SPELL_SONIC_SHOCK = 38797, + SPELL_THUNDERING_STORM = 39365, + EMOTE_SONIC_BOOM = 0 +}; #define SPELL_SONIC_BOOM_CAST DUNGEON_MODE(33923, 38796) #define SPELL_SONIC_BOOM_EFFECT DUNGEON_MODE(33666, 38795) -#define SPELL_RESONANCE 33657 + #define SPELL_MURMURS_TOUCH DUNGEON_MODE(33711, 38794) -#define SPELL_MAGNETIC_PULL 33689 -#define SPELL_SONIC_SHOCK 38797 -#define SPELL_THUNDERING_STORM 39365 + class boss_murmur : public CreatureScript { @@ -123,7 +128,7 @@ public: } if (SonicBoom_Timer <= diff) { - DoScriptText(EMOTE_SONIC_BOOM, me); + Talk(EMOTE_SONIC_BOOM); DoCast(me, SPELL_SONIC_BOOM_CAST); SonicBoom_Timer = 30000; SonicBoom = true; diff --git a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp index fd775df3392..427c23bafa6 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp @@ -27,32 +27,33 @@ EndScriptData */ #include "ScriptedCreature.h" #include "black_temple.h" -//Speech'n'Sound -#define SAY_AGGRO -1564029 -#define SAY_SLAY1 -1564030 -#define SAY_SLAY2 -1564031 -#define SAY_SPECIAL1 -1564032 -#define SAY_SPECIAL2 -1564033 -#define SAY_ENRAGE1 -1564034 -#define SAY_ENRAGE2 -1564035 -#define SAY_DEATH -1564036 - -//Spells -#define SPELL_ACID_GEYSER 40630 -#define SPELL_ACIDIC_WOUND 40481 -#define SPELL_ARCING_SMASH 40599 -#define SPELL_BLOODBOIL 42005 // This spell is AoE whereas it shouldn't be -#define SPELL_FEL_ACID 40508 -#define SPELL_FEL_RAGE_SELF 40594 -#define SPELL_FEL_RAGE_TARGET 40604 -#define SPELL_FEL_RAGE_2 40616 -#define SPELL_FEL_RAGE_3 41625 -#define SPELL_BEWILDERING_STRIKE 40491 -#define SPELL_EJECT1 40486 // 1000 Physical damage + knockback + script effect (should handle threat reduction I think) -#define SPELL_EJECT2 40597 // 1000 Physical damage + Stun (used in phase 2?) -#define SPELL_TAUNT_GURTOGG 40603 -#define SPELL_INSIGNIFIGANCE 40618 -#define SPELL_BERSERK 45078 +enum Bloodboil +{ + //Speech'n'Sound + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_SPECIAL = 2, + SAY_ENRAGE = 3, + SAY_DEATH = 4, + + //Spells + SPELL_ACID_GEYSER = 40630, + SPELL_ACIDIC_WOUND = 40481, + SPELL_ARCING_SMASH = 40599, + SPELL_BLOODBOIL = 42005, // This spell is AoE whereas it shouldn't be + SPELL_FEL_ACID = 40508, + SPELL_FEL_RAGE_SELF = 40594, + SPELL_FEL_RAGE_TARGET = 40604, + SPELL_FEL_RAGE_2 = 40616, + SPELL_FEL_RAGE_3 = 41625, + SPELL_BEWILDERING_STRIKE = 40491, + SPELL_EJECT1 = 40486, // 1000 Physical damage + knockback + script effect (should handle threat reduction I think) + SPELL_EJECT2 = 40597, // 1000 Physical damage + Stun (used in phase 2?) + SPELL_TAUNT_GURTOGG = 40603, + SPELL_INSIGNIFIGANCE = 40618, + SPELL_BERSERK = 45078 +}; + //This is used to sort the players by distance in preparation for the Bloodboil cast. @@ -121,14 +122,14 @@ public: void EnterCombat(Unit* /*who*/) { DoZoneInCombat(); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (instance) instance->SetData(DATA_GURTOGGBLOODBOILEVENT, IN_PROGRESS); } void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) @@ -136,7 +137,7 @@ public: if (instance) instance->SetData(DATA_GURTOGGBLOODBOILEVENT, DONE); - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } // Note: This seems like a very complicated fix. The fix needs to be handled by the core, as implementation of limited-target AoE spells are still not limited. @@ -219,7 +220,7 @@ public: if (EnrageTimer <= diff) { DoCast(me, SPELL_BERSERK); - DoScriptText(RAND(SAY_ENRAGE1, SAY_ENRAGE2), me); + Talk(SAY_ENRAGE); } else EnrageTimer -= diff; } @@ -302,7 +303,7 @@ public: //Cast this without triggered so that it appears in combat logs and shows visual. DoCast(me, SPELL_FEL_RAGE_SELF); - DoScriptText(RAND(SAY_SPECIAL1, SAY_SPECIAL2), me); + Talk(SAY_SPECIAL); AcidGeyserTimer = 1000; PhaseChangeTimer = 30000; diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp index ec25a8f9f60..88e7c063c69 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp @@ -27,31 +27,29 @@ EndScriptData */ #include "ScriptedCreature.h" #include "black_temple.h" -//Speech'n'Sounds -#define SAY_TAUNT1 -1564018 -#define SAY_TAUNT2 -1564019 -#define SAY_TAUNT3 -1564020 -#define SAY_AGGRO -1564021 -#define SAY_SPELL1 -1564022 -#define SAY_SPELL2 -1564023 -#define SAY_SPELL3 -1564024 -#define SAY_SLAY1 -1564025 -#define SAY_SLAY2 -1564026 -#define SAY_ENRAGE -1564027 -#define SAY_DEATH -1564028 - -//Spells -#define SPELL_BEAM_SINISTER 40859 -#define SPELL_BEAM_VILE 40860 -#define SPELL_BEAM_WICKED 40861 -#define SPELL_BEAM_SINFUL 40827 -#define SPELL_ATTRACTION 40871 -#define SPELL_SILENCING_SHRIEK 40823 -#define SPELL_ENRAGE 23537 -#define SPELL_SABER_LASH 40810//43267 -#define SPELL_SABER_LASH_IMM 43690 -#define SPELL_TELEPORT_VISUAL 40869 -#define SPELL_BERSERK 45078 +enum MotherShahraz +{ + //Speech'n'Sounds + SAY_TAUNT = 0, + SAY_AGGRO = 1, + SAY_SPELL = 2, + SAY_SLAY = 3, + SAY_ENRAGE = 4, + SAY_DEATH = 5, + + //Spells + SPELL_BEAM_SINISTER = 40859, + SPELL_BEAM_VILE = 40860, + SPELL_BEAM_WICKED = 40861, + SPELL_BEAM_SINFUL = 40827, + SPELL_ATTRACTION = 40871, + SPELL_SILENCING_SHRIEK = 40823, + SPELL_ENRAGE = 23537, + SPELL_SABER_LASH = 40810,//43267 + SPELL_SABER_LASH_IMM = 43690, + SPELL_TELEPORT_VISUAL = 40869, + SPELL_BERSERK = 45078 +}; uint32 PrismaticAuras[]= { @@ -142,12 +140,12 @@ public: instance->SetData(DATA_MOTHERSHAHRAZEVENT, IN_PROGRESS); DoZoneInCombat(); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); } void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) @@ -155,7 +153,7 @@ public: if (instance) instance->SetData(DATA_MOTHERSHAHRAZEVENT, DONE); - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } void TeleportPlayers() @@ -185,7 +183,7 @@ public: { Enraged = true; DoCast(me, SPELL_ENRAGE, true); - DoScriptText(SAY_ENRAGE, me); + Talk(SAY_ENRAGE); } //Randomly cast one beam. @@ -236,7 +234,7 @@ public: TeleportPlayers(); - DoScriptText(RAND(SAY_SPELL2, SAY_SPELL3), me); + Talk(SAY_SPELL); FatalAttractionExplodeTimer = 2000; FatalAttractionTimer = urand(40, 71) * 1000; } else FatalAttractionTimer -= diff; @@ -284,14 +282,14 @@ public: if (EnrageTimer <= diff) { DoCast(me, SPELL_BERSERK); - DoScriptText(SAY_ENRAGE, me); + Talk(SAY_ENRAGE); } else EnrageTimer -= diff; } //Random taunts if (RandomYellTimer <= diff) { - DoScriptText(RAND(SAY_TAUNT1, SAY_TAUNT2, SAY_TAUNT3), me); + Talk(SAY_TAUNT); RandomYellTimer = urand(60, 151) * 1000; } else RandomYellTimer -= diff; diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp index 5ab9dcab667..00ea405e109 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -28,64 +28,61 @@ EndScriptData */ #include "black_temple.h" #include "Spell.h" -//Sound'n'speech -//Suffering -#define SUFF_SAY_FREED -1564047 -#define SUFF_SAY_AGGRO -1564048 -#define SUFF_SAY_SLAY1 -1564049 -#define SUFF_SAY_SLAY2 -1564050 -#define SUFF_SAY_SLAY3 -1564051 -#define SUFF_SAY_RECAP -1564052 -#define SUFF_SAY_AFTER -1564053 -#define SUFF_EMOTE_ENRAGE -1564054 - -//Desire -#define DESI_SAY_FREED -1564055 -#define DESI_SAY_SLAY1 -1564056 -#define DESI_SAY_SLAY2 -1564057 -#define DESI_SAY_SLAY3 -1564058 -#define DESI_SAY_SPEC -1564059 -#define DESI_SAY_RECAP -1564060 -#define DESI_SAY_AFTER -1564061 - -//Anger -#define ANGER_SAY_FREED -1564062 -#define ANGER_SAY_FREED2 -1564063 -#define ANGER_SAY_SLAY1 -1564064 -#define ANGER_SAY_SLAY2 -1564065 -#define ANGER_SAY_SPEC -1564066 -#define ANGER_SAY_BEFORE -1564067 -#define ANGER_SAY_DEATH -1564068 - -//Spells -#define AURA_OF_SUFFERING 41292 -#define AURA_OF_SUFFERING_ARMOR 42017 // linked aura, need core support -#define ESSENCE_OF_SUFFERING_PASSIVE 41296 // periodic trigger 41294 -#define ESSENCE_OF_SUFFERING_PASSIVE2 41623 -#define SPELL_FIXATE_TARGET 41294 // dummy, select target -#define SPELL_FIXATE_TAUNT 41295 // force taunt -#define SPELL_ENRAGE 41305 -#define SPELL_SOUL_DRAIN 41303 - -#define AURA_OF_DESIRE 41350 -#define AURA_OF_DESIRE_DAMAGE 41352 -#define SPELL_RUNE_SHIELD 41431 -#define SPELL_DEADEN 41410 -#define SPELL_SOUL_SHOCK 41426 - -#define AURA_OF_ANGER 41337 -#define SPELL_SELF_SEETHE 41364 // force cast 41520 -#define SPELL_ENEMY_SEETHE 41520 -#define SPELL_SOUL_SCREAM 41545 -#define SPELL_SPITE_TARGET 41376 // cast 41377 after 6 sec -#define SPELL_SPITE_DAMAGE 41377 - -#define ENSLAVED_SOUL_PASSIVE 41535 -#define SPELL_SOUL_RELEASE 41542 -#define SPELL_SUBMERGE 37550 //dropout 'head' - -#define CREATURE_ENSLAVED_SOUL 23469 -#define NUMBER_ENSLAVED_SOUL 8 +enum ReliquaryOfSouls +{ + //Sound'n'speech + //Suffering + SUFF_SAY_FREED = 0, + SUFF_SAY_AGGRO = 1, + SUFF_SAY_SLAY = 2, + SUFF_SAY_RECAP = 3, + SUFF_SAY_AFTER = 4, + SUFF_EMOTE_ENRAGE = 5, + + //Desire + DESI_SAY_FREED = 0, + DESI_SAY_SLAY = 1, + DESI_SAY_SPEC = 2, + DESI_SAY_RECAP = 3, + DESI_SAY_AFTER = 4, + + //Anger + ANGER_SAY_FREED = 0, + ANGER_SAY_SLAY = 1, + ANGER_SAY_SPEC = 2, + ANGER_SAY_BEFORE = 3, + ANGER_SAY_DEATH = 4, + + //Spells + AURA_OF_SUFFERING = 41292, + AURA_OF_SUFFERING_ARMOR = 42017, // linked aura, need core support + ESSENCE_OF_SUFFERING_PASSIVE = 41296, // periodic trigger 41294 + ESSENCE_OF_SUFFERING_PASSIVE2 = 41623, + SPELL_FIXATE_TARGET = 41294, // dummy, select target + SPELL_FIXATE_TAUNT = 41295, // force taunt + SPELL_ENRAGE = 41305, + SPELL_SOUL_DRAIN = 41303, + + AURA_OF_DESIRE = 41350, + AURA_OF_DESIRE_DAMAGE = 41352, + SPELL_RUNE_SHIELD = 41431, + SPELL_DEADEN = 41410, + SPELL_SOUL_SHOCK = 41426, + + AURA_OF_ANGER = 41337, + SPELL_SELF_SEETHE = 41364, // force cast 41520 + SPELL_ENEMY_SEETHE = 41520, + SPELL_SOUL_SCREAM = 41545, + SPELL_SPITE_TARGET = 41376, // cast 41377 after 6 sec + SPELL_SPITE_DAMAGE = 41377, + + ENSLAVED_SOUL_PASSIVE = 41535, + SPELL_SOUL_RELEASE = 41542, + SPELL_SUBMERGE = 37550, //dropout 'head' + + CREATURE_ENSLAVED_SOUL = 23469, + NUMBER_ENSLAVED_SOUL = 8 +}; struct Position2d { @@ -337,11 +334,11 @@ public: case 5: if (Phase == 1) { - DoScriptText(SUFF_SAY_AFTER, Essence); + Essence->AI()->Talk(SUFF_SAY_AFTER); } else { - DoScriptText(DESI_SAY_AFTER, Essence); + Essence->AI()->Talk(DESI_SAY_AFTER); } Essence->DespawnOrUnsummon(); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); @@ -425,7 +422,7 @@ public: damage = 0; me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->Yell(SUFF_SAY_RECAP, LANG_UNIVERSAL, 0); - DoScriptText(SUFF_SAY_RECAP, me); + Talk(SUFF_SAY_RECAP); me->SetReactState(REACT_PASSIVE); } } @@ -434,7 +431,7 @@ public: { if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)) { - DoScriptText(SUFF_SAY_FREED, me); + Talk(SUFF_SAY_FREED); DoZoneInCombat(); DoCast(me, AURA_OF_SUFFERING, true); // linked aura need core support DoCast(me, ESSENCE_OF_SUFFERING_PASSIVE, true); @@ -445,7 +442,7 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SUFF_SAY_SLAY1, SUFF_SAY_SLAY2, SUFF_SAY_SLAY3), me); + Talk(SUFF_SAY_SLAY); } void CastFixate() @@ -483,7 +480,7 @@ public: FixateTimer = 5000; if (!(rand()%16)) { - DoScriptText(SUFF_SAY_AGGRO, me); + Talk(SUFF_SAY_AGGRO); } } else FixateTimer -= diff; } @@ -496,7 +493,7 @@ public: { DoCast(me, SPELL_ENRAGE); EnrageTimer = 60000; - DoScriptText(SUFF_EMOTE_ENRAGE, me); + Talk(SUFF_EMOTE_ENRAGE); } else EnrageTimer -= diff; if (SoulDrainTimer <= diff) @@ -545,7 +542,7 @@ public: { damage = 0; me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - DoScriptText(SUFF_SAY_RECAP, me); + Talk(SUFF_SAY_RECAP); me->SetReactState(REACT_PASSIVE); } else @@ -567,14 +564,14 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(DESI_SAY_FREED, me); + Talk(DESI_SAY_FREED); DoZoneInCombat(); DoCast(me, AURA_OF_DESIRE, true); } void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(DESI_SAY_SLAY1, DESI_SAY_SLAY2, DESI_SAY_SLAY3), me); + Talk(DESI_SAY_SLAY); } void UpdateAI(const uint32 diff) @@ -604,7 +601,7 @@ public: DeadenTimer = urand(25000, 35000); if (!(rand()%2)) { - DoScriptText(DESI_SAY_SPEC, me); + Talk(DESI_SAY_SPEC); } } else DeadenTimer -= diff; @@ -652,7 +649,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(ANGER_SAY_FREED, ANGER_SAY_FREED2), me); + Talk(ANGER_SAY_FREED); DoZoneInCombat(); DoCast(me, AURA_OF_ANGER, true); @@ -660,12 +657,12 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(ANGER_SAY_DEATH, me); + Talk(ANGER_SAY_DEATH); } void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(ANGER_SAY_SLAY1, ANGER_SAY_SLAY2), me); + Talk(ANGER_SAY_SLAY); } void UpdateAI(const uint32 diff) @@ -684,7 +681,7 @@ public: { if (me->getVictim()->GetGUID() != AggroTargetGUID) { - DoScriptText(ANGER_SAY_BEFORE, me); + Talk(ANGER_SAY_BEFORE); DoCast(me, SPELL_SELF_SEETHE, true); AggroTargetGUID = me->getVictim()->GetGUID(); } @@ -697,7 +694,7 @@ public: SoulScreamTimer = urand(9000, 11000); if (!(rand()%3)) { - DoScriptText(ANGER_SAY_SPEC, me); + Talk(ANGER_SAY_SPEC); } } else SoulScreamTimer -= diff; @@ -705,7 +702,7 @@ public: { DoCast(me, SPELL_SPITE_TARGET); SpiteTimer = 30000; - DoScriptText(ANGER_SAY_SPEC, me); + Talk(ANGER_SAY_SPEC); } else SpiteTimer -= diff; DoMeleeAttackIfReady(); diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp index 6e770249cf0..0180281cde3 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp @@ -29,12 +29,15 @@ EndScriptData */ #include "black_temple.h" #include "Player.h" -#define SAY_DEATH -1564013 -#define SAY_LOW_HEALTH -1564014 -// Ending cinematic text -#define SAY_FREE -1564015 -#define SAY_BROKEN_FREE_01 -1564016 -#define SAY_BROKEN_FREE_02 -1564017 +enum ShadeOfAkama +{ + SAY_DEATH = 0, + SAY_LOW_HEALTH = 1, + // Ending cinematic text + SAY_FREE = 2, + SAY_BROKEN_FREE_01 = 0, + SAY_BROKEN_FREE_02 = 1 +}; #define GOSSIP_ITEM "We are ready to fight alongside you, Akama" @@ -704,7 +707,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); EventBegun = false; ShadeHasDied = false; StartCombat = false; @@ -729,7 +732,7 @@ public: if (HealthBelowPct(15) && !HasYelledOnce) { - DoScriptText(SAY_LOW_HEALTH, me); + Talk(SAY_LOW_HEALTH); HasYelledOnce = true; } @@ -825,7 +828,7 @@ public: SummonBrokenTimer = 1; break; case 1: - DoScriptText(SAY_FREE, me); + Talk(SAY_FREE); ++EndingTalkCount; SoulRetrieveTimer = 25000; break; @@ -838,7 +841,7 @@ public: { if (!Yelled) { - DoScriptText(SAY_BROKEN_FREE_01, unit); + unit->AI()->Talk(SAY_BROKEN_FREE_01); Yelled = true; } unit->HandleEmoteCommand(EMOTE_ONESHOT_KNEEL); @@ -863,7 +866,7 @@ public: { for (std::list<uint64>::const_iterator itr = BrokenList.begin(); itr != BrokenList.end(); ++itr) if (Creature* unit = Unit::GetCreature((*me), *itr)) - unit->MonsterYell(SAY_BROKEN_FREE_02, LANG_UNIVERSAL, 0); + unit->AI()->Talk(SAY_BROKEN_FREE_02); } SoulRetrieveTimer = 0; break; diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp index 77d1c86951b..388052f0a5e 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp @@ -28,32 +28,35 @@ EndScriptData */ #include "PassiveAI.h" #include "black_temple.h" -#define EMOTE_NEW_TARGET -1564010 -#define EMOTE_PUNCH_GROUND -1564011 //DoScriptText(EMOTE_PUNCH_GROUND, me); -#define EMOTE_GROUND_CRACK -1564012 - -//Spells -#define SPELL_MOLTEN_PUNCH 40126 -#define SPELL_HATEFUL_STRIKE 41926 -#define SPELL_MOLTEN_FLAME 40980 -#define SPELL_VOLCANIC_ERUPTION 40117 -#define SPELL_VOLCANIC_SUMMON 40276 -#define SPELL_BERSERK 45078 - -#define CREATURE_VOLCANO 23085 -#define CREATURE_STALKER 23095 - -#define PHASE_STRIKE 1 -#define PHASE_CHASE 2 - -#define EVENT_BERSERK 1 -#define EVENT_SWITCH_PHASE 2 -#define EVENT_FLAME 3 -#define EVENT_VOLCANO 4 -#define EVENT_SWITCH_TARGET 5 -#define EVENT_HATEFUL_STRIKE 6 - -#define GCD_CAST 1 +enum Supremus +{ + EMOTE_NEW_TARGET = 0, + EMOTE_PUNCH_GROUND = 1, //Talk(EMOTE_PUNCH_GROUND); + EMOTE_GROUND_CRACK = 2, + + //Spells + SPELL_MOLTEN_PUNCH = 40126, + SPELL_HATEFUL_STRIKE = 41926, + SPELL_MOLTEN_FLAME = 40980, + SPELL_VOLCANIC_ERUPTION = 40117, + SPELL_VOLCANIC_SUMMON = 40276, + SPELL_BERSERK = 45078, + + CREATURE_VOLCANO = 23085, + CREATURE_STALKER = 23095, + + PHASE_STRIKE = 1, + PHASE_CHASE = 2, + + EVENT_BERSERK = 1, + EVENT_SWITCH_PHASE = 2, + EVENT_FLAME = 3, + EVENT_VOLCANO = 4, + EVENT_SWITCH_TARGET = 5, + EVENT_HATEFUL_STRIKE = 6, + + GCD_CAST = 1 +}; class molten_flame : public CreatureScript { @@ -230,7 +233,7 @@ public: { DoResetThreat(); me->AddThreat(target, 5000000.0f); - DoScriptText(EMOTE_NEW_TARGET, me); + Talk(EMOTE_NEW_TARGET); } events.ScheduleEvent(EVENT_SWITCH_TARGET, 10000, 0, PHASE_CHASE); break; @@ -242,7 +245,7 @@ public: { //DoCast(target, SPELL_VOLCANIC_SUMMON);//movement bugged me->SummonCreature(CREATURE_VOLCANO, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000); - DoScriptText(EMOTE_GROUND_CRACK, me); + Talk(EMOTE_GROUND_CRACK); events.DelayEvents(1500, GCD_CAST); } events.ScheduleEvent(EVENT_VOLCANO, 10000, GCD_CAST, PHASE_CHASE); diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp index 9a200d07d2b..ce17ac48cf5 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp @@ -27,30 +27,29 @@ EndScriptData */ #include "ScriptedCreature.h" #include "black_temple.h" - //Speech'n'sound -#define SAY_INTRO -1564037 -#define SAY_AGGRO -1564038 -#define SAY_SLAY1 -1564039 -#define SAY_SLAY2 -1564040 -#define SAY_SPELL1 -1564041 -#define SAY_SPELL2 -1564042 -#define SAY_SPECIAL1 -1564043 -#define SAY_SPECIAL2 -1564044 -#define SAY_ENRAGE -1564045 -#define SAY_DEATH -1564046 - -//Spells -#define SPELL_INCINERATE 40239 -#define SPELL_CRUSHING_SHADOWS 40243 -#define SPELL_SHADOWBOLT 40185 -#define SPELL_PASSIVE_SHADOWFORM 40326 -#define SPELL_SHADOW_OF_DEATH 40251 -#define SPELL_BERSERK 45078 - -#define SPELL_ATROPHY 40327 // Shadowy Constructs use this when they get within melee range of a player - -#define CREATURE_DOOM_BLOSSOM 23123 -#define CREATURE_SHADOWY_CONSTRUCT 23111 +enum DoomBlossom +{ + //Speech'n'sound + SAY_INTRO = 0, + SAY_AGGRO = 1, + SAY_SLAY = 2, + SAY_SPELL = 3, + SAY_SPECIAL = 4, + SAY_ENRAGE = 5, + SAY_DEATH = 6, + + //Spells + SPELL_INCINERATE = 40239, + SPELL_CRUSHING_SHADOWS = 40243, + SPELL_SHADOWBOLT = 40185, + SPELL_PASSIVE_SHADOWFORM = 40326, + SPELL_SHADOW_OF_DEATH = 40251, + SPELL_BERSERK = 45078, + SPELL_ATROPHY = 40327, // Shadowy Constructs use this when they get within melee range of a player + + CREATURE_DOOM_BLOSSOM = 23123, + CREATURE_SHADOWY_CONSTRUCT = 23111 +}; class mob_doom_blossom : public CreatureScript { @@ -278,7 +277,7 @@ public: me->GetMotionMaster()->Clear(false); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_TALK); AggroTargetGUID = who->GetGUID(); Intro = true; @@ -290,7 +289,7 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) @@ -298,7 +297,7 @@ public: if (instance) instance->SetData(DATA_TERONGOREFIENDEVENT, DONE); - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } float CalculateRandomLocation(float Loc, uint32 radius) @@ -387,7 +386,7 @@ public: { me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); Done = true; if (AggroTargetGUID) @@ -461,7 +460,7 @@ public: if (target) { - DoScriptText(RAND(SAY_SPECIAL1, SAY_SPECIAL2), me); + Talk(SAY_SPECIAL); DoCast(target, SPELL_INCINERATE); IncinerateTimer = urand(20, 51) * 1000; } @@ -494,7 +493,7 @@ public: if (RandomYellTimer <= diff) { - DoScriptText(RAND(SAY_SPELL1, SAY_SPELL2), me); + Talk(SAY_SPELL); RandomYellTimer = urand(50, 101) * 1000; } else RandomYellTimer -= diff; @@ -503,7 +502,7 @@ public: if (EnrageTimer <= diff) { DoCast(me, SPELL_BERSERK); - DoScriptText(SAY_ENRAGE, me); + Talk(SAY_ENRAGE); } else EnrageTimer -= diff; } diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp index 9924bf1ffab..f56d55c36e3 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp @@ -31,16 +31,12 @@ EndScriptData */ enum eEnums { - SAY_AGGRO = -1564000, - SAY_NEEDLE1 = -1564001, - SAY_NEEDLE2 = -1564002, - SAY_SLAY1 = -1564003, - SAY_SLAY2 = -1564004, - SAY_SPECIAL1 = -1564005, - SAY_SPECIAL2 = -1564006, - SAY_ENRAGE1 = -1564007, //is this text actually in use? - SAY_ENRAGE2 = -1564008, - SAY_DEATH = -1564009, + SAY_AGGRO = 0, + SAY_NEEDLE = 1, + SAY_SLAY = 2, + SAY_SPECIAL = 3, + SAY_ENRAGE = 4, + SAY_DEATH = 5, //Spells SPELL_NEEDLE_SPINE = 39992, @@ -97,7 +93,7 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(urand(0, 1) ? SAY_SLAY1 : SAY_SLAY2, me); + Talk(SAY_SLAY); events.DelayEvents(5000, GCD_YELL); } @@ -106,7 +102,7 @@ public: if (instance) instance->SetData(DATA_HIGHWARLORDNAJENTUSEVENT, DONE); - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } void SpellHit(Unit* /*caster*/, const SpellInfo* spell) @@ -124,7 +120,7 @@ public: if (instance) instance->SetData(DATA_HIGHWARLORDNAJENTUSEVENT, IN_PROGRESS); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); DoZoneInCombat(); events.ScheduleEvent(EVENT_BERSERK, 480000, GCD_CAST); events.ScheduleEvent(EVENT_YELL, 45000 + (rand()%76)*1000, GCD_YELL); @@ -166,7 +162,7 @@ public: ResetTimer(45000); break; case EVENT_BERSERK: - DoScriptText(SAY_ENRAGE2, me); + Talk(SAY_ENRAGE); DoCast(me, SPELL_BERSERK, true); events.DelayEvents(15000, GCD_YELL); break; @@ -180,7 +176,7 @@ public: SpineTargetGUID = target->GetGUID(); //must let target summon, otherwise you cannot click the spine target->SummonGameObject(GOBJECT_SPINE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), me->GetOrientation(), 0, 0, 0, 0, 30); - DoScriptText(urand(0, 1) ? SAY_NEEDLE1 : SAY_NEEDLE2, me); + Talk(SAY_NEEDLE); events.DelayEvents(1500, GCD_CAST); events.DelayEvents(15000, GCD_YELL); } @@ -199,7 +195,7 @@ public: return; } case EVENT_YELL: - DoScriptText(RAND(SAY_SPECIAL1, SAY_SPECIAL2), me); + Talk(SAY_SPECIAL); events.ScheduleEvent(EVENT_YELL, urand(25000, 100000), GCD_YELL); events.DelayEvents(15000, GCD_YELL); break; diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp index 673d4bcc96f..5a9b6e5a94e 100644 --- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp @@ -29,35 +29,69 @@ EndScriptData */ #include "SpellAuraEffects.h" #include "black_temple.h" -//Speech'n'Sounds -#define SAY_GATH_SLAY -1564085 -#define SAY_GATH_SLAY_COMNT -1564089 -#define SAY_GATH_DEATH -1564093 -#define SAY_GATH_SPECIAL1 -1564077 -#define SAY_GATH_SPECIAL2 -1564081 - -#define SAY_VERA_SLAY -1564086 -#define SAY_VERA_COMNT -1564089 //signed for 22949 -#define SAY_VERA_DEATH -1564094 -#define SAY_VERA_SPECIAL1 -1564078 -#define SAY_VERA_SPECIAL2 -1564082 - -#define SAY_MALA_SLAY -1564087 -#define SAY_MALA_COMNT -1564090 -#define SAY_MALA_DEATH -1564095 -#define SAY_MALA_SPECIAL1 -1564079 -#define SAY_MALA_SPECIAL2 -1564083 - -#define SAY_ZERE_SLAY -1564088 -#define SAY_ZERE_COMNT -1564091 -#define SAY_ZERE_DEATH -1564096 -#define SAY_ZERE_SPECIAL1 -1564080 -#define SAY_ZERE_SPECIAL2 -1564084 +enum IllidariCouncil +{ + //Speech'n'Sounds + SAY_GATH_SPECIAL1 = 2, + SAY_GATH_SPECIAL2 = 3, + SAY_GATH_SLAY = 4, + SAY_GATH_COMNT = 5, + SAY_GATH_DEATH = 6, + + SAY_MALA_SPECIAL1 = 2, + SAY_MALA_SPECIAL2 = 3, + SAY_MALA_SLAY = 4, + SAY_MALA_COMNT = 5, + SAY_MALA_DEATH = 6, + + SAY_ZERE_SPECIAL1 = 2, + SAY_ZERE_SPECIAL2 = 3, + SAY_ZERE_SLAY = 4, + SAY_ZERE_COMNT = 5, + SAY_ZERE_DEATH = 6, + + SAY_VERA_SPECIAL1 = 2, + SAY_VERA_SPECIAL2 = 3, + SAY_VERA_SLAY = 4, + SAY_VERA_COMNT = 5, + SAY_VERA_DEATH = 6, + + AKAMAID = 23089, + + // High Nethermancer Zerevor's spells + SPELL_FLAMESTRIKE = 41481, + SPELL_BLIZZARD = 41482, + SPELL_ARCANE_BOLT = 41483, + SPELL_ARCANE_EXPLOSION = 41524, + SPELL_DAMPEN_MAGIC = 41478, + + // Lady Malande's spells + SPELL_EMPOWERED_SMITE = 41471, + SPELL_CIRCLE_OF_HEALING = 41455, + SPELL_REFLECTIVE_SHIELD = 41475, + SPELL_REFLECTIVE_SHIELD_T = 33619, + SPELL_DIVINE_WRATH = 41472, + SPELL_HEAL_VISUAL = 24171, + + // Gathios the Shatterer's spells + SPELL_BLESS_PROTECTION = 41450, + SPELL_BLESS_SPELLWARD = 41451, + SPELL_CONSECRATION = 41541, + SPELL_HAMMER_OF_JUSTICE = 41468, + SPELL_SEAL_OF_COMMAND = 41469, + SPELL_SEAL_OF_BLOOD = 41459, + SPELL_CHROMATIC_AURA = 41453, + SPELL_DEVOTION_AURA = 41452, + + // Veras Darkshadow's spells + SPELL_DEADLY_POISON = 41485, + SPELL_ENVENOM = 41487, + SPELL_VANISH = 41479, + SPELL_BERSERK = 45078 +}; #define ERROR_INST_DATA "SD2 ERROR: Instance Data for Black Temple not set properly; Illidari Council event will not function properly." -#define AKAMAID 23089 - struct CouncilYells { int32 entry; @@ -66,53 +100,21 @@ struct CouncilYells static CouncilYells CouncilAggro[]= { - {-1564069, 5000}, // Gathios - {-1564070, 5500}, // Veras - {-1564071, 5000}, // Malande - {-1564072, 0}, // Zerevor + {0, 5000}, // Gathios + {0, 5500}, // Veras + {0, 5000}, // Malande + {0, 0}, // Zerevor }; // Need to get proper timers for this later static CouncilYells CouncilEnrage[]= { - {-1564073, 2000}, // Gathios - {-1564074, 6000}, // Veras - {-1564075, 5000}, // Malande - {-1564076, 0}, // Zerevor + {1, 2000}, // Gathios + {1, 6000}, // Veras + {1, 5000}, // Malande + {1, 0}, // Zerevor }; -// High Nethermancer Zerevor's spells -#define SPELL_FLAMESTRIKE 41481 -#define SPELL_BLIZZARD 41482 -#define SPELL_ARCANE_BOLT 41483 -#define SPELL_ARCANE_EXPLOSION 41524 -#define SPELL_DAMPEN_MAGIC 41478 - -// Lady Malande's spells -#define SPELL_EMPOWERED_SMITE 41471 -#define SPELL_CIRCLE_OF_HEALING 41455 -#define SPELL_REFLECTIVE_SHIELD 41475 -#define SPELL_REFLECTIVE_SHIELD_T 33619 -#define SPELL_DIVINE_WRATH 41472 -#define SPELL_HEAL_VISUAL 24171 - -// Gathios the Shatterer's spells -#define SPELL_BLESS_PROTECTION 41450 -#define SPELL_BLESS_SPELLWARD 41451 -#define SPELL_CONSECRATION 41541 -#define SPELL_HAMMER_OF_JUSTICE 41468 -#define SPELL_SEAL_OF_COMMAND 41469 -#define SPELL_SEAL_OF_BLOOD 41459 -#define SPELL_CHROMATIC_AURA 41453 -#define SPELL_DEVOTION_AURA 41452 - -// Veras Darkshadow's spells -#define SPELL_DEADLY_POISON 41485 -#define SPELL_ENVENOM 41487 -#define SPELL_VANISH 41479 - -#define SPELL_BERSERK 45078 - class mob_blood_elf_council_voice_trigger : public CreatureScript { public: @@ -179,9 +181,9 @@ public: { if (AggroYellTimer <= diff) { - if (Unit* pMember = Unit::GetUnit(*me, Council[YellCounter])) + if (Creature* pMember = Creature::GetCreature(*me, Council[YellCounter])) { - DoScriptText(CouncilAggro[YellCounter].entry, pMember); + pMember->AI()->Talk(CouncilAggro[YellCounter].entry); AggroYellTimer = CouncilAggro[YellCounter].timer; } ++YellCounter; @@ -194,10 +196,10 @@ public: { if (EnrageTimer <= diff) { - if (Unit* pMember = Unit::GetUnit(*me, Council[YellCounter])) + if (Creature* pMember = Creature::GetCreature(*me, Council[YellCounter])) { pMember->CastSpell(pMember, SPELL_BERSERK, true); - DoScriptText(CouncilEnrage[YellCounter].entry, pMember); + pMember->AI()->Talk(CouncilEnrage[YellCounter].entry); EnrageTimer = CouncilEnrage[YellCounter].timer; } ++YellCounter; @@ -497,12 +499,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(SAY_GATH_SLAY, me); + Talk(SAY_GATH_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_GATH_DEATH, me); + Talk(SAY_GATH_DEATH); } Unit* SelectCouncilMember() @@ -631,12 +633,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(SAY_ZERE_SLAY, me); + Talk(SAY_ZERE_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_ZERE_DEATH, me); + Talk(SAY_ZERE_DEATH); } void UpdateAI(const uint32 diff) @@ -731,12 +733,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(SAY_MALA_SLAY, me); + Talk(SAY_MALA_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_MALA_DEATH, me); + Talk(SAY_MALA_DEATH); } void UpdateAI(const uint32 diff) @@ -817,12 +819,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(SAY_VERA_SLAY, me); + Talk(SAY_VERA_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_VERA_DEATH, me); + Talk(SAY_VERA_DEATH); } void UpdateAI(const uint32 diff) diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp index a5737714e71..5a26ffd9acd 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp @@ -28,64 +28,62 @@ EndScriptData */ #include "serpent_shrine.h" #include "ScriptedEscortAI.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 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_MULTISHOT 38366 -#define SPELL_SUMMON_FATHOM_LURKER 38433 -#define SPELL_SUMMON_FATHOM_SPOREBAT 38431 -#define SPELL_PET_ENRAGE 19574 - -//Tidalvess spells -#define SPELL_FROST_SHOCK 38234 -#define SPELL_SPITFIRE_TOTEM 38236 -#define SPELL_POISON_CLEANSING_TOTEM 38306 -// Spell obsolete -// #define SPELL_POISON_CLEANSING_EFFECT 8167 -#define SPELL_EARTHBIND_TOTEM 38304 -#define SPELL_EARTHBIND_TOTEM_EFFECT 6474 -#define SPELL_WINDFURY_WEAPON 38184 - -//Caribdis Spells -#define SPELL_WATER_BOLT_VOLLEY 38335 -#define SPELL_TIDAL_SURGE 38358 -#define SPELL_TIDAL_SURGE_FREEZE 38357 -#define SPELL_HEAL 38330 -#define SPELL_SUMMON_CYCLONE 38337 -#define SPELL_CYCLONE_CYCLONE 29538 - -//Yells and Quotes -#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 -#define SOUND_MISC 11283 - -//Summoned Unit GUIDs -#define CREATURE_CYCLONE 22104 -#define CREATURE_FATHOM_SPOREBAT 22120 -#define CREATURE_FATHOM_LURKER 22119 -#define CREATURE_SPITFIRE_TOTEM 22091 -#define CREATURE_EARTHBIND_TOTEM 22486 -#define CREATURE_POISON_CLEANSING_TOTEM 22487 +enum FathomlordKarathress +{ + SAY_AGGRO = 0, + SAY_GAIN_BLESSING = 1, + SAY_GAIN_ABILITY1 = 2, + SAY_GAIN_ABILITY2 = 3, + SAY_GAIN_ABILITY3 = 4, + SAY_SLAY = 5, + SAY_DEATH = 6, + + //Karathress spells + SPELL_CATACLYSMIC_BOLT = 38441, + SPELL_POWER_OF_SHARKKIS = 38455, + SPELL_POWER_OF_TIDALVESS = 38452, + SPELL_POWER_OF_CARIBDIS = 38451, + SPELL_ENRAGE = 24318, + SPELL_SEAR_NOVA = 38445, + SPELL_BLESSING_OF_THE_TIDES = 38449, + + //Sharkkis spells + SPELL_LEECHING_THROW = 29436, + SPELL_THE_BEAST_WITHIN = 38373, + SPELL_MULTISHOT = 38366, + SPELL_SUMMON_FATHOM_LURKER = 38433, + SPELL_SUMMON_FATHOM_SPOREBAT = 38431, + SPELL_PET_ENRAGE = 19574, + + //Tidalvess spells + SPELL_FROST_SHOCK = 38234, + SPELL_SPITFIRE_TOTEM = 38236, + SPELL_POISON_CLEANSING_TOTEM = 38306, + // Spell obsolete + SPELL_EARTHBIND_TOTEM = 38304, + SPELL_EARTHBIND_TOTEM_EFFECT = 6474, + SPELL_WINDFURY_WEAPON = 38184, + + //Caribdis Spells + SPELL_WATER_BOLT_VOLLEY = 38335, + SPELL_TIDAL_SURGE = 38358, + SPELL_TIDAL_SURGE_FREEZE = 38357, + SPELL_HEAL = 38330, + SPELL_SUMMON_CYCLONE = 38337, + SPELL_CYCLONE_CYCLONE = 29538, + + //Yells and Quotes + SOUND_GAIN_BLESSING_OF_TIDES = 11278, + SOUND_MISC = 11283, + + //Summoned Unit GUIDs + CREATURE_CYCLONE = 22104, + CREATURE_FATHOM_SPOREBAT = 22120, + CREATURE_FATHOM_LURKER = 22119, + CREATURE_SPITFIRE_TOTEM = 22091, + CREATURE_EARTHBIND_TOTEM = 22486, + CREATURE_POISON_CLEANSING_TOTEM = 22487, +}; //entry and position for Seer Olum #define SEER_OLUM 22820 @@ -94,6 +92,9 @@ EndScriptData */ #define OLUM_Z -7.54773f #define OLUM_O 0.401581f +#define SAY_GAIN_BLESSING_OF_TIDES "Your overconfidence will be your undoing! Guards, lend me your strength!" +#define SAY_MISC "Alana be'lendor!" //don't know what use this + #define MAX_ADVISORS 3 //Fathom-Lord Karathress AI class boss_fathomlord_karathress : public CreatureScript @@ -160,19 +161,19 @@ public: void EventSharkkisDeath() { - DoScriptText(SAY_GAIN_ABILITY1, me); + Talk(SAY_GAIN_ABILITY1); DoCast(me, SPELL_POWER_OF_SHARKKIS); } void EventTidalvessDeath() { - DoScriptText(SAY_GAIN_ABILITY2, me); + Talk(SAY_GAIN_ABILITY2); DoCast(me, SPELL_POWER_OF_TIDALVESS); } void EventCaribdisDeath() { - DoScriptText(SAY_GAIN_ABILITY3, me); + Talk(SAY_GAIN_ABILITY3); DoCast(me, SPELL_POWER_OF_CARIBDIS); } @@ -193,7 +194,7 @@ public: GetAdvisors(); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); DoZoneInCombat(); instance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); @@ -202,12 +203,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(DATA_FATHOMLORDKARATHRESSEVENT, DONE); diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp index bad10752db3..c8589cc05d8 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp @@ -27,43 +27,45 @@ EndScriptData */ #include "ScriptedCreature.h" #include "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 -#define MODEL_CLEAN 20162 - -#define SPELL_WATER_TOMB 38235 -#define SPELL_MARK_OF_HYDROSS1 38215 -#define SPELL_MARK_OF_HYDROSS2 38216 -#define SPELL_MARK_OF_HYDROSS3 38217 -#define SPELL_MARK_OF_HYDROSS4 38218 -#define SPELL_MARK_OF_HYDROSS5 38231 -#define SPELL_MARK_OF_HYDROSS6 40584 -#define SPELL_MARK_OF_CORRUPTION1 38219 -#define SPELL_MARK_OF_CORRUPTION2 38220 -#define SPELL_MARK_OF_CORRUPTION3 38221 -#define SPELL_MARK_OF_CORRUPTION4 38222 -#define SPELL_MARK_OF_CORRUPTION5 38230 -#define SPELL_MARK_OF_CORRUPTION6 40583 -#define SPELL_VILE_SLUDGE 38246 -#define SPELL_ENRAGE 27680 //this spell need verification -#define SPELL_SUMMON_WATER_ELEMENT 36459 //not in use yet(in use ever?) -#define SPELL_ELEMENTAL_SPAWNIN 25035 -#define SPELL_BLUE_BEAM 40227 //channeled Hydross Beam Helper (not in use yet) - -#define ENTRY_PURE_SPAWN 22035 -#define ENTRY_TAINTED_SPAWN 22036 -#define ENTRY_BEAM_DUMMY 21934 +enum HydrossTheUnstable +{ + SAY_AGGRO = 0, + SAY_SWITCH_TO_CLEAN = 1, + SAY_CLEAN_SLAY = 2, + SAY_CLEAN_DEATH = 3, + SAY_SWITCH_TO_CORRUPT = 4, + SAY_CORRUPT_SLAY = 5, + SAY_CORRUPT_DEATH = 6, + + SWITCH_RADIUS = 18, + + MODEL_CORRUPT = 20609, + MODEL_CLEAN = 20162, + + SPELL_WATER_TOMB = 38235, + SPELL_MARK_OF_HYDROSS1 = 38215, + SPELL_MARK_OF_HYDROSS2 = 38216, + SPELL_MARK_OF_HYDROSS3 = 38217, + SPELL_MARK_OF_HYDROSS4 = 38218, + SPELL_MARK_OF_HYDROSS5 = 38231, + SPELL_MARK_OF_HYDROSS6 = 40584, + SPELL_MARK_OF_CORRUPTION1 = 38219, + SPELL_MARK_OF_CORRUPTION2 = 38220, + SPELL_MARK_OF_CORRUPTION3 = 38221, + SPELL_MARK_OF_CORRUPTION4 = 38222, + SPELL_MARK_OF_CORRUPTION5 = 38230, + SPELL_MARK_OF_CORRUPTION6 = 40583, + SPELL_VILE_SLUDGE = 38246, + SPELL_ENRAGE = 27680, //this spell need verification + SPELL_SUMMON_WATER_ELEMENT = 36459, //not in use yet(in use ever?) + SPELL_ELEMENTAL_SPAWNIN = 25035, + SPELL_BLUE_BEAM = 40227, //channeled Hydross Beam Helper (not in use yet) + + ENTRY_PURE_SPAWN = 22035, + ENTRY_TAINTED_SPAWN = 22036, + ENTRY_BEAM_DUMMY = 21934 +}; + #define HYDROSS_X -239.439f #define HYDROSS_Y -363.481f @@ -169,7 +171,7 @@ public: } void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (instance) instance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, IN_PROGRESS); @@ -177,10 +179,7 @@ public: void KilledUnit(Unit* /*victim*/) { - if (CorruptedForm) - DoScriptText(RAND(SAY_CORRUPT_SLAY1, SAY_CORRUPT_SLAY2), me); - else - DoScriptText(RAND(SAY_CLEAN_SLAY1, SAY_CLEAN_SLAY2), me); + Talk(CorruptedForm ? SAY_CORRUPT_SLAY : SAY_CLEAN_SLAY); } void JustSummoned(Creature* summoned) @@ -206,10 +205,7 @@ public: void JustDied(Unit* /*killer*/) { - if (CorruptedForm) - DoScriptText(SAY_CORRUPT_DEATH, me); - else - DoScriptText(SAY_CLEAN_DEATH, me); + Talk(CorruptedForm ? SAY_CORRUPT_DEATH : SAY_CLEAN_DEATH); if (instance) instance->SetData(DATA_HYDROSSTHEUNSTABLEEVENT, DONE); @@ -293,7 +289,7 @@ public: CorruptedForm = false; MarkOfHydross_Count = 0; - DoScriptText(SAY_SWITCH_TO_CLEAN, me); + Talk(SAY_SWITCH_TO_CLEAN); DoResetThreat(); SummonBeams(); @@ -377,7 +373,7 @@ public: MarkOfCorruption_Count = 0; CorruptedForm = true; - DoScriptText(SAY_SWITCH_TO_CORRUPT, me); + Talk(SAY_SWITCH_TO_CORRUPT); DoResetThreat(); DeSummonBeams(); diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp index a934d03349c..6c4c51b03fe 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp @@ -30,48 +30,47 @@ EndScriptData */ #include "Player.h" #include "WorldSession.h" -#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_SURGE 38044 -#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.134f -#define MIDDLE_Y -923.65f -#define MIDDLE_Z 42.9f - -#define SPOREBAT_X 30.977156f +enum LadyVashj +{ + SAY_INTRO = 0, + SAY_AGGRO = 1, + SAY_PHASE1 = 2, + SAY_PHASE2 = 3, + SAY_PHASE3 = 4, + SAY_BOWSHOT = 5, + SAY_SLAY = 6, + SAY_DEATH = 7, + + SPELL_SURGE = 38044, + SPELL_MULTI_SHOT = 38310, + SPELL_SHOCK_BLAST = 38509, + SPELL_ENTANGLE = 38316, + SPELL_STATIC_CHARGE_TRIGGER = 38280, + SPELL_FORKED_LIGHTNING = 40088, + SPELL_SHOOT = 40873, + SPELL_POISON_BOLT = 40095, + SPELL_TOXIC_SPORES = 38575, + SPELL_MAGIC_BARRIER = 38112, + + SHIED_GENERATOR_CHANNEL = 19870, + ENCHANTED_ELEMENTAL = 21958, + TAINTED_ELEMENTAL = 22009, + COILFANG_STRIDER = 22056, + COILFANG_ELITE = 22055, + TOXIC_SPOREBAT = 22140, + TOXIC_SPORES_TRIGGER = 22207 +}; + +#define MIDDLE_X 30.134f +#define MIDDLE_Y -923.65f +#define MIDDLE_Z 42.9f + +#define SPOREBAT_X 30.977156f #define SPOREBAT_Y -925.297761f #define SPOREBAT_Z 77.176567f #define SPOREBAT_O 5.223932f -#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 TOXIC_SPORES_TRIGGER 22207 + #define TEXT_NOT_INITIALIZED "Instance script not initialized" #define TEXT_ALREADY_DEACTIVATED "Already deactivated" @@ -226,12 +225,12 @@ public: } void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(DATA_LADYVASHJEVENT, DONE); @@ -239,7 +238,7 @@ public: void StartEvent() { - DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3, SAY_AGGRO4), me); + Talk(SAY_AGGRO); Phase = 1; @@ -269,7 +268,7 @@ public: if (!Intro) { Intro = true; - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); } if (!CanAttack) return; @@ -307,7 +306,7 @@ public: } if (rand()%3) { - DoScriptText(RAND(SAY_BOWSHOT1, SAY_BOWSHOT2), me); + Talk(SAY_BOWSHOT); } } @@ -397,7 +396,7 @@ public: if (Creature* creature = me->SummonCreature(SHIED_GENERATOR_CHANNEL, ShieldGeneratorChannelPos[i][0], ShieldGeneratorChannelPos[i][1], ShieldGeneratorChannelPos[i][2], ShieldGeneratorChannelPos[i][3], TEMPSUMMON_CORPSE_DESPAWN, 0)) ShieldGeneratorChannel[i] = creature->GetGUID(); - DoScriptText(SAY_PHASE2, me); + Talk(SAY_PHASE2); } } // Phase 3 @@ -527,7 +526,7 @@ public: me->RemoveAurasDueToSpell(SPELL_MAGIC_BARRIER); - DoScriptText(SAY_PHASE3, me); + Talk(SAY_PHASE3); Phase = 3; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp index 1221e59b96e..6fe1e86551a 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp @@ -28,47 +28,46 @@ EndScriptData */ #include "serpent_shrine.h" #include "Player.h" -// --- Spells used by Leotheras The Blind -#define SPELL_WHIRLWIND 37640 -#define SPELL_CHAOS_BLAST 37674 -#define SPELL_BERSERK 26662 -#define SPELL_INSIDIOUS_WHISPER 37676 -#define SPELL_DUAL_WIELD 42459 - -// --- Spells used in banish phase --- -#define BANISH_BEAM 38909 -#define AURA_BANISH 37833 - -// --- Spells used by Greyheart Spellbinders -#define SPELL_EARTHSHOCK 39076 -#define SPELL_MINDBLAST 37531 - -// --- Spells used by Inner Demons and Creature ID -#define INNER_DEMON_ID 21857 -#define AURA_DEMONIC_ALIGNMENT 37713 -#define SPELL_SHADOWBOLT 39309 -#define SPELL_SOUL_LINK 38007 -#define SPELL_CONSUMING_MADNESS 37749 //not supported by core yet - -//Misc. -#define MODEL_DEMON 20125 -#define MODEL_NIGHTELF 20514 -#define DEMON_FORM 21875 -#define MOB_SPELLBINDER 21806 -#define INNER_DEMON_VICTIM 1 - -#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 +enum LeotherasTheBlind +{ + // Spells used by Leotheras The Blind + SPELL_WHIRLWIND = 37640, + SPELL_CHAOS_BLAST = 37674, + SPELL_BERSERK = 26662, + SPELL_INSIDIOUS_WHISPER = 37676, + SPELL_DUAL_WIELD = 42459, + + // Spells used in banish phase + BANISH_BEAM = 38909, + AURA_BANISH = 37833, + + // Spells used by Greyheart Spellbinders + SPELL_EARTHSHOCK = 39076, + SPELL_MINDBLAST = 37531, + + // Spells used by Inner Demons and Creature ID + INNER_DEMON_ID = 21857, + AURA_DEMONIC_ALIGNMENT = 37713, + SPELL_SHADOWBOLT = 39309, + SPELL_SOUL_LINK = 38007, + SPELL_CONSUMING_MADNESS = 37749, + + //Misc. + MODEL_DEMON = 20125, + MODEL_NIGHTELF = 20514, + DEMON_FORM = 21875, + MOB_SPELLBINDER = 21806, + INNER_DEMON_VICTIM = 1, + + SAY_AGGRO = 0, + SAY_SWITCH_TO_DEMON = 1, + SAY_INNER_DEMONS = 2, + SAY_DEMON_SLAY = 3, + SAY_NIGHTELF_SLAY = 4, + SAY_FINAL_FORM = 5, + SAY_FREE = 6, + SAY_DEATH = 7 +}; class mob_inner_demon : public CreatureScript { @@ -289,7 +288,7 @@ public: void StartEvent() { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (instance) instance->SetData(DATA_LEOTHERASTHEBLINDEVENT, IN_PROGRESS); } @@ -388,20 +387,13 @@ public: { if (victim->GetTypeId() != TYPEID_PLAYER) return; - - if (DemonForm) - { - DoScriptText(RAND(SAY_DEMON_SLAY1, SAY_DEMON_SLAY2, SAY_DEMON_SLAY3), me); - } - else - { - DoScriptText(RAND(SAY_NIGHTELF_SLAY1, SAY_NIGHTELF_SLAY2, SAY_NIGHTELF_SLAY3), me); - } + + Talk(DemonForm ? SAY_DEMON_SLAY : SAY_NIGHTELF_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); //despawn copy if (Demon) @@ -493,7 +485,7 @@ public: //switch to demon form me->RemoveAurasDueToSpell(SPELL_WHIRLWIND, 0); me->SetDisplayId(MODEL_DEMON); - DoScriptText(SAY_SWITCH_TO_DEMON, me); + Talk(SAY_SWITCH_TO_DEMON); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID+1, 0); DemonForm = true; @@ -556,7 +548,7 @@ public: } } } - DoScriptText(SAY_INNER_DEMONS, me); + Talk(SAY_INNER_DEMONS); InnerDemons_Timer = 999999; } else InnerDemons_Timer -= diff; @@ -595,7 +587,7 @@ public: IsFinalForm = true; DemonForm = false; - DoScriptText(SAY_FINAL_FORM, me); + Talk(SAY_FINAL_FORM); me->SetDisplayId(MODEL_NIGHTELF); me->LoadEquipment(me->GetEquipmentId()); } @@ -629,7 +621,7 @@ public: void StartEvent() { - DoScriptText(SAY_FREE, me); + Talk(SAY_FREE); } void KilledUnit(Unit* victim) @@ -637,7 +629,7 @@ public: if (victim->GetTypeId() != TYPEID_PLAYER) return; - DoScriptText(RAND(SAY_DEMON_SLAY1, SAY_DEMON_SLAY2, SAY_DEMON_SLAY3), me); + Talk(SAY_DEMON_SLAY); } void JustDied(Unit* /*killer*/) diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp index 32f03d4d1f9..9c7fdadc18a 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp @@ -30,37 +30,33 @@ EndScriptData */ enum eEnums { // Yell - SAY_AGGRO = -1548030, - SAY_SUMMON1 = -1548031, - SAY_SUMMON2 = -1548032, - SAY_SUMMON_BUBL1 = -1548033, - SAY_SUMMON_BUBL2 = -1548034, - SAY_SLAY1 = -1548035, - SAY_SLAY2 = -1548036, - SAY_SLAY3 = -1548037, - SAY_DEATH = -1548038, + SAY_AGGRO = 0, + SAY_SUMMON = 1, + SAY_SUMMON_BUBL = 2, + SAY_SLAY = 3, + SAY_DEATH = 4, // Emotes - EMOTE_WATERY_GRAVE = -1548039, - EMOTE_EARTHQUAKE = -1548040, - EMOTE_WATERY_GLOBULES = -1548041, + EMOTE_WATERY_GRAVE = 5, + EMOTE_EARTHQUAKE = 6, + EMOTE_WATERY_GLOBULES = 7, // Spells - SPELL_TIDAL_WAVE = 37730, - SPELL_WATERY_GRAVE = 38049, - SPELL_EARTHQUAKE = 37764, - SPELL_WATERY_GRAVE_EXPLOSION = 37852, - - SPELL_WATERY_GRAVE_1 = 38023, - SPELL_WATERY_GRAVE_2 = 38024, - SPELL_WATERY_GRAVE_3 = 38025, - SPELL_WATERY_GRAVE_4 = 37850, - - SPELL_SUMMON_WATER_GLOBULE_1 = 37854, - SPELL_SUMMON_WATER_GLOBULE_2 = 37858, - SPELL_SUMMON_WATER_GLOBULE_3 = 37860, - SPELL_SUMMON_WATER_GLOBULE_4 = 37861, + SPELL_TIDAL_WAVE = 37730, + SPELL_WATERY_GRAVE = 38049, + SPELL_EARTHQUAKE = 37764, + SPELL_WATERY_GRAVE_EXPLOSION = 37852, + + SPELL_WATERY_GRAVE_1 = 38023, + SPELL_WATERY_GRAVE_2 = 38024, + SPELL_WATERY_GRAVE_3 = 38025, + SPELL_WATERY_GRAVE_4 = 37850, + + SPELL_SUMMON_WATER_GLOBULE_1 = 37854, + SPELL_SUMMON_WATER_GLOBULE_2 = 37858, + SPELL_SUMMON_WATER_GLOBULE_3 = 37860, + SPELL_SUMMON_WATER_GLOBULE_4 = 37861, // Creatures - NPC_WATER_GLOBULE = 21913, - NPC_TIDEWALKER_LURKER = 21920, + NPC_WATER_GLOBULE = 21913, + NPC_TIDEWALKER_LURKER = 21920 }; float MurlocCords[10][4] = @@ -130,7 +126,7 @@ public: void StartEvent() { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (instance) instance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, IN_PROGRESS); @@ -138,12 +134,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(DATA_MOROGRIMTIDEWALKEREVENT, DONE); @@ -184,7 +180,7 @@ public: } else { - DoScriptText(RAND(SAY_SUMMON1, SAY_SUMMON2), me); + Talk(SAY_SUMMON); for (uint8 i = 0; i < 10; ++i) { @@ -193,7 +189,7 @@ public: if (target && Murloc) Murloc->AI()->AttackStart(target); } - DoScriptText(EMOTE_EARTHQUAKE, me); + Talk(EMOTE_EARTHQUAKE); Earthquake = false; Earthquake_Timer = 40000+rand()%5000; } @@ -235,9 +231,9 @@ public: } } - DoScriptText(RAND(SAY_SUMMON_BUBL1, SAY_SUMMON_BUBL2), me); + Talk(SAY_SUMMON_BUBL); - DoScriptText(EMOTE_WATERY_GRAVE, me); + Talk(EMOTE_WATERY_GRAVE); WateryGrave_Timer = 30000; } else WateryGrave_Timer -= diff; @@ -271,7 +267,7 @@ public: pGlobuleTarget->CastSpell(pGlobuleTarget, globulespell[g], true); } } - DoScriptText(EMOTE_WATERY_GLOBULES, me); + Talk(EMOTE_WATERY_GLOBULES); WateryGlobules_Timer = 25000; } else WateryGlobules_Timer -= diff; } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp index 038300213a4..e2d581128fd 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp @@ -32,20 +32,20 @@ EndContentData */ #include "ScriptedCreature.h" #include "steam_vault.h" -#define SAY_SUMMON -1545000 -#define SAY_AGGRO_1 -1545001 -#define SAY_AGGRO_2 -1545002 -#define SAY_AGGRO_3 -1545003 -#define SAY_SLAY_1 -1545004 -#define SAY_SLAY_2 -1545005 -#define SAY_DEAD -1545006 +enum HydromancerThespia +{ + SAY_SUMMON = 0, + SAY_AGGRO = 1, + SAY_SLAY = 2, + SAY_DEAD = 3, -#define SPELL_LIGHTNING_CLOUD 25033 -#define SPELL_LUNG_BURST 31481 -#define SPELL_ENVELOPING_WINDS 31718 + SPELL_LIGHTNING_CLOUD = 25033, + SPELL_LUNG_BURST = 31481, + SPELL_ENVELOPING_WINDS = 31718, -#define SPELL_WATER_BOLT_VOLLEY 34449 -#define H_SPELL_WATER_BOLT_VOLLEY 37924 + SPELL_WATER_BOLT_VOLLEY = 34449, + H_SPELL_WATER_BOLT_VOLLEY = 37924 +}; class boss_hydromancer_thespia : public CreatureScript { @@ -82,7 +82,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEAD, me); + Talk(SAY_DEAD); if (instance) instance->SetData(TYPE_HYDROMANCER_THESPIA, DONE); @@ -90,12 +90,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + Talk(SAY_SLAY); } void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); if (instance) instance->SetData(TYPE_HYDROMANCER_THESPIA, IN_PROGRESS); diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp index 50cc913c669..6a70cb97759 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp @@ -32,22 +32,19 @@ EndContentData */ #include "ScriptedCreature.h" #include "steam_vault.h" -#define SAY_MECHANICS -1545007 -#define SAY_AGGRO_1 -1545008 -#define SAY_AGGRO_2 -1545009 -#define SAY_AGGRO_3 -1545010 -#define SAY_AGGRO_4 -1545011 -#define SAY_SLAY_1 -1545012 -#define SAY_SLAY_2 -1545013 -#define SAY_SLAY_3 -1545014 -#define SAY_DEATH -1545015 - -#define SPELL_SUPER_SHRINK_RAY 31485 -#define SPELL_SAW_BLADE 31486 -#define SPELL_ELECTRIFIED_NET 35107 -#define H_SPELL_ENRAGE 1 //corrent enrage spell not known - -#define ENTRY_STREAMRIGGER_MECHANIC 17951 +enum MekgineerSteamrigger +{ + SAY_MECHANICS = 0, + SAY_AGGRO = 1, + SAY_SLAY = 2, + SAY_DEATH = 3, + + SPELL_SUPER_SHRINK_RAY = 31485, + SPELL_SAW_BLADE = 31486, + SPELL_ELECTRIFIED_NET = 35107, + + ENTRY_STREAMRIGGER_MECHANIC = 17951 +}; class boss_mekgineer_steamrigger : public CreatureScript { @@ -91,7 +88,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(TYPE_MEKGINEER_STEAMRIGGER, DONE); @@ -99,12 +96,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3), me); + Talk(SAY_SLAY); } void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); if (instance) instance->SetData(TYPE_MEKGINEER_STEAMRIGGER, IN_PROGRESS); @@ -113,7 +110,7 @@ public: //no known summon spells exist void SummonMechanichs() { - DoScriptText(SAY_MECHANICS, me); + Talk(SAY_MECHANICS); DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC, 5, 5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000); DoSpawnCreature(ENTRY_STREAMRIGGER_MECHANIC, -5, 5, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 240000); diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp index ac730292545..51c477365a3 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_warlord_kalithresh.cpp @@ -28,21 +28,21 @@ EndScriptData */ #include "steam_vault.h" #include "SpellInfo.h" -#define SAY_INTRO -1545016 -#define SAY_REGEN -1545017 -#define SAY_AGGRO1 -1545018 -#define SAY_AGGRO2 -1545019 -#define SAY_AGGRO3 -1545020 -#define SAY_SLAY1 -1545021 -#define SAY_SLAY2 -1545022 -#define SAY_DEATH -1545023 - -#define SPELL_SPELL_REFLECTION 31534 -#define SPELL_IMPALE 39061 -#define SPELL_WARLORDS_RAGE 37081 -#define SPELL_WARLORDS_RAGE_NAGA 31543 - -#define SPELL_WARLORDS_RAGE_PROC 36453 +enum NagaDistiller +{ + SAY_INTRO = 0, + SAY_REGEN = 1, + SAY_AGGRO = 2, + SAY_SLAY = 3, + SAY_DEATH = 4, + + SPELL_SPELL_REFLECTION = 31534, + SPELL_IMPALE = 39061, + SPELL_WARLORDS_RAGE = 37081, + SPELL_WARLORDS_RAGE_NAGA = 31543, + + SPELL_WARLORDS_RAGE_PROC = 36453 +}; class mob_naga_distiller : public CreatureScript { @@ -139,7 +139,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me); + Talk(SAY_AGGRO); if (instance) instance->SetData(TYPE_WARLORD_KALITHRESH, IN_PROGRESS); @@ -147,7 +147,7 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me); + Talk(SAY_SLAY); } void SpellHit(Unit* /*caster*/, const SpellInfo* spell) @@ -161,7 +161,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(TYPE_WARLORD_KALITHRESH, DONE); @@ -176,7 +176,7 @@ public: { if (Creature* distiller = me->FindNearestCreature(17954, 100.0f)) { - DoScriptText(SAY_REGEN, me); + Talk(SAY_REGEN); DoCast(me, SPELL_WARLORDS_RAGE); CAST_AI(mob_naga_distiller::mob_naga_distillerAI, distiller->AI())->StartRageGen(me); } diff --git a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp index 3443103fa70..797d0f0d799 100644 --- a/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp +++ b/src/server/scripts/Outland/GruulsLair/boss_gruul.cpp @@ -30,17 +30,13 @@ EndScriptData */ enum eEnums { - SAY_AGGRO = -1565010, - SAY_SLAM1 = -1565011, - SAY_SLAM2 = -1565012, - SAY_SHATTER1 = -1565013, - SAY_SHATTER2 = -1565014, - SAY_SLAY1 = -1565015, - SAY_SLAY2 = -1565016, - SAY_SLAY3 = -1565017, - SAY_DEATH = -1565018, - - EMOTE_GROW = -1565019, + SAY_AGGRO = 0, + SAY_SLAM = 1, + SAY_SHATTER = 2, + SAY_SLAY = 3, + SAY_DEATH = 4, + + EMOTE_GROW = 5, SPELL_GROWTH = 36300, SPELL_CAVE_IN = 36240, @@ -100,7 +96,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (instance) instance->SetData(DATA_GRUULEVENT, IN_PROGRESS); @@ -108,12 +104,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) { @@ -172,7 +168,7 @@ public: // Gruul can cast this spell up to 30 times if (m_uiGrowth_Timer <= uiDiff) { - DoScriptText(EMOTE_GROW, me); + Talk(EMOTE_GROW); DoCast(me, SPELL_GROWTH); m_uiGrowth_Timer = 30000; } diff --git a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp index 03089d646f9..2d2c36104a2 100644 --- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp +++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp @@ -27,46 +27,44 @@ EndScriptData */ #include "ScriptedCreature.h" #include "gruuls_lair.h" -#define SAY_AGGRO -1565000 -#define SAY_ENRAGE -1565001 -#define SAY_OGRE_DEATH1 -1565002 -#define SAY_OGRE_DEATH2 -1565003 -#define SAY_OGRE_DEATH3 -1565004 -#define SAY_OGRE_DEATH4 -1565005 -#define SAY_SLAY1 -1565006 -#define SAY_SLAY2 -1565007 -#define SAY_SLAY3 -1565008 -#define SAY_DEATH -1565009 - -// High King Maulgar -#define SPELL_ARCING_SMASH 39144 -#define SPELL_MIGHTY_BLOW 33230 -#define SPELL_WHIRLWIND 33238 -#define SPELL_BERSERKER_C 26561 -#define SPELL_ROAR 16508 -#define SPELL_FLURRY 33232 -#define SPELL_DUAL_WIELD 29651 //used in phase - -// Olm the Summoner -#define SPELL_DARK_DECAY 33129 -#define SPELL_DEATH_COIL 33130 -#define SPELL_SUMMON_WFH 33131 - -//Kiggler the Craed -#define SPELL_GREATER_POLYMORPH 33173 -#define SPELL_LIGHTNING_BOLT 36152 -#define SPELL_ARCANE_SHOCK 33175 -#define SPELL_ARCANE_EXPLOSION 33237 - -//Blindeye the Seer -#define SPELL_GREATER_PW_SHIELD 33147 -#define SPELL_HEAL 33144 -#define SPELL_PRAYER_OH 33152 - -//Krosh Firehand -#define SPELL_GREATER_FIREBALL 33051 -#define SPELL_SPELLSHIELD 33054 -#define SPELL_BLAST_WAVE 33061 +enum HighKingMaulgar +{ + SAY_AGGRO = 0, + SAY_ENRAGE = 1, + SAY_OGRE_DEATH = 2, + SAY_SLAY = 3, + SAY_DEATH = 4, + + // High King Maulgar + SPELL_ARCING_SMASH = 39144, + SPELL_MIGHTY_BLOW = 33230, + SPELL_WHIRLWIND = 33238, + SPELL_BERSERKER_C = 26561, + SPELL_ROAR = 16508, + SPELL_FLURRY = 33232, + SPELL_DUAL_WIELD = 29651, + + // Olm the Summoner + SPELL_DARK_DECAY = 33129, + SPELL_DEATH_COIL = 33130, + SPELL_SUMMON_WFH = 33131, + + //Kiggler the Craed + SPELL_GREATER_POLYMORPH = 33173, + SPELL_LIGHTNING_BOLT = 36152, + SPELL_ARCANE_SHOCK = 33175, + SPELL_ARCANE_EXPLOSION = 33237, + + //Blindeye the Seer + SPELL_GREATER_PW_SHIELD = 33147, + SPELL_HEAL = 33144, + SPELL_PRAYER_OH = 33152, + + //Krosh Firehand + SPELL_GREATER_FIREBALL = 33051, + SPELL_SPELLSHIELD = 33054, + SPELL_BLAST_WAVE = 33061 +}; bool CheckAllBossDied(InstanceScript* instance, Creature* me) { @@ -171,12 +169,12 @@ public: void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (CheckAllBossDied(instance, me)) instance->SetData(DATA_MAULGAREVENT, DONE); @@ -184,7 +182,7 @@ public: void AddDeath() { - DoScriptText(RAND(SAY_OGRE_DEATH1, SAY_OGRE_DEATH2, SAY_OGRE_DEATH3, SAY_OGRE_DEATH4), me); + Talk(SAY_OGRE_DEATH); } void EnterCombat(Unit* who) @@ -211,7 +209,7 @@ public: GetCouncil(); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); instance->SetData64(DATA_MAULGAREVENT_TANK, who->GetGUID()); instance->SetData(DATA_MAULGAREVENT, IN_PROGRESS); @@ -269,7 +267,7 @@ public: if (!Phase2 && HealthBelowPct(50)) { Phase2 = true; - DoScriptText(SAY_ENRAGE, me); + Talk(SAY_ENRAGE); DoCast(me, SPELL_DUAL_WIELD, true); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, 0); diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp index b42641c5171..4b364d1c0a8 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp @@ -29,7 +29,7 @@ EndScriptData */ enum eEnums { - SAY_AGGRO = -1542008, + SAY_AGGRO = 0, SPELL_SLIME_SPRAY = 30913, SPELL_POISON_CLOUD = 30916, @@ -73,7 +73,7 @@ class boss_broggok : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); } void JustSummoned(Creature* summoned) diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp index 3c07862e0f6..2fe95e1bf4d 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp @@ -35,14 +35,11 @@ EndContentData */ enum eKelidan { - SAY_WAKE = -1542000, - SAY_ADD_AGGRO_1 = -1542001, - SAY_ADD_AGGRO_2 = -1542002, - SAY_ADD_AGGRO_3 = -1542003, - SAY_KILL_1 = -1542004, - SAY_KILL_2 = -1542005, - SAY_NOVA = -1542006, - SAY_DIE = -1542007, + SAY_WAKE = 0, + SAY_ADD_AGGRO = 1, + SAY_KILL = 2, + SAY_NOVA = 3, + SAY_DIE = 4, SPELL_CORRUPTION = 30938, SPELL_EVOCATION = 30935, @@ -117,7 +114,7 @@ class boss_kelidan_the_breaker : public CreatureScript void EnterCombat(Unit* who) { - DoScriptText(SAY_WAKE, me); + Talk(SAY_WAKE); if (me->IsNonMeleeSpellCasted(false)) me->InterruptNonMeleeSpells(true); DoStartMovement(who); @@ -130,7 +127,7 @@ class boss_kelidan_the_breaker : public CreatureScript if (rand()%2) return; - DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me); + Talk(SAY_KILL); } void ChannelerEngaged(Unit* who) @@ -138,7 +135,7 @@ class boss_kelidan_the_breaker : public CreatureScript if (who && !addYell) { addYell = true; - DoScriptText(RAND(SAY_ADD_AGGRO_1, SAY_ADD_AGGRO_2, SAY_ADD_AGGRO_3), me); + Talk(SAY_ADD_AGGRO); } for (uint8 i=0; i<5; ++i) { @@ -194,7 +191,7 @@ class boss_kelidan_the_breaker : public CreatureScript void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DIE, me); + Talk(SAY_DIE); if (!instance) return; @@ -254,7 +251,7 @@ class boss_kelidan_the_breaker : public CreatureScript if (me->IsNonMeleeSpellCasted(false)) me->InterruptNonMeleeSpells(true); - DoScriptText(SAY_NOVA, me); + Talk(SAY_NOVA); if (SpellInfo const* nova = sSpellMgr->GetSpellInfo(SPELL_BURNING_NOVA)) { diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp index df9aefabe15..4dfd7e8a8e8 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_the_maker.cpp @@ -29,17 +29,14 @@ EndScriptData */ enum eEnums { - SAY_AGGRO_1 = -1542009, - SAY_AGGRO_2 = -1542010, - SAY_AGGRO_3 = -1542011, - SAY_KILL_1 = -1542012, - SAY_KILL_2 = -1542013, - SAY_DIE = -1542014, - - SPELL_ACID_SPRAY = 38153, // heroic 38973 ??? 38153 + SAY_AGGRO = 0, + SAY_KILL = 1, + SAY_DIE = 2, + + SPELL_ACID_SPRAY = 38153, SPELL_EXPLODING_BREAKER = 30925, SPELL_KNOCKDOWN = 20276, - SPELL_DOMINATION = 25772 // ??? + SPELL_DOMINATION = 25772 }; class boss_the_maker : public CreatureScript @@ -81,7 +78,7 @@ class boss_the_maker : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); if (!instance) return; @@ -92,12 +89,12 @@ class boss_the_maker : public CreatureScript void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me); + Talk(SAY_KILL); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DIE, me); + Talk(SAY_DIE); if (!instance) return; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp index 56365216be5..a40c2e480bd 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp @@ -29,14 +29,12 @@ EndScriptData */ enum eSays { - SAY_AGGRO_1 = -1543009, - SAY_AGGRO_2 = -1543010, - SAY_AGGRO_3 = -1543011, - SAY_SUMMON = -1543012, - SAY_CURSE = -1543013, - SAY_KILL_1 = -1543014, - SAY_DIE = -1543015, - SAY_WIPE = -1543016, + SAY_AGGRO = 0, + SAY_SUMMON = 1, + SAY_CURSE = 2, + SAY_KILL_1 = 3, + SAY_DIE = 4, + SAY_WIPE = 5, }; enum eSpells @@ -79,7 +77,7 @@ class boss_omor_the_unscarred : public CreatureScript void Reset() { - DoScriptText(SAY_WIPE, me); + Talk(SAY_WIPE); OrbitalStrike_Timer = 25000; ShadowWhip_Timer = 2000; @@ -94,7 +92,7 @@ class boss_omor_the_unscarred : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); } void KilledUnit(Unit* /*victim*/) @@ -102,12 +100,12 @@ class boss_omor_the_unscarred : public CreatureScript if (rand()%2) return; - DoScriptText(SAY_KILL_1, me); + Talk(SAY_KILL_1); } void JustSummoned(Creature* summoned) { - DoScriptText(SAY_SUMMON, me); + Talk(SAY_SUMMON); if (Unit* random = SelectTarget(SELECT_TARGET_RANDOM, 0)) summoned->AI()->AttackStart(random); @@ -117,7 +115,7 @@ class boss_omor_the_unscarred : public CreatureScript void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DIE, me); + Talk(SAY_DIE); } void UpdateAI(const uint32 diff) @@ -192,7 +190,7 @@ class boss_omor_the_unscarred : public CreatureScript if (Aura_Timer <= diff) { - DoScriptText(SAY_CURSE, me); + Talk(SAY_CURSE); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) { diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp index f0c4330c9a3..7fa476100d5 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp @@ -39,7 +39,7 @@ enum eSpells SPELL_REVENGE = 19130, SPELL_REVENGE_H = 40392, SPELL_KIDNEY_SHOT = 30621, - SPELL_FIRE_NOVA_VISUAL = 19823, + SPELL_FIRE_NOVA_VISUAL = 19823 }; enum eUnits @@ -50,20 +50,17 @@ enum eUnits ENTRY_NAZAN = 17536, ENTRY_LIQUID_FIRE = 22515, ENTRY_REINFORCED_FEL_IRON_CHEST = 185168, - ENTRY_REINFORCED_FEL_IRON_CHEST_H = 185169, + ENTRY_REINFORCED_FEL_IRON_CHEST_H = 185169 }; enum eSays { - SAY_INTRO = -1543017, - SAY_WIPE = -1543018, - SAY_AGGRO_1 = -1543019, - SAY_AGGRO_2 = -1543020, - SAY_AGGRO_3 = -1543021, - SAY_KILL_1 = -1543022, - SAY_KILL_2 = -1543023, - SAY_DIE = -1543024, - EMOTE = -1543025, + SAY_INTRO = 0, + SAY_WIPE = 1, + SAY_AGGRO = 2, + SAY_KILL = 3, + SAY_DIE = 4, + EMOTE = 5 }; const float VazrudenMiddle[3] = {-1406.5f, 1746.5f, 81.2f}; @@ -153,7 +150,7 @@ class boss_nazan : public CreatureScript if (Unit* victim = SelectTarget(SELECT_TARGET_NEAREST, 0)) me->AI()->AttackStart(victim); DoStartMovement(me->getVictim()); - DoScriptText(EMOTE, me); + Talk(EMOTE); return; } else @@ -229,19 +226,19 @@ class boss_vazruden : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); } void KilledUnit(Unit* who) { if (who && who->GetEntry() != ENTRY_VAZRUDEN) - DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me); + Talk(SAY_KILL); } void JustDied(Unit* killer) { if (killer && killer != me) - DoScriptText(SAY_DIE, me); + Talk(SAY_DIE); } void UpdateAI(const uint32 diff) @@ -252,7 +249,7 @@ class boss_vazruden : public CreatureScript { if (!WipeSaid) { - DoScriptText(SAY_WIPE, me); + Talk(SAY_WIPE); WipeSaid = true; } me->DisappearAndDie(); @@ -364,7 +361,7 @@ class boss_vazruden_the_herald : public CreatureScript { phase = 1; check = 0; - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); } } diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp index 1d2ecccf3c7..156d5cbae2c 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_watchkeeper_gargolmar.cpp @@ -28,15 +28,12 @@ EndScriptData */ enum eSays { - SAY_TAUNT = -1543000, - SAY_HEAL = -1543001, - SAY_SURGE = -1543002, - SAY_AGGRO_1 = -1543003, - SAY_AGGRO_2 = -1543004, - SAY_AGGRO_3 = -1543005, - SAY_KILL_1 = -1543006, - SAY_KILL_2 = -1543007, - SAY_DIE = -1543008, + SAY_TAUNT = 0, + SAY_HEAL = 1, + SAY_SURGE = 2, + SAY_AGGRO = 3, + SAY_KILL = 4, + SAY_DIE = 5 }; enum eSpells @@ -81,7 +78,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); } void MoveInLineOfSight(Unit* who) @@ -99,7 +96,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript } else if (!HasTaunted && me->IsWithinDistInMap(who, 60.0f)) { - DoScriptText(SAY_TAUNT, me); + Talk(SAY_TAUNT); HasTaunted = true; } } @@ -107,12 +104,12 @@ class boss_watchkeeper_gargolmar : public CreatureScript void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me); + Talk(SAY_KILL); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DIE, me); + Talk(SAY_DIE); } void UpdateAI(const uint32 diff) @@ -130,7 +127,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript if (Surge_Timer <= diff) { - DoScriptText(SAY_SURGE, me); + Talk(SAY_SURGE); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) DoCast(target, SPELL_SURGE); @@ -155,7 +152,7 @@ class boss_watchkeeper_gargolmar : public CreatureScript { if (HealthBelowPct(40)) { - DoScriptText(SAY_HEAL, me); + Talk(SAY_HEAL); YelledForHeal = true; } } diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp index 94272e4a50f..c5f79a2babd 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp @@ -29,36 +29,22 @@ EndScriptData */ #include "Player.h" #include "SpellInfo.h" -struct Yell -{ - int32 id; -}; - -static Yell RandomTaunt[]= -{ - {-1544000}, - {-1544001}, - {-1544002}, - {-1544003}, - {-1544004}, - {-1544005}, -}; - enum eSays { - SAY_FREED = -1544006, - SAY_AGGRO = -1544007, - SAY_BANISH = -1544008, - SAY_CHAMBER_DESTROY = -1544009, - SAY_PLAYER_KILLED = -1544010, - SAY_DEATH = -1544011, + SAY_TAUNT = 0, + SAY_FREED = 1, + SAY_AGGRO = 2, + SAY_BANISH = 3, + SAY_CHAMBER_DESTROY = 4, + SAY_PLAYER_KILLED = 5, + SAY_DEATH = 6 }; enum eEmotes { - EMOTE_BERSERK = -1544012, - EMOTE_BLASTNOVA = -1544013, - EMOTE_BEGIN = -1544014, + EMOTE_BERSERK = 7, + EMOTE_BLASTNOVA = 8, + EMOTE_BEGIN = 9 }; enum eCreatures @@ -309,7 +295,7 @@ class boss_magtheridon : public CreatureScript // if 5 clickers from other cubes apply shadow cage if (ClickerNum >= CLICKERS_COUNT && !me->HasAura(SPELL_SHADOW_CAGE)) { - DoScriptText(SAY_BANISH, me); + Talk(SAY_BANISH); DoCast(me, SPELL_SHADOW_CAGE, true); } else @@ -322,7 +308,7 @@ class boss_magtheridon : public CreatureScript void KilledUnit(Unit* /*victim*/) { - DoScriptText(SAY_PLAYER_KILLED, me); + Talk(SAY_PLAYER_KILLED); } void JustDied(Unit* /*killer*/) @@ -330,7 +316,7 @@ class boss_magtheridon : public CreatureScript if (instance) instance->SetData(DATA_MAGTHERIDON_EVENT, DONE); - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } void MoveInLineOfSight(Unit* /*who*/) {} @@ -350,7 +336,7 @@ class boss_magtheridon : public CreatureScript me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->RemoveAurasDueToSpell(SPELL_SHADOW_CAGE_C); - DoScriptText(SAY_FREED, me); + Talk(SAY_FREED); } void UpdateAI(const uint32 diff) @@ -359,7 +345,7 @@ class boss_magtheridon : public CreatureScript { if (RandChat_Timer <= diff) { - DoScriptText(RandomTaunt[rand()%6].id, me); + Talk(SAY_TAUNT); RandChat_Timer = 90000; } else @@ -374,7 +360,7 @@ class boss_magtheridon : public CreatureScript if (Berserk_Timer <= diff) { DoCast(me, SPELL_BERSERK, true); - DoScriptText(EMOTE_BERSERK, me); + Talk(EMOTE_BERSERK); Berserk_Timer = 60000; } else @@ -393,7 +379,7 @@ class boss_magtheridon : public CreatureScript // to avoid earthquake interruption if (!me->HasUnitState(UNIT_STATE_STUNNED)) { - DoScriptText(EMOTE_BLASTNOVA, me); + Talk(EMOTE_BLASTNOVA); DoCast(me, SPELL_BLASTNOVA); BlastNova_Timer = 60000; } @@ -437,7 +423,7 @@ class boss_magtheridon : public CreatureScript && !me->HasUnitState(UNIT_STATE_STUNNED)) // shadow cage and earthquake { Phase3 = true; - DoScriptText(SAY_CHAMBER_DESTROY, me); + Talk(SAY_CHAMBER_DESTROY); DoCast(me, SPELL_CAMERA_SHAKE, true); DoCast(me, SPELL_DEBRIS_KNOCKDOWN, true); diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp index c6434d9a989..e5b6ea71eb0 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp @@ -33,38 +33,15 @@ EndContentData */ #include "ScriptedCreature.h" #include "shattered_halls.h" -struct Say -{ - int32 id; -}; - -static Say PeonAttacked[]= -{ - {-1540001}, - {-1540002}, - {-1540003}, - {-1540004}, -}; -static Say PeonDies[]= -{ - {-1540005}, - {-1540006}, - {-1540007}, - {-1540008}, -}; - enum eSays { - SAY_INTRO = -1540000, - SAY_TAUNT_1 = -1540009, - SAY_TAUNT_2 = -1540010, - SAY_TAUNT_3 = -1540011, - SAY_AGGRO_1 = -1540012, - SAY_AGGRO_2 = -1540013, - SAY_AGGRO_3 = -1540014, - SAY_SLAY_1 = -1540015, - SAY_SLAY_2 = -1540016, - SAY_DIE = -1540017, + SAY_INTRO = 0, + SAY_PEON_ATTACKED = 1, + SAY_PEON_DIES = 2, + SAY_TAUNT = 3, + SAY_AGGRO = 4, + SAY_SLAY = 5, + SAY_DIE = 6 }; enum eSpells @@ -137,7 +114,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript if (PeonEngagedCount >= 4) return; - DoScriptText(PeonAttacked[PeonEngagedCount].id, me); + Talk(SAY_PEON_ATTACKED); ++PeonEngagedCount; } @@ -146,7 +123,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript if (PeonKilledCount >= 4) return; - DoScriptText(PeonDies[PeonKilledCount].id, me); + Talk(SAY_PEON_DIES); ++PeonKilledCount; if (PeonKilledCount == 4) @@ -159,7 +136,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript void DoTauntPeons() { - DoScriptText(RAND(SAY_TAUNT_1, SAY_TAUNT_2, SAY_TAUNT_3), me); + Talk(SAY_TAUNT); //TODO: kill the peons first IsIntroEvent = false; @@ -190,7 +167,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript if (who->GetTypeId() != TYPEID_PLAYER) return; - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); IntroOnce = true; IsIntroEvent = true; @@ -206,7 +183,7 @@ class boss_grand_warlock_nethekurse : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me); + Talk(SAY_AGGRO); } void JustSummoned(Creature* summoned) @@ -222,12 +199,12 @@ class boss_grand_warlock_nethekurse : public CreatureScript void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DIE, me); + Talk(SAY_DIE); if (!instance) return; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp index 3d2d39e9817..5d3ff2abcc5 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp @@ -34,9 +34,9 @@ EndContentData */ enum eEnums { - YELL_DIE_L = -1540039, - YELL_DIE_R = -1540040, - EMOTE_ENRAGE = -1540041, + YELL_DIE_L = 0, + YELL_DIE_R = 1, + EMOTE_ENRAGE = 2, SPELL_BLAST_WAVE = 30600, SPELL_FEAR = 30584, @@ -57,49 +57,49 @@ struct Yell static Yell GoCombat[]= { - {-1540018, NPC_LEFT_HEAD}, - {-1540019, NPC_LEFT_HEAD}, - {-1540020, NPC_LEFT_HEAD}, + {0, NPC_LEFT_HEAD}, + {1, NPC_LEFT_HEAD}, + {2, NPC_LEFT_HEAD}, }; static Yell GoCombatDelay[]= { - {-1540021, NPC_RIGHT_HEAD}, - {-1540022, NPC_RIGHT_HEAD}, - {-1540023, NPC_RIGHT_HEAD}, + {0, NPC_RIGHT_HEAD}, + {1, NPC_RIGHT_HEAD}, + {2, NPC_RIGHT_HEAD}, }; static Yell Threat[]= { - {-1540024, NPC_LEFT_HEAD}, - {-1540025, NPC_RIGHT_HEAD}, - {-1540026, NPC_LEFT_HEAD}, - {-1540027, NPC_LEFT_HEAD}, + {3, NPC_LEFT_HEAD}, + {3, NPC_RIGHT_HEAD}, + {4, NPC_LEFT_HEAD}, + {5, NPC_LEFT_HEAD}, }; static Yell ThreatDelay1[]= { - {-1540028, NPC_RIGHT_HEAD}, - {-1540029, NPC_LEFT_HEAD}, - {-1540030, NPC_RIGHT_HEAD}, - {-1540031, NPC_RIGHT_HEAD}, + {4, NPC_RIGHT_HEAD}, + {6, NPC_LEFT_HEAD}, + {5, NPC_RIGHT_HEAD}, + {6, NPC_RIGHT_HEAD}, }; static Yell ThreatDelay2[]= { - {-1540032, NPC_LEFT_HEAD}, - {-1540033, NPC_RIGHT_HEAD}, - {-1540034, NPC_LEFT_HEAD}, - {-1540035, NPC_LEFT_HEAD}, + {7, NPC_LEFT_HEAD}, + {7, NPC_RIGHT_HEAD}, + {8, NPC_LEFT_HEAD}, + {9, NPC_LEFT_HEAD}, }; static Yell Killing[]= { - {-1540036, NPC_LEFT_HEAD}, - {-1540037, NPC_RIGHT_HEAD}, + {10, NPC_LEFT_HEAD}, + {8, NPC_RIGHT_HEAD}, }; static Yell KillingDelay[]= { - {-1540038, NPC_RIGHT_HEAD}, - {-1000000, NPC_LEFT_HEAD}, + {9, NPC_RIGHT_HEAD}, + {11, NPC_LEFT_HEAD}, }; class mob_omrogg_heads : public CreatureScript @@ -137,7 +137,7 @@ class mob_omrogg_heads : public CreatureScript if (Death_Timer <= diff) { - DoScriptText(YELL_DIE_R, me); + Talk(YELL_DIE_R); Death_Timer = false; me->setDeathState(JUST_DIED); } else Death_Timer -= diff; @@ -222,17 +222,17 @@ class boss_warbringer_omrogg : public CreatureScript void DoYellForThreat() { - Unit* pLeftHead = Unit::GetUnit(*me, LeftHeadGUID); - Unit* pRightHead = Unit::GetUnit(*me, RightHeadGUID); + Creature* pLeftHead = Creature::GetCreature(*me, LeftHeadGUID); + Creature* pRightHead = Unit::GetCreature(*me, RightHeadGUID); if (!pLeftHead || !pRightHead) return; ithreat = rand()%4; - Unit* source = (pLeftHead->GetEntry() == Threat[ithreat].creature ? pLeftHead : pRightHead); + Creature* source = (pLeftHead->GetEntry() == Threat[ithreat].creature ? pLeftHead : pRightHead); - DoScriptText(Threat[ithreat].id, source); + source->AI()->Talk(Threat[ithreat].id); Delay_Timer = 3500; ThreatYell = true; @@ -243,11 +243,11 @@ class boss_warbringer_omrogg : public CreatureScript me->SummonCreature(NPC_LEFT_HEAD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_DEAD_DESPAWN, 0); me->SummonCreature(NPC_RIGHT_HEAD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_DEAD_DESPAWN, 0); - if (Unit* pLeftHead = Unit::GetUnit(*me, LeftHeadGUID)) + if (Creature* pLeftHead = Creature::GetCreature(*me, LeftHeadGUID)) { iaggro = rand()%3; - DoScriptText(GoCombat[iaggro].id, pLeftHead); + pLeftHead->AI()->Talk(GoCombat[iaggro].id); Delay_Timer = 3500; AggroYell = true; @@ -272,25 +272,25 @@ class boss_warbringer_omrogg : public CreatureScript void KilledUnit(Unit* /*victim*/) { - Unit* pLeftHead = Unit::GetUnit(*me, LeftHeadGUID); - Unit* pRightHead = Unit::GetUnit(*me, RightHeadGUID); + Creature* pLeftHead = Creature::GetCreature(*me, LeftHeadGUID); + Creature* pRightHead = Creature::GetCreature(*me, RightHeadGUID); if (!pLeftHead || !pRightHead) return; ikilling = rand()%2; - Unit* source = (pLeftHead->GetEntry() == Killing[ikilling].creature ? pLeftHead : pRightHead); + Creature* source = (pLeftHead->GetEntry() == Killing[ikilling].creature ? pLeftHead : pRightHead); switch (ikilling) { case 0: - DoScriptText(Killing[ikilling].id, source); + source->AI()->Talk(Killing[ikilling].id); Delay_Timer = 3500; KillingYell = true; break; case 1: - DoScriptText(Killing[ikilling].id, source); + source->AI()->Talk(Killing[ikilling].id); KillingYell = false; break; } @@ -298,13 +298,13 @@ class boss_warbringer_omrogg : public CreatureScript void JustDied(Unit* /*killer*/) { - Unit* pLeftHead = Unit::GetUnit(*me, LeftHeadGUID); - Unit* pRightHead = Unit::GetUnit(*me, RightHeadGUID); + Creature* pLeftHead = Creature::GetCreature(*me, LeftHeadGUID); + Creature* pRightHead = Creature::GetCreature(*me, RightHeadGUID); if (!pLeftHead || !pRightHead) return; - DoScriptText(YELL_DIE_L, pLeftHead); + pLeftHead->AI()->Talk(YELL_DIE_L); CAST_AI(mob_omrogg_heads::mob_omrogg_headsAI, CAST_CRE(pRightHead)->AI())->DoDeathYell(); @@ -318,40 +318,40 @@ class boss_warbringer_omrogg : public CreatureScript { Delay_Timer = 3500; - Unit* pLeftHead = Unit::GetUnit(*me, LeftHeadGUID); - Unit* pRightHead = Unit::GetUnit(*me, RightHeadGUID); + Creature* pLeftHead = Creature::GetCreature(*me, LeftHeadGUID); + Creature* pRightHead = Creature::GetCreature(*me, RightHeadGUID); if (!pLeftHead || !pRightHead) return; if (AggroYell) { - DoScriptText(GoCombatDelay[iaggro].id, pRightHead); + pRightHead->AI()->Talk(GoCombatDelay[iaggro].id); AggroYell = false; } if (ThreatYell2) { - Unit* source = (pLeftHead->GetEntry() == ThreatDelay2[ithreat].creature ? pLeftHead : pRightHead); + Creature* source = (pLeftHead->GetEntry() == ThreatDelay2[ithreat].creature ? pLeftHead : pRightHead); - DoScriptText(ThreatDelay2[ithreat].id, source); + source->AI()->Talk(ThreatDelay2[ithreat].id); ThreatYell2 = false; } if (ThreatYell) { - Unit* source = (pLeftHead->GetEntry() == ThreatDelay1[ithreat].creature ? pLeftHead : pRightHead); + Creature* source = (pLeftHead->GetEntry() == ThreatDelay1[ithreat].creature ? pLeftHead : pRightHead); - DoScriptText(ThreatDelay1[ithreat].id, source); + source->AI()->Talk(ThreatDelay1[ithreat].id); ThreatYell = false; ThreatYell2 = true; } if (KillingYell) { - Unit* source = (pLeftHead->GetEntry() == KillingDelay[ikilling].creature ? pLeftHead : pRightHead); + Creature* source = (pLeftHead->GetEntry() == KillingDelay[ikilling].creature ? pLeftHead : pRightHead); - DoScriptText(KillingDelay[ikilling].id, source); + source->AI()->Talk(KillingDelay[ikilling].id); KillingYell = false; } } else Delay_Timer -= diff; @@ -373,7 +373,7 @@ class boss_warbringer_omrogg : public CreatureScript if (BurningMaul_Timer <= diff) { - DoScriptText(EMOTE_ENRAGE, me); + Talk(EMOTE_ENRAGE); DoCast(me, SPELL_BURNING_MAUL); BurningMaul_Timer = 40000; BlastWave_Timer = 16000; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp index 99f7c69aff2..37cd5666f73 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp @@ -32,12 +32,9 @@ EndContentData */ enum eSays { - SAY_AGGRO1 = -1540042, - SAY_AGGRO2 = -1540043, - SAY_AGGRO3 = -1540044, - SAY_SLAY1 = -1540045, - SAY_SLAY2 = -1540046, - SAY_DEATH = -1540047, + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2 }; enum eSpells @@ -111,7 +108,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(RAND(SAY_AGGRO1, SAY_AGGRO2, SAY_AGGRO3), me); + Talk(SAY_AGGRO); } void JustSummoned(Creature* summoned) @@ -134,13 +131,13 @@ class boss_warchief_kargath_bladefist : public CreatureScript { if (victim->GetTypeId() == TYPEID_PLAYER) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me); + Talk(SAY_SLAY); } } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); removeAdds(); } diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp index 5b5c3ff2326..91ff608a6c7 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp @@ -32,15 +32,13 @@ EndScriptData */ enum eEnums { - SAY_AGGRO = -1550007, - SAY_SUMMON1 = -1550008, - SAY_SUMMON2 = -1550009, - SAY_KILL1 = -1550010, - SAY_KILL2 = -1550011, - SAY_KILL3 = -1550012, - SAY_DEATH = -1550013, - SAY_VOIDA = -1550014, - SAY_VOIDB = -1550015, + SAY_AGGRO = 0, + SAY_SUMMON1 = 1, + SAY_SUMMON2 = 2, + SAY_KILL = 3, + SAY_DEATH = 4, + SAY_VOIDA = 5, + SAY_VOIDB = 6, SPELL_ARCANE_MISSILES = 33031, SPELL_WRATH_OF_THE_ASTROMANCER = 42783, @@ -149,21 +147,21 @@ class boss_high_astromancer_solarian : public CreatureScript void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_KILL1, SAY_KILL2, SAY_KILL3), me); + Talk(SAY_KILL); } void JustDied(Unit* /*killer*/) { me->SetObjectScale(defaultsize); me->SetDisplayId(MODEL_HUMAN); - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(DATA_HIGHASTROMANCERSOLARIANEVENT, DONE); } void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); DoZoneInCombat(); if (instance) @@ -333,7 +331,7 @@ class boss_high_astromancer_solarian : public CreatureScript for (int j=1; j <= 4; j++) SummonMinion(NPC_SOLARIUM_AGENT, Portals[i][0], Portals[i][1], Portals[i][2]); - DoScriptText(SAY_SUMMON1, me); + Talk(SAY_SUMMON1); Phase2_Timer = 10000; } else @@ -360,7 +358,7 @@ class boss_high_astromancer_solarian : public CreatureScript me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetVisible(true); - DoScriptText(SAY_SUMMON2, me); + Talk(SAY_SUMMON2); AppearDelay = true; Phase3_Timer = 15000; } @@ -394,8 +392,8 @@ class boss_high_astromancer_solarian : public CreatureScript //To make sure she wont be invisible or not selecatble me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->SetVisible(true); - DoScriptText(SAY_VOIDA, me); - DoScriptText(SAY_VOIDB, me); + Talk(SAY_VOIDA); + Talk(SAY_VOIDB); me->SetArmor(WV_ARMOR); me->SetDisplayId(MODEL_VOIDWALKER); me->SetObjectScale(defaultsize*2.5f); diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index 2dbfb7b46c5..e87009737f1 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -32,42 +32,37 @@ EndScriptData */ enum eEnums { //kael'thas Speech - SAY_INTRO = -1550016, - SAY_INTRO_CAPERNIAN = -1550017, - SAY_INTRO_TELONICUS = -1550018, - SAY_INTRO_THALADRED = -1550019, - SAY_INTRO_SANGUINAR = -1550020, - SAY_PHASE2_WEAPON = -1550021, - SAY_PHASE3_ADVANCE = -1550022, - SAY_PHASE4_INTRO2 = -1550023, - SAY_PHASE5_NUTS = -1550024, - SAY_SLAY1 = -1550025, - SAY_SLAY2 = -1550026, - SAY_SLAY3 = -1550027, - SAY_MINDCONTROL1 = -1550028, - SAY_MINDCONTROL2 = -1550029, - SAY_GRAVITYLAPSE1 = -1550030, - SAY_GRAVITYLAPSE2 = -1550031, - SAY_SUMMON_PHOENIX1 = -1550032, - SAY_SUMMON_PHOENIX2 = -1550033, - SAY_DEATH = -1550034, + SAY_INTRO = 0, + SAY_INTRO_CAPERNIAN = 1, + SAY_INTRO_TELONICUS = 2, + SAY_INTRO_THALADRED = 3, + SAY_INTRO_SANGUINAR = 4, + SAY_PHASE2_WEAPON = 5, + SAY_PHASE3_ADVANCE = 6, + SAY_PHASE4_INTRO2 = 7, + SAY_PHASE5_NUTS = 8, + SAY_SLAY = 9, + SAY_MINDCONTROL = 10, + SAY_GRAVITYLAPSE = 11, + SAY_SUMMON_PHOENIX = 12, + SAY_DEATH = 13, //Thaladred the Darkener speech - SAY_THALADRED_AGGRO = -1550035, - SAY_THALADRED_DEATH = -1550036, - EMOTE_THALADRED_GAZE = -1550037, + SAY_THALADRED_AGGRO = 0, + SAY_THALADRED_DEATH = 1, + EMOTE_THALADRED_GAZE = 2, //Lord Sanguinar speech - SAY_SANGUINAR_AGGRO = -1550038, - SAY_SANGUINAR_DEATH = -1550039, + SAY_SANGUINAR_AGGRO = 0, + SAY_SANGUINAR_DEATH = 1, //Grand Astromancer Capernian speech - SAY_CAPERNIAN_AGGRO = -1550040, - SAY_CAPERNIAN_DEATH = -1550041, + SAY_CAPERNIAN_AGGRO = 0, + SAY_CAPERNIAN_DEATH = 1, //Master Engineer Telonicus speech - SAY_TELONICUS_AGGRO = -1550042, - SAY_TELONICUS_DEATH = -1550043, + SAY_TELONICUS_AGGRO = 0, + SAY_TELONICUS_DEATH = 1, //Phase 2 spells SPELL_SUMMON_WEAPONS = 36976, @@ -369,7 +364,7 @@ class boss_kaelthas : public CreatureScript { sLog->outError(LOG_FILTER_TSCR, "Kael'Thas One or more advisors missing, Skipping Phases 1-3"); - DoScriptText(SAY_PHASE4_INTRO2, me); + Talk(SAY_PHASE4_INTRO2); Phase = 4; @@ -385,7 +380,7 @@ class boss_kaelthas : public CreatureScript { PrepareAdvisors(); - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); instance->SetData(DATA_KAELTHASEVENT, 1); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -431,7 +426,7 @@ class boss_kaelthas : public CreatureScript void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me); + Talk(SAY_SLAY); } void JustSummoned(Creature* summoned) @@ -456,7 +451,7 @@ class boss_kaelthas : public CreatureScript me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); summons.DespawnAll(); @@ -487,7 +482,7 @@ class boss_kaelthas : public CreatureScript case 0: if (Phase_Timer <= diff) { - DoScriptText(SAY_INTRO_THALADRED, me); + Talk(SAY_INTRO_THALADRED); //start advisor within 7 seconds Phase_Timer = 7000; @@ -521,7 +516,7 @@ class boss_kaelthas : public CreatureScript if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD)) { - DoScriptText(SAY_INTRO_SANGUINAR, me); + Talk(SAY_INTRO_SANGUINAR); //start advisor within 12.5 seconds Phase_Timer = 12500; @@ -555,7 +550,7 @@ class boss_kaelthas : public CreatureScript if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD)) { - DoScriptText(SAY_INTRO_CAPERNIAN, me); + Talk(SAY_INTRO_CAPERNIAN); //start advisor within 7 seconds Phase_Timer = 7000; @@ -589,7 +584,7 @@ class boss_kaelthas : public CreatureScript if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD)) { - DoScriptText(SAY_INTRO_TELONICUS, me); + Talk(SAY_INTRO_TELONICUS); //start advisor within 8.4 seconds Phase_Timer = 8400; @@ -628,7 +623,7 @@ class boss_kaelthas : public CreatureScript if (instance) instance->SetData(DATA_KAELTHASEVENT, 2); - DoScriptText(SAY_PHASE2_WEAPON, me); + Talk(SAY_PHASE2_WEAPON); PhaseSubphase = 0; Phase_Timer = 3500; @@ -669,7 +664,7 @@ class boss_kaelthas : public CreatureScript { if (Phase_Timer <= diff) { - DoScriptText(SAY_PHASE3_ADVANCE, me); + Talk(SAY_PHASE3_ADVANCE); if (instance) instance->SetData(DATA_KAELTHASEVENT, 3); Phase = 3; @@ -705,7 +700,7 @@ class boss_kaelthas : public CreatureScript if (Phase_Timer <= diff) { - DoScriptText(SAY_PHASE4_INTRO2, me); + Talk(SAY_PHASE4_INTRO2); Phase = 4; if (instance) @@ -801,7 +796,7 @@ class boss_kaelthas : public CreatureScript if (Phoenix_Timer <= diff) { DoCast(me, SPELL_PHOENIX_ANIMATION); - DoScriptText(RAND(SAY_SUMMON_PHOENIX1, SAY_SUMMON_PHOENIX2), me); + Talk(SAY_SUMMON_PHOENIX); Phoenix_Timer = 60000; } @@ -818,7 +813,7 @@ class boss_kaelthas : public CreatureScript Phase = 5; Phase_Timer = 10000; - DoScriptText(SAY_PHASE5_NUTS, me); + Talk(SAY_PHASE5_NUTS); me->StopMoving(); me->GetMotionMaster()->Clear(); @@ -913,7 +908,7 @@ class boss_kaelthas : public CreatureScript break; case 1: - DoScriptText(RAND(SAY_GRAVITYLAPSE1, SAY_GRAVITYLAPSE2), me); + Talk(SAY_GRAVITYLAPSE); // 2) At that point he will put a Gravity Lapse debuff on everyone for (i = threatlist.begin(); i != threatlist.end(); ++i) @@ -1041,14 +1036,14 @@ class boss_thaladred_the_darkener : public CreatureScript if (!who || FakeDeath) return; - DoScriptText(SAY_THALADRED_AGGRO, me); + Talk(SAY_THALADRED_AGGRO); me->AddThreat(who, 5000000.0f); } void JustDied(Unit* /*killer*/) { if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3) - DoScriptText(SAY_THALADRED_DEATH, me); + Talk(SAY_THALADRED_DEATH); } void UpdateAI(const uint32 diff) @@ -1070,7 +1065,7 @@ class boss_thaladred_the_darkener : public CreatureScript { DoResetThreat(); me->AddThreat(target, 5000000.0f); - DoScriptText(EMOTE_THALADRED_GAZE, me, target); + Talk(EMOTE_THALADRED_GAZE, target->GetGUID()); Gaze_Timer = 8500; } } @@ -1134,13 +1129,13 @@ class boss_lord_sanguinar : public CreatureScript if (!who || FakeDeath) return; - DoScriptText(SAY_SANGUINAR_AGGRO, me); + Talk(SAY_SANGUINAR_AGGRO); } void JustDied(Unit* /*killer*/) { if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3) - DoScriptText(SAY_SANGUINAR_DEATH, me); + Talk(SAY_SANGUINAR_DEATH); } void UpdateAI(const uint32 diff) @@ -1205,7 +1200,7 @@ class boss_grand_astromancer_capernian : public CreatureScript void JustDied(Unit* /*killer*/) { if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3) - DoScriptText(SAY_CAPERNIAN_DEATH, me); + Talk(SAY_CAPERNIAN_DEATH); } void AttackStart(Unit* who) @@ -1249,7 +1244,7 @@ class boss_grand_astromancer_capernian : public CreatureScript { if (Yell_Timer <= diff) { - DoScriptText(SAY_CAPERNIAN_AGGRO, me); + Talk(SAY_CAPERNIAN_AGGRO); Yell = true; } else @@ -1344,7 +1339,7 @@ class boss_master_engineer_telonicus : public CreatureScript void JustDied(Unit* /*killer*/) { if (instance && instance->GetData(DATA_KAELTHASEVENT) == 3) - DoScriptText(SAY_TELONICUS_DEATH, me); + Talk(SAY_TELONICUS_DEATH); } void EnterCombat(Unit* who) @@ -1355,7 +1350,7 @@ class boss_master_engineer_telonicus : public CreatureScript if (!who || FakeDeath) return; - DoScriptText(SAY_TELONICUS_AGGRO, me); + Talk(SAY_TELONICUS_AGGRO); } void UpdateAI(const uint32 diff) diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp index 2c778485131..14895f1d898 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp @@ -29,13 +29,10 @@ EndScriptData */ enum eEnums { - SAY_AGGRO = -1550000, - SAY_SLAY1 = -1550001, - SAY_SLAY2 = -1550002, - SAY_SLAY3 = -1550003, - SAY_DEATH = -1550004, - SAY_POUNDING1 = -1550005, - SAY_POUNDING2 = -1550006, + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_DEATH = 2, + SAY_POUNDING = 3, SPELL_POUNDING = 34162, SPELL_ARCANE_ORB = 34172, @@ -83,12 +80,12 @@ class boss_void_reaver : public CreatureScript void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2, SAY_SLAY3), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); DoZoneInCombat(); if (instance) @@ -97,7 +94,7 @@ class boss_void_reaver : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (instance) instance->SetData(DATA_VOIDREAVEREVENT, IN_PROGRESS); @@ -111,7 +108,7 @@ class boss_void_reaver : public CreatureScript if (Pounding_Timer <= diff) { DoCast(me->getVictim(), SPELL_POUNDING); - DoScriptText(RAND(SAY_POUNDING1, SAY_POUNDING2), me); + Talk(SAY_POUNDING); Pounding_Timer = 15000; //cast time(3000) + cooldown time(12000) } else diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp index 83acc1258be..15241e35a4a 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_gatewatcher_ironhand.cpp @@ -28,13 +28,11 @@ EndScriptData */ enum eSays { - SAY_AGGRO_1 = -1554006, - SAY_HAMMER_1 = -1554007, - SAY_HAMMER_2 = -1554008, - SAY_SLAY_1 = -1554009, - SAY_SLAY_2 = -1554010, - SAY_DEATH_1 = -1554011, - EMOTE_HAMMER = -1554012, + SAY_AGGRO = 0, + SAY_HAMMER = 1, + SAY_SLAY = 2, + SAY_DEATH = 3, + EMOTE_HAMMER = 4 }; enum eSpells @@ -76,7 +74,7 @@ class boss_gatewatcher_iron_hand : public CreatureScript } void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO_1, me); + Talk(SAY_AGGRO); } void KilledUnit(Unit* /*victim*/) @@ -84,12 +82,12 @@ class boss_gatewatcher_iron_hand : public CreatureScript if (rand()%2) return; - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH_1, me); + Talk(SAY_DEATH); //TODO: Add door check/open code } @@ -112,14 +110,14 @@ class boss_gatewatcher_iron_hand : public CreatureScript if (Jackhammer_Timer <= diff) { //TODO: expect cast this about 5 times in a row (?), announce it by emote only once - DoScriptText(EMOTE_HAMMER, me); + Talk(EMOTE_HAMMER); DoCast(me->getVictim(), SPELL_JACKHAMMER); //chance to yell, but not same time as emote (after spell in fact casted) if (rand()%2) - return; + return; - DoScriptText(RAND(SAY_HAMMER_1, SAY_HAMMER_2), me); + Talk(SAY_HAMMER); Jackhammer_Timer = 30000; } else diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp index 02be844711d..1602ea56d93 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_nethermancer_sepethrea.cpp @@ -29,13 +29,11 @@ EndScriptData */ enum eSays { - SAY_AGGRO = -1554013, - SAY_SUMMON = -1554014, - SAY_DRAGONS_BREATH_1 = -1554015, - SAY_DRAGONS_BREATH_2 = -1554016, - SAY_SLAY1 = -1554017, - SAY_SLAY2 = -1554018, - SAY_DEATH = -1554019, + SAY_AGGRO = 0, + SAY_SUMMON = 1, + SAY_DRAGONS_BREATH = 2, + SAY_SLAY = 3, + SAY_DEATH = 4 }; enum eSpells @@ -92,19 +90,19 @@ class boss_nethermancer_sepethrea : public CreatureScript if (instance) instance->SetData(DATA_NETHERMANCER_EVENT, IN_PROGRESS); - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); DoCast(who, SPELL_SUMMON_RAGIN_FLAMES); - DoScriptText(SAY_SUMMON, me); + Talk(SAY_SUMMON); } void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY1, SAY_SLAY2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(DATA_NETHERMANCER_EVENT, DONE); } @@ -140,7 +138,7 @@ class boss_nethermancer_sepethrea : public CreatureScript { if (rand()%2) return; - DoScriptText(RAND(SAY_DRAGONS_BREATH_1, SAY_DRAGONS_BREATH_2), me); + Talk(SAY_DRAGONS_BREATH); } dragons_breath_Timer = urand(12000, 22000); } diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp index 622e6e6d7e6..adf1aac0639 100644 --- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp +++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_pathaleon_the_calculator.cpp @@ -28,14 +28,12 @@ EndScriptData */ enum eSays { - SAY_AGGRO = -1554020, - SAY_DOMINATION_1 = -1554021, - SAY_DOMINATION_2 = -1554022, - SAY_SUMMON = -1554023, - SAY_ENRAGE = -1554024, - SAY_SLAY_1 = -1554025, - SAY_SLAY_2 = -1554026, - SAY_DEATH = -1554027, + SAY_AGGRO = 0, + SAY_DOMINATION = 1, + SAY_SUMMON = 2, + SAY_ENRAGE = 3, + SAY_SLAY = 4, + SAY_DEATH = 5 }; // Spells to be casted enum eSpells @@ -96,17 +94,17 @@ class boss_pathaleon_the_calculator : public CreatureScript } void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); } void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); summons.DespawnAll(); } @@ -135,7 +133,7 @@ class boss_pathaleon_the_calculator : public CreatureScript if (target && Wraith) Wraith->AI()->AttackStart(target); } - DoScriptText(SAY_SUMMON, me); + Talk(SAY_SUMMON); Summon_Timer = urand(30000, 45000); } else @@ -161,7 +159,7 @@ class boss_pathaleon_the_calculator : public CreatureScript { if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1)) { - DoScriptText(RAND(SAY_DOMINATION_1, SAY_DOMINATION_2), me); + Talk(SAY_DOMINATION); DoCast(target, SPELL_DOMINATION); } Domination_Timer = urand(25000, 30000); @@ -184,7 +182,7 @@ class boss_pathaleon_the_calculator : public CreatureScript if (!Enraged && HealthBelowPct(21)) { DoCast(me, SPELL_FRENZY); - DoScriptText(SAY_ENRAGE, me); + Talk(SAY_ENRAGE); Enraged = true; } diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp index 730bab7e626..8a107090a28 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp @@ -34,16 +34,13 @@ EndContentData */ enum eSays { - SAY_INTRO = -1552000, - SAY_AGGRO = -1552001, - SAY_KILL_1 = -1552002, - SAY_KILL_2 = -1552003, - SAY_MIND_1 = -1552004, - SAY_MIND_2 = -1552005, - SAY_FEAR_1 = -1552006, - SAY_FEAR_2 = -1552007, - SAY_IMAGE = -1552008, - SAY_DEATH = -1552009, + SAY_INTRO = 0, + SAY_AGGRO = 1, + SAY_KILL = 2, + SAY_MIND = 3, + SAY_FEAR = 4, + SAY_IMAGE = 5, + SAY_DEATH = 6 }; enum eSpells @@ -115,7 +112,7 @@ class boss_harbinger_skyriss : public CreatureScript void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); if (instance) instance->SetData(TYPE_HARBINGERSKYRISS, DONE); } @@ -139,7 +136,7 @@ class boss_harbinger_skyriss : public CreatureScript if (victim->GetEntry() == 21436) return; - DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me); + Talk(SAY_KILL); } void DoSplit(uint32 val) @@ -147,7 +144,7 @@ class boss_harbinger_skyriss : public CreatureScript if (me->IsNonMeleeSpellCasted(false)) me->InterruptNonMeleeSpells(false); - DoScriptText(SAY_IMAGE, me); + Talk(SAY_IMAGE); if (val == 66) DoCast(me, SPELL_66_ILLUSION); @@ -167,13 +164,13 @@ class boss_harbinger_skyriss : public CreatureScript switch (Intro_Phase) { case 1: - DoScriptText(SAY_INTRO, me); + Talk(SAY_INTRO); instance->HandleGameObject(instance->GetData64(DATA_SPHERE_SHIELD), true); ++Intro_Phase; Intro_Timer = 25000; break; case 2: - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); if (Unit* mellic = Unit::GetUnit(*me, instance->GetData64(DATA_MELLICHAR))) { //should have a better way to do this. possibly spell exist. @@ -224,7 +221,7 @@ class boss_harbinger_skyriss : public CreatureScript if (me->IsNonMeleeSpellCasted(false)) return; - DoScriptText(RAND(SAY_FEAR_1, SAY_FEAR_2), me); + Talk(SAY_FEAR); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1)) DoCast(target, SPELL_FEAR); @@ -241,7 +238,7 @@ class boss_harbinger_skyriss : public CreatureScript if (me->IsNonMeleeSpellCasted(false)) return; - DoScriptText(RAND(SAY_MIND_1, SAY_MIND_2), me); + Talk(SAY_MIND); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1)) DoCast(target, SPELL_DOMINATION); diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp index a53f62c96f4..4288061860e 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp @@ -28,12 +28,10 @@ EndScriptData */ enum eSays { - SAY_AGGRO = -1553000, - SAY_KILL_1 = -1553001, - SAY_KILL_2 = -1553002, - SAY_TREE_1 = -1553003, - SAY_TREE_2 = -1553004, - SAY_DEATH = -1553005, + SAY_AGGRO = 0, + SAY_KILL = 1, + SAY_TREE = 2, + SAY_DEATH = 3 }; enum eSpells @@ -83,7 +81,7 @@ class boss_high_botanist_freywinn : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); } void JustSummoned(Creature* summoned) @@ -105,12 +103,12 @@ class boss_high_botanist_freywinn : public CreatureScript void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_KILL_1, SAY_KILL_2), me); + Talk(SAY_KILL); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } void UpdateAI(const uint32 diff) @@ -120,7 +118,7 @@ class boss_high_botanist_freywinn : public CreatureScript if (TreeForm_Timer <= diff) { - DoScriptText(RAND(SAY_TREE_1, SAY_TREE_2), me); + Talk(SAY_TREE); if (me->IsNonMeleeSpellCasted(false)) me->InterruptNonMeleeSpells(true); diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp index ed04c42edc7..3bda920fdeb 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_laj.cpp @@ -42,7 +42,7 @@ enum eSpells }; enum eOthers { - EMOTE_SUMMON = -1553006, + EMOTE_SUMMON = 0, MODEL_DEFAULT = 13109, MODEL_ARCANE = 14213, MODEL_FIRE = 13110, @@ -175,7 +175,7 @@ class boss_laj : public CreatureScript { if (Summon_Timer <= diff) { - DoScriptText(EMOTE_SUMMON, me); + Talk(EMOTE_SUMMON); DoSummons(); Summon_Timer = 2500; } diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp index 2937a5b9987..74f10f97754 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp @@ -28,12 +28,10 @@ EndScriptData */ enum eSays { - SAY_AGGRO = -1553007, - SAY_SLAY_1 = -1553008, - SAY_SLAY_2 = -1553009, - SAY_SUMMON_1 = -1553010, - SAY_SUMMON_2 = -1553011, - SAY_DEATH = -1553012, + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_SUMMON = 2, + SAY_DEATH = 3 }; enum eSpells @@ -162,17 +160,17 @@ class boss_warp_splinter : public CreatureScript void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_AGGRO, me); + Talk(SAY_AGGRO); } void KilledUnit(Unit* /*victim*/) { - DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2), me); + Talk(SAY_SLAY); } void JustDied(Unit* /*killer*/) { - DoScriptText(SAY_DEATH, me); + Talk(SAY_DEATH); } void SummonTreants() @@ -188,7 +186,7 @@ class boss_warp_splinter : public CreatureScript if (Creature* pTreant = me->SummonCreature(CREATURE_TREANT, treant_pos[i][0], treant_pos[i][1], treant_pos[i][2], O, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 25000)) CAST_AI(mob_warp_splinter_treant::mob_warp_splinter_treantAI, pTreant->AI())->WarpGuid = me->GetGUID(); } - DoScriptText(RAND(SAY_SUMMON_1, SAY_SUMMON_2), me); + Talk(SAY_SUMMON); } void UpdateAI(const uint32 diff) diff --git a/src/server/scripts/Outland/blades_edge_mountains.cpp b/src/server/scripts/Outland/blades_edge_mountains.cpp index c263ac85ef5..3932b96ad07 100644 --- a/src/server/scripts/Outland/blades_edge_mountains.cpp +++ b/src/server/scripts/Outland/blades_edge_mountains.cpp @@ -87,11 +87,12 @@ public: enum eNetherdrake { - SAY_NIHIL_1 = -1000169, //signed for 5955 - SAY_NIHIL_2 = -1000170, //signed for 5955 - SAY_NIHIL_3 = -1000171, //signed for 5955 - SAY_NIHIL_4 = -1000172, //signed for 20021, used by 20021, 21817, 21820, 21821, 21823 - SAY_NIHIL_INTERRUPT = -1000173, //signed for 20021, used by 20021, 21817, 21820, 21821, 21823 + //Used by 20021, 21817, 21820, 21821, 21823 but not existing in database + SAY_NIHIL_1 = 0, + SAY_NIHIL_2 = 1, + SAY_NIHIL_3 = 2, + SAY_NIHIL_4 = 3, + SAY_NIHIL_INTERRUPT = 4, ENTRY_WHELP = 20021, ENTRY_PROTO = 21821, @@ -176,7 +177,7 @@ public: //we are nihil, so say before transform if (me->GetEntry() == ENTRY_NIHIL) { - DoScriptText(SAY_NIHIL_INTERRUPT, me); + Talk(SAY_NIHIL_INTERRUPT); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); IsNihil = false; } @@ -203,19 +204,19 @@ public: switch (NihilSpeech_Phase) { case 0: - DoScriptText(SAY_NIHIL_1, me); + Talk(SAY_NIHIL_1); ++NihilSpeech_Phase; break; case 1: - DoScriptText(SAY_NIHIL_2, me); + Talk(SAY_NIHIL_2); ++NihilSpeech_Phase; break; case 2: - DoScriptText(SAY_NIHIL_3, me); + Talk(SAY_NIHIL_3); ++NihilSpeech_Phase; break; case 3: - DoScriptText(SAY_NIHIL_4, me); + Talk(SAY_NIHIL_4); ++NihilSpeech_Phase; break; case 4: @@ -266,7 +267,7 @@ public: enum eDaranelle { - SAY_SPELL_INFLUENCE = -1000174, + SAY_SPELL_INFLUENCE = 0, SPELL_LASHHAN_CHANNEL = 36904 }; @@ -294,7 +295,7 @@ public: { if (who->HasAura(SPELL_LASHHAN_CHANNEL) && me->IsWithinDistInMap(who, 10.0f)) { - DoScriptText(SAY_SPELL_INFLUENCE, me, who); + Talk(SAY_SPELL_INFLUENCE, who->GetGUID()); //TODO: Move the below to updateAI and run if this statement == true DoCast(who, 37028, true); } diff --git a/src/server/scripts/Outland/hellfire_peninsula.cpp b/src/server/scripts/Outland/hellfire_peninsula.cpp index 4da98281eb2..7ac90320347 100644 --- a/src/server/scripts/Outland/hellfire_peninsula.cpp +++ b/src/server/scripts/Outland/hellfire_peninsula.cpp @@ -46,8 +46,8 @@ EndContentData */ enum eAeranas { - SAY_SUMMON = -1000138, - SAY_FREE = -1000139, + SAY_SUMMON = 0, + SAY_FREE = 1, FACTION_HOSTILE = 16, FACTION_FRIENDLY = 35, @@ -85,7 +85,7 @@ public: me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); me->setFaction(FACTION_FRIENDLY); - DoScriptText(SAY_SUMMON, me); + Talk(SAY_SUMMON); } void UpdateAI(const uint32 diff) @@ -109,7 +109,7 @@ public: me->RemoveAllAuras(); me->DeleteThreatList(); me->CombatStop(true); - DoScriptText(SAY_FREE, me); + Talk(SAY_FREE); return; } @@ -136,9 +136,9 @@ public: enum eAncestralWolf { - EMOTE_WOLF_LIFT_HEAD = -1000496, - EMOTE_WOLF_HOWL = -1000497, - SAY_WOLF_WELCOME = -1000498, + EMOTE_WOLF_LIFT_HEAD = 0, + EMOTE_WOLF_HOWL = 1, + SAY_WOLF_WELCOME = 2, SPELL_ANCESTRAL_WOLF_BUFF = 29981, @@ -168,7 +168,7 @@ public: Reset(); } - Unit* pRyga; + Creature* pRyga; void Reset() { @@ -178,8 +178,9 @@ public: void MoveInLineOfSight(Unit* who) { - if (!pRyga && who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_RYGA && me->IsWithinDistInMap(who, 15.0f)) - pRyga = who; + if (!pRyga && who->GetEntry() == NPC_RYGA && me->IsWithinDistInMap(who, 15.0f)) + if (Creature* temp = who->ToCreature()) + pRyga = temp; npc_escortAI::MoveInLineOfSight(who); } @@ -189,14 +190,14 @@ public: switch (waypointId) { case 0: - DoScriptText(EMOTE_WOLF_LIFT_HEAD, me); + Talk(EMOTE_WOLF_LIFT_HEAD); break; case 2: - DoScriptText(EMOTE_WOLF_HOWL, me); + Talk(EMOTE_WOLF_HOWL); break; case 50: if (pRyga && pRyga->isAlive() && !pRyga->isInCombat()) - DoScriptText(SAY_WOLF_WELCOME, pRyga); + pRyga->AI()->Talk(SAY_WOLF_WELCOME); break; } } @@ -368,12 +369,12 @@ public: enum eWoundedBloodElf { - SAY_ELF_START = -1000117, - SAY_ELF_SUMMON1 = -1000118, - SAY_ELF_RESTING = -1000119, - SAY_ELF_SUMMON2 = -1000120, - SAY_ELF_COMPLETE = -1000121, - SAY_ELF_AGGRO = -1000122, + SAY_ELF_START = 0, + SAY_ELF_SUMMON1 = 1, + SAY_ELF_RESTING = 2, + SAY_ELF_SUMMON2 = 3, + SAY_ELF_COMPLETE = 4, + SAY_ELF_AGGRO = 5, QUEST_ROAD_TO_FALCON_WATCH = 9375 }; @@ -415,25 +416,25 @@ public: switch (waypointId) { case 0: - DoScriptText(SAY_ELF_START, me, player); + Talk(SAY_ELF_START, player->GetGUID()); break; case 9: - DoScriptText(SAY_ELF_SUMMON1, me, player); + Talk(SAY_ELF_SUMMON1, player->GetGUID()); // Spawn two Haal'eshi Talonguard DoSpawnCreature(16967, -15, -15, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); DoSpawnCreature(16967, -17, -17, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); break; case 13: - DoScriptText(SAY_ELF_RESTING, me, player); + Talk(SAY_ELF_RESTING, player->GetGUID()); break; case 14: - DoScriptText(SAY_ELF_SUMMON2, me, player); + Talk(SAY_ELF_SUMMON2, player->GetGUID()); // Spawn two Haal'eshi Windwalker DoSpawnCreature(16966, -15, -15, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); DoSpawnCreature(16966, -17, -17, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000); break; case 27: - DoScriptText(SAY_ELF_COMPLETE, me, player); + Talk(SAY_ELF_COMPLETE, player->GetGUID()); // Award quest credit player->GroupEventHappens(QUEST_ROAD_TO_FALCON_WATCH, me); break; @@ -445,7 +446,7 @@ public: void EnterCombat(Unit* /*who*/) { if (HasEscortState(STATE_ESCORT_ESCORTING)) - DoScriptText(SAY_ELF_AGGRO, me); + Talk(SAY_ELF_AGGRO); } void JustSummoned(Creature* summoned) diff --git a/src/server/scripts/Outland/nagrand.cpp b/src/server/scripts/Outland/nagrand.cpp index 0c9a60603f5..54565553e94 100644 --- a/src/server/scripts/Outland/nagrand.cpp +++ b/src/server/scripts/Outland/nagrand.cpp @@ -149,13 +149,13 @@ public: enum eMagharCaptive { - SAY_MAG_START = -1000482, - SAY_MAG_NO_ESCAPE = -1000483, - SAY_MAG_MORE = -1000484, - SAY_MAG_MORE_REPLY = -1000485, - SAY_MAG_LIGHTNING = -1000486, - SAY_MAG_SHOCK = -1000487, - SAY_MAG_COMPLETE = -1000488, + SAY_MAG_START = 0, + SAY_MAG_NO_ESCAPE = 0, + SAY_MAG_MORE = 1, + SAY_MAG_MORE_REPLY = 0, + SAY_MAG_LIGHTNING = 2, + SAY_MAG_SHOCK = 3, + SAY_MAG_COMPLETE = 4, SPELL_CHAIN_LIGHTNING = 16006, SPELL_EARTHBIND_TOTEM = 15786, @@ -189,7 +189,7 @@ public: pEscortAI->Start(true, false, player->GetGUID(), quest); - DoScriptText(SAY_MAG_START, creature); + creature->AI()->Talk(SAY_MAG_START); creature->SummonCreature(NPC_MURK_RAIDER, m_afAmbushA[0]+2.5f, m_afAmbushA[1]-2.5f, m_afAmbushA[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); creature->SummonCreature(NPC_MURK_PUTRIFIER, m_afAmbushA[0]-2.5f, m_afAmbushA[1]+2.5f, m_afAmbushA[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); @@ -229,17 +229,17 @@ public: switch (waypointId) { case 7: - DoScriptText(SAY_MAG_MORE, me); + Talk(SAY_MAG_MORE); if (Creature* temp = me->SummonCreature(NPC_MURK_PUTRIFIER, m_afAmbushB[0], m_afAmbushB[1], m_afAmbushB[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000)) - DoScriptText(SAY_MAG_MORE_REPLY, temp); + temp->AI()->Talk(SAY_MAG_MORE_REPLY); me->SummonCreature(NPC_MURK_PUTRIFIER, m_afAmbushB[0]-2.5f, m_afAmbushB[1]-2.5f, m_afAmbushB[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); me->SummonCreature(NPC_MURK_SCAVENGER, m_afAmbushB[0]+2.5f, m_afAmbushB[1]+2.5f, m_afAmbushB[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); me->SummonCreature(NPC_MURK_SCAVENGER, m_afAmbushB[0]+2.5f, m_afAmbushB[1]-2.5f, m_afAmbushB[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); break; case 16: - DoScriptText(SAY_MAG_COMPLETE, me); + Talk(SAY_MAG_COMPLETE); if (Player* player = GetPlayerForEscort()) player->GroupEventHappens(QUEST_TOTEM_KARDASH_H, me); @@ -252,7 +252,7 @@ public: void JustSummoned(Creature* summoned) { if (summoned->GetEntry() == NPC_MURK_BRUTE) - DoScriptText(SAY_MAG_NO_ESCAPE, summoned); + summoned->AI()->Talk(SAY_MAG_NO_ESCAPE); if (summoned->isTotem()) return; @@ -270,7 +270,7 @@ public: if (rand()%10) return; - DoScriptText(SAY_MAG_LIGHTNING, me); + Talk(SAY_MAG_LIGHTNING); } } @@ -367,18 +367,18 @@ enum CorkiData NPC_CORKI = 18445, NPC_CORKI_CREDIT_1 = 18369, GO_CORKIS_PRISON = 182349, - CORKI_SAY_THANKS = -1800071, + CORKI_SAY_THANKS = 0, // 2nd quest QUEST_CORKIS_GONE_MISSING_AGAIN = 9924, NPC_CORKI_2 = 20812, GO_CORKIS_PRISON_2 = 182350, - CORKI_SAY_PROMISE = -1800072, + CORKI_SAY_PROMISE = 0, // 3rd quest QUEST_CHOWAR_THE_PILLAGER = 9955, NPC_CORKI_3 = 18369, NPC_CORKI_CREDIT_3 = 18444, GO_CORKIS_PRISON_3 = 182521, - CORKI_SAY_LAST = -1800073 + CORKI_SAY_LAST = 0 }; class go_corkis_prison : public GameObjectScript @@ -468,11 +468,11 @@ public: Say_Timer = 5000; ReleasedFromCage = true; if (me->GetEntry() == NPC_CORKI) - DoScriptText(CORKI_SAY_THANKS, me); + Talk(CORKI_SAY_THANKS); if (me->GetEntry() == NPC_CORKI_2) - DoScriptText(CORKI_SAY_PROMISE, me); + Talk(CORKI_SAY_PROMISE); if (me->GetEntry() == NPC_CORKI_3) - DoScriptText(CORKI_SAY_LAST, me); + Talk(CORKI_SAY_LAST); } }; }; @@ -521,7 +521,7 @@ public: { creature->SetStandState(UNIT_STAND_STATE_STAND); EscortAI->Start(true, false, player->GetGUID(), quest); - DoScriptText(SAY_KUR_START, creature); + creature->AI()->Talk(SAY_KUR_START); creature->SummonCreature(NPC_KUR_MURK_RAIDER, kurenaiAmbushA[0]+2.5f, kurenaiAmbushA[1]-2.5f, kurenaiAmbushA[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); creature->SummonCreature(NPC_KUR_MURK_BRUTE, kurenaiAmbushA[0]-2.5f, kurenaiAmbushA[1]+2.5f, kurenaiAmbushA[2], 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000); diff --git a/src/server/scripts/Outland/netherstorm.cpp b/src/server/scripts/Outland/netherstorm.cpp index eaea4960712..96f707b06f1 100644 --- a/src/server/scripts/Outland/netherstorm.cpp +++ b/src/server/scripts/Outland/netherstorm.cpp @@ -45,12 +45,12 @@ EndContentData */ //used by 20209, 20417, 20418, 20440, signed for 20209 enum eManaforgeConsoleData { - EMOTE_START = -1000211, - EMOTE_60 = -1000212, - EMOTE_30 = -1000213, - EMOTE_10 = -1000214, - EMOTE_COMPLETE = -1000215, - EMOTE_ABORT = -1000216, + EMOTE_START = 0, + EMOTE_60 = 1, + EMOTE_30 = 2, + EMOTE_10 = 3, + EMOTE_COMPLETE = 4, + EMOTE_ABORT = 5, ENTRY_BNAAR_C_CONSOLE = 20209, ENTRY_CORUU_C_CONSOLE = 20417, @@ -114,7 +114,7 @@ public: void JustDied(Unit* /*killer*/) { - DoScriptText(EMOTE_ABORT, me); + Talk(EMOTE_ABORT); if (someplayer) { @@ -247,31 +247,32 @@ public: if (someplayer) { Unit* u = Unit::GetUnit(*me, someplayer); - if (u && u->GetTypeId() == TYPEID_PLAYER) DoScriptText(EMOTE_START, me, u); + if (u && u->GetTypeId() == TYPEID_PLAYER) + Talk(EMOTE_START, u->GetGUID()); } Event_Timer = 60000; Wave = true; ++Phase; break; case 2: - DoScriptText(EMOTE_60, me); + Talk(EMOTE_60); Event_Timer = 30000; ++Phase; break; case 3: - DoScriptText(EMOTE_30, me); + Talk(EMOTE_30); Event_Timer = 20000; DoFinalSpawnForCreature(me); ++Phase; break; case 4: - DoScriptText(EMOTE_10, me); + Talk(EMOTE_10); Event_Timer = 10000; Wave = false; ++Phase; break; case 5: - DoScriptText(EMOTE_COMPLETE, me); + Talk(EMOTE_COMPLETE); if (someplayer) { Unit* u = Unit::GetUnit(*me, someplayer); @@ -361,18 +362,20 @@ public: // The Speech of Dawnforge, Ardonis & Pathaleon enum eCommanderDawnforgeData { - SAY_COMMANDER_DAWNFORGE_1 = -1000128, - SAY_ARCANIST_ARDONIS_1 = -1000129, - SAY_COMMANDER_DAWNFORGE_2 = -1000130, - SAY_PATHALEON_CULATOR_IMAGE_1 = -1000131, - SAY_COMMANDER_DAWNFORGE_3 = -1000132, - SAY_PATHALEON_CULATOR_IMAGE_2 = -1000133, - SAY_PATHALEON_CULATOR_IMAGE_2_1 = -1000134, - SAY_PATHALEON_CULATOR_IMAGE_2_2 = -1000135, - SAY_COMMANDER_DAWNFORGE_4 = -1000136, - SAY_ARCANIST_ARDONIS_2 = -1000136, - SAY_COMMANDER_DAWNFORGE_5 = -1000137, - + SAY_COMMANDER_DAWNFORGE_1 = 0, + SAY_COMMANDER_DAWNFORGE_2 = 1, + SAY_COMMANDER_DAWNFORGE_3 = 2, + SAY_COMMANDER_DAWNFORGE_4 = 3, + SAY_COMMANDER_DAWNFORGE_5 = 4, + + SAY_ARCANIST_ARDONIS_1 = 0, + SAY_ARCANIST_ARDONIS_2 = 1, + + SAY_PATHALEON_CULATOR_IMAGE_1 = 0, + SAY_PATHALEON_CULATOR_IMAGE_2 = 1, + SAY_PATHALEON_CULATOR_IMAGE_2_1 = 2, + SAY_PATHALEON_CULATOR_IMAGE_2_2 = 3, + QUEST_INFO_GATHERING = 10198, SPELL_SUNFURY_DISGUISE = 34603, }; @@ -516,8 +519,8 @@ public: return; } - Unit* ardonis = Unit::GetUnit(*me, ardonisGUID); - Unit* pathaleon = Unit::GetUnit(*me, pathaleonGUID); + Creature* ardonis = Creature::GetCreature(*me, ardonisGUID); + Creature* pathaleon = Creature::GetCreature(*me, pathaleonGUID); Player* player = Unit::GetPlayer(*me, PlayerGUID); if (!ardonis || !player) @@ -536,19 +539,19 @@ public: switch (Phase) { case 1: - DoScriptText(SAY_COMMANDER_DAWNFORGE_1, me); + Talk(SAY_COMMANDER_DAWNFORGE_1); ++Phase; Phase_Timer = 16000; break; //Phase 2 Ardonis say case 2: - DoScriptText(SAY_ARCANIST_ARDONIS_1, ardonis); + ardonis->AI()->Talk(SAY_ARCANIST_ARDONIS_1); ++Phase; Phase_Timer = 16000; break; //Phase 3 Dawnforge say case 3: - DoScriptText(SAY_COMMANDER_DAWNFORGE_2, me); + Talk(SAY_COMMANDER_DAWNFORGE_2); ++Phase; Phase_Timer = 16000; break; @@ -561,7 +564,7 @@ public: break; //Phase 5 Pathaleon say case 5: - DoScriptText(SAY_PATHALEON_CULATOR_IMAGE_1, pathaleon); + pathaleon->AI()->Talk(SAY_PATHALEON_CULATOR_IMAGE_1); ++Phase; Phase_Timer = 6000; break; @@ -577,7 +580,7 @@ public: break; //Subphase 2 Dawnforge say case 1: - DoScriptText(SAY_COMMANDER_DAWNFORGE_3, me); + Talk(SAY_COMMANDER_DAWNFORGE_3); PhaseSubphase = 0; ++Phase; Phase_Timer = 8000; @@ -590,19 +593,19 @@ public: { //Subphase 1 case 0: - DoScriptText(SAY_PATHALEON_CULATOR_IMAGE_2, pathaleon); + pathaleon->AI()->Talk(SAY_PATHALEON_CULATOR_IMAGE_2); ++PhaseSubphase; Phase_Timer = 12000; break; //Subphase 2 case 1: - DoScriptText(SAY_PATHALEON_CULATOR_IMAGE_2_1, pathaleon); + pathaleon->AI()->Talk(SAY_PATHALEON_CULATOR_IMAGE_2_1); ++PhaseSubphase; Phase_Timer = 16000; break; //Subphase 3 case 2: - DoScriptText(SAY_PATHALEON_CULATOR_IMAGE_2_2, pathaleon); + pathaleon->AI()->Talk(SAY_PATHALEON_CULATOR_IMAGE_2_2); PhaseSubphase = 0; ++Phase; Phase_Timer = 10000; @@ -611,8 +614,8 @@ public: break; //Phase 8 Dawnforge & Ardonis say case 8: - DoScriptText(SAY_COMMANDER_DAWNFORGE_4, me); - DoScriptText(SAY_ARCANIST_ARDONIS_2, ardonis); + Talk(SAY_COMMANDER_DAWNFORGE_4); + ardonis->AI()->Talk(SAY_ARCANIST_ARDONIS_2); ++Phase; Phase_Timer = 4000; break; @@ -627,7 +630,7 @@ public: break; //Phase 10 Dawnforge say case 10: - DoScriptText(SAY_COMMANDER_DAWNFORGE_5, me); + Talk(SAY_COMMANDER_DAWNFORGE_5); player->AreaExploredOrEventHappens(QUEST_INFO_GATHERING); Reset(); break; @@ -667,7 +670,7 @@ enum eProfessorDabiriData { SPELL_PHASE_DISTRUPTOR = 35780, - WHISPER_DABIRI = -1000522, + //WHISPER_DABIRI = 0, not existing in database QUEST_DIMENSIUS = 10439, QUEST_ON_NETHERY_WINGS = 10438, @@ -680,13 +683,9 @@ class npc_professor_dabiri : public CreatureScript public: npc_professor_dabiri() : CreatureScript("npc_professor_dabiri") { } - bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) - { - if (quest->GetQuestId() == QUEST_DIMENSIUS) - DoScriptText(WHISPER_DABIRI, creature, player); - - return true; - } + //OnQuestAccept: + //if (quest->GetQuestId() == QUEST_DIMENSIUS) + //creature->AI()->Talk(WHISPER_DABIRI, player->GetGUID()); bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) { @@ -725,7 +724,7 @@ enum ePhaseHunterData NPC_PHASE_HUNTER_ENTRY = 18879, NPC_DRAINED_PHASE_HUNTER_ENTRY = 19595, - EMOTE_WEAK = -1000303, + EMOTE_WEAK = 0, // Spells SPELL_RECHARGING_BATTERY = 34219, @@ -827,7 +826,7 @@ public: if (!Weak && HealthBelowPct(WeakPercent) && player->GetQuestStatus(QUEST_RECHARGING_THE_BATTERIES) == QUEST_STATUS_INCOMPLETE) { - DoScriptText(EMOTE_WEAK, me); + Talk(EMOTE_WEAK); Weak = true; } if (Weak && !Drained && me->HasAura(SPELL_RECHARGING_BATTERY)) @@ -857,8 +856,8 @@ enum eBessyData N_THADELL = 20464, SPAWN_FIRST = 20512, SPAWN_SECOND = 19881, - SAY_THADELL_1 = -1000524, - SAY_THADELL_2 = -1000525, + SAY_THADELL_1 = 0, + SAY_THADELL_2 = 1, }; class npc_bessy : public CreatureScript @@ -912,11 +911,11 @@ public: case 12: player->GroupEventHappens(Q_ALMABTRIEB, me); if (me->FindNearestCreature(N_THADELL, 30)) - DoScriptText(SAY_THADELL_1, me); + Talk(SAY_THADELL_1); break; case 13: if (me->FindNearestCreature(N_THADELL, 30)) - DoScriptText(SAY_THADELL_2, me, player); + Talk(SAY_THADELL_2, player->GetGUID()); break; } } diff --git a/src/server/scripts/Outland/shadowmoon_valley.cpp b/src/server/scripts/Outland/shadowmoon_valley.cpp index dc91fb2c14f..55fce0c4a8d 100644 --- a/src/server/scripts/Outland/shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/shadowmoon_valley.cpp @@ -55,7 +55,7 @@ EndContentData */ enum eMatureNetherwing { - SAY_JUST_EATEN = -1000175, + SAY_JUST_EATEN = 0, SPELL_PLACE_CARCASS = 38439, SPELL_JUST_EATEN = 38502, @@ -152,7 +152,7 @@ public: else if (bIsEating) { DoCast(me, SPELL_JUST_EATEN); - DoScriptText(SAY_JUST_EATEN, me); + Talk(SAY_JUST_EATEN); if (Player* pPlr = Unit::GetPlayer(*me, uiPlayerGUID)) { @@ -674,25 +674,25 @@ enum eOverlordData SPELL_THREE = 40216, // Dragonaw Faction SPELL_FOUR = 42016, // Dragonaw Trasform - OVERLORD_SAY_1 = -1000606, - OVERLORD_SAY_2 = -1000607, - OVERLORD_SAY_3 = -1000608, //signed for 28315 - OVERLORD_SAY_4 = -1000609, - OVERLORD_SAY_5 = -1000610, - OVERLORD_SAY_6 = -1000611, - - OVERLORD_YELL_1 = -1000612, - OVERLORD_YELL_2 = -1000613, - - LORD_ILLIDAN_SAY_1 = -1000614, - LORD_ILLIDAN_SAY_2 = -1000615, - LORD_ILLIDAN_SAY_3 = -1000616, - LORD_ILLIDAN_SAY_4 = -1000617, - LORD_ILLIDAN_SAY_5 = -1000618, - LORD_ILLIDAN_SAY_6 = -1000619, - LORD_ILLIDAN_SAY_7 = -1000620, - - YARZILL_THE_MERC_SAY = -1000621, + OVERLORD_SAY_1 = 0, + OVERLORD_SAY_2 = 1, + //OVERLORD_SAY_3 = 2, + OVERLORD_SAY_4 = 3, + OVERLORD_SAY_5 = 4, + OVERLORD_SAY_6 = 5, + + OVERLORD_YELL_1 = 6, + OVERLORD_YELL_2 = 7, + + LORD_ILLIDAN_SAY_1 = 0, + LORD_ILLIDAN_SAY_2 = 1, + LORD_ILLIDAN_SAY_3 = 2, + LORD_ILLIDAN_SAY_4 = 3, + LORD_ILLIDAN_SAY_5 = 4, + LORD_ILLIDAN_SAY_6 = 5, + LORD_ILLIDAN_SAY_7 = 6, + + YARZILL_THE_MERC_SAY = 0 }; class npc_overlord_morghor : public CreatureScript @@ -754,7 +754,7 @@ public: { Player* player = Unit::GetPlayer(*me, PlayerGUID); if (player) - DoScriptText(OVERLORD_SAY_1, me, player); + Talk(OVERLORD_SAY_1, player->GetGUID()); } ConversationTimer = 4200; Step = 0; @@ -764,7 +764,7 @@ public: uint32 NextStep(uint32 Step) { Player* player = Unit::GetPlayer(*me, PlayerGUID); - Unit* Illi = Unit::GetUnit(*me, IllidanGUID); + Creature* Illi = Creature::GetCreature(*me, IllidanGUID); if (!player || !Illi) { @@ -782,7 +782,7 @@ public: return 9000; break; case 2: - DoScriptText(OVERLORD_YELL_1, me, player); + Talk(OVERLORD_YELL_1, player->GetGUID()); return 4500; break; case 3: @@ -790,7 +790,7 @@ public: return 3200; break; case 4: - DoScriptText(OVERLORD_SAY_2, me, player); + Talk(OVERLORD_SAY_2, player->GetGUID()); return 2000; break; case 5: @@ -805,31 +805,27 @@ public: return 2000; break; case 7: - DoScriptText(OVERLORD_YELL_2, me); + Talk(OVERLORD_YELL_2); return 4500; break; case 8: me->SetUInt32Value(UNIT_FIELD_BYTES_1, 8); - return 2500; - break; - case 9: - DoScriptText(OVERLORD_SAY_3, me); - return 6500; + return 9000; break; case 10: - DoScriptText(LORD_ILLIDAN_SAY_1, Illi); + Illi->AI()->Talk(LORD_ILLIDAN_SAY_1); return 5000; break; case 11: - DoScriptText(OVERLORD_SAY_4, me, player); + Talk(OVERLORD_SAY_4, player->GetGUID()); return 6000; break; case 12: - DoScriptText(LORD_ILLIDAN_SAY_2, Illi); + Illi->AI()->Talk(LORD_ILLIDAN_SAY_2); return 5500; break; case 13: - DoScriptText(LORD_ILLIDAN_SAY_3, Illi); + Illi->AI()->Talk(LORD_ILLIDAN_SAY_3); return 4000; break; case 14: @@ -837,7 +833,7 @@ public: return 1500; break; case 15: - DoScriptText(LORD_ILLIDAN_SAY_4, Illi); + Illi->AI()->Talk(LORD_ILLIDAN_SAY_4); return 1500; break; case 16: @@ -847,15 +843,15 @@ public: return 5000; break; case 17: - DoScriptText(LORD_ILLIDAN_SAY_5, Illi); + Illi->AI()->Talk(LORD_ILLIDAN_SAY_5); return 5000; break; case 18: - DoScriptText(LORD_ILLIDAN_SAY_6, Illi); + Illi->AI()->Talk(LORD_ILLIDAN_SAY_6); return 5000; break; case 19: - DoScriptText(LORD_ILLIDAN_SAY_7, Illi); + Illi->AI()->Talk(LORD_ILLIDAN_SAY_7); return 5000; break; case 20: @@ -864,7 +860,7 @@ public: return 500; break; case 21: - DoScriptText(OVERLORD_SAY_5, me); + Talk(OVERLORD_SAY_5); return 500; break; case 22: @@ -881,7 +877,7 @@ public: return 5000; break; case 25: - DoScriptText(OVERLORD_SAY_6, me); + Talk(OVERLORD_SAY_6); return 2000; break; case 26: @@ -905,24 +901,21 @@ public: break; case 29: { - Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50); - if (Yarzill) - DoScriptText(YARZILL_THE_MERC_SAY, Yarzill, player); + if (Creature* Yarzill = me->FindNearestCreature(C_YARZILL, 50.0f)) + Yarzill->AI()->Talk(YARZILL_THE_MERC_SAY, player->GetGUID()); return 5000; } break; case 30: { - Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50); - if (Yarzill) + if (Creature* Yarzill = me->FindNearestCreature(C_YARZILL, 50.0f)) Yarzill->SetTarget(0); return 5000; } break; case 31: { - Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50); - if (Yarzill) + if (Creature* Yarzill = me->FindNearestCreature(C_YARZILL, 50.0f)) Yarzill->CastSpell(player, 41540, true); return 1000; } @@ -960,16 +953,13 @@ public: enum eEarthmender { - SAY_WIL_START = -1000381, - SAY_WIL_AGGRO1 = -1000382, - SAY_WIL_AGGRO2 = -1000383, - SAY_WIL_PROGRESS1 = -1000384, - SAY_WIL_PROGRESS2 = -1000385, - SAY_WIL_FIND_EXIT = -1000386, - SAY_WIL_PROGRESS4 = -1000387, - SAY_WIL_PROGRESS5 = -1000388, - SAY_WIL_JUST_AHEAD = -1000389, - SAY_WIL_END = -1000390, + SAY_WIL_START = 0, + SAY_WIL_AGGRO = 1, + SAY_WIL_PROGRESS1 = 2, + SAY_WIL_PROGRESS2 = 3, + SAY_WIL_FIND_EXIT = 4, + SAY_WIL_JUST_AHEAD = 5, + SAY_WIL_END = 6, SPELL_CHAIN_LIGHTNING = 16006, SPELL_EARTHBING_TOTEM = 15786, @@ -990,7 +980,7 @@ public: { if (quest->GetQuestId() == QUEST_ESCAPE_COILSCAR) { - DoScriptText(SAY_WIL_START, creature, player); + creature->AI()->Talk(SAY_WIL_START, player->GetGUID()); creature->setFaction(FACTION_EARTHEN); if (npc_earthmender_wildaAI* pEscortAI = CAST_AI(npc_earthmender_wilda::npc_earthmender_wildaAI, creature->AI())) @@ -1024,14 +1014,14 @@ public: switch (waypointId) { case 13: - DoScriptText(SAY_WIL_PROGRESS1, me, player); + Talk(SAY_WIL_PROGRESS1, player->GetGUID()); DoSpawnAssassin(); break; case 14: DoSpawnAssassin(); break; case 15: - DoScriptText(SAY_WIL_FIND_EXIT, me, player); + Talk(SAY_WIL_FIND_EXIT, player->GetGUID()); break; case 19: DoRandomSay(); @@ -1058,7 +1048,7 @@ public: DoSpawnAssassin(); break; case 39: - DoScriptText(SAY_WIL_JUST_AHEAD, me, player); + Talk(SAY_WIL_JUST_AHEAD, player->GetGUID()); break; case 43: DoRandomSay(); @@ -1067,7 +1057,7 @@ public: DoSpawnAssassin(); break; case 50: - DoScriptText(SAY_WIL_END, me, player); + Talk(SAY_WIL_END, player->GetGUID()); player->GroupEventHappens(QUEST_ESCAPE_COILSCAR, me); break; } @@ -1082,7 +1072,7 @@ public: //this is very unclear, random say without no real relevance to script/event void DoRandomSay() { - DoScriptText(RAND(SAY_WIL_PROGRESS2, SAY_WIL_PROGRESS4, SAY_WIL_PROGRESS5), me); + Talk(SAY_WIL_PROGRESS2); } void DoSpawnAssassin() @@ -1102,7 +1092,7 @@ public: { //appears to be random if (urand(0, 1)) - DoScriptText(RAND(SAY_WIL_AGGRO1, SAY_WIL_AGGRO2), who); + Talk(SAY_WIL_AGGRO); } } @@ -1140,28 +1130,25 @@ npc_lord_illidan_stormrage : Creature that controls the event. go_crystal_prison : GameObject that begins the event and hands out quest EndContentData */ -#define END_TEXT -1000366 //signed for 10646 - #define QUEST_BATTLE_OF_THE_CRIMSON_WATCH 10781 #define EVENT_AREA_RADIUS 65 //65yds #define EVENT_COOLDOWN 30000 //in ms. appear after event completed or failed (should be = Adds despawn time) struct TorlothCinematic { - int32 TextId; uint32 creature, Timer; }; // Creature 0 - Torloth, 1 - Illidan static TorlothCinematic TorlothAnim[]= { - {-1000367, 0, 2000}, - {-1000368, 1, 7000}, - {-1000369, 0, 3000}, - {0, 0, 2000}, // Torloth stand - {-1000370, 0, 1000}, - {0, 0, 3000}, - {0, 0, 0} + {0, 2000}, + {1, 7000}, + {0, 3000}, + {0, 2000}, // Torloth stand + {0, 1000}, + {0, 3000}, + {0, 0} }; struct Location @@ -1195,15 +1182,14 @@ struct WaveData { uint8 SpawnCount, UsedSpawnPoint; uint32 CreatureId, SpawnTimer, YellTimer; - int32 WaveTextId; }; static WaveData WavesInfo[]= { - {9, 0, 22075, 10000, 7000, -1000371}, //Illidari Soldier - {2, 9, 22074, 10000, 7000, -1000372}, //Illidari Mind Breaker - {4, 11, 19797, 10000, 7000, -1000373}, //Illidari Highlord - {1, 15, 22076, 10000, 7000, -1000374} //Torloth The Magnificent + {9, 0, 22075, 10000, 7000}, //Illidari Soldier + {2, 9, 22074, 10000, 7000}, //Illidari Mind Breaker + {4, 11, 19797, 10000, 7000}, //Illidari Highlord + {1, 15, 22076, 10000, 7000} //Torloth The Magnificent }; struct SpawnSpells @@ -1278,9 +1264,6 @@ public: return; } - if (TorlothAnim[AnimationCount].TextId) - DoScriptText(TorlothAnim[AnimationCount].TextId, creature); - AnimationTimer = TorlothAnim[AnimationCount].Timer; switch (AnimationCount) @@ -1377,7 +1360,6 @@ public: if (Creature* LordIllidan = (Unit::GetCreature(*me, LordIllidanGUID))) { - DoScriptText(END_TEXT, LordIllidan, killer); LordIllidan->AI()->EnterEvadeMode(); } } @@ -1512,14 +1494,17 @@ public: { if (!Announced && AnnounceTimer <= diff) { - DoScriptText(WavesInfo[WaveCount].WaveTextId, me); Announced = true; - } else AnnounceTimer -= diff; + } + else + AnnounceTimer -= diff; if (WaveTimer <= diff) { SummonNextWave(); - } else WaveTimer -= diff; + } + else + WaveTimer -= diff; } CheckEventFail(); diff --git a/src/server/scripts/Outland/shattrath_city.cpp b/src/server/scripts/Outland/shattrath_city.cpp index 76cffa9e1fe..c45ad519d39 100644 --- a/src/server/scripts/Outland/shattrath_city.cpp +++ b/src/server/scripts/Outland/shattrath_city.cpp @@ -286,28 +286,32 @@ public: # npc_kservant ######*/ -#define SAY1 -1000234 -#define WHISP1 -1000235 -#define WHISP2 -1000236 -#define WHISP3 -1000237 -#define WHISP4 -1000238 -#define WHISP5 -1000239 -#define WHISP6 -1000240 -#define WHISP7 -1000241 -#define WHISP8 -1000242 -#define WHISP9 -1000243 -#define WHISP10 -1000244 -#define WHISP11 -1000245 -#define WHISP12 -1000246 -#define WHISP13 -1000247 -#define WHISP14 -1000248 -#define WHISP15 -1000249 -#define WHISP16 -1000250 -#define WHISP17 -1000251 -#define WHISP18 -1000252 -#define WHISP19 -1000253 -#define WHISP20 -1000254 -#define WHISP21 -1000255 +enum KServant +{ + SAY1 = 0, + WHISP1 = 1, + WHISP2 = 2, + WHISP3 = 3, + WHISP4 = 4, + WHISP5 = 5, + WHISP6 = 6, + WHISP7 = 7, + WHISP8 = 8, + WHISP9 = 9, + WHISP10 = 10, + WHISP11 = 11, + WHISP12 = 12, + WHISP13 = 13, + WHISP14 = 14, + WHISP15 = 15, + WHISP16 = 16, + WHISP17 = 17, + WHISP18 = 18, + WHISP19 = 19, + WHISP20 = 20, + WHISP21 = 21 +}; + class npc_kservant : public CreatureScript { public: @@ -332,70 +336,70 @@ public: switch (waypointId) { case 0: - DoScriptText(SAY1, me, player); + Talk(SAY1, player->GetGUID()); break; case 4: - DoScriptText(WHISP1, me, player); + Talk(WHISP1, player->GetGUID()); break; case 6: - DoScriptText(WHISP2, me, player); + Talk(WHISP2, player->GetGUID()); break; case 7: - DoScriptText(WHISP3, me, player); + Talk(WHISP3, player->GetGUID()); break; case 8: - DoScriptText(WHISP4, me, player); + Talk(WHISP4, player->GetGUID()); break; case 17: - DoScriptText(WHISP5, me, player); + Talk(WHISP5, player->GetGUID()); break; case 18: - DoScriptText(WHISP6, me, player); + Talk(WHISP6, player->GetGUID()); break; case 19: - DoScriptText(WHISP7, me, player); + Talk(WHISP7, player->GetGUID()); break; case 33: - DoScriptText(WHISP8, me, player); + Talk(WHISP8, player->GetGUID()); break; case 34: - DoScriptText(WHISP9, me, player); + Talk(WHISP9, player->GetGUID()); break; case 35: - DoScriptText(WHISP10, me, player); + Talk(WHISP10, player->GetGUID()); break; case 36: - DoScriptText(WHISP11, me, player); + Talk(WHISP11, player->GetGUID()); break; case 43: - DoScriptText(WHISP12, me, player); + Talk(WHISP12, player->GetGUID()); break; case 44: - DoScriptText(WHISP13, me, player); + Talk(WHISP13, player->GetGUID()); break; case 49: - DoScriptText(WHISP14, me, player); + Talk(WHISP14, player->GetGUID()); break; case 50: - DoScriptText(WHISP15, me, player); + Talk(WHISP15, player->GetGUID()); break; case 51: - DoScriptText(WHISP16, me, player); + Talk(WHISP16, player->GetGUID()); break; case 52: - DoScriptText(WHISP17, me, player); + Talk(WHISP17, player->GetGUID()); break; case 53: - DoScriptText(WHISP18, me, player); + Talk(WHISP18, player->GetGUID()); break; case 54: - DoScriptText(WHISP19, me, player); + Talk(WHISP19, player->GetGUID()); break; case 55: - DoScriptText(WHISP20, me, player); + Talk(WHISP20, player->GetGUID()); break; case 56: - DoScriptText(WHISP21, me, player); + Talk(WHISP21, player->GetGUID()); player->GroupEventHappens(10211, me); break; } @@ -429,16 +433,19 @@ public: #define GOSSIP_BOOK "Ezekiel said that you might have a certain book..." -#define SAY_1 -1000274 -#define SAY_2 -1000275 -#define SAY_3 -1000276 -#define SAY_4 -1000277 -#define SAY_5 -1000278 -#define SAY_GIVEUP -1000279 - -#define QUEST_WBI 10231 -#define NPC_CREEPJACK 19726 -#define NPC_MALONE 19725 +enum DirtyLarry +{ + SAY_1 = 0, + SAY_2 = 1, + SAY_3 = 2, + SAY_4 = 3, + SAY_5 = 4, + SAY_GIVEUP = 5, + + QUEST_WBI = 10231, + NPC_CREEPJACK = 19726, + NPC_MALONE = 19725 +}; class npc_dirty_larry : public CreatureScript { @@ -500,11 +507,11 @@ public: if (Malone) Malone->SetUInt32Value(UNIT_FIELD_BYTES_1, 0); me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); }return 2000; - case 1: DoScriptText(SAY_1, me, player); return 3000; - case 2: DoScriptText(SAY_2, me, player); return 5000; - case 3: DoScriptText(SAY_3, me, player); return 2000; - case 4: DoScriptText(SAY_4, me, player); return 2000; - case 5: DoScriptText(SAY_5, me, player); return 2000; + case 1: Talk(SAY_1, player->GetGUID()); return 3000; + case 2: Talk(SAY_2, player->GetGUID()); return 5000; + case 3: Talk(SAY_3, player->GetGUID()); return 2000; + case 4: Talk(SAY_4, player->GetGUID()); return 2000; + case 5: Talk(SAY_5, player->GetGUID()); return 2000; case 6: Attack = true; return 2000; default: return 0; } @@ -572,7 +579,7 @@ public: } me->setFaction(1194); Done = true; - DoScriptText(SAY_GIVEUP, me, NULL); + Talk(SAY_GIVEUP); me->DeleteThreatList(); me->CombatStop(); me->GetMotionMaster()->MoveTargetedHome(); diff --git a/src/server/scripts/Outland/terokkar_forest.cpp b/src/server/scripts/Outland/terokkar_forest.cpp index 2298f676692..d1f37dd5bfc 100644 --- a/src/server/scripts/Outland/terokkar_forest.cpp +++ b/src/server/scripts/Outland/terokkar_forest.cpp @@ -45,14 +45,16 @@ EndContentData */ ## mob_unkor_the_ruthless ######*/ -#define SAY_SUBMIT -1000194 +enum UnkorTheRuthless +{ + SAY_SUBMIT = 0, -#define FACTION_HOSTILE 45 -#define FACTION_FRIENDLY 35 -#define QUEST_DONTKILLTHEFATONE 9889 + FACTION_HOSTILE = 45, + FACTION_FRIENDLY = 35, + QUEST_DONTKILLTHEFATONE = 9889, -#define SPELL_PULVERIZE 2676 -//#define SPELL_QUID9889 32174 + SPELL_PULVERIZE = 2676 +}; class mob_unkor_the_ruthless : public CreatureScript { @@ -85,7 +87,7 @@ public: void DoNice() { - DoScriptText(SAY_SUBMIT, me); + Talk(SAY_SUBMIT); me->setFaction(FACTION_FRIENDLY); me->SetStandState(UNIT_STAND_STATE_SIT); me->RemoveAllAuras(); @@ -344,7 +346,7 @@ public: enum eFloon { - SAY_FLOON_ATTACK = -1000195, + SAY_FLOON_ATTACK = 0, SPELL_SILENCE = 6726, SPELL_FROSTBOLT = 9672, @@ -371,7 +373,7 @@ public: { player->CLOSE_GOSSIP_MENU(); creature->setFaction(FACTION_HOSTILE_FL); - DoScriptText(SAY_FLOON_ATTACK, creature, player); + creature->AI()->Talk(SAY_FLOON_ATTACK, player->GetGUID()); creature->AI()->AttackStart(player); } return true; @@ -447,10 +449,10 @@ public: ######*/ enum eIslaStarmaneData { - SAY_PROGRESS_1 = -1000571, - SAY_PROGRESS_2 = -1000572, - SAY_PROGRESS_3 = -1000573, - SAY_PROGRESS_4 = -1000574, + SAY_PROGRESS_1 = 0, + SAY_PROGRESS_2 = 1, + SAY_PROGRESS_3 = 2, + SAY_PROGRESS_4 = 3, QUEST_EFTW_H = 10052, QUEST_EFTW_A = 10051, @@ -480,16 +482,16 @@ public: Cage->SetGoState(GO_STATE_ACTIVE); break; case 2: - DoScriptText(SAY_PROGRESS_1, me, player); + Talk(SAY_PROGRESS_1, player->GetGUID()); break; case 5: - DoScriptText(SAY_PROGRESS_2, me, player); + Talk(SAY_PROGRESS_2, player->GetGUID()); break; case 6: - DoScriptText(SAY_PROGRESS_3, me, player); + Talk(SAY_PROGRESS_3, player->GetGUID()); break; case 29: - DoScriptText(SAY_PROGRESS_4, me, player); + Talk(SAY_PROGRESS_4, player->GetGUID()); if (player->GetTeam() == ALLIANCE) player->GroupEventHappens(QUEST_EFTW_A, me); else if (player->GetTeam() == HORDE) diff --git a/src/server/scripts/Outland/zangarmarsh.cpp b/src/server/scripts/Outland/zangarmarsh.cpp index 03e40b8d7dc..1fbb8a48324 100644 --- a/src/server/scripts/Outland/zangarmarsh.cpp +++ b/src/server/scripts/Outland/zangarmarsh.cpp @@ -45,9 +45,24 @@ EndContentData */ #define GOSSIP_ITEM_BLESS_ASH "Grant me your mark, wise ancient." #define GOSSIP_ITEM_BLESS_KEL "Grant me your mark, mighty ancient." -//signed for 17900 but used by 17900, 17901 -#define GOSSIP_REWARD_BLESS -1000359 -//#define TEXT_BLESSINGS "<You need higher standing with Cenarion Expedition to recive a blessing.>" + +enum AshyenAndKeleth +{ + GOSSIP_REWARD_BLESS = 0, + + NPC_ASHYEN = 17900, + NPC_KELETH = 17901, + + SPELL_BLESS_ASH_EXA = 31815, + SPELL_BLESS_ASH_REV = 31811, + SPELL_BLESS_ASH_HON = 31810, + SPELL_BLESS_ASH_FRI = 31808, + + SPELL_BLESS_KEL_EXA = 31814, + SPELL_BLESS_KEL_REV = 31813, + SPELL_BLESS_KEL_HON = 31812, + SPELL_BLESS_KEL_FRI = 31807 +}; class npcs_ashyen_and_keleth : public CreatureScript { @@ -58,10 +73,10 @@ public: { if (player->GetReputationRank(942) > REP_NEUTRAL) { - if (creature->GetEntry() == 17900) + if (creature->GetEntry() == NPC_ASHYEN) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BLESS_ASH, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); - if (creature->GetEntry() == 17901) + if (creature->GetEntry() == NPC_KELETH) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BLESS_KEL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); } player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID()); @@ -78,54 +93,60 @@ public: creature->SetMaxPower(POWER_MANA, 200); //set a "fake" mana value, we can't depend on database doing it in this case creature->SetPower(POWER_MANA, 200); - if (creature->GetEntry() == 17900) //check which Creature we are dealing with + if (creature->GetEntry() == NPC_ASHYEN) //check which Creature we are dealing with { + uint32 spell = 0; switch (player->GetReputationRank(942)) { //mark of lore case REP_FRIENDLY: - creature->CastSpell(player, 31808, true); - DoScriptText(GOSSIP_REWARD_BLESS, creature); + spell = SPELL_BLESS_ASH_FRI; break; case REP_HONORED: - creature->CastSpell(player, 31810, true); - DoScriptText(GOSSIP_REWARD_BLESS, creature); + spell = SPELL_BLESS_ASH_HON; break; case REP_REVERED: - creature->CastSpell(player, 31811, true); - DoScriptText(GOSSIP_REWARD_BLESS, creature); + spell = SPELL_BLESS_ASH_REV; break; case REP_EXALTED: - creature->CastSpell(player, 31815, true); - DoScriptText(GOSSIP_REWARD_BLESS, creature); + spell = SPELL_BLESS_ASH_EXA; break; default: break; } + + if (spell) + { + creature->CastSpell(player, spell, true); + creature->AI()->Talk(GOSSIP_REWARD_BLESS); + } } - if (creature->GetEntry() == 17901) + if (creature->GetEntry() == NPC_KELETH) { + uint32 spell = 0; switch (player->GetReputationRank(942)) //mark of war { case REP_FRIENDLY: - creature->CastSpell(player, 31807, true); - DoScriptText(GOSSIP_REWARD_BLESS, creature); + spell = SPELL_BLESS_KEL_FRI; break; case REP_HONORED: - creature->CastSpell(player, 31812, true); - DoScriptText(GOSSIP_REWARD_BLESS, creature); + spell = SPELL_BLESS_KEL_HON; break; case REP_REVERED: - creature->CastSpell(player, 31813, true); - DoScriptText(GOSSIP_REWARD_BLESS, creature); + spell = SPELL_BLESS_KEL_REV; break; case REP_EXALTED: - creature->CastSpell(player, 31814, true); - DoScriptText(GOSSIP_REWARD_BLESS, creature); + spell = SPELL_BLESS_KEL_EXA; break; default: break; } + + if (spell) + { + creature->CastSpell(player, spell, true); + creature->AI()->Talk(GOSSIP_REWARD_BLESS); + } } player->CLOSE_GOSSIP_MENU(); player->TalkedToCreature(creature->GetEntry(), creature->GetGUID()); @@ -304,12 +325,11 @@ public: enum eKayra { - SAY_START = -1000343, - SAY_AMBUSH1 = -1000344, - SAY_PROGRESS = -1000345, - SAY_AMBUSH2 = -1000346, - SAY_NEAR_END = -1000347, - SAY_END = -1000348, //this is signed for 10646 + SAY_START = 0, + SAY_AMBUSH1 = 1, + SAY_PROGRESS = 2, + SAY_AMBUSH2 = 3, + SAY_END = 4, QUEST_ESCAPE_FROM = 9752, NPC_SLAVEBINDER = 18042 @@ -335,25 +355,24 @@ public: switch (waypointId) { case 4: - DoScriptText(SAY_AMBUSH1, me, player); + Talk(SAY_AMBUSH1, player->GetGUID()); DoSpawnCreature(NPC_SLAVEBINDER, -10.0f, -5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); DoSpawnCreature(NPC_SLAVEBINDER, -8.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break; case 5: - DoScriptText(SAY_PROGRESS, me, player); + Talk(SAY_PROGRESS, player->GetGUID()); SetRun(); break; case 16: - DoScriptText(SAY_AMBUSH2, me, player); + Talk(SAY_AMBUSH2, player->GetGUID()); DoSpawnCreature(NPC_SLAVEBINDER, -10.0f, -5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); DoSpawnCreature(NPC_SLAVEBINDER, -8.0f, 5.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000); break; case 17: SetRun(false); - DoScriptText(SAY_NEAR_END, me, player); break; case 25: - DoScriptText(SAY_END, me, player); + Talk(SAY_END, player->GetGUID()); player->GroupEventHappens(QUEST_ESCAPE_FROM, me); break; } @@ -364,7 +383,7 @@ public: { if (quest->GetQuestId() == QUEST_ESCAPE_FROM) { - DoScriptText(SAY_START, creature, player); + creature->AI()->Talk(SAY_START, player->GetGUID()); if (npc_escortAI* pEscortAI = CAST_AI(npc_kayra_longmane::npc_kayra_longmaneAI, creature->AI())) pEscortAI->Start(false, false, player->GetGUID()); diff --git a/src/server/scripts/World/guards.cpp b/src/server/scripts/World/guards.cpp index 951c0ed9688..8fc63a1eacf 100644 --- a/src/server/scripts/World/guards.cpp +++ b/src/server/scripts/World/guards.cpp @@ -39,9 +39,7 @@ enum GuardGeneric { GENERIC_CREATURE_COOLDOWN = 5000, - SAY_GUARD_SIL_AGGRO1 = -1070001, - SAY_GUARD_SIL_AGGRO2 = -1070002, - SAY_GUARD_SIL_AGGRO3 = -1070003, + SAY_GUARD_SIL_AGGRO = 0, NPC_CENARION_HOLD_INFANTRY = 15184, NPC_STORMWIND_CITY_GUARD = 68, @@ -67,7 +65,7 @@ public: void EnterCombat(Unit* who) { if (me->GetEntry() == NPC_CENARION_HOLD_INFANTRY) - DoScriptText(RAND(SAY_GUARD_SIL_AGGRO1, SAY_GUARD_SIL_AGGRO2, SAY_GUARD_SIL_AGGRO3), me, who); + Talk(SAY_GUARD_SIL_AGGRO, who->GetGUID()); if (SpellInfo const* spell = me->reachWithSpellAttack(who)) DoCast(who, spell->Id); } diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index 5ed799bbec1..76d2c230808 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -313,12 +313,16 @@ public: # npc_chicken_cluck #########*/ -#define EMOTE_HELLO -1070004 -#define EMOTE_CLUCK_TEXT -1070006 +enum ChickenCluck +{ + EMOTE_HELLO_A = 0, + EMOTE_HELLO_H = 1, + EMOTE_CLUCK_TEXT = 2, -#define QUEST_CLUCK 3861 -#define FACTION_FRIENDLY 35 -#define FACTION_CHICKEN 31 + QUEST_CLUCK = 3861, + FACTION_FRIENDLY = 35, + FACTION_CHICKEN = 31 +}; class npc_chicken_cluck : public CreatureScript { @@ -367,7 +371,7 @@ public: { me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); me->setFaction(FACTION_FRIENDLY); - DoScriptText(EMOTE_HELLO, me); + Talk(player->GetTeam() == HORDE ? EMOTE_HELLO_H : EMOTE_HELLO_A); } break; case TEXT_EMOTE_CHEER: @@ -375,7 +379,7 @@ public: { me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); me->setFaction(FACTION_FRIENDLY); - DoScriptText(EMOTE_CLUCK_TEXT, me); + Talk(EMOTE_CLUCK_TEXT); } break; } @@ -500,15 +504,15 @@ public: ## Triage quest ######*/ -//signed for 9623 -#define SAY_DOC1 -1000201 -#define SAY_DOC2 -1000202 -#define SAY_DOC3 -1000203 +enum Doctor +{ + SAY_DOC = 0, -#define DOCTOR_ALLIANCE 12939 -#define DOCTOR_HORDE 12920 -#define ALLIANCE_COORDS 7 -#define HORDE_COORDS 6 + DOCTOR_ALLIANCE = 12939, + DOCTOR_HORDE = 12920, + ALLIANCE_COORDS = 7, + HORDE_COORDS = 6 +}; struct Location { @@ -773,7 +777,7 @@ public: //stand up me->SetUInt32Value(UNIT_FIELD_BYTES_1, UNIT_STAND_STATE_STAND); - DoScriptText(RAND(SAY_DOC1, SAY_DOC2, SAY_DOC3), me); + Talk(SAY_DOC); uint32 mobId = me->GetEntry(); me->SetWalk(false); @@ -879,7 +883,7 @@ void npc_doctor::npc_doctorAI::UpdateAI(uint32 const diff) //TODO: get text for each NPC -enum eGarments +enum Garments { SPELL_LESSER_HEAL_R2 = 2052, SPELL_FORTITUDE_R1 = 1243, @@ -896,18 +900,10 @@ enum eGarments ENTRY_KORJA = 12430, ENTRY_DG_KEL = 12428, - //used by 12429, 12423, 12427, 12430, 12428, but signed for 12429 - SAY_COMMON_HEALED = -1000164, - SAY_DG_KEL_THANKS = -1000165, - SAY_DG_KEL_GOODBYE = -1000166, - SAY_ROBERTS_THANKS = -1000167, - SAY_ROBERTS_GOODBYE = -1000168, - SAY_KORJA_THANKS = -1000169, - SAY_KORJA_GOODBYE = -1000170, - SAY_DOLF_THANKS = -1000171, - SAY_DOLF_GOODBYE = -1000172, - SAY_SHAYA_THANKS = -1000173, - SAY_SHAYA_GOODBYE = -1000174, //signed for 21469 + // used by 12429, 12423, 12427, 12430, 12428, but signed for 12429 + SAY_THANKS = 0, + SAY_GOODBYE = 1, + SAY_HEALED = 2, }; class npc_garments_of_quests : public CreatureScript @@ -917,7 +913,10 @@ public: struct npc_garments_of_questsAI : public npc_escortAI { - npc_garments_of_questsAI(Creature* creature) : npc_escortAI(creature) {Reset();} + npc_garments_of_questsAI(Creature* creature) : npc_escortAI(creature) + { + Reset(); + } uint64 CasterGUID; @@ -936,15 +935,15 @@ public: RunAwayTimer = 5000; me->SetStandState(UNIT_STAND_STATE_KNEEL); - //expect database to have RegenHealth=0 + // expect database to have RegenHealth=0 me->SetHealth(me->CountPctFromMaxHealth(70)); } - void EnterCombat(Unit* /*who*/) {} + void EnterCombat(Unit* /*who*/) { } - void SpellHit(Unit* caster, SpellInfo const* Spell) + void SpellHit(Unit* caster, SpellInfo const* spell) { - if (Spell->Id == SPELL_LESSER_HEAL_R2 || Spell->Id == SPELL_FORTITUDE_R1) + if (spell->Id == SPELL_LESSER_HEAL_R2 || spell->Id == SPELL_FORTITUDE_R1) { //not while in combat if (me->isInCombat()) @@ -961,16 +960,16 @@ public: case ENTRY_SHAYA: if (player->GetQuestStatus(QUEST_MOON) == QUEST_STATUS_INCOMPLETE) { - if (IsHealed && !CanRun && Spell->Id == SPELL_FORTITUDE_R1) + if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) { - DoScriptText(SAY_SHAYA_THANKS, me, caster); + Talk(SAY_THANKS, caster->GetGUID()); CanRun = true; } - else if (!IsHealed && Spell->Id == SPELL_LESSER_HEAL_R2) + else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) { CasterGUID = caster->GetGUID(); me->SetStandState(UNIT_STAND_STATE_STAND); - DoScriptText(SAY_COMMON_HEALED, me, caster); + Talk(SAY_HEALED, caster->GetGUID()); IsHealed = true; } } @@ -978,16 +977,16 @@ public: case ENTRY_ROBERTS: if (player->GetQuestStatus(QUEST_LIGHT_1) == QUEST_STATUS_INCOMPLETE) { - if (IsHealed && !CanRun && Spell->Id == SPELL_FORTITUDE_R1) + if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) { - DoScriptText(SAY_ROBERTS_THANKS, me, caster); + Talk(SAY_THANKS, caster->GetGUID()); CanRun = true; } - else if (!IsHealed && Spell->Id == SPELL_LESSER_HEAL_R2) + else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) { CasterGUID = caster->GetGUID(); me->SetStandState(UNIT_STAND_STATE_STAND); - DoScriptText(SAY_COMMON_HEALED, me, caster); + Talk(SAY_HEALED, caster->GetGUID()); IsHealed = true; } } @@ -995,16 +994,16 @@ public: case ENTRY_DOLF: if (player->GetQuestStatus(QUEST_LIGHT_2) == QUEST_STATUS_INCOMPLETE) { - if (IsHealed && !CanRun && Spell->Id == SPELL_FORTITUDE_R1) + if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) { - DoScriptText(SAY_DOLF_THANKS, me, caster); + Talk(SAY_THANKS, caster->GetGUID()); CanRun = true; } - else if (!IsHealed && Spell->Id == SPELL_LESSER_HEAL_R2) + else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) { CasterGUID = caster->GetGUID(); me->SetStandState(UNIT_STAND_STATE_STAND); - DoScriptText(SAY_COMMON_HEALED, me, caster); + Talk(SAY_HEALED, caster->GetGUID()); IsHealed = true; } } @@ -1012,16 +1011,16 @@ public: case ENTRY_KORJA: if (player->GetQuestStatus(QUEST_SPIRIT) == QUEST_STATUS_INCOMPLETE) { - if (IsHealed && !CanRun && Spell->Id == SPELL_FORTITUDE_R1) + if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) { - DoScriptText(SAY_KORJA_THANKS, me, caster); + Talk(SAY_THANKS, caster->GetGUID()); CanRun = true; } - else if (!IsHealed && Spell->Id == SPELL_LESSER_HEAL_R2) + else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) { CasterGUID = caster->GetGUID(); me->SetStandState(UNIT_STAND_STATE_STAND); - DoScriptText(SAY_COMMON_HEALED, me, caster); + Talk(SAY_HEALED, caster->GetGUID()); IsHealed = true; } } @@ -1029,23 +1028,23 @@ public: case ENTRY_DG_KEL: if (player->GetQuestStatus(QUEST_DARKNESS) == QUEST_STATUS_INCOMPLETE) { - if (IsHealed && !CanRun && Spell->Id == SPELL_FORTITUDE_R1) + if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) { - DoScriptText(SAY_DG_KEL_THANKS, me, caster); + Talk(SAY_THANKS, caster->GetGUID()); CanRun = true; } - else if (!IsHealed && Spell->Id == SPELL_LESSER_HEAL_R2) + else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) { CasterGUID = caster->GetGUID(); me->SetStandState(UNIT_STAND_STATE_STAND); - DoScriptText(SAY_COMMON_HEALED, me, caster); + Talk(SAY_HEALED, caster->GetGUID()); IsHealed = true; } } break; } - //give quest credit, not expect any special quest objectives + // give quest credit, not expect any special quest objectives if (CanRun) player->TalkedToCreature(me->GetEntry(), me->GetGUID()); } @@ -1068,19 +1067,19 @@ public: switch (me->GetEntry()) { case ENTRY_SHAYA: - DoScriptText(SAY_SHAYA_GOODBYE, me, unit); + Talk(SAY_GOODBYE, unit->GetGUID()); break; case ENTRY_ROBERTS: - DoScriptText(SAY_ROBERTS_GOODBYE, me, unit); + Talk(SAY_GOODBYE, unit->GetGUID()); break; case ENTRY_DOLF: - DoScriptText(SAY_DOLF_GOODBYE, me, unit); + Talk(SAY_GOODBYE, unit->GetGUID()); break; case ENTRY_KORJA: - DoScriptText(SAY_KORJA_GOODBYE, me, unit); + Talk(SAY_GOODBYE, unit->GetGUID()); break; case ENTRY_DG_KEL: - DoScriptText(SAY_DG_KEL_GOODBYE, me, unit); + Talk(SAY_GOODBYE, unit->GetGUID()); break; } |