aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDDuarte <dnpd.dd@gmail.com>2014-01-10 06:13:26 +0000
committerDDuarte <dnpd.dd@gmail.com>2014-01-10 06:13:26 +0000
commit25d1be5a75acdbc7988b477522a5953c85c5d869 (patch)
tree276389daf5489c93ebedec9900e00fbe31467ca8
parent86107a0296eedaa783fc8b8f7a2892c606626d0b (diff)
parent107af528536980380c887379b56f6351a9781a2f (diff)
Merge branch 'master' into 4.3.4
Conflicts: src/server/game/Battlefield/Battlefield.cpp src/server/game/Battlegrounds/Battleground.cpp src/server/game/Chat/Chat.cpp src/server/game/Chat/Chat.h src/server/game/Entities/Object/Object.cpp src/server/game/Entities/Player/Player.cpp src/server/game/Entities/Player/Player.h src/server/game/Handlers/ChatHandler.cpp src/server/game/Texts/CreatureTextMgr.cpp src/server/scripts/Commands/cs_wp.cpp src/server/scripts/EasternKingdoms/ZulAman/boss_halazzi.cpp src/server/scripts/EasternKingdoms/ZulAman/boss_hexlord.cpp src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp src/server/scripts/EasternKingdoms/zone_hinterlands.cpp src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp src/server/scripts/EasternKingdoms/zone_swamp_of_sorrows.cpp src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp src/server/scripts/Kalimdor/zone_azshara.cpp src/server/scripts/Kalimdor/zone_darkshore.cpp src/server/scripts/Kalimdor/zone_durotar.cpp src/server/scripts/Kalimdor/zone_moonglade.cpp src/server/scripts/Kalimdor/zone_thousand_needles.cpp src/server/scripts/Kalimdor/zone_ungoro_crater.cpp
-rw-r--r--src/server/game/AI/CreatureAI.cpp4
-rw-r--r--src/server/game/AI/CreatureAI.h2
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp16
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.h1
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp15
-rw-r--r--src/server/game/Battlefield/Battlefield.cpp38
-rw-r--r--src/server/game/Battlefield/Battlefield.h2
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp68
-rw-r--r--src/server/game/Chat/Channels/Channel.cpp17
-rw-r--r--src/server/game/Chat/Chat.cpp180
-rw-r--r--src/server/game/Chat/Chat.h19
-rw-r--r--src/server/game/Entities/Corpse/Corpse.h6
-rw-r--r--src/server/game/Entities/Creature/Creature.h6
-rw-r--r--src/server/game/Entities/DynamicObject/DynamicObject.h6
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h6
-rw-r--r--src/server/game/Entities/Object/Object.cpp117
-rw-r--r--src/server/game/Entities/Object/Object.h18
-rw-r--r--src/server/game/Entities/Player/Player.cpp38
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Grids/Notifiers/GridNotifiersImpl.h10
-rw-r--r--src/server/game/Guilds/Guild.cpp4
-rw-r--r--src/server/game/Handlers/ChatHandler.cpp14
-rw-r--r--src/server/game/Scripting/MapScripts.cpp14
-rw-r--r--src/server/game/Spells/SpellEffects.cpp4
-rw-r--r--src/server/game/Texts/CreatureTextMgr.cpp80
-rw-r--r--src/server/game/Texts/CreatureTextMgr.h20
-rw-r--r--src/server/game/World/World.cpp19
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp2
-rw-r--r--src/server/scripts/Commands/cs_npc.cpp9
-rw-r--r--src/server/scripts/Commands/cs_wp.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp20
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp202
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/zone_duskwood.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/zone_ghostlands.cpp14
-rw-r--r--src/server/scripts/EasternKingdoms/zone_hinterlands.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp8
-rw-r--r--src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/zone_westfall.cpp8
-rw-r--r--src/server/scripts/Examples/example_creature.cpp4
-rw-r--r--src/server/scripts/Examples/example_escort.cpp10
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp5
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp3
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp2
-rw-r--r--src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp20
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp4
-rw-r--r--src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp2
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_ashenvale.cpp16
-rw-r--r--src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp29
-rw-r--r--src/server/scripts/Kalimdor/zone_durotar.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp16
-rw-r--r--src/server/scripts/Kalimdor/zone_silithus.cpp20
-rw-r--r--src/server/scripts/Kalimdor/zone_tanaris.cpp38
-rw-r--r--src/server/scripts/Kalimdor/zone_teldrassil.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_the_barrens.cpp22
-rw-r--r--src/server/scripts/Kalimdor/zone_winterspring.cpp4
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp2
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp6
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp3
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp4
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp6
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp2
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp8
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp14
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp2
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp6
-rw-r--r--src/server/scripts/Northrend/zone_dragonblight.cpp12
-rw-r--r--src/server/scripts/Northrend/zone_grizzly_hills.cpp2
-rw-r--r--src/server/scripts/Northrend/zone_sholazar_basin.cpp8
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp39
-rw-r--r--src/server/scripts/Northrend/zone_zuldrak.cpp14
-rw-r--r--src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp2
-rw-r--r--src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp4
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp2
-rw-r--r--src/server/scripts/Outland/zone_blades_edge_mountains.cpp2
-rw-r--r--src/server/scripts/Outland/zone_hellfire_peninsula.cpp10
-rw-r--r--src/server/scripts/Outland/zone_nagrand.cpp2
-rw-r--r--src/server/scripts/Outland/zone_netherstorm.cpp6
-rw-r--r--src/server/scripts/Outland/zone_shadowmoon_valley.cpp20
-rw-r--r--src/server/scripts/Outland/zone_shattrath_city.cpp44
-rw-r--r--src/server/scripts/Outland/zone_terokkar_forest.cpp10
-rw-r--r--src/server/scripts/Outland/zone_zangarmarsh.cpp10
-rw-r--r--src/server/scripts/Pet/pet_generic.cpp2
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp8
-rw-r--r--src/server/scripts/World/areatrigger_scripts.cpp4
-rw-r--r--src/server/scripts/World/guards.cpp2
-rw-r--r--src/server/scripts/World/npcs_special.cpp30
119 files changed, 714 insertions, 892 deletions
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp
index 2ec0e4ff3ca..c8c456b772f 100644
--- a/src/server/game/AI/CreatureAI.cpp
+++ b/src/server/game/AI/CreatureAI.cpp
@@ -38,9 +38,9 @@ void CreatureAI::OnCharmed(bool /*apply*/)
AISpellInfoType* UnitAI::AISpellInfo;
AISpellInfoType* GetAISpellInfo(uint32 i) { return &CreatureAI::AISpellInfo[i]; }
-void CreatureAI::Talk(uint8 id, uint64 WhisperGuid)
+void CreatureAI::Talk(uint8 id, WorldObject const* whisperTarget /*= NULL*/)
{
- sCreatureTextMgr->SendChat(me, id, WhisperGuid);
+ sCreatureTextMgr->SendChat(me, id, whisperTarget);
}
void CreatureAI::DoZoneInCombat(Creature* creature /*= NULL*/, float maxRangeToNearestTarget /* = 50.0f*/)
diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h
index 14cf0a05109..3efc9a831cb 100644
--- a/src/server/game/AI/CreatureAI.h
+++ b/src/server/game/AI/CreatureAI.h
@@ -78,7 +78,7 @@ class CreatureAI : public UnitAI
Creature* DoSummonFlyer(uint32 entry, WorldObject* obj, float flightZ, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN);
public:
- void Talk(uint8 id, uint64 WhisperGuid = 0);
+ void Talk(uint8 id, WorldObject const* whisperTarget = NULL);
explicit CreatureAI(Creature* creature) : UnitAI(creature), me(creature), m_MoveInLineOfSight_locked(false) { }
virtual ~CreatureAI() { }
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index 0f11f407e0f..a45e45e58c2 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -87,7 +87,6 @@ SmartScript::SmartScript()
mTargetStorage = new ObjectListMap();
mTextTimer = 0;
mLastTextID = 0;
- mTextGUID = 0;
mUseTextTimer = false;
mTalkerEntry = 0;
mTemplate = SMARTAI_TEMPLATE_BASIC;
@@ -189,17 +188,16 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
mTalkerEntry = talker->GetEntry();
mLastTextID = e.action.talk.textGroupID;
mTextTimer = e.action.talk.duration;
+ Unit* talkTarget = NULL;
if (IsPlayer(GetLastInvoker())) // used for $vars in texts and whisper target
- mTextGUID = GetLastInvoker()->GetGUID();
+ talkTarget = GetLastInvoker();
else if (targetPlayer)
- mTextGUID = targetPlayer->GetGUID();
- else
- mTextGUID = 0;
+ talkTarget = targetPlayer;
mUseTextTimer = true;
- sCreatureTextMgr->SendChat(talker, uint8(e.action.talk.textGroupID), mTextGUID);
+ sCreatureTextMgr->SendChat(talker, uint8(e.action.talk.textGroupID), talkTarget);
TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction: SMART_ACTION_TALK: talker: %s (GuidLow: %u), textGuid: %u",
- talker->GetName().c_str(), talker->GetGUIDLow(), GUID_LOPART(mTextGUID));
+ talker->GetName().c_str(), talker->GetGUIDLow(), talkTarget ? talkTarget->GetGUIDLow() : 0);
break;
}
case SMART_ACTION_SIMPLE_TALK:
@@ -210,11 +208,11 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr)
{
if (IsCreature(*itr))
- sCreatureTextMgr->SendChat((*itr)->ToCreature(), uint8(e.action.talk.textGroupID), IsPlayer(GetLastInvoker())? GetLastInvoker()->GetGUID() : 0);
+ sCreatureTextMgr->SendChat((*itr)->ToCreature(), uint8(e.action.talk.textGroupID), IsPlayer(GetLastInvoker())? GetLastInvoker() : 0);
else if (IsPlayer(*itr) && me)
{
Unit* templastInvoker = GetLastInvoker();
- sCreatureTextMgr->SendChat(me, uint8(e.action.talk.textGroupID), IsPlayer(templastInvoker) ? templastInvoker->GetGUID() : 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, (*itr)->ToPlayer());
+ sCreatureTextMgr->SendChat(me, uint8(e.action.talk.textGroupID), IsPlayer(templastInvoker) ? templastInvoker : 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, (*itr)->ToPlayer());
}
TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_SIMPLE_TALK: talker: %s (GuidLow: %u), textGroupId: %u",
(*itr)->GetName().c_str(), (*itr)->GetGUIDLow(), uint8(e.action.talk.textGroupID));
diff --git a/src/server/game/AI/SmartScripts/SmartScript.h b/src/server/game/AI/SmartScripts/SmartScript.h
index f9eff2ec96e..77327d6229b 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.h
+++ b/src/server/game/AI/SmartScripts/SmartScript.h
@@ -237,7 +237,6 @@ class SmartScript
uint32 mTextTimer;
uint32 mLastTextID;
- uint64 mTextGUID;
uint32 mTalkerEntry;
bool mUseTextTimer;
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index bdbe472bd10..03aabefcd88 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -21,6 +21,7 @@
#include "ArenaTeamMgr.h"
#include "Battleground.h"
#include "CellImpl.h"
+#include "Chat.h"
#include "Common.h"
#include "DatabaseEnv.h"
#include "DBCEnums.h"
@@ -49,19 +50,11 @@ namespace Trinity
public:
AchievementChatBuilder(Player const& player, ChatMsg msgtype, int32 textId, uint32 ach_id)
: i_player(player), i_msgtype(msgtype), i_textId(textId), i_achievementId(ach_id) { }
+
void operator()(WorldPacket& data, LocaleConstant loc_idx)
{
- char const* text = sObjectMgr->GetTrinityString(i_textId, loc_idx);
-
- data << uint8(i_msgtype);
- data << uint32(LANG_UNIVERSAL);
- data << uint64(i_player.GetGUID());
- data << uint32(5);
- data << uint64(i_player.GetGUID());
- data << uint32(strlen(text)+1);
- data << text;
- data << uint8(0);
- data << uint32(i_achievementId);
+ std::string text = sObjectMgr->GetTrinityString(i_textId, loc_idx);
+ ChatHandler::BuildChatPacket(data, i_msgtype, LANG_UNIVERSAL, &i_player, &i_player, text, i_achievementId);
}
private:
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp
index 374447daa10..ee92010640e 100644
--- a/src/server/game/Battlefield/Battlefield.cpp
+++ b/src/server/game/Battlefield/Battlefield.cpp
@@ -447,52 +447,18 @@ void Battlefield::BroadcastPacketToWar(WorldPacket& data) const
player->GetSession()->SendPacket(&data);
}
-WorldPacket Battlefield::BuildWarningAnnPacket(std::string const& msg)
-{
- WorldPacket data(SMSG_MESSAGECHAT, 200);
-
- data << uint8(CHAT_MSG_RAID_BOSS_EMOTE);
- data << uint32(LANG_UNIVERSAL);
- data << uint64(0);
- data << uint32(0); // 2.1.0
- data << uint32(1);
- data << uint8(0);
- data << uint64(0);
- data << uint32(msg.length() + 1);
- data << msg;
- data << uint8(0);
- data << float(0);
- data << uint8(0);
-
- return data;
-}
-
void Battlefield::SendWarningToAllInZone(uint32 entry)
{
if (Creature* stalker = GetCreature(StalkerGuid))
// FIXME: replaced CHAT_TYPE_END with CHAT_MSG_BG_SYSTEM_NEUTRAL to fix compile, it's a guessed change :/
- sCreatureTextMgr->SendChat(stalker, (uint8) entry, 0, CHAT_MSG_BG_SYSTEM_NEUTRAL, LANG_ADDON, TEXT_RANGE_ZONE);
+ sCreatureTextMgr->SendChat(stalker, (uint8) entry, NULL, CHAT_MSG_BG_SYSTEM_NEUTRAL, LANG_ADDON, TEXT_RANGE_ZONE);
}
-/*void Battlefield::SendWarningToAllInWar(int32 entry, ...)
-{
- const char *format = sObjectMgr->GetTrinityStringForDBCLocale(entry);
- va_list ap;
- char str [1024];
- va_start(ap, entry);
- vsnprintf(str, 1024, format, ap);
- va_end(ap);
- std::string msg = (std::string)str;
-
- WorldPacket data = BuildWarningAnnPacket(msg);
- BroadcastPacketWar(data);
-}*/
-
void Battlefield::SendWarningToPlayer(Player* player, uint32 entry)
{
if (player)
if (Creature* stalker = GetCreature(StalkerGuid))
- sCreatureTextMgr->SendChat(stalker, (uint8)entry, player->GetGUID());
+ sCreatureTextMgr->SendChat(stalker, (uint8)entry, player);
}
void Battlefield::SendUpdateWorldState(uint32 field, uint32 value)
diff --git a/src/server/game/Battlefield/Battlefield.h b/src/server/game/Battlefield/Battlefield.h
index cdc9e2f9e20..d82fb873107 100644
--- a/src/server/game/Battlefield/Battlefield.h
+++ b/src/server/game/Battlefield/Battlefield.h
@@ -311,9 +311,7 @@ class Battlefield : public ZoneScript
/// Called when a player enter in battlefield zone
virtual void OnPlayerEnterZone(Player* /*player*/) { }
- WorldPacket BuildWarningAnnPacket(std::string const& msg);
void SendWarningToAllInZone(uint32 entry);
- //void SendWarningToAllInWar(int32 entry, ...); -- UNUSED
void SendWarningToPlayer(Player* player, uint32 entry);
void PlayerAcceptInviteToQueue(Player* player);
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 9bb074ed9df..af1fe1b0a08 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -21,6 +21,7 @@
#include "Battleground.h"
#include "BattlegroundMgr.h"
#include "Creature.h"
+#include "Chat.h"
#include "Formulas.h"
#include "GridNotifiersImpl.h"
#include "Group.h"
@@ -67,16 +68,7 @@ namespace Trinity
private:
void do_helper(WorldPacket& data, char const* text)
{
- uint64 target_guid = _source ? _source->GetGUID() : 0;
-
- data << uint8 (_msgtype);
- data << uint32(LANG_UNIVERSAL);
- data << uint64(target_guid); // there 0 for BG messages
- data << uint32(0); // can be chat msg group or something
- data << uint64(target_guid);
- data << uint32(strlen(text) + 1);
- data << text;
- data << uint8 (_source ? _source->GetChatTag() : 0);
+ ChatHandler::BuildChatPacket(data, _msgtype, LANG_UNIVERSAL, _source, _source, text);
}
ChatMsg _msgtype;
@@ -100,16 +92,7 @@ namespace Trinity
char str[2048];
snprintf(str, 2048, text, arg1str, arg2str);
- uint64 target_guid = _source ? _source->GetGUID() : 0;
-
- data << uint8 (_msgtype);
- data << uint32(LANG_UNIVERSAL);
- data << uint64(target_guid); // there 0 for BG messages
- data << uint32(0); // can be chat msg group or something
- data << uint64(target_guid);
- data << uint32(strlen(str) + 1);
- data << str;
- data << uint8 (_source ? _source->GetChatTag() : uint8(0));
+ ChatHandler::BuildChatPacket(data, _msgtype, LANG_UNIVERSAL, _source, _source, str);
}
private:
@@ -732,8 +715,8 @@ void Battleground::YellToAll(Creature* creature, char const* text, uint32 langua
for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)
if (Player* player = _GetPlayer(itr, "YellToAll"))
{
- WorldPacket data(SMSG_MESSAGECHAT, 200);
- creature->BuildMonsterChat(&data, CHAT_MSG_MONSTER_YELL, text, language, creature->GetName(), itr->first);
+ WorldPacket data;
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_MONSTER_YELL, Language(language), creature, player, text);
player->SendDirectMessage(&data);
}
}
@@ -1784,32 +1767,25 @@ void Battleground::SendWarningToAll(int32 entry, ...)
if (!entry)
return;
- char const* format = sObjectMgr->GetTrinityStringForDBCLocale(entry);
-
- char str[1024];
- va_list ap;
- va_start(ap, entry);
- vsnprintf(str, 1024, format, ap);
- va_end(ap);
- std::string msg(str);
-
- WorldPacket data(SMSG_MESSAGECHAT, 200);
-
- data << (uint8)CHAT_MSG_RAID_BOSS_EMOTE;
- data << (uint32)LANG_UNIVERSAL;
- data << (uint64)0;
- data << (uint32)0; // 2.1.0
- data << (uint32)1;
- data << (uint8)0;
- data << (uint64)0;
- data << (uint32)(msg.length() + 1);
- data << msg.c_str();
- data << (uint8)0;
- data << (float)0.0f; // added in 4.2.0, unk
- data << (uint8)0; // added in 4.2.0, unk
+ std::map<uint32, WorldPacket> localizedPackets;
for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr)
if (Player* player = ObjectAccessor::FindPlayer(MAKE_NEW_GUID(itr->first, 0, HIGHGUID_PLAYER)))
- player->SendDirectMessage(&data);
+ {
+ if (localizedPackets.find(player->GetSession()->GetSessionDbLocaleIndex()) == localizedPackets.end())
+ {
+ char const* format = sObjectMgr->GetTrinityString(entry, player->GetSession()->GetSessionDbLocaleIndex());
+
+ char str[1024];
+ va_list ap;
+ va_start(ap, entry);
+ vsnprintf(str, 1024, format, ap);
+ va_end(ap);
+
+ ChatHandler::BuildChatPacket(localizedPackets[player->GetSession()->GetSessionDbLocaleIndex()], CHAT_MSG_RAID_BOSS_EMOTE, LANG_UNIVERSAL, NULL, NULL, str);
+ }
+
+ player->SendDirectMessage(&localizedPackets[player->GetSession()->GetSessionDbLocaleIndex()]);
+ }
}
void Battleground::SendMessage2ToAll(int32 entry, ChatMsg type, Player const* source, int32 arg1, int32 arg2)
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index 9e0747c3d11..c65d76cecd0 100644
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -601,8 +601,12 @@ void Channel::Say(uint64 guid, std::string const& what, uint32 lang)
return;
uint8 chatTag = 0;
+ bool isGM = false;
if (Player* player = ObjectAccessor::FindPlayer(guid))
+ {
chatTag = player->GetChatTag();
+ isGM = player->GetSession()->HasPermission(rbac::RBAC_PERM_COMMAND_GM_CHAT);
+ }
// TODO: Add proper RBAC check
if (sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHANNEL))
@@ -624,17 +628,8 @@ void Channel::Say(uint64 guid, std::string const& what, uint32 lang)
return;
}
- WorldPacket data(SMSG_MESSAGECHAT, 1 + 4 + 8 + 4 + _name.size() + 8 + 4 + what.size() + 1);
- data << uint8(CHAT_MSG_CHANNEL);
- data << uint32(lang);
- data << uint64(guid);
- data << uint32(0);
- data << _name;
- data << uint64(guid);
- data << uint32(what.size() + 1);
- data << what;
- data << uint8(chatTag);
-
+ WorldPacket data;
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_CHANNEL, Language(lang), guid, guid, what, chatTag, "", "", 0, isGM, _name);
SendToAll(&data, !playersStore[guid].IsModerator() ? guid : false);
}
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index e6c8272c7a2..bbfd3043a3a 100644
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -210,7 +210,7 @@ void ChatHandler::SendSysMessage(const char *str)
while (char* line = LineFromMessage(pos))
{
- FillSystemMessageData(&data, line);
+ BuildChatPacket(data, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, NULL, line);
m_session->SendPacket(&data);
}
@@ -228,7 +228,7 @@ void ChatHandler::SendGlobalSysMessage(const char *str)
while (char* line = LineFromMessage(pos))
{
- FillSystemMessageData(&data, line);
+ BuildChatPacket(data, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, NULL, line);
sWorld->SendGlobalMessage(&data);
}
@@ -246,9 +246,10 @@ void ChatHandler::SendGlobalGMSysMessage(const char *str)
while (char* line = LineFromMessage(pos))
{
- FillSystemMessageData(&data, line);
+ BuildChatPacket(data, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, NULL, line);
sWorld->SendGlobalGMMessage(&data);
- }
+ }
+
free(buf);
}
@@ -627,98 +628,127 @@ bool ChatHandler::ShowHelpForCommand(ChatCommand* table, const char* cmd)
return ShowHelpForSubCommands(table, "", cmd);
}
-//Note: target_guid used only in CHAT_MSG_WHISPER_INFORM mode (in this case channelName ignored)
-void ChatHandler::FillMessageData(WorldPacket* data, WorldSession* session, uint8 type, uint32 language, const char *channelName, uint64 target_guid, const char *message, Unit* speaker, const char* addonPrefix /*= NULL*/)
+size_t ChatHandler::BuildChatPacket(WorldPacket& data, ChatMsg chatType, Language language, uint64 senderGUID, uint64 receiverGUID, std::string const& message, uint8 chatTag,
+ std::string const& senderName /*= ""*/, std::string const& receiverName /*= ""*/,
+ uint32 achievementId /*= 0*/, bool gmMessage /*= false*/, std::string const& channelName /*= ""*/,
+ const char* addonPrefix /*= NULL*/)
{
- uint32 messageLength = (message ? strlen(message) : 0) + 1;
-
- data->Initialize(SMSG_MESSAGECHAT, 100); // guess size
- *data << uint8(type);
- if ((type != CHAT_MSG_CHANNEL && type != CHAT_MSG_WHISPER) || language == LANG_ADDON)
- *data << uint32(language);
- else
- *data << uint32(LANG_UNIVERSAL);
-
- switch (type)
+ size_t receiverGUIDPos = 0;
+ data.Initialize(!gmMessage ? SMSG_MESSAGECHAT : SMSG_GM_MESSAGECHAT);
+ data << uint8(chatType);
+ data << int32(language);
+ data << uint64(senderGUID);
+ data << uint32(0); // some flags
+ switch (chatType)
{
- case CHAT_MSG_SAY:
- case CHAT_MSG_PARTY:
- case CHAT_MSG_PARTY_LEADER:
- case CHAT_MSG_RAID:
- case CHAT_MSG_GUILD:
- case CHAT_MSG_OFFICER:
- case CHAT_MSG_YELL:
- case CHAT_MSG_WHISPER:
- case CHAT_MSG_CHANNEL:
- case CHAT_MSG_RAID_LEADER:
- case CHAT_MSG_RAID_WARNING:
- case CHAT_MSG_BG_SYSTEM_NEUTRAL:
- case CHAT_MSG_BG_SYSTEM_ALLIANCE:
- case CHAT_MSG_BG_SYSTEM_HORDE:
- case CHAT_MSG_BATTLEGROUND:
- case CHAT_MSG_BATTLEGROUND_LEADER:
- target_guid = session ? session->GetPlayer()->GetGUID() : 0;
- break;
case CHAT_MSG_MONSTER_SAY:
case CHAT_MSG_MONSTER_PARTY:
case CHAT_MSG_MONSTER_YELL:
case CHAT_MSG_MONSTER_WHISPER:
case CHAT_MSG_MONSTER_EMOTE:
- case CHAT_MSG_RAID_BOSS_WHISPER:
case CHAT_MSG_RAID_BOSS_EMOTE:
+ case CHAT_MSG_RAID_BOSS_WHISPER:
case CHAT_MSG_BATTLENET:
- {
- *data << uint64(speaker->GetGUID());
- *data << uint32(0); // 2.1.0
- *data << uint32(speaker->GetName().size() + 1);
- *data << speaker->GetName();
- *data << uint64(0); // listener_guid
- //if (listener_guid && !IS_PLAYER_GUID(listener_guid))
- //{
- // *data << uint32(1); // string listener_name_length
- // *data << uint8(0); // string listener_name
- //}
- *data << uint32(messageLength);
- *data << message;
- *data << uint8(0);
-
- if (type == CHAT_MSG_RAID_BOSS_WHISPER || type == CHAT_MSG_RAID_BOSS_EMOTE)
+ data << uint32(senderName.length() + 1);
+ data << senderName;
+ receiverGUIDPos = data.wpos();
+ data << uint64(receiverGUID);
+ if (receiverGUID && !IS_PLAYER_GUID(receiverGUID) && !IS_PET_GUID(receiverGUID))
{
- *data << float(0.0f); // Added in 4.2.0, unk
- *data << uint8(0); // Added in 4.2.0, unk
+ data << uint32(receiverName.length() + 1);
+ data << receiverName;
}
-
- return;
- }
+ break;
+ case CHAT_MSG_WHISPER_FOREIGN:
+ data << uint32(senderName.length() + 1);
+ data << senderName;
+ receiverGUIDPos = data.wpos();
+ data << uint64(receiverGUID);
+ break;
+ case CHAT_MSG_BG_SYSTEM_NEUTRAL:
+ case CHAT_MSG_BG_SYSTEM_ALLIANCE:
+ case CHAT_MSG_BG_SYSTEM_HORDE:
+ receiverGUIDPos = data.wpos();
+ data << uint64(receiverGUID);
+ if (receiverGUID && !IS_PLAYER_GUID(receiverGUID))
+ {
+ data << uint32(receiverName.length() + 1);
+ data << receiverName;
+ }
+ break;
+ case CHAT_MSG_ACHIEVEMENT:
+ case CHAT_MSG_GUILD_ACHIEVEMENT:
+ receiverGUIDPos = data.wpos();
+ data << uint64(receiverGUID);
+ break;
default:
- if (type != CHAT_MSG_WHISPER_INFORM && type != CHAT_MSG_IGNORED && type != CHAT_MSG_DND && type != CHAT_MSG_AFK)
- target_guid = 0; // only for CHAT_MSG_WHISPER_INFORM used original value target_guid
+ if (gmMessage)
+ {
+ data << uint32(senderName.length() + 1);
+ data << senderName;
+ }
+
+ if (chatType == CHAT_MSG_CHANNEL)
+ {
+ ASSERT(channelName.length() > 0);
+ data << channelName;
+ }
+
+ if (chatType == CHAT_MSG_ADDON))
+ {
+ ASSERT(addonPrefix);
+ data << addonPrefix;
+ }
+ else
+ {
+ receiverGUIDPos = data.wpos();
+ data << uint64(receiverGUID);
+ }
break;
}
- *data << uint64(target_guid); // there 0 for BG messages
- *data << uint32(0); // can be chat msg group or something
+ data << uint32(message.length() + 1);
+ data << message;
+ data << uint8(chatTag);
- if (type == CHAT_MSG_CHANNEL)
+ if (chatType == CHAT_MSG_ACHIEVEMENT || chatType == CHAT_MSG_GUILD_ACHIEVEMENT)
+ data << uint32(achievementId);
+ else if (chatType == CHAT_MSG_RAID_BOSS_WHISPER || chatType == CHAT_MSG_RAID_BOSS_EMOTE)
{
- ASSERT(channelName);
- *data << channelName;
- *data << uint64(target_guid);
+ data << float(0.0f); // Added in 4.2.0, unk
+ data << uint8(0); // Added in 4.2.0, unk
}
- else if (type == uint8(CHAT_MSG_ADDON))
+
+ return receiverGUIDPos;
+}
+
+size_t ChatHandler::BuildChatPacket(WorldPacket& data, ChatMsg chatType, Language language, WorldObject const* sender, WorldObject const* receiver, std::string const& message,
+ uint32 achievementId /*= 0*/, std::string const& channelName /*= ""*/, LocaleConstant locale /*= DEFAULT_LOCALE*/, const char* addonPrefix /*= NULL*/)
+{
+ uint64 senderGUID = 0;
+ std::string senderName = "";
+ uint8 chatTag = 0;
+ bool gmMessage = false;
+ uint64 receiverGUID = 0;
+ std::string receiverName = "";
+ if (sender)
{
- ASSERT(addonPrefix);
- *data << addonPrefix;
+ senderGUID = sender->GetGUID();
+ senderName = sender->GetNameForLocaleIdx(locale);
+ if (Player const* playerSender = sender->ToPlayer())
+ {
+ chatTag = playerSender->GetChatTag();
+ gmMessage = playerSender->GetSession()->HasPermission(rbac::RBAC_PERM_COMMAND_GM_CHAT);
+ }
}
- else
- *data << uint64(target_guid);
- *data << uint32(messageLength);
- *data << message;
- if (session != 0 && type != CHAT_MSG_WHISPER_INFORM && type != CHAT_MSG_DND && type != CHAT_MSG_AFK)
- *data << uint8(session->GetPlayer()->GetChatTag());
- else
- *data << uint8(0);
+ if (receiver)
+ {
+ receiverGUID = receiver->GetGUID();
+ receiverName = receiver->GetNameForLocaleIdx(locale);
+ }
+
+ return BuildChatPacket(data, chatType, language, senderGUID, receiverGUID, message, chatTag, senderName, receiverName, achievementId, gmMessage, channelName, addonPrefix);
}
Player* ChatHandler::getSelectedPlayer()
diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h
index 09719d91e9e..d443545a049 100644
--- a/src/server/game/Chat/Chat.h
+++ b/src/server/game/Chat/Chat.h
@@ -53,17 +53,14 @@ class ChatHandler
explicit ChatHandler(WorldSession* session) : m_session(session), sentErrorMessage(false) { }
virtual ~ChatHandler() { }
- static void FillMessageData(WorldPacket* data, WorldSession* session, uint8 type, uint32 language, const char *channelName, uint64 target_guid, const char *message, Unit* speaker, const char* addonPrefix = NULL);
-
- void FillMessageData(WorldPacket* data, uint8 type, uint32 language, uint64 target_guid, const char* message)
- {
- FillMessageData(data, m_session, type, language, NULL, target_guid, message, NULL);
- }
-
- void FillSystemMessageData(WorldPacket* data, const char* message)
- {
- FillMessageData(data, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, 0, message);
- }
+ // Builds chat packet and returns receiver guid position in the packet to substitute in whisper builders
+ static size_t BuildChatPacket(WorldPacket& data, ChatMsg chatType, Language language, uint64 senderGUID, uint64 receiverGUID, std::string const& message, uint8 chatTag,
+ std::string const& senderName = "", std::string const& receiverName = "",
+ uint32 achievementId = 0, bool gmMessage = false, std::string const& channelName = "",
+ const char* addonPrefix = NULL);
+
+ // Builds chat packet and returns receiver guid position in the packet to substitute in whisper builders
+ static size_t BuildChatPacket(WorldPacket& data, ChatMsg chatType, Language language, WorldObject const* sender, WorldObject const* receiver, std::string const& message, uint32 achievementId = 0, std::string const& channelName = "", LocaleConstant locale = DEFAULT_LOCALE, const char* addonPrefix = NULL);
static char* LineFromMessage(char*& pos) { char* start = strtok(pos, "\n"); pos = NULL; return start; }
diff --git a/src/server/game/Entities/Corpse/Corpse.h b/src/server/game/Entities/Corpse/Corpse.h
index 30b15108cf2..1e9ee949c59 100644
--- a/src/server/game/Entities/Corpse/Corpse.h
+++ b/src/server/game/Entities/Corpse/Corpse.h
@@ -77,12 +77,6 @@ class Corpse : public WorldObject, public GridObject<Corpse>
Player* lootRecipient;
bool lootForBody;
- void Say(int32 textId, uint32 language, uint64 TargetGuid) { MonsterSay(textId, language, TargetGuid); }
- void Yell(int32 textId, uint32 language, uint64 TargetGuid) { MonsterYell(textId, language, TargetGuid); }
- void TextEmote(int32 textId, uint64 TargetGuid) { MonsterTextEmote(textId, TargetGuid); }
- void Whisper(int32 textId, uint64 receiver) { MonsterWhisper(textId, receiver); }
- void YellToZone(int32 textId, uint32 language, uint64 TargetGuid) { MonsterYellToZone(textId, language, TargetGuid); }
-
bool IsExpired(time_t t) const;
private:
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index 5a10ea238aa..d54a1a61258 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -523,12 +523,6 @@ class Creature : public Unit, public GridObject<Creature>, public MapObject
std::string GetScriptName() const;
uint32 GetScriptId() const;
- void Say(int32 textId, uint32 language, uint64 TargetGuid) { MonsterSay(textId, language, TargetGuid); }
- void Yell(int32 textId, uint32 language, uint64 TargetGuid) { MonsterYell(textId, language, TargetGuid); }
- void TextEmote(int32 textId, uint64 TargetGuid, bool IsBossEmote = false) { MonsterTextEmote(textId, TargetGuid, IsBossEmote); }
- void Whisper(int32 textId, uint64 receiver, bool IsBossWhisper = false) { MonsterWhisper(textId, receiver, IsBossWhisper); }
- void YellToZone(int32 textId, uint32 language, uint64 TargetGuid) { MonsterYellToZone(textId, language, TargetGuid); }
-
// override WorldObject function for proper name localization
std::string const& GetNameForLocaleIdx(LocaleConstant locale_idx) const;
diff --git a/src/server/game/Entities/DynamicObject/DynamicObject.h b/src/server/game/Entities/DynamicObject/DynamicObject.h
index 7d05d2083df..71ef9ee69b7 100644
--- a/src/server/game/Entities/DynamicObject/DynamicObject.h
+++ b/src/server/game/Entities/DynamicObject/DynamicObject.h
@@ -58,12 +58,6 @@ class DynamicObject : public WorldObject, public GridObject<DynamicObject>
uint64 GetCasterGUID() const { return GetUInt64Value(DYNAMICOBJECT_CASTER); }
float GetRadius() const { return GetFloatValue(DYNAMICOBJECT_RADIUS); }
- void Say(int32 textId, uint32 language, uint64 targetGuid) { MonsterSay(textId, language, targetGuid); }
- void Yell(int32 textId, uint32 language, uint64 targetGuid) { MonsterYell(textId, language, targetGuid); }
- void TextEmote(int32 textId, uint64 targetGuid) { MonsterTextEmote(textId, targetGuid); }
- void Whisper(int32 textId, uint64 receiver) { MonsterWhisper(textId, receiver); }
- void YellToZone(int32 textId, uint32 language, uint64 targetGuid) { MonsterYellToZone(textId, language, targetGuid); }
-
protected:
Aura* _aura;
Aura* _removedAura;
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 033b1892182..76909e3975b 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -657,12 +657,6 @@ class GameObject : public WorldObject, public GridObject<GameObject>, public Map
void UpdateRotationFields(float rotation2 = 0.0f, float rotation3 = 0.0f);
- void Say(int32 textId, uint32 language, uint64 TargetGuid) { MonsterSay(textId, language, TargetGuid); }
- void Yell(int32 textId, uint32 language, uint64 TargetGuid) { MonsterYell(textId, language, TargetGuid); }
- void TextEmote(int32 textId, uint64 TargetGuid) { MonsterTextEmote(textId, TargetGuid); }
- void Whisper(int32 textId, uint64 receiver) { MonsterWhisper(textId, receiver); }
- void YellToZone(int32 textId, uint32 language, uint64 TargetGuid) { MonsterYellToZone(textId, language, TargetGuid); }
-
// overwrite WorldObject function for proper name localization
std::string const& GetNameForLocaleIdx(LocaleConstant locale_idx) const;
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index af26522c305..7b43572fd80 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -51,6 +51,7 @@
#include "Group.h"
#include "Battlefield.h"
#include "BattlefieldMgr.h"
+#include "Chat.h"
uint32 GuidHigh2TypeId(uint32 guid_hi)
{
@@ -2056,180 +2057,142 @@ namespace Trinity
class MonsterChatBuilder
{
public:
- MonsterChatBuilder(WorldObject const& obj, ChatMsg msgtype, int32 textId, uint32 language, uint64 targetGUID)
- : i_object(obj), i_msgtype(msgtype), i_textId(textId), i_language(language), i_targetGUID(targetGUID) { }
+ MonsterChatBuilder(WorldObject const* obj, ChatMsg msgtype, int32 textId, uint32 language, WorldObject const* target)
+ : i_object(obj), i_msgtype(msgtype), i_textId(textId), i_language(Language(language)), i_target(target) { }
void operator()(WorldPacket& data, LocaleConstant loc_idx)
{
char const* text = sObjectMgr->GetTrinityString(i_textId, loc_idx);
-
- /// @todo i_object.GetName() also must be localized?
- i_object.BuildMonsterChat(&data, i_msgtype, text, i_language, i_object.GetNameForLocaleIdx(loc_idx), i_targetGUID);
+ ChatHandler::BuildChatPacket(data, i_msgtype, i_language, i_object, i_target, text, 0, "", loc_idx);
}
private:
- WorldObject const& i_object;
+ WorldObject const* i_object;
ChatMsg i_msgtype;
int32 i_textId;
- uint32 i_language;
- uint64 i_targetGUID;
+ Language i_language;
+ WorldObject const* i_target;
};
class MonsterCustomChatBuilder
{
public:
- MonsterCustomChatBuilder(WorldObject const& obj, ChatMsg msgtype, const char* text, uint32 language, uint64 targetGUID)
- : i_object(obj), i_msgtype(msgtype), i_text(text), i_language(language), i_targetGUID(targetGUID) { }
+ MonsterCustomChatBuilder(WorldObject const* obj, ChatMsg msgtype, const char* text, uint32 language, WorldObject const* target)
+ : i_object(obj), i_msgtype(msgtype), i_text(text), i_language(Language(language)), i_target(target)
+ {}
void operator()(WorldPacket& data, LocaleConstant loc_idx)
{
- /// @todo i_object.GetName() also must be localized?
- i_object.BuildMonsterChat(&data, i_msgtype, i_text, i_language, i_object.GetNameForLocaleIdx(loc_idx), i_targetGUID);
+ ChatHandler::BuildChatPacket(data, i_msgtype, i_language, i_object, i_target, i_text, 0, "", loc_idx);
}
private:
- WorldObject const& i_object;
+ WorldObject const* i_object;
ChatMsg i_msgtype;
const char* i_text;
- uint32 i_language;
- uint64 i_targetGUID;
+ Language i_language;
+ WorldObject const* i_target;
};
} // namespace Trinity
-void WorldObject::MonsterSay(const char* text, uint32 language, uint64 TargetGuid)
+void WorldObject::MonsterSay(const char* text, uint32 language, WorldObject const* target)
{
CellCoord p = Trinity::ComputeCellCoord(GetPositionX(), GetPositionY());
Cell cell(p);
cell.SetNoCreate();
- Trinity::MonsterCustomChatBuilder say_build(*this, CHAT_MSG_MONSTER_SAY, text, language, TargetGuid);
+ Trinity::MonsterCustomChatBuilder say_build(this, CHAT_MSG_MONSTER_SAY, text, language, target);
Trinity::LocalizedPacketDo<Trinity::MonsterCustomChatBuilder> say_do(say_build);
Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::MonsterCustomChatBuilder> > say_worker(this, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY), say_do);
TypeContainerVisitor<Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::MonsterCustomChatBuilder> >, WorldTypeMapContainer > message(say_worker);
cell.Visit(p, message, *GetMap(), *this, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY));
}
-void WorldObject::MonsterSay(int32 textId, uint32 language, uint64 TargetGuid)
+void WorldObject::MonsterSay(int32 textId, uint32 language, WorldObject const* target)
{
CellCoord p = Trinity::ComputeCellCoord(GetPositionX(), GetPositionY());
Cell cell(p);
cell.SetNoCreate();
- Trinity::MonsterChatBuilder say_build(*this, CHAT_MSG_MONSTER_SAY, textId, language, TargetGuid);
+ Trinity::MonsterChatBuilder say_build(this, CHAT_MSG_MONSTER_SAY, textId, language, target);
Trinity::LocalizedPacketDo<Trinity::MonsterChatBuilder> say_do(say_build);
Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::MonsterChatBuilder> > say_worker(this, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY), say_do);
TypeContainerVisitor<Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::MonsterChatBuilder> >, WorldTypeMapContainer > message(say_worker);
cell.Visit(p, message, *GetMap(), *this, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY));
}
-void WorldObject::MonsterYell(const char* text, uint32 language, uint64 TargetGuid)
+void WorldObject::MonsterYell(const char* text, uint32 language, WorldObject const* target)
{
CellCoord p = Trinity::ComputeCellCoord(GetPositionX(), GetPositionY());
Cell cell(p);
cell.SetNoCreate();
- Trinity::MonsterCustomChatBuilder say_build(*this, CHAT_MSG_MONSTER_YELL, text, language, TargetGuid);
+ Trinity::MonsterCustomChatBuilder say_build(this, CHAT_MSG_MONSTER_YELL, text, language, target);
Trinity::LocalizedPacketDo<Trinity::MonsterCustomChatBuilder> say_do(say_build);
Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::MonsterCustomChatBuilder> > say_worker(this, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_YELL), say_do);
TypeContainerVisitor<Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::MonsterCustomChatBuilder> >, WorldTypeMapContainer > message(say_worker);
cell.Visit(p, message, *GetMap(), *this, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_YELL));
}
-void WorldObject::MonsterYell(int32 textId, uint32 language, uint64 TargetGuid)
+void WorldObject::MonsterYell(int32 textId, uint32 language, WorldObject const* target)
{
CellCoord p = Trinity::ComputeCellCoord(GetPositionX(), GetPositionY());
Cell cell(p);
cell.SetNoCreate();
- Trinity::MonsterChatBuilder say_build(*this, CHAT_MSG_MONSTER_YELL, textId, language, TargetGuid);
+ Trinity::MonsterChatBuilder say_build(this, CHAT_MSG_MONSTER_YELL, textId, language, target);
Trinity::LocalizedPacketDo<Trinity::MonsterChatBuilder> say_do(say_build);
Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::MonsterChatBuilder> > say_worker(this, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_YELL), say_do);
TypeContainerVisitor<Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::MonsterChatBuilder> >, WorldTypeMapContainer > message(say_worker);
cell.Visit(p, message, *GetMap(), *this, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_YELL));
}
-void WorldObject::MonsterYellToZone(int32 textId, uint32 language, uint64 TargetGuid)
+void WorldObject::MonsterTextEmote(const char* text, WorldObject const* target, bool IsBossEmote)
{
- Trinity::MonsterChatBuilder say_build(*this, CHAT_MSG_MONSTER_YELL, textId, language, TargetGuid);
- Trinity::LocalizedPacketDo<Trinity::MonsterChatBuilder> say_do(say_build);
-
- uint32 zoneid = GetZoneId();
-
- Map::PlayerList const& pList = GetMap()->GetPlayers();
- for (Map::PlayerList::const_iterator itr = pList.begin(); itr != pList.end(); ++itr)
- if (itr->GetSource()->GetZoneId() == zoneid)
- say_do(itr->GetSource());
-}
-
-void WorldObject::MonsterTextEmote(const char* text, uint64 TargetGuid, bool IsBossEmote)
-{
- WorldPacket data(SMSG_MESSAGECHAT, 200);
- BuildMonsterChat(&data, IsBossEmote ? CHAT_MSG_RAID_BOSS_EMOTE : CHAT_MSG_MONSTER_EMOTE, text, LANG_UNIVERSAL, GetName(), TargetGuid);
+ WorldPacket data;
+ ChatHandler::BuildChatPacket(data, IsBossEmote ? CHAT_MSG_RAID_BOSS_EMOTE : CHAT_MSG_MONSTER_EMOTE, LANG_UNIVERSAL,
+ this, target, text);
SendMessageToSetInRange(&data, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_TEXTEMOTE), true);
}
-void WorldObject::MonsterTextEmote(int32 textId, uint64 TargetGuid, bool IsBossEmote)
+void WorldObject::MonsterTextEmote(int32 textId, WorldObject const* target, bool IsBossEmote)
{
CellCoord p = Trinity::ComputeCellCoord(GetPositionX(), GetPositionY());
Cell cell(p);
cell.SetNoCreate();
- Trinity::MonsterChatBuilder say_build(*this, IsBossEmote ? CHAT_MSG_RAID_BOSS_EMOTE : CHAT_MSG_MONSTER_EMOTE, textId, LANG_UNIVERSAL, TargetGuid);
+ Trinity::MonsterChatBuilder say_build(this, IsBossEmote ? CHAT_MSG_RAID_BOSS_EMOTE : CHAT_MSG_MONSTER_EMOTE, textId, LANG_UNIVERSAL, target);
Trinity::LocalizedPacketDo<Trinity::MonsterChatBuilder> say_do(say_build);
Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::MonsterChatBuilder> > say_worker(this, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_TEXTEMOTE), say_do);
TypeContainerVisitor<Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::MonsterChatBuilder> >, WorldTypeMapContainer > message(say_worker);
cell.Visit(p, message, *GetMap(), *this, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_TEXTEMOTE));
}
-void WorldObject::MonsterWhisper(const char* text, uint64 receiver, bool IsBossWhisper)
+void WorldObject::MonsterWhisper(const char* text, Player const* target, bool IsBossWhisper)
{
- Player* player = ObjectAccessor::FindPlayer(receiver);
- if (!player || !player->GetSession())
+ if (!target)
return;
- LocaleConstant loc_idx = player->GetSession()->GetSessionDbLocaleIndex();
-
- WorldPacket data(SMSG_MESSAGECHAT, 200);
- BuildMonsterChat(&data, IsBossWhisper ? CHAT_MSG_RAID_BOSS_WHISPER : CHAT_MSG_MONSTER_WHISPER, text, LANG_UNIVERSAL, GetNameForLocaleIdx(loc_idx), receiver);
-
- player->GetSession()->SendPacket(&data);
+ LocaleConstant loc_idx = target->GetSession()->GetSessionDbLocaleIndex();
+ WorldPacket data;
+ ChatHandler::BuildChatPacket(data, IsBossWhisper ? CHAT_MSG_RAID_BOSS_WHISPER : CHAT_MSG_MONSTER_WHISPER, LANG_UNIVERSAL, this, target, text, 0, "", loc_idx);
+ target->GetSession()->SendPacket(&data);
}
-void WorldObject::MonsterWhisper(int32 textId, uint64 receiver, bool IsBossWhisper)
+void WorldObject::MonsterWhisper(int32 textId, Player const* target, bool IsBossWhisper)
{
- Player* player = ObjectAccessor::FindPlayer(receiver);
- if (!player || !player->GetSession())
+ if (!target)
return;
- LocaleConstant loc_idx = player->GetSession()->GetSessionDbLocaleIndex();
+ LocaleConstant loc_idx = target->GetSession()->GetSessionDbLocaleIndex();
char const* text = sObjectMgr->GetTrinityString(textId, loc_idx);
+ WorldPacket data;
+ ChatHandler::BuildChatPacket(data, IsBossWhisper ? CHAT_MSG_RAID_BOSS_WHISPER : CHAT_MSG_MONSTER_WHISPER, LANG_UNIVERSAL, this, target, text, 0, "", loc_idx);
- WorldPacket data(SMSG_MESSAGECHAT, 200);
- BuildMonsterChat(&data, IsBossWhisper ? CHAT_MSG_RAID_BOSS_WHISPER : CHAT_MSG_MONSTER_WHISPER, text, LANG_UNIVERSAL, GetNameForLocaleIdx(loc_idx), receiver);
-
- player->GetSession()->SendPacket(&data);
-}
-
-void WorldObject::BuildMonsterChat(WorldPacket* data, uint8 msgtype, char const* text, uint32 language, std::string const &name, uint64 targetGuid) const
-{
- *data << (uint8)msgtype;
- *data << (uint32)language;
- *data << (uint64)GetGUID();
- *data << (uint32)0; // 2.1.0
- *data << (uint32)(name.size()+1);
- *data << name;
- *data << (uint64)targetGuid; // Unit Target
- if (targetGuid && !IS_PLAYER_GUID(targetGuid))
- {
- *data << (uint32)1; // target name length
- *data << (uint8)0; // target name
- }
- *data << (uint32)(strlen(text)+1);
- *data << text;
- *data << (uint8)0; // ChatTag
+ target->GetSession()->SendPacket(&data);
if (msgtype == CHAT_MSG_RAID_BOSS_EMOTE || msgtype == CHAT_MSG_RAID_BOSS_WHISPER)
{
*data << float(0);
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 6254989d8ce..d8173cc14aa 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -711,16 +711,14 @@ class WorldObject : public Object, public WorldLocation
virtual uint8 getLevelForTarget(WorldObject const* /*target*/) const { return 1; }
- void MonsterSay(const char* text, uint32 language, uint64 TargetGuid);
- void MonsterYell(const char* text, uint32 language, uint64 TargetGuid);
- void MonsterTextEmote(const char* text, uint64 TargetGuid, bool IsBossEmote = false);
- void MonsterWhisper(const char* text, uint64 receiver, bool IsBossWhisper = false);
- void MonsterSay(int32 textId, uint32 language, uint64 TargetGuid);
- void MonsterYell(int32 textId, uint32 language, uint64 TargetGuid);
- void MonsterTextEmote(int32 textId, uint64 TargetGuid, bool IsBossEmote = false);
- void MonsterWhisper(int32 textId, uint64 receiver, bool IsBossWhisper = false);
- void MonsterYellToZone(int32 textId, uint32 language, uint64 TargetGuid);
- void BuildMonsterChat(WorldPacket* data, uint8 msgtype, char const* text, uint32 language, std::string const& name, uint64 TargetGuid) const;
+ void MonsterSay(const char* text, uint32 language, WorldObject const* target);
+ void MonsterYell(const char* text, uint32 language, WorldObject const* target);
+ void MonsterTextEmote(const char* text, WorldObject const* target, bool IsBossEmote = false);
+ void MonsterWhisper(const char* text, Player const* target, bool IsBossWhisper = false);
+ void MonsterSay(int32 textId, uint32 language, WorldObject const* target);
+ void MonsterYell(int32 textId, uint32 language, WorldObject const* target);
+ void MonsterTextEmote(int32 textId, WorldObject const* target, bool IsBossEmote = false);
+ void MonsterWhisper(int32 textId, Player const* target, bool IsBossWhisper = false);
void PlayDistanceSound(uint32 sound_id, Player* target = NULL);
void PlayDirectSound(uint32 sound_id, Player* target = NULL);
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index ec087de0a06..2f39fecafcc 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -20679,28 +20679,13 @@ void Player::StopCastingCharm()
}
}
-inline void Player::BuildPlayerChat(WorldPacket* data, uint8 msgtype, const std::string& text, uint32 language, const char* addonPrefix /*= NULL*/) const
-{
- *data << uint8(msgtype);
- *data << uint32(language);
- *data << uint64(GetGUID());
- *data << uint32(0); // constant unknown time
- if (addonPrefix)
- *data << addonPrefix;
- else
- *data << uint64(GetGUID());
- *data << uint32(text.length() + 1);
- *data << text;
- *data << uint8(GetChatTag());
-}
-
void Player::Say(const std::string& text, const uint32 language)
{
std::string _text(text);
sScriptMgr->OnPlayerChat(this, CHAT_MSG_SAY, language, _text);
- WorldPacket data(SMSG_MESSAGECHAT, 200);
- BuildPlayerChat(&data, CHAT_MSG_SAY, _text, language);
+ WorldPacket data;
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_SAY, Language(language), this, this, text);
SendMessageToSetInRange(&data, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY), true);
}
@@ -20709,8 +20694,8 @@ void Player::Yell(const std::string& text, const uint32 language)
std::string _text(text);
sScriptMgr->OnPlayerChat(this, CHAT_MSG_YELL, language, _text);
- WorldPacket data(SMSG_MESSAGECHAT, 200);
- BuildPlayerChat(&data, CHAT_MSG_YELL, _text, language);
+ WorldPacket data;
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_YELL, Language(language), this, this, text);
SendMessageToSetInRange(&data, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_YELL), true);
}
@@ -20719,8 +20704,8 @@ void Player::TextEmote(const std::string& text)
std::string _text(text);
sScriptMgr->OnPlayerChat(this, CHAT_MSG_EMOTE, LANG_UNIVERSAL, _text);
- WorldPacket data(SMSG_MESSAGECHAT, 200);
- BuildPlayerChat(&data, CHAT_MSG_EMOTE, _text, LANG_UNIVERSAL);
+ WorldPacket data;
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_EMOTE, LANG_UNIVERSAL, this, this, text);
SendMessageToSetInRange(&data, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_TEXTEMOTE), true, !GetSession()->HasPermission(rbac::RBAC_PERM_TWO_SIDE_INTERACTION_CHAT));
}
@@ -20732,8 +20717,8 @@ void Player::WhisperAddon(const std::string& text, const std::string& prefix, Pl
if (!receiver->GetSession()->IsAddonRegistered(prefix))
return;
- WorldPacket data(SMSG_MESSAGECHAT, 200);
- BuildPlayerChat(&data, CHAT_MSG_WHISPER, _text, LANG_UNIVERSAL, prefix.c_str());
+ WorldPacket data;
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_WHISPER, LANG_UNIVERSAL, this, this, text, 0, "", DEFAULT_LOCALE, prefix.c_str());
receiver->GetSession()->SendPacket(&data);
}
@@ -20749,16 +20734,15 @@ void Player::Whisper(const std::string& text, uint32 language, uint64 receiver)
std::string _text(text);
sScriptMgr->OnPlayerChat(this, CHAT_MSG_WHISPER, language, _text, rPlayer);
- WorldPacket data(SMSG_MESSAGECHAT, 200);
- BuildPlayerChat(&data, CHAT_MSG_WHISPER, _text, language);
+ WorldPacket data;
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_WHISPER, Language(language), this, this, text);
rPlayer->GetSession()->SendPacket(&data);
// rest stuff shouldn't happen in case of addon message
if (isAddonMessage)
return;
- data.Initialize(SMSG_MESSAGECHAT, 200);
- rPlayer->BuildPlayerChat(&data, CHAT_MSG_WHISPER_INFORM, _text, language);
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_WHISPER_INFORM, Language(language), rPlayer, rPlayer, text);
GetSession()->SendPacket(&data);
if (!isAcceptWhispers() && !IsGameMaster() && !rPlayer->IsGameMaster())
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index dcb3a55e485..17deabeba70 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1338,8 +1338,6 @@ class Player : public Unit, public GridObject<Player>
/// Handles whispers from Addons and players based on sender, receiver's guid and language.
void Whisper(std::string const& text, const uint32 language, uint64 receiver);
void WhisperAddon(std::string const& text, std::string const& prefix, Player* receiver);
- /// Constructs the player Chat data for the specific functions to use
- void BuildPlayerChat(WorldPacket* data, uint8 msgtype, std::string const& text, uint32 language, const char* addonPrefix = NULL) const;
/*********************************************************/
/*** STORAGE SYSTEM ***/
diff --git a/src/server/game/Grids/Notifiers/GridNotifiersImpl.h b/src/server/game/Grids/Notifiers/GridNotifiersImpl.h
index 288d61aa3d5..8fb549fa038 100644
--- a/src/server/game/Grids/Notifiers/GridNotifiersImpl.h
+++ b/src/server/game/Grids/Notifiers/GridNotifiersImpl.h
@@ -566,15 +566,17 @@ void Trinity::LocalizedPacketDo<Builder>::operator()(Player* p)
WorldPacket* data;
// create if not cached yet
- if (i_data_cache.size() < cache_idx+1 || !i_data_cache[cache_idx])
+ if (i_data_cache.size() < cache_idx + 1 || !i_data_cache[cache_idx])
{
- if (i_data_cache.size() < cache_idx+1)
- i_data_cache.resize(cache_idx+1);
+ if (i_data_cache.size() < cache_idx + 1)
+ i_data_cache.resize(cache_idx + 1);
- data = new WorldPacket(SMSG_MESSAGECHAT, 200);
+ data = new WorldPacket();
i_builder(*data, loc_idx);
+ ASSERT(data->GetOpcode() != MSG_NULL_ACTION);
+
i_data_cache[cache_idx] = data;
}
else
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index 1c9fc2f04ba..6847387aa35 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -2568,7 +2568,7 @@ void Guild::BroadcastToGuild(WorldSession* session, bool officerOnly, std::strin
if (session && session->GetPlayer() && _HasRankRight(session->GetPlayer(), officerOnly ? GR_RIGHT_OFFCHATSPEAK : GR_RIGHT_GCHATSPEAK))
{
WorldPacket data;
- ChatHandler::FillMessageData(&data, session, officerOnly ? CHAT_MSG_OFFICER : CHAT_MSG_GUILD, language, NULL, 0, msg.c_str(), NULL);
+ ChatHandler::BuildChatPacket(data, officerOnly ? CHAT_MSG_OFFICER : CHAT_MSG_GUILD, Language(language), session->GetPlayer(), NULL, msg);
for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
if (Player* player = itr->second->FindPlayer())
if (player->GetSession() && _HasRankRight(player, officerOnly ? GR_RIGHT_OFFCHATLISTEN : GR_RIGHT_GCHATLISTEN) &&
@@ -2582,7 +2582,7 @@ void Guild::BroadcastAddonToGuild(WorldSession* session, bool officerOnly, std::
if (session && session->GetPlayer() && _HasRankRight(session->GetPlayer(), officerOnly ? GR_RIGHT_OFFCHATSPEAK : GR_RIGHT_GCHATSPEAK))
{
WorldPacket data;
- ChatHandler::FillMessageData(&data, session, officerOnly ? CHAT_MSG_OFFICER : CHAT_MSG_GUILD, uint32(CHAT_MSG_ADDON), NULL, 0, msg.c_str(), NULL, prefix.c_str());
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_ADDON, LANG_UNIVERSAL, session->GetPlayer(), NULL, msg, 0, "", DEFAULT_LOCALE, prefix.c_str());
for (Members::const_iterator itr = m_members.begin(); itr != m_members.end(); ++itr)
if (Player* player = itr->second->FindPlayer())
if (player->GetSession() && _HasRankRight(player, officerOnly ? GR_RIGHT_OFFCHATLISTEN : GR_RIGHT_GCHATLISTEN) &&
diff --git a/src/server/game/Handlers/ChatHandler.cpp b/src/server/game/Handlers/ChatHandler.cpp
index d90cc09bede..e33e8f73cd6 100644
--- a/src/server/game/Handlers/ChatHandler.cpp
+++ b/src/server/game/Handlers/ChatHandler.cpp
@@ -370,7 +370,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
sScriptMgr->OnPlayerChat(GetPlayer(), type, lang, msg, group);
WorldPacket data;
- ChatHandler::FillMessageData(&data, this, uint8(type), lang, NULL, 0, msg.c_str(), NULL);
+ ChatHandler::BuildChatPacket(data, ChatMsg(type), Language(lang), _player, NULL, msg);
group->BroadcastPacket(&data, false, group->GetMemberGroup(GetPlayer()->GetGUID()));
} break;
case CHAT_MSG_GUILD:
@@ -415,7 +415,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
sScriptMgr->OnPlayerChat(GetPlayer(), type, lang, msg, group);
WorldPacket data;
- ChatHandler::FillMessageData(&data, this, uint8(type), lang, "", 0, msg.c_str(), NULL);
+ ChatHandler::BuildChatPacket(data, uint8(type), Language(lang), _player, NULL, msg);
group->BroadcastPacket(&data, false);
} break;
case CHAT_MSG_RAID_WARNING:
@@ -428,7 +428,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
WorldPacket data;
//in battleground, raid warning is sent only to players in battleground - code is ok
- ChatHandler::FillMessageData(&data, this, CHAT_MSG_RAID_WARNING, lang, "", 0, msg.c_str(), NULL);
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_RAID_WARNING, Language(lang), _player, NULL, msg);
group->BroadcastPacket(&data, false);
} break;
case CHAT_MSG_BATTLEGROUND:
@@ -445,7 +445,7 @@ void WorldSession::HandleMessagechatOpcode(WorldPacket& recvData)
sScriptMgr->OnPlayerChat(GetPlayer(), type, lang, msg, group);
WorldPacket data;
- ChatHandler::FillMessageData(&data, this, uint8(type), lang, "", 0, msg.c_str(), NULL);
+ ChatHandler::BuildChatPacket(data, uint8(type), Language(lang), _player, NULL, msg);;
group->BroadcastPacket(&data, false);
} break;
case CHAT_MSG_CHANNEL:
@@ -614,7 +614,7 @@ void WorldSession::HandleAddonMessagechatOpcode(WorldPacket& recvData)
return;
WorldPacket data;
- ChatHandler::FillMessageData(&data, this, type, uint32(LANG_ADDON), "", 0, message.c_str(), NULL);
+ ChatHandler::BuildChatPacket(data, type, uint32(LANG_ADDON), this, this, message, 0, "", DEFAULT_LOCALE, prefix.c_str());
group->BroadcastAddonMessagePacket(&data, prefix, false);
break;
}
@@ -647,7 +647,7 @@ void WorldSession::HandleAddonMessagechatOpcode(WorldPacket& recvData)
break;
WorldPacket data;
- ChatHandler::FillMessageData(&data, this, type, uint32(LANG_ADDON), "", 0, message.c_str(), NULL, prefix.c_str());
+ ChatHandler::BuildChatPacket(data, type, uint32(LANG_ADDON), this, this, message, 0, "", DEFAULT_LOCALE, prefix.c_str());
group->BroadcastAddonMessagePacket(&data, prefix, true, -1, group->GetMemberGroup(sender->GetGUID()));
break;
}
@@ -794,7 +794,7 @@ void WorldSession::HandleChatIgnoredOpcode(WorldPacket& recvData)
return;
WorldPacket data;
- ChatHandler::FillMessageData(&data, this, CHAT_MSG_IGNORED, LANG_UNIVERSAL, NULL, GetPlayer()->GetGUID(), GetPlayer()->GetName().c_str(), NULL);
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_IGNORED, LANG_UNIVERSAL, _player, _player, GetPlayer()->GetName());
player->GetSession()->SendPacket(&data);
}
diff --git a/src/server/game/Scripting/MapScripts.cpp b/src/server/game/Scripting/MapScripts.cpp
index 41c18b850a1..7f2e1f095e4 100644
--- a/src/server/game/Scripting/MapScripts.cpp
+++ b/src/server/game/Scripting/MapScripts.cpp
@@ -335,7 +335,7 @@ void Map::ScriptsProcess()
}
}
- Object* target = NULL;
+ WorldObject* target = NULL;
if (step.targetGUID)
{
switch (GUID_HIPART(step.targetGUID))
@@ -421,28 +421,28 @@ void Map::ScriptsProcess()
switch (step.script->Talk.ChatType)
{
case CHAT_TYPE_SAY:
- cSource->Say(step.script->Talk.TextID, LANG_UNIVERSAL, targetGUID);
+ cSource->MonsterSay(step.script->Talk.TextID, LANG_UNIVERSAL, target);
break;
case CHAT_TYPE_YELL:
- cSource->Yell(step.script->Talk.TextID, LANG_UNIVERSAL, targetGUID);
+ cSource->MonsterYell(step.script->Talk.TextID, LANG_UNIVERSAL, target);
break;
case CHAT_TYPE_TEXT_EMOTE:
- cSource->TextEmote(step.script->Talk.TextID, targetGUID);
+ cSource->MonsterTextEmote(step.script->Talk.TextID, target);
break;
case CHAT_TYPE_BOSS_EMOTE:
- cSource->MonsterTextEmote(step.script->Talk.TextID, targetGUID, true);
+ cSource->MonsterTextEmote(step.script->Talk.TextID, target, true);
break;
case CHAT_TYPE_WHISPER:
if (!targetGUID || !IS_PLAYER_GUID(targetGUID))
TC_LOG_ERROR("scripts", "%s attempt to whisper to non-player unit, skipping.", step.script->GetDebugInfo().c_str());
else
- cSource->Whisper(step.script->Talk.TextID, targetGUID);
+ cSource->MonsterWhisper(step.script->Talk.TextID, target->ToPlayer());
break;
case CHAT_MSG_RAID_BOSS_WHISPER:
if (!targetGUID || !IS_PLAYER_GUID(targetGUID))
TC_LOG_ERROR("scripts", "%s attempt to raidbosswhisper to non-player unit, skipping.", step.script->GetDebugInfo().c_str());
else
- cSource->MonsterWhisper(step.script->Talk.TextID, targetGUID, true);
+ cSource->MonsterWhisper(step.script->Talk.TextID, target->ToPlayer(), true);
break;
default:
break; // must be already checked at load
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 33bfc042889..a22e32abf82 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -3532,7 +3532,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
if (m_caster->getGender() > 0)
gender = "her";
sprintf(buf, "%s rubs %s [Decahedral Dwarven Dice] between %s hands and rolls. One %u and one %u.", m_caster->GetName().c_str(), gender, gender, urand(1, 10), urand(1, 10));
- m_caster->MonsterTextEmote(buf, 0);
+ m_caster->MonsterTextEmote(buf, NULL);
break;
}
// Roll 'dem Bones - Worn Troll Dice
@@ -3543,7 +3543,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
if (m_caster->getGender() > 0)
gender = "her";
sprintf(buf, "%s causually tosses %s [Worn Troll Dice]. One %u and one %u.", m_caster->GetName().c_str(), gender, urand(1, 6), urand(1, 6));
- m_caster->MonsterTextEmote(buf, 0);
+ m_caster->MonsterTextEmote(buf, NULL);
break;
}
// Death Knight Initiate Visual
diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp
index aaafe219157..6251bb15d90 100644
--- a/src/server/game/Texts/CreatureTextMgr.cpp
+++ b/src/server/game/Texts/CreatureTextMgr.cpp
@@ -20,6 +20,7 @@
#include "ObjectMgr.h"
#include "Cell.h"
#include "CellImpl.h"
+#include "Chat.h"
#include "GridNotifiers.h"
#include "GridNotifiersImpl.h"
#include "CreatureTextMgr.h"
@@ -27,39 +28,21 @@
class CreatureTextBuilder
{
public:
- CreatureTextBuilder(WorldObject* obj, ChatMsg msgtype, uint8 textGroup, uint32 id, uint32 language, uint64 targetGUID)
- : _source(obj), _msgType(msgtype), _textGroup(textGroup), _textId(id), _language(language), _targetGUID(targetGUID)
+ CreatureTextBuilder(WorldObject* obj, ChatMsg msgtype, uint8 textGroup, uint32 id, uint32 language, WorldObject const* target)
+ : _source(obj), _msgType(msgtype), _textGroup(textGroup), _textId(id), _language(language), _target(target)
{
}
size_t operator()(WorldPacket* data, LocaleConstant locale) const
{
std::string const& text = sCreatureTextMgr->GetLocalizedChatString(_source->GetEntry(), _textGroup, _textId, locale);
- std::string const& localizedName = _source->GetNameForLocaleIdx(locale);
-
- *data << uint8(_msgType);
- *data << uint32(_language);
- *data << uint64(_source->GetGUID());
- *data << uint32(1); // 2.1.0
- *data << uint32(localizedName.size() + 1);
- *data << localizedName;
- size_t whisperGUIDpos = data->wpos();
- *data << uint64(_targetGUID); // Unit Target
- if (_targetGUID && !IS_PLAYER_GUID(_targetGUID))
- {
- *data << uint32(1); // target name length
- *data << uint8(0); // target name
- }
- *data << uint32(text.length() + 1);
- *data << text;
- *data << uint8(0); // ChatTag
if (_msgType == CHAT_MSG_RAID_BOSS_EMOTE || _msgType == CHAT_MSG_RAID_BOSS_WHISPER)
{
*data << float(0);
*data << uint8(0);
}
- return whisperGUIDpos;
+ return ChatHandler::BuildChatPacket(*data, _msgType, Language(_language), _source, _target, text, 0, "", locale);
}
WorldObject* _source;
@@ -67,14 +50,14 @@ class CreatureTextBuilder
uint8 _textGroup;
uint32 _textId;
uint32 _language;
- uint64 _targetGUID;
+ WorldObject const* _target;
};
class PlayerTextBuilder
{
public:
- PlayerTextBuilder(WorldObject* obj, WorldObject* speaker, ChatMsg msgtype, uint8 textGroup, uint32 id, uint32 language, uint64 targetGUID)
- : _source(obj), _talker(speaker), _msgType(msgtype), _textGroup(textGroup), _textId(id), _language(language), _targetGUID(targetGUID)
+ PlayerTextBuilder(WorldObject* obj, WorldObject* speaker, ChatMsg msgtype, uint8 textGroup, uint32 id, uint32 language, WorldObject const* target)
+ : _source(obj), _talker(speaker), _msgType(msgtype), _textGroup(textGroup), _textId(id), _language(language), _target(target)
{
}
@@ -82,28 +65,7 @@ class PlayerTextBuilder
{
std::string const& text = sCreatureTextMgr->GetLocalizedChatString(_source->GetEntry(), _textGroup, _textId, locale);
- *data << uint8(_msgType);
- *data << uint32(_language);
- *data << uint64(_talker->GetGUID());
- *data << uint32(1); // 2.1.0
- *data << uint32(_talker->GetName().size() + 1);
- *data << _talker->GetName();
- size_t whisperGUIDpos = data->wpos();
- *data << uint64(_targetGUID); // Unit Target
- if (_targetGUID && !IS_PLAYER_GUID(_targetGUID))
- {
- *data << uint32(1); // target name length
- *data << uint8(0); // target name
- }
- *data << uint32(text.length() + 1);
- *data << text;
- *data << uint8(0); // ChatTag
- if (_msgType == CHAT_MSG_RAID_BOSS_EMOTE || _msgType == CHAT_MSG_RAID_BOSS_WHISPER)
- {
- *data << float(0);
- *data << uint8(0);
- }
- return whisperGUIDpos;
+ return ChatHandler::BuildChatPacket(*data, _msgType, Language(_language), _talker, _target, text, 0, "", locale);
}
WorldObject* _source;
@@ -112,7 +74,7 @@ class PlayerTextBuilder
uint8 _textGroup;
uint32 _textId;
uint32 _language;
- uint64 _targetGUID;
+ WorldObject const* _target;
};
void CreatureTextMgr::LoadCreatureTexts()
@@ -220,7 +182,7 @@ void CreatureTextMgr::LoadCreatureTextLocales()
}
-uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid /*= 0*/, ChatMsg msgType /*= CHAT_MSG_ADDON*/, Language language /*= LANG_ADDON*/, CreatureTextRange range /*= TEXT_RANGE_NORMAL*/, uint32 sound /*= 0*/, Team team /*= TEAM_OTHER*/, bool gmOnly /*= false*/, Player* srcPlr /*= NULL*/)
+uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, WorldObject const* whisperTarget /*= NULL*/, ChatMsg msgType /*= CHAT_MSG_ADDON*/, Language language /*= LANG_ADDON*/, CreatureTextRange range /*= TEXT_RANGE_NORMAL*/, uint32 sound /*= 0*/, Team team /*= TEAM_OTHER*/, bool gmOnly /*= false*/, Player* srcPlr /*= NULL*/)
{
if (!source)
return 0;
@@ -302,7 +264,7 @@ uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, uint64 whisp
uint32 finalSound = sound ? sound : iter->sound;
if (finalSound)
- SendSound(source, finalSound, finalType, whisperGuid, range, team, gmOnly);
+ SendSound(source, finalSound, finalType, whisperTarget, range, team, gmOnly);
Unit* finalSource = source;
if (srcPlr)
@@ -313,13 +275,13 @@ uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, uint64 whisp
if (srcPlr)
{
- PlayerTextBuilder builder(source, finalSource, finalType, iter->group, iter->id, finalLang, whisperGuid);
- SendChatPacket(finalSource, builder, finalType, whisperGuid, range, team, gmOnly);
+ PlayerTextBuilder builder(source, finalSource, finalType, iter->group, iter->id, finalLang, whisperTarget);
+ SendChatPacket(finalSource, builder, finalType, whisperTarget, range, team, gmOnly);
}
else
{
- CreatureTextBuilder builder(finalSource, finalType, iter->group, iter->id, finalLang, whisperGuid);
- SendChatPacket(finalSource, builder, finalType, whisperGuid, range, team, gmOnly);
+ CreatureTextBuilder builder(finalSource, finalType, iter->group, iter->id, finalLang, whisperTarget);
+ SendChatPacket(finalSource, builder, finalType, whisperTarget, range, team, gmOnly);
}
if (isEqualChanced || (!isEqualChanced && totalChance == 100.0f))
SetRepeatId(source, textGroup, iter->id);
@@ -346,7 +308,7 @@ float CreatureTextMgr::GetRangeForChatType(ChatMsg msgType) const
return dist;
}
-void CreatureTextMgr::SendSound(Creature* source, uint32 sound, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly)
+void CreatureTextMgr::SendSound(Creature* source, uint32 sound, ChatMsg msgType, WorldObject const* whisperTarget, CreatureTextRange range, Team team, bool gmOnly)
{
if (!sound || !source)
return;
@@ -354,10 +316,10 @@ void CreatureTextMgr::SendSound(Creature* source, uint32 sound, ChatMsg msgType,
WorldPacket data(SMSG_PLAY_SOUND, 4);
data << uint32(sound);
data << uint64(source->GetGUID());
- SendNonChatPacket(source, &data, msgType, whisperGuid, range, team, gmOnly);
+ SendNonChatPacket(source, &data, msgType, whisperTarget, range, team, gmOnly);
}
-void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly) const
+void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, WorldObject const* whisperTarget, CreatureTextRange range, Team team, bool gmOnly) const
{
float dist = GetRangeForChatType(msgType);
@@ -368,10 +330,10 @@ void CreatureTextMgr::SendNonChatPacket(WorldObject* source, WorldPacket* data,
{
if (range == TEXT_RANGE_NORMAL)//ignores team and gmOnly
{
- Player* player = ObjectAccessor::FindPlayer(whisperGuid);
- if (!player || !player->GetSession())
+ if (!whisperTarget || whisperTarget->GetTypeId() != TYPEID_PLAYER)
return;
- player->GetSession()->SendPacket(data);
+
+ whisperTarget->ToPlayer()->GetSession()->SendPacket(data);
return;
}
break;
diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h
index 198877bfe86..f2f7a229e50 100644
--- a/src/server/game/Texts/CreatureTextMgr.h
+++ b/src/server/game/Texts/CreatureTextMgr.h
@@ -90,21 +90,21 @@ class CreatureTextMgr
void LoadCreatureTextLocales();
CreatureTextMap const& GetTextMap() const { return mTextMap; }
- void SendSound(Creature* source, uint32 sound, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly);
+ void SendSound(Creature* source, uint32 sound, ChatMsg msgType, WorldObject const* whisperTarget, CreatureTextRange range, Team team, bool gmOnly);
void SendEmote(Unit* source, uint32 emote);
//if sent, returns the 'duration' of the text else 0 if error
- uint32 SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid = 0, ChatMsg msgType = CHAT_MSG_ADDON, Language language = LANG_ADDON, CreatureTextRange range = TEXT_RANGE_NORMAL, uint32 sound = 0, Team team = TEAM_OTHER, bool gmOnly = false, Player* srcPlr = NULL);
+ uint32 SendChat(Creature* source, uint8 textGroup, WorldObject const* whisperTarget = NULL, ChatMsg msgType = CHAT_MSG_ADDON, Language language = LANG_ADDON, CreatureTextRange range = TEXT_RANGE_NORMAL, uint32 sound = 0, Team team = TEAM_OTHER, bool gmOnly = false, Player* srcPlr = NULL);
bool TextExist(uint32 sourceEntry, uint8 textGroup);
std::string GetLocalizedChatString(uint32 entry, uint8 textGroup, uint32 id, LocaleConstant locale) const;
- template<class Builder>
- void SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, uint64 whisperGuid = 0, CreatureTextRange range = TEXT_RANGE_NORMAL, Team team = TEAM_OTHER, bool gmOnly = false) const;
+ template<class Builder> void SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, WorldObject const* whisperTarget = NULL, CreatureTextRange range = TEXT_RANGE_NORMAL, Team team = TEAM_OTHER, bool gmOnly = false) const;
+
private:
CreatureTextRepeatIds GetRepeatGroup(Creature* source, uint8 textGroup);
void SetRepeatId(Creature* source, uint8 textGroup, uint8 id);
- void SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly) const;
+ void SendNonChatPacket(WorldObject* source, WorldPacket* data, ChatMsg msgType, WorldObject const* whisperTarget, CreatureTextRange range, Team team, bool gmOnly) const;
float GetRangeForChatType(ChatMsg msgType) const;
CreatureTextMap mTextMap;
@@ -142,8 +142,9 @@ class CreatureTextLocalizer
// create if not cached yet
if (!_packetCache[loc_idx])
{
- messageTemplate = new WorldPacket(SMSG_MESSAGECHAT, 200);
+ messageTemplate = new WorldPacket();
whisperGUIDpos = _builder(messageTemplate, loc_idx);
+ ASSERT(messageTemplate->GetOpcode() != MSG_NULL_ACTION);
_packetCache[loc_idx] = new std::pair<WorldPacket*, size_t>(messageTemplate, whisperGUIDpos);
}
else
@@ -173,7 +174,7 @@ class CreatureTextLocalizer
};
template<class Builder>
-void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, uint64 whisperGuid, CreatureTextRange range, Team team, bool gmOnly) const
+void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder, ChatMsg msgType, WorldObject const* whisperTarget /*= NULL*/, CreatureTextRange range /*= TEXT_RANGE_NORMAL*/, Team team /*= TEAM_OTHER*/, bool gmOnly /*= false*/) const
{
if (!source)
return;
@@ -187,11 +188,10 @@ void CreatureTextMgr::SendChatPacket(WorldObject* source, Builder const& builder
{
if (range == TEXT_RANGE_NORMAL) //ignores team and gmOnly
{
- Player* player = ObjectAccessor::FindPlayer(whisperGuid);
- if (!player || !player->GetSession())
+ if (!whisperTarget || whisperTarget->GetTypeId() != TYPEID_PLAYER)
return;
- localizer(player);
+ localizer(const_cast<Player*>(whisperTarget->ToPlayer()));
return;
}
break;
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index fa6ecfaafe8..8c3d92dcbfe 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -2243,23 +2243,10 @@ namespace Trinity
void do_helper(WorldPacketList& data_list, char* text)
{
char* pos = text;
-
while (char* line = lineFromMessage(pos))
{
WorldPacket* data = new WorldPacket();
-
- uint32 lineLength = strlen(line) + 1;
-
- data->Initialize(SMSG_MESSAGECHAT, 100); // guess size
- *data << uint8(CHAT_MSG_SYSTEM);
- *data << uint32(LANG_UNIVERSAL);
- *data << uint64(0);
- *data << uint32(0); // can be chat msg group or something
- *data << uint64(0);
- *data << uint32(lineLength);
- *data << line;
- *data << uint8(0);
-
+ ChatHandler::BuildChatPacket(*data, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, NULL, line);
data_list.push_back(data);
}
}
@@ -2325,7 +2312,7 @@ void World::SendGlobalText(const char* text, WorldSession* self)
while (char* line = ChatHandler::LineFromMessage(pos))
{
- ChatHandler::FillMessageData(&data, NULL, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, 0, line, NULL);
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, NULL, line);
SendGlobalMessage(&data, self);
}
@@ -2354,7 +2341,7 @@ void World::SendZoneMessage(uint32 zone, WorldPacket* packet, WorldSession* self
void World::SendZoneText(uint32 zone, const char* text, WorldSession* self, uint32 team)
{
WorldPacket data;
- ChatHandler::FillMessageData(&data, NULL, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, 0, text, NULL);
+ ChatHandler::BuildChatPacket(data, CHAT_MSG_SYSTEM, LANG_UNIVERSAL, NULL, NULL, text);
SendZoneMessage(zone, &data, self, team);
}
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index 63fe3e91433..b3f2cadf3a9 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -482,7 +482,7 @@ public:
char const* msg = "testtest";
uint8 type = atoi(args);
WorldPacket data;
- ChatHandler::FillMessageData(&data, handler->GetSession(), type, 0, "chan", handler->GetSession()->GetPlayer()->GetGUID(), msg, handler->GetSession()->GetPlayer());
+ ChatHandler::BuildChatPacket(data, ChatMsg(type), LANG_UNIVERSAL, handler->GetSession()->GetPlayer(), handler->GetSession()->GetPlayer(), msg, 0, "chan");
handler->GetSession()->SendPacket(&data);
return true;
}
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp
index 1e91e3087bf..19693d86708 100644
--- a/src/server/scripts/Commands/cs_npc.cpp
+++ b/src/server/scripts/Commands/cs_npc.cpp
@@ -1209,7 +1209,7 @@ public:
return false;
}
- creature->MonsterSay(args, LANG_UNIVERSAL, 0);
+ creature->MonsterSay(args, LANG_UNIVERSAL, NULL);
// make some emotes
char lastchar = args[strlen(args) - 1];
@@ -1296,10 +1296,11 @@ public:
uint64 receiver_guid = atol(receiver_str);
// check online security
- if (handler->HasLowerSecurity(ObjectAccessor::FindPlayer(receiver_guid), 0))
+ Player* receiver = ObjectAccessor::FindPlayer(receiver_guid);
+ if (handler->HasLowerSecurity(receiver, 0))
return false;
- creature->MonsterWhisper(text, receiver_guid);
+ creature->MonsterWhisper(text, receiver);
return true;
}
@@ -1316,7 +1317,7 @@ public:
return false;
}
- creature->MonsterYell(args, LANG_UNIVERSAL, 0);
+ creature->MonsterYell(args, LANG_UNIVERSAL, NULL);
// make an emote
creature->HandleEmoteCommand(EMOTE_ONESHOT_SHOUT);
diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp
index 9708ceb6020..61fd64bb16d 100644
--- a/src/server/scripts/Commands/cs_wp.cpp
+++ b/src/server/scripts/Commands/cs_wp.cpp
@@ -214,7 +214,7 @@ public:
target->LoadPath(pathid);
target->SetDefaultMovementType(WAYPOINT_MOTION_TYPE);
target->GetMotionMaster()->Initialize();
- target->MonsterSay("Path loaded.", 0, 0);
+ target->MonsterSay("Path loaded.", LANG_UNIVERSAL, NULL);
return true;
}
@@ -278,7 +278,7 @@ public:
target->SetDefaultMovementType(IDLE_MOTION_TYPE);
target->GetMotionMaster()->MoveTargetedHome();
target->GetMotionMaster()->Initialize();
- target->MonsterSay("Path unloaded.", 0, 0);
+ target->MonsterSay("Path unloaded.", LANG_UNIVERSAL, NULL);
return true;
}
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
index aff7f840a12..9d34cb680e1 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
@@ -423,7 +423,7 @@ public:
if (rand()%5)
return;
- Talk(SAY_SLAY, victim->GetGUID());
+ Talk(SAY_SLAY, victim);
}
void MovementInform(uint32 type, uint32 id) OVERRIDE
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
index c595f3acaff..bcca6246cd8 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
@@ -114,7 +114,7 @@ public:
if (rand()%5)
return;
- Talk(SAY_KILLTARGET, victim->GetGUID());
+ Talk(SAY_KILLTARGET, victim);
}
void UpdateAI(uint32 diff) OVERRIDE
diff --git a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
index 70162e55e35..ff8fb1d80b0 100644
--- a/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
+++ b/src/server/scripts/EasternKingdoms/Deadmines/instance_deadmines.cpp
@@ -101,7 +101,7 @@ class instance_deadmines : public InstanceMapScript
CannonBlast_Timer = DATA_CANNON_BLAST_TIMER;
// it's a hack - Mr. Smite should do that but his too far away
pIronCladDoor->SetName("Mr. Smite");
- pIronCladDoor->MonsterYell(SAY_MR_SMITE_ALARM1, LANG_UNIVERSAL, 0);
+ pIronCladDoor->MonsterYell(SAY_MR_SMITE_ALARM1, LANG_UNIVERSAL, NULL);
DoPlaySound(pIronCladDoor, SOUND_MR_SMITE_ALARM1);
State = CANNON_BLAST_INITIATED;
break;
@@ -113,7 +113,7 @@ class instance_deadmines : public InstanceMapScript
ShootCannon();
BlastOutDoor();
LeverStucked();
- pIronCladDoor->MonsterYell(SAY_MR_SMITE_ALARM2, LANG_UNIVERSAL, 0);
+ pIronCladDoor->MonsterYell(SAY_MR_SMITE_ALARM2, LANG_UNIVERSAL, NULL);
DoPlaySound(pIronCladDoor, SOUND_MR_SMITE_ALARM2);
State = PIRATES_ATTACK;
} else CannonBlast_Timer -= diff;
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
index 071a5e83d2f..30416aca1b5 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
@@ -149,7 +149,7 @@ public:
if (Phase == 2)
{
if (Unit* unit = Unit::GetUnit(*me, Attumen))
- Talk(SAY_MIDNIGHT_KILL, unit->GetGUID());
+ Talk(SAY_MIDNIGHT_KILL, unit);
}
}
@@ -166,7 +166,7 @@ public:
Attumen = attumen->GetGUID();
attumen->AI()->AttackStart(me->GetVictim());
SetMidnight(attumen, me->GetGUID());
- Talk(SAY_APPEAR, Attumen);
+ Talk(SAY_APPEAR, attumen);
}
}
else if (Phase == 2 && HealthBelowPct(25))
@@ -204,7 +204,7 @@ public:
void Mount(Unit* pAttumen)
{
- Talk(SAY_MOUNT, pAttumen->GetGUID());
+ Talk(SAY_MOUNT, pAttumen);
Phase = 3;
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
pAttumen->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
index 504b3bc6e97..da14ab8646e 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp
@@ -259,7 +259,7 @@ public:
if (Dorothee && Dorothee->IsAlive())
{
CAST_AI(boss_dorothee::boss_dorotheeAI, Dorothee->AI())->TitoDied = true;
- Talk(SAY_DOROTHEE_TITO_DEATH, Dorothee->GetGUID());
+ Talk(SAY_DOROTHEE_TITO_DEATH, Dorothee);
}
}
}
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
index 91127f2db0d..e59889d24aa 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp
@@ -535,7 +535,7 @@ public:
return;
ArcanagosGUID = Arcanagos->GetGUID();
Arcanagos->SetDisableGravity(true);
- (*Arcanagos).GetMotionMaster()->MovePoint(0, ArcanagosPos[0], ArcanagosPos[1], ArcanagosPos[2]);
+ Arcanagos->GetMotionMaster()->MovePoint(0, ArcanagosPos[0], ArcanagosPos[1], ArcanagosPos[2]);
Arcanagos->SetOrientation(ArcanagosPos[3]);
me->SetOrientation(MedivPos[3]);
YellTimer = 10000;
@@ -549,25 +549,25 @@ public:
{
case 0: return 9999999;
case 1:
- me->MonsterYell(SAY_DIALOG_MEDIVH_1, LANG_UNIVERSAL, 0);
+ me->MonsterYell(SAY_DIALOG_MEDIVH_1, LANG_UNIVERSAL, NULL);
return 10000;
case 2:
if (arca)
- arca->MonsterYell(SAY_DIALOG_ARCANAGOS_2, LANG_UNIVERSAL, 0);
+ arca->MonsterYell(SAY_DIALOG_ARCANAGOS_2, LANG_UNIVERSAL, NULL);
return 20000;
case 3:
- me->MonsterYell(SAY_DIALOG_MEDIVH_3, LANG_UNIVERSAL, 0);
+ me->MonsterYell(SAY_DIALOG_MEDIVH_3, LANG_UNIVERSAL, NULL);
return 10000;
case 4:
if (arca)
- arca->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, 0);
+ arca->MonsterYell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL, NULL);
return 20000;
case 5:
- me->MonsterYell(SAY_DIALOG_MEDIVH_5, LANG_UNIVERSAL, 0);
+ me->MonsterYell(SAY_DIALOG_MEDIVH_5, LANG_UNIVERSAL, NULL);
return 20000;
case 6:
if (arca)
- arca->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, 0);
+ arca->MonsterYell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL, NULL);
return 10000;
case 7:
FireArcanagosTimer = 500;
@@ -577,7 +577,7 @@ public:
DoCast(me, SPELL_MANA_SHIELD);
return 10000;
case 9:
- me->MonsterTextEmote(EMOTE_DIALOG_MEDIVH_7, 0, false);
+ me->MonsterTextEmote(EMOTE_DIALOG_MEDIVH_7, NULL, false);
return 10000;
case 10:
if (arca)
@@ -585,7 +585,7 @@ public:
return 1000;
case 11:
if (arca)
- arca->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, 0);
+ arca->MonsterYell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL, NULL);
return 5000;
case 12:
arca->GetMotionMaster()->MovePoint(0, -11010.82f, -1761.18f, 156.47f);
@@ -594,7 +594,7 @@ public:
arca->SetSpeed(MOVE_FLIGHT, 2.0f);
return 10000;
case 13:
- me->MonsterYell(SAY_DIALOG_MEDIVH_9, LANG_UNIVERSAL, 0);
+ me->MonsterYell(SAY_DIALOG_MEDIVH_9, LANG_UNIVERSAL, NULL);
return 10000;
case 14:
me->SetVisible(false);
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index ae2ba650915..a8d399fba2c 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -144,7 +144,7 @@ public:
me->CastSpell(me, SPELL_DK_INITIATE_VISUAL, true);
if (Player* starter = ObjectAccessor::GetPlayer(*me, playerGUID))
- sCreatureTextMgr->SendChat(me, SAY_EVENT_ATTACK, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, starter);
+ sCreatureTextMgr->SendChat(me, SAY_EVENT_ATTACK, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, starter);
phase = PHASE_TO_ATTACK;
}
@@ -371,7 +371,7 @@ public:
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_15);
- sCreatureTextMgr->SendChat(creature, SAY_DUEL, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player);
+ sCreatureTextMgr->SendChat(creature, SAY_DUEL, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player);
player->CastSpell(creature, SPELL_DUEL, false);
player->CastSpell(player, SPELL_DUEL_FLAG, true);
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
index 20a7ccedb17..c1c103fbab3 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
@@ -83,7 +83,7 @@ public:
me->SetReactState(REACT_PASSIVE);
DoCastAOE(SPELL_THREAT_PULSE, true);
- sCreatureTextMgr->SendChat(me, SAY_PERSUADE_RAND, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player);
+ sCreatureTextMgr->SendChat(me, SAY_PERSUADE_RAND, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player);
Talk(SAY_CRUSADER);
}
}
@@ -126,7 +126,7 @@ public:
break;
case 5:
- sCreatureTextMgr->SendChat(me, SAY_PERSUADED5, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player);
+ sCreatureTextMgr->SendChat(me, SAY_PERSUADED5, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player);
speechTimer = 8000;
break;
@@ -698,25 +698,25 @@ public:
case RACE_HUMAN:
switch (ExecuteSpeech_Counter)
{
- case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
+ case 0: Talk(SAY_EXEC_START_1, player); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_5, player->GetGUID()); break;
- case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
- case 4: Talk(SAY_EXEC_RECOG_1, player->GetGUID()); break;
- case 5: Talk(SAY_EXEC_NOREM_5, player->GetGUID()); break;
- case 6: Talk(SAY_EXEC_THINK_7, player->GetGUID()); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
+ case 2: Talk(SAY_EXEC_PROG_5, player); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player); break;
+ case 4: Talk(SAY_EXEC_RECOG_1, player); break;
+ case 5: Talk(SAY_EXEC_NOREM_5, player); break;
+ case 6: Talk(SAY_EXEC_THINK_7, player); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
case 9:
- Talk(SAY_EXEC_TIME_6, player->GetGUID());
+ Talk(SAY_EXEC_TIME_6, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- Talk(SAY_EXEC_WAITING, player->GetGUID());
+ Talk(SAY_EXEC_WAITING, player);
break;
case 11:
Talk(EMOTE_DIES);
@@ -728,25 +728,25 @@ public:
case RACE_ORC:
switch (ExecuteSpeech_Counter)
{
- case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
+ case 0: Talk(SAY_EXEC_START_1, player); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_6, player->GetGUID()); break;
- case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
- case 4: Talk(SAY_EXEC_RECOG_1, player->GetGUID()); break;
- case 5: Talk(SAY_EXEC_NOREM_7, player->GetGUID()); break;
- case 6: Talk(SAY_EXEC_THINK_8, player->GetGUID()); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
+ case 2: Talk(SAY_EXEC_PROG_6, player); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player); break;
+ case 4: Talk(SAY_EXEC_RECOG_1, player); break;
+ case 5: Talk(SAY_EXEC_NOREM_7, player); break;
+ case 6: Talk(SAY_EXEC_THINK_8, player); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
case 9:
- Talk(SAY_EXEC_TIME_8, player->GetGUID());
+ Talk(SAY_EXEC_TIME_8, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- Talk(SAY_EXEC_WAITING, player->GetGUID());
+ Talk(SAY_EXEC_WAITING, player);
break;
case 11:
Talk(EMOTE_DIES);
@@ -758,25 +758,25 @@ public:
case RACE_DWARF:
switch (ExecuteSpeech_Counter)
{
- case 0: Talk(SAY_EXEC_START_2, player->GetGUID()); break;
+ case 0: Talk(SAY_EXEC_START_2, player); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_2, player->GetGUID()); break;
- case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
- case 4: Talk(SAY_EXEC_RECOG_3, player->GetGUID()); break;
- case 5: Talk(SAY_EXEC_NOREM_2, player->GetGUID()); break;
- case 6: Talk(SAY_EXEC_THINK_5, player->GetGUID()); break;
- case 7: Talk(SAY_EXEC_LISTEN_2, player->GetGUID()); break;
+ case 2: Talk(SAY_EXEC_PROG_2, player); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player); break;
+ case 4: Talk(SAY_EXEC_RECOG_3, player); break;
+ case 5: Talk(SAY_EXEC_NOREM_2, player); break;
+ case 6: Talk(SAY_EXEC_THINK_5, player); break;
+ case 7: Talk(SAY_EXEC_LISTEN_2, player); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
case 9:
- Talk(SAY_EXEC_TIME_3, player->GetGUID());
+ Talk(SAY_EXEC_TIME_3, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- Talk(SAY_EXEC_WAITING, player->GetGUID());
+ Talk(SAY_EXEC_WAITING, player);
break;
case 11:
Talk(EMOTE_DIES);
@@ -788,25 +788,25 @@ public:
case RACE_NIGHTELF:
switch (ExecuteSpeech_Counter)
{
- case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
+ case 0: Talk(SAY_EXEC_START_1, player); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_5, player->GetGUID()); break;
- case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
- case 4: Talk(SAY_EXEC_RECOG_1, player->GetGUID()); break;
- case 5: Talk(SAY_EXEC_NOREM_6, player->GetGUID()); break;
- case 6: Talk(SAY_EXEC_THINK_2, player->GetGUID()); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
+ case 2: Talk(SAY_EXEC_PROG_5, player); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player); break;
+ case 4: Talk(SAY_EXEC_RECOG_1, player); break;
+ case 5: Talk(SAY_EXEC_NOREM_6, player); break;
+ case 6: Talk(SAY_EXEC_THINK_2, player); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
case 9:
- Talk(SAY_EXEC_TIME_7, player->GetGUID());
+ Talk(SAY_EXEC_TIME_7, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- Talk(SAY_EXEC_WAITING, player->GetGUID());
+ Talk(SAY_EXEC_WAITING, player);
break;
case 11:
Talk(EMOTE_DIES);
@@ -818,25 +818,25 @@ public:
case RACE_UNDEAD_PLAYER:
switch (ExecuteSpeech_Counter)
{
- case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
+ case 0: Talk(SAY_EXEC_START_1, player); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_3, player->GetGUID()); break;
- case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
- case 4: Talk(SAY_EXEC_RECOG_4, player->GetGUID()); break;
- case 5: Talk(SAY_EXEC_NOREM_3, player->GetGUID()); break;
- case 6: Talk(SAY_EXEC_THINK_1, player->GetGUID()); break;
- case 7: Talk(SAY_EXEC_LISTEN_3, player->GetGUID()); break;
+ case 2: Talk(SAY_EXEC_PROG_3, player); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player); break;
+ case 4: Talk(SAY_EXEC_RECOG_4, player); break;
+ case 5: Talk(SAY_EXEC_NOREM_3, player); break;
+ case 6: Talk(SAY_EXEC_THINK_1, player); break;
+ case 7: Talk(SAY_EXEC_LISTEN_3, player); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
case 9:
- Talk(SAY_EXEC_TIME_4, player->GetGUID());
+ Talk(SAY_EXEC_TIME_4, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- Talk(SAY_EXEC_WAITING, player->GetGUID());
+ Talk(SAY_EXEC_WAITING, player);
break;
case 11:
Talk(EMOTE_DIES);
@@ -848,25 +848,25 @@ public:
case RACE_TAUREN:
switch (ExecuteSpeech_Counter)
{
- case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
+ case 0: Talk(SAY_EXEC_START_1, player); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_1, player->GetGUID()); break;
- case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
- case 4: Talk(SAY_EXEC_RECOG_5, player->GetGUID()); break;
- case 5: Talk(SAY_EXEC_NOREM_8, player->GetGUID()); break;
- case 6: Talk(SAY_EXEC_THINK_9, player->GetGUID()); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
+ case 2: Talk(SAY_EXEC_PROG_1, player); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player); break;
+ case 4: Talk(SAY_EXEC_RECOG_5, player); break;
+ case 5: Talk(SAY_EXEC_NOREM_8, player); break;
+ case 6: Talk(SAY_EXEC_THINK_9, player); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
case 9:
- Talk(SAY_EXEC_TIME_9, player->GetGUID());
+ Talk(SAY_EXEC_TIME_9, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- Talk(SAY_EXEC_WAITING, player->GetGUID());
+ Talk(SAY_EXEC_WAITING, player);
break;
case 11:
Talk(EMOTE_DIES);
@@ -878,25 +878,25 @@ public:
case RACE_GNOME:
switch (ExecuteSpeech_Counter)
{
- case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
+ case 0: Talk(SAY_EXEC_START_1, player); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_4, player->GetGUID()); break;
- case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
- case 4: Talk(SAY_EXEC_RECOG_1, player->GetGUID()); break;
- case 5: Talk(SAY_EXEC_NOREM_4, player->GetGUID()); break;
- case 6: Talk(SAY_EXEC_THINK_6, player->GetGUID()); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
+ case 2: Talk(SAY_EXEC_PROG_4, player); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player); break;
+ case 4: Talk(SAY_EXEC_RECOG_1, player); break;
+ case 5: Talk(SAY_EXEC_NOREM_4, player); break;
+ case 6: Talk(SAY_EXEC_THINK_6, player); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
case 9:
- Talk(SAY_EXEC_TIME_5, player->GetGUID());
+ Talk(SAY_EXEC_TIME_5, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- Talk(SAY_EXEC_WAITING, player->GetGUID());
+ Talk(SAY_EXEC_WAITING, player);
break;
case 11:
Talk(EMOTE_DIES);
@@ -908,25 +908,25 @@ public:
case RACE_TROLL:
switch (ExecuteSpeech_Counter)
{
- case 0: Talk(SAY_EXEC_START_3, player->GetGUID()); break;
+ case 0: Talk(SAY_EXEC_START_3, player); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_7, player->GetGUID()); break;
- case 3: Talk(SAY_EXEC_NAME_2, player->GetGUID()); break;
- case 4: Talk(SAY_EXEC_RECOG_6, player->GetGUID()); break;
- case 5: Talk(SAY_EXEC_NOREM_9, player->GetGUID()); break;
- case 6: Talk(SAY_EXEC_THINK_10, player->GetGUID()); break;
- case 7: Talk(SAY_EXEC_LISTEN_4, player->GetGUID()); break;
+ case 2: Talk(SAY_EXEC_PROG_7, player); break;
+ case 3: Talk(SAY_EXEC_NAME_2, player); break;
+ case 4: Talk(SAY_EXEC_RECOG_6, player); break;
+ case 5: Talk(SAY_EXEC_NOREM_9, player); break;
+ case 6: Talk(SAY_EXEC_THINK_10, player); break;
+ case 7: Talk(SAY_EXEC_LISTEN_4, player); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
case 9:
- Talk(SAY_EXEC_TIME_10, player->GetGUID());
+ Talk(SAY_EXEC_TIME_10, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- Talk(SAY_EXEC_WAITING, player->GetGUID());
+ Talk(SAY_EXEC_WAITING, player);
break;
case 11:
Talk(EMOTE_DIES);
@@ -938,25 +938,25 @@ public:
case RACE_BLOODELF:
switch (ExecuteSpeech_Counter)
{
- case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
+ case 0: Talk(SAY_EXEC_START_1, player); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_1, player->GetGUID()); break;
- case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
- case 4: Talk(SAY_EXEC_RECOG_1, player->GetGUID()); break;
+ case 2: Talk(SAY_EXEC_PROG_1, player); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player); break;
+ case 4: Talk(SAY_EXEC_RECOG_1, player); break;
//case 5: //unknown
- case 6: Talk(SAY_EXEC_THINK_3, player->GetGUID()); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
+ case 6: Talk(SAY_EXEC_THINK_3, player); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
case 9:
- Talk(SAY_EXEC_TIME_1, player->GetGUID());
+ Talk(SAY_EXEC_TIME_1, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- Talk(SAY_EXEC_WAITING, player->GetGUID());
+ Talk(SAY_EXEC_WAITING, player);
break;
case 11:
Talk(EMOTE_DIES);
@@ -968,25 +968,25 @@ public:
case RACE_DRAENEI:
switch (ExecuteSpeech_Counter)
{
- case 0: Talk(SAY_EXEC_START_1, player->GetGUID()); break;
+ case 0: Talk(SAY_EXEC_START_1, player); break;
case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break;
- case 2: Talk(SAY_EXEC_PROG_1, player->GetGUID()); break;
- case 3: Talk(SAY_EXEC_NAME_1, player->GetGUID()); break;
- case 4: Talk(SAY_EXEC_RECOG_2, player->GetGUID()); break;
- case 5: Talk(SAY_EXEC_NOREM_1, player->GetGUID()); break;
- case 6: Talk(SAY_EXEC_THINK_4, player->GetGUID()); break;
- case 7: Talk(SAY_EXEC_LISTEN_1, player->GetGUID()); break;
+ case 2: Talk(SAY_EXEC_PROG_1, player); break;
+ case 3: Talk(SAY_EXEC_NAME_1, player); break;
+ case 4: Talk(SAY_EXEC_RECOG_2, player); break;
+ case 5: Talk(SAY_EXEC_NOREM_1, player); break;
+ case 6: Talk(SAY_EXEC_THINK_4, player); break;
+ case 7: Talk(SAY_EXEC_LISTEN_1, player); break;
case 8:
if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f))
- Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player->GetGUID());
+ Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player);
break;
case 9:
- Talk(SAY_EXEC_TIME_2, player->GetGUID());
+ Talk(SAY_EXEC_TIME_2, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
break;
case 10:
- Talk(SAY_EXEC_WAITING, player->GetGUID());
+ Talk(SAY_EXEC_WAITING, player);
break;
case 11:
Talk(EMOTE_DIES);
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp
index bc38e6f14ea..ce5ba00ac97 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp
@@ -103,7 +103,7 @@ public:
{
me->HandleEmoteCommand(EMOTE_ONESHOT_CUSTOM_SPELL_01);
DoCast(player, SPELL_REVIVE, true);
- Talk(WHISPER_REVIVE, player->GetGUID());
+ Talk(WHISPER_REVIVE, player);
}
FlyBackTimer = 5000;
break;
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
index 0810d5ca2b8..442dcf91f32 100644
--- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp
@@ -258,10 +258,7 @@ public:
void SaySound(uint8 textEntry, Unit* target = 0)
{
- if (target)
- Talk(textEntry, target->GetGUID());
- else
- Talk(textEntry);
+ Talk(textEntry, target);
//DoCast(me, SPELL_HEAD_SPEAKS, true);
if (Creature* speaker = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 1000))
@@ -348,7 +345,7 @@ public:
Creature* speaker = DoSpawnCreature(HELPER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 1000);
if (speaker)
speaker->CastSpell(speaker, SPELL_HEAD_SPEAKS, false);
- me->MonsterTextEmote(EMOTE_LAUGHS, 0);
+ me->MonsterTextEmote(EMOTE_LAUGHS, NULL);
}
else laugh -= diff;
}
@@ -528,10 +525,7 @@ public:
void SaySound(uint8 textEntry, Unit* target = 0)
{
- if (target)
- Talk(textEntry, target->GetGUID());
- else
- Talk(textEntry);
+ Talk(textEntry, target);
laugh += 4000;
}
@@ -728,7 +722,7 @@ public:
if (laugh <= diff)
{
laugh = urand(11000, 22000);
- me->MonsterTextEmote(EMOTE_LAUGHS, 0);
+ me->MonsterTextEmote(EMOTE_LAUGHS, NULL);
DoPlaySoundToSet(me, RandomLaugh[rand()%3]);
}
else laugh -= diff;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
index 3fd346d6816..5fc27b971a0 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_brutallus.cpp
@@ -190,12 +190,12 @@ public:
case 1:
me->SetInFront(Madrigosa);
Madrigosa->SetInFront(me);
- Madrigosa->AI()->Talk(YELL_MADR_INTRO, me->GetGUID());
+ Madrigosa->AI()->Talk(YELL_MADR_INTRO, me);
IntroPhaseTimer = 9000;
++IntroPhase;
break;
case 2:
- Talk(YELL_INTRO, Madrigosa->GetGUID());
+ Talk(YELL_INTRO, Madrigosa);
IntroPhaseTimer = 13000;
++IntroPhase;
break;
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
index e68d834b20d..37dda5a969a 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
@@ -239,7 +239,7 @@ public:
if (!SisterDeath)
{
if (target)
- Talk(EMOTE_SHADOW_NOVA, target->GetGUID());
+ Talk(EMOTE_SHADOW_NOVA, target);
Talk(YELL_SHADOW_NOVA);
}
ShadownovaTimer = 30000+(rand()%5000);
@@ -571,7 +571,7 @@ public:
if (!SisterDeath)
{
if (target)
- Talk(EMOTE_CONFLAGRATION, target->GetGUID());
+ Talk(EMOTE_CONFLAGRATION, target);
Talk(YELL_CANFLAGRATION);
}
diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
index 2a2574ea256..28f4bae9f0f 100644
--- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
+++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp
@@ -755,7 +755,7 @@ public:
}
else
{
- me->MonsterTextEmote(EMOTE_UNABLE_TO_FIND, 0);
+ me->MonsterTextEmote(EMOTE_UNABLE_TO_FIND, NULL);
EnterEvadeMode();
return;
}
diff --git a/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp b/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp
index ca280822d27..b7ba5af5395 100644
--- a/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_arathi_highlands.cpp
@@ -84,7 +84,7 @@ class npc_professor_phizzlethorpe : public CreatureScript
switch (waypointId)
{
case 6:
- Talk(SAY_PROGRESS_2, player->GetGUID());
+ Talk(SAY_PROGRESS_2, player);
events.ScheduleEvent(EVENT_SAY_3, 3000);
break;
case 8:
@@ -97,7 +97,7 @@ class npc_professor_phizzlethorpe : public CreatureScript
events.ScheduleEvent(EVENT_SAY_6, 11000);
break;
case 17:
- Talk(SAY_PROGRESS_7, player->GetGUID());
+ Talk(SAY_PROGRESS_7, player);
events.ScheduleEvent(EVENT_SAY_8, 6000);
break;
}
@@ -154,7 +154,7 @@ class npc_professor_phizzlethorpe : public CreatureScript
{
if (quest->GetQuestId() == QUEST_GOGGLE_BOGGLE)
{
- creature->AI()->Talk(SAY_PROGRESS_1, player->GetGUID());
+ creature->AI()->Talk(SAY_PROGRESS_1, player);
if (npc_escortAI* pEscortAI = CAST_AI(npc_professor_phizzlethorpeAI, (creature->AI())))
pEscortAI->Start(false, false, player->GetGUID(), quest);
diff --git a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp
index 8f7865dbf71..a7fa73fa4a5 100644
--- a/src/server/scripts/EasternKingdoms/zone_duskwood.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_duskwood.cpp
@@ -57,7 +57,7 @@ public:
{
CorrupterSpeaker->SetName("Twilight Corrupter");
CorrupterSpeaker->SetVisible(true);
- CorrupterSpeaker->AI()->Talk(YELL_TWILIGHTCORRUPTOR_RESPAWN, player->GetGUID());
+ CorrupterSpeaker->AI()->Talk(YELL_TWILIGHTCORRUPTOR_RESPAWN, player);
}
}
return false;
@@ -109,7 +109,7 @@ public:
if (victim->GetTypeId() == TYPEID_PLAYER)
{
++KillCount;
- Talk(YELL_TWILIGHTCORRUPTOR_KILL, victim->GetGUID());
+ Talk(YELL_TWILIGHTCORRUPTOR_KILL, victim);
if (KillCount == 3)
{
diff --git a/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp b/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp
index 1606b59e786..bb7cab832df 100644
--- a/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_ghostlands.cpp
@@ -118,18 +118,18 @@ public:
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, 20))
Cage->SetGoState(GO_STATE_ACTIVE);
- Talk(SAY_START, player->GetGUID());
+ Talk(SAY_START, player);
break;
case 5:
- Talk(SAY_PROGRESS1, player->GetGUID());
+ Talk(SAY_PROGRESS1, player);
break;
case 11:
- Talk(SAY_PROGRESS2, player->GetGUID());
+ Talk(SAY_PROGRESS2, player);
me->SetFacingTo(4.762841f);
break;
case 18:
{
- Talk(SAY_PROGRESS3, player->GetGUID());
+ Talk(SAY_PROGRESS3, player);
Creature* Summ1 = me->SummonCreature(16342, 7627.083984f, -7532.538086f, 152.128616f, 1.082733f, TEMPSUMMON_DEAD_DESPAWN, 0);
Creature* Summ2 = me->SummonCreature(16343, 7620.432129f, -7532.550293f, 152.454865f, 0.827478f, TEMPSUMMON_DEAD_DESPAWN, 0);
if (Summ1 && Summ2)
@@ -151,14 +151,14 @@ public:
break;
case 32:
me->SetFacingTo(2.978281f);
- Talk(SAY_END1, player->GetGUID());
+ Talk(SAY_END1, player);
break;
case 33:
me->SetFacingTo(5.858011f);
- Talk(SAY_END2, player->GetGUID());
+ Talk(SAY_END2, player);
Creature* CaptainHelios = me->FindNearestCreature(NPC_CAPTAIN_HELIOS, 50);
if (CaptainHelios)
- CaptainHelios->AI()->Talk(SAY_CAPTAIN_ANSWER, player->GetGUID());
+ CaptainHelios->AI()->Talk(SAY_CAPTAIN_ANSWER, player);
break;
}
}
diff --git a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
index a8e46b621c2..d833ebc5820 100644
--- a/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
@@ -69,7 +69,7 @@ public:
else if (player->GetTeam() == HORDE)
creature->setFaction(FACTION_ESCORTEE_H);
- creature->AI()->Talk(SAY_OOX_START, player->GetGUID());
+ creature->AI()->Talk(SAY_OOX_START, player);
if (npc_00x09hlAI* pEscortAI = CAST_AI(npc_00x09hl::npc_00x09hlAI, creature->AI()))
pEscortAI->Start(false, false, player->GetGUID(), quest);
diff --git a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp
index 2074b1116fb..ef75509b305 100644
--- a/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_silverpine_forest.cpp
@@ -75,13 +75,13 @@ public:
switch (waypointId)
{
case 1:
- Talk(SAY_START, player->GetGUID());
+ Talk(SAY_START, player);
break;
case 10:
Talk(SAY_PROGRESS);
break;
case 13:
- Talk(SAY_LAST, player->GetGUID());
+ Talk(SAY_LAST, player);
player->GroupEventHappens(QUEST_ESCORTING, me);
break;
case 15:
@@ -111,7 +111,7 @@ public:
void EnterCombat(Unit* who)
{
- Talk(SAY_AGGRO, who->GetGUID());
+ Talk(SAY_AGGRO, who);
}
};
@@ -119,7 +119,7 @@ public:
{
if (quest->GetQuestId() == QUEST_ESCORTING)
{
- creature->AI()->Talk(SAY_QUESTACCEPT, player->GetGUID());
+ creature->AI()->Talk(SAY_QUESTACCEPT, player);
if (npc_escortAI* pEscortAI = CAST_AI(npc_deathstalker_erland::npc_deathstalker_erlandAI, creature->AI()))
pEscortAI->Start(true, false, player->GetGUID());
diff --git a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp
index 6b409012cb0..f7577d49114 100644
--- a/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_western_plaguelands.cpp
@@ -371,18 +371,18 @@ public:
if (Ughost)
{
Ughost->SetDisableGravity(true);
- Ughost->AI()->Talk(SAY_WP_4, me->GetGUID());
+ Ughost->AI()->Talk(SAY_WP_4, me);
}
m_uiChatTimer = 4000;
break;
case 24:
if (Ughost)
- Ughost->AI()->Talk(SAY_WP_5, me->GetGUID());
+ Ughost->AI()->Talk(SAY_WP_5, me);
m_uiChatTimer = 4000;
break;
case 25:
if (Ughost)
- Ughost->AI()->Talk(SAY_WP_6, me->GetGUID());
+ Ughost->AI()->Talk(SAY_WP_6, me);
m_uiChatTimer = 4000;
break;
case 26:
diff --git a/src/server/scripts/EasternKingdoms/zone_westfall.cpp b/src/server/scripts/EasternKingdoms/zone_westfall.cpp
index 3869ee5bbb5..2dd5c1fbb3b 100644
--- a/src/server/scripts/EasternKingdoms/zone_westfall.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_westfall.cpp
@@ -228,7 +228,7 @@ public:
if (npc_escortAI* pEscortAI = CAST_AI(npc_defias_traitor::npc_defias_traitorAI, creature->AI()))
pEscortAI->Start(true, true, player->GetGUID());
- creature->AI()->Talk(SAY_START, player->GetGUID());
+ creature->AI()->Talk(SAY_START, player);
}
return true;
@@ -255,10 +255,10 @@ public:
SetRun(false);
break;
case 36:
- Talk(SAY_PROGRESS, player->GetGUID());
+ Talk(SAY_PROGRESS, player);
break;
case 44:
- Talk(SAY_END, player->GetGUID());
+ Talk(SAY_END, player);
player->GroupEventHappens(QUEST_DEFIAS_BROTHERHOOD, me);
break;
}
@@ -266,7 +266,7 @@ public:
void EnterCombat(Unit* who) OVERRIDE
{
- Talk(SAY_AGGRO, who->GetGUID());
+ Talk(SAY_AGGRO, who);
}
void Reset() OVERRIDE { }
diff --git a/src/server/scripts/Examples/example_creature.cpp b/src/server/scripts/Examples/example_creature.cpp
index b13ec1e1503..3a675389d1e 100644
--- a/src/server/scripts/Examples/example_creature.cpp
+++ b/src/server/scripts/Examples/example_creature.cpp
@@ -128,7 +128,7 @@ class example_creature : public CreatureScript
void EnterCombat(Unit* who) OVERRIDE
{
//Say some stuff
- Talk(SAY_AGGRO, who->GetGUID());
+ Talk(SAY_AGGRO, who);
}
// *** HANDLED FUNCTION ***
@@ -236,7 +236,7 @@ class example_creature : public CreatureScript
if (m_uiBeserkTimer <= uiDiff)
{
//Say our line then cast uber death spell
- Talk(SAY_BERSERK, me->GetVictim() ? me->GetVictim()->GetGUID() : 0);
+ Talk(SAY_BERSERK, me->GetVictim());
DoCastVictim(SPELL_BERSERK);
//Cast our beserk spell agian in 12 seconds if we didn't kill everyone
diff --git a/src/server/scripts/Examples/example_escort.cpp b/src/server/scripts/Examples/example_escort.cpp
index 8cbd2fc4933..e6afc690faf 100644
--- a/src/server/scripts/Examples/example_escort.cpp
+++ b/src/server/scripts/Examples/example_escort.cpp
@@ -100,9 +100,9 @@ class example_escort : public CreatureScript
if (Player* player = GetPlayerForEscort())
{
//pTmpPlayer is the target of the text
- Talk(SAY_WP_3, player->GetGUID());
+ Talk(SAY_WP_3, player);
//pTmpPlayer is the source of the text
- sCreatureTextMgr->SendChat(me, SAY_WP_4, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player);
+ sCreatureTextMgr->SendChat(me, SAY_WP_4, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, TEAM_OTHER, false, player);
}
break;
}
@@ -113,7 +113,7 @@ class example_escort : public CreatureScript
if (HasEscortState(STATE_ESCORT_ESCORTING))
{
if (Player* player = GetPlayerForEscort())
- Talk(SAY_AGGRO1, player->GetGUID());
+ Talk(SAY_AGGRO1, player);
}
else
Talk(SAY_AGGRO2);
@@ -133,9 +133,9 @@ class example_escort : public CreatureScript
{
// not a likely case, code here for the sake of example
if (killer == me)
- Talk(SAY_DEATH_1, player->GetGUID());
+ Talk(SAY_DEATH_1, player);
else
- Talk(SAY_DEATH_2, player->GetGUID());
+ Talk(SAY_DEATH_2, player);
}
}
else
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
index 4a491803cb4..6d73485d98b 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
@@ -953,7 +953,7 @@ void hyjalAI::WaypointReached(uint32 waypointId)
{
if (waypointId == 1 || (waypointId == 0 && me->GetEntry() == THRALL))
{
- me->MonsterYell(YELL_HURRY, 0, 0);
+ me->MonsterYell(YELL_HURRY, LANG_UNIVERSAL, NULL);
WaitForTeleport = true;
TeleportTimer = 20000;
if (me->GetEntry() == JAINA)
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
index c40f2981be4..4ea5210b257 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp
@@ -30,6 +30,7 @@ EndScriptData */
#include "Player.h"
#include "WorldPacket.h"
#include "Opcodes.h"
+#include "Chat.h"
#include "WorldSession.h"
/* Battle of Mount Hyjal encounters:
@@ -186,8 +187,8 @@ public:
{
if (i->GetSource())
{
- WorldPacket packet(SMSG_MESSAGECHAT, 200);
- unit->BuildMonsterChat(&packet, CHAT_MSG_MONSTER_YELL, YELL_EFFORTS, 0, YELL_EFFORTS_NAME, i->GetSource()->GetGUID());
+ WorldPacket packet;
+ ChatHandler::BuildChatPacket(packet, CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, unit, i->GetSource(), YELL_EFFORTS);
i->GetSource()->GetSession()->SendPacket(&packet);
WorldPacket data2(SMSG_PLAY_SOUND, 4);
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
index 9af1486275c..6264f02f6c9 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
@@ -187,8 +187,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
// Summon Chromie and global whisper
if (Creature* chromie = instance->SummonCreature(NPC_CHROMIE_2, ChromieSummonPos))
if (!instance->GetPlayers().isEmpty())
- if (Player* player = instance->GetPlayers().getFirst()->GetSource())
- sCreatureTextMgr->SendChat(chromie, SAY_CRATES_COMPLETED, player->GetGUID(), CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);
+ sCreatureTextMgr->SendChat(chromie, SAY_CRATES_COMPLETED, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);
}
DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, _crateCount);
break;
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
index 46978366224..bdf7d71a497 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
@@ -407,7 +407,7 @@ public:
if (uint64 TarethaGUID = instance->GetData64(DATA_TARETHA))
{
if (Creature* Taretha = Creature::GetCreature(*me, TarethaGUID))
- Taretha->AI()->Talk(SAY_TA_ESCAPED, me->GetGUID());
+ Taretha->AI()->Talk(SAY_TA_ESCAPED, me);
}
break;
case 95:
diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
index 3300f0d811b..abd76ebe508 100644
--- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp
@@ -178,14 +178,14 @@ public:
{
if (channeling)
{
- Talk(SAY_WATCH_OUT, who->GetGUID());
+ Talk(SAY_WATCH_OUT, who);
}
else
{
events.ScheduleEvent(EVENT_FIREBALL, 1000);
events.ScheduleEvent(EVENT_FROST_NOVA, urand(8000, 12000));
if (urand(0, 100) > 40)
- Talk(SAY_AGGRO, who->GetGUID());
+ Talk(SAY_AGGRO, who);
}
}
diff --git a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
index 35fea896a10..1715bd693b4 100644
--- a/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
+++ b/src/server/scripts/Kalimdor/RazorfenKraul/razorfen_kraul.cpp
@@ -52,7 +52,7 @@ public:
if (quest->GetQuestId() == QUEST_WILLIX_THE_IMPORTER)
{
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, false, player->GetGUID());
- creature->AI()->Talk(SAY_READY, player->GetGUID());
+ creature->AI()->Talk(SAY_READY, player);
creature->setFaction(113);
}
@@ -78,42 +78,42 @@ public:
{
case 3:
me->HandleEmoteCommand(EMOTE_STATE_POINT);
- Talk(SAY_POINT, player->GetGUID());
+ Talk(SAY_POINT, player);
break;
case 4:
me->SummonCreature(ENTRY_BOAR, 2137.66f, 1843.98f, 48.08f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
case 8:
- Talk(SAY_BLUELEAF, player->GetGUID());
+ Talk(SAY_BLUELEAF, player);
break;
case 9:
- Talk(SAY_DANGER, player->GetGUID());
+ Talk(SAY_DANGER, player);
break;
case 13:
- Talk(SAY_BAD, player->GetGUID());
+ Talk(SAY_BAD, player);
break;
case 14:
me->SummonCreature(ENTRY_BOAR, 2078.91f, 1704.54f, 56.77f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
case 25:
- Talk(SAY_THINK, player->GetGUID());
+ Talk(SAY_THINK, player);
break;
case 31:
- Talk(SAY_SOON, player->GetGUID());
+ Talk(SAY_SOON, player);
break;
case 42:
- Talk(SAY_FINALY, player->GetGUID());
+ Talk(SAY_FINALY, player);
break;
case 43:
me->SummonCreature(ENTRY_BOAR, 1956.43f, 1596.97f, 81.75f, 1.54f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
case 45:
- Talk(SAY_WIN, player->GetGUID());
+ Talk(SAY_WIN, player);
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
player->GroupEventHappens(QUEST_WILLIX_THE_IMPORTER, me);
break;
case 46:
- Talk(SAY_END, player->GetGUID());
+ Talk(SAY_END, player);
break;
}
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
index a0a093246b6..0890a9804f9 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_buru.cpp
@@ -85,7 +85,7 @@ class boss_buru : public CreatureScript
void EnterCombat(Unit* who) OVERRIDE
{
_EnterCombat();
- Talk(EMOTE_TARGET, who->GetGUID());
+ Talk(EMOTE_TARGET, who);
DoCast(me, SPELL_THORNS);
events.ScheduleEvent(EVENT_DISMEMBER, 5000);
@@ -122,7 +122,7 @@ class boss_buru : public CreatureScript
{
DoResetThreat();
AttackStart(victim);
- Talk(EMOTE_TARGET, victim->GetGUID());
+ Talk(EMOTE_TARGET, victim);
}
}
diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
index c13ae5aa9c8..0b58ded0b1c 100644
--- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
+++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/boss_kurinnaxx.cpp
@@ -78,7 +78,7 @@ class boss_kurinnaxx : public CreatureScript
{
_JustDied();
if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetData64(DATA_OSSIRIAN)))
- sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
+ sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
}
void UpdateAI(uint32 diff) OVERRIDE
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
index 706c6e1804d..a985f353976 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
@@ -189,7 +189,7 @@ public:
void EnterCombat(Unit* who) OVERRIDE
{
- Talk(SAY_ATTACKED, who->GetGUID());
+ Talk(SAY_ATTACKED, who);
}
void JustDied(Unit* /*slayer*/) OVERRIDE
diff --git a/src/server/scripts/Kalimdor/zone_ashenvale.cpp b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
index dbcf054f8f4..b4aeced5e9b 100644
--- a/src/server/scripts/Kalimdor/zone_ashenvale.cpp
+++ b/src/server/scripts/Kalimdor/zone_ashenvale.cpp
@@ -85,10 +85,10 @@ class npc_torek : public CreatureScript
switch (waypointId)
{
case 1:
- Talk(SAY_MOVE, player->GetGUID());
+ Talk(SAY_MOVE, player);
break;
case 8:
- Talk(SAY_PREPARE, player->GetGUID());
+ Talk(SAY_PREPARE, player);
break;
case 19:
/// @todo verify location and creatures amount.
@@ -97,12 +97,12 @@ class npc_torek : public CreatureScript
me->SummonCreature(ENTRY_SILVERWING_WARRIOR, 1778.73f, -2049.50f, 109.83f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
break;
case 20:
- Talk(SAY_WIN, player->GetGUID());
+ Talk(SAY_WIN, player);
Completed = true;
player->GroupEventHappens(QUEST_TOREK_ASSULT, me);
break;
case 21:
- Talk(SAY_END, player->GetGUID());
+ Talk(SAY_END, player);
break;
}
}
@@ -155,7 +155,7 @@ class npc_torek : public CreatureScript
if (quest->GetQuestId() == QUEST_TOREK_ASSULT)
{
/// @todo find companions, make them follow Torek, at any time (possibly done by core/database in future?)
- creature->AI()->Talk(SAY_READY, player->GetGUID());
+ creature->AI()->Talk(SAY_READY, player);
creature->setFaction(113);
if (npc_escortAI* pEscortAI = CAST_AI(npc_torekAI, creature->AI()))
@@ -337,10 +337,10 @@ class npc_muglash : public CreatureScript
switch (waypointId)
{
case 0:
- Talk(SAY_MUG_START2, player->GetGUID());
+ Talk(SAY_MUG_START2, player);
break;
case 24:
- Talk(SAY_MUG_BRAZIER, player->GetGUID());
+ Talk(SAY_MUG_BRAZIER, player);
if (GameObject* go = GetClosestGameObjectWithEntry(me, GO_NAGA_BRAZIER, INTERACTION_DISTANCE*2))
{
@@ -368,7 +368,7 @@ class npc_muglash : public CreatureScript
if (HasEscortState(STATE_ESCORT_PAUSED))
{
if (urand(0, 1))
- Talk(SAY_MUG_ON_GUARD, player->GetGUID());
+ Talk(SAY_MUG_ON_GUARD, player);
return;
}
}
diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
index 58a81c073ef..c2ae69373a0 100644
--- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp
@@ -98,12 +98,11 @@ public:
void EnterCombat(Unit* /*who*/) OVERRIDE { }
void MoveInLineOfSight(Unit* who) OVERRIDE
-
{
if (CanSayHelp && who->GetTypeId() == TYPEID_PLAYER && me->IsFriendlyTo(who) && me->IsWithinDistInMap(who, 25.0f))
{
//Random switch between 4 texts
- Talk(SAY_HELP, who->GetGUID());
+ Talk(SAY_HELP, who);
SayHelpTimer = 20000;
CanSayHelp = false;
@@ -135,7 +134,7 @@ public:
if (Player* player = ObjectAccessor::GetPlayer(*me, pCaster))
{
- Talk(SAY_HEAL, player->GetGUID());
+ Talk(SAY_HEAL, player);
player->TalkedToCreature(me->GetEntry(), me->GetGUID());
}
@@ -252,7 +251,7 @@ public:
void EnterCombat(Unit* who) OVERRIDE
{
- Talk(ATTACK_YELL, who->GetGUID());
+ Talk(ATTACK_YELL, who);
}
void UpdateAI(uint32 diff) OVERRIDE
@@ -376,17 +375,17 @@ public:
switch (waypointId)
{
case 0:
- Talk(SAY_START, player->GetGUID());
+ Talk(SAY_START, player);
break;
case 17:
- Talk(SAY_PROGRESS, player->GetGUID());
+ Talk(SAY_PROGRESS, player);
break;
case 28:
- Talk(SAY_END1, player->GetGUID());
+ Talk(SAY_END1, player);
break;
case 29:
- Talk(EMOTE_HUG, player->GetGUID());
- Talk(SAY_END2, player->GetGUID());
+ Talk(EMOTE_HUG, player);
+ Talk(SAY_END2, player);
player->GroupEventHappens(QUEST_A_CRY_FOR_SAY_HELP, me);
break;
}
@@ -395,7 +394,7 @@ public:
void EnterCombat(Unit* who) OVERRIDE
{
- Talk(SAY_AGGRO, who->GetGUID());
+ Talk(SAY_AGGRO, who);
}
void Reset() OVERRIDE { }
@@ -489,7 +488,7 @@ public:
Spark->AI()->Talk(EMOTE_SPARK);
return 1000;
case 2:
- Talk(GEEZLE_SAY_1, SparkGUID);
+ Talk(GEEZLE_SAY_1, Spark);
Spark->SetInFront(me);
me->SetInFront(Spark);
return 5000;
@@ -500,7 +499,7 @@ public:
Spark->AI()->Talk(SPARK_SAY_3);
return 8000;
case 5:
- Talk(GEEZLE_SAY_4, SparkGUID);
+ Talk(GEEZLE_SAY_4, Spark);
return 8000;
case 6:
Spark->AI()->Talk(SPARK_SAY_5);
@@ -509,11 +508,11 @@ public:
Spark->AI()->Talk(SPARK_SAY_6);
return 8000;
case 8:
- Talk(GEEZLE_SAY_7, SparkGUID);
+ Talk(GEEZLE_SAY_7, Spark);
return 2000;
case 9:
me->GetMotionMaster()->MoveTargetedHome();
- Spark->GetMotionMaster()->MovePoint(0, SparkPos);
+ Spark->GetMotionMaster()->MovePoint(0, SparkPos);
CompleteQuest();
return 9000;
case 10:
@@ -694,7 +693,7 @@ class npc_stillpine_capitive : public CreatureScript
{
if (owner)
{
- Talk(CAPITIVE_SAY, owner->GetGUID());
+ Talk(CAPITIVE_SAY, owner);
_player = owner;
}
Position pos;
diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp
index 8decf4dab6a..3be32fe9edc 100644
--- a/src/server/scripts/Kalimdor/zone_durotar.cpp
+++ b/src/server/scripts/Kalimdor/zone_durotar.cpp
@@ -79,7 +79,7 @@ public:
if (player && player->GetQuestStatus(QUEST_LAZY_PEONS) == QUEST_STATUS_INCOMPLETE)
{
player->KilledMonsterCredit(me->GetEntry(), me->GetGUID());
- Talk(SAY_SPELL_HIT, caster->GetGUID());
+ Talk(SAY_SPELL_HIT, caster);
me->RemoveAllAuras();
if (GameObject* Lumberpile = me->FindNearestGameObject(GO_LUMBERPILE, 20))
me->GetMotionMaster()->MovePoint(1, Lumberpile->GetPositionX()-1, Lumberpile->GetPositionY(), Lumberpile->GetPositionZ());
diff --git a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
index ed3247a3cfa..b7e663d128c 100644
--- a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
+++ b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
@@ -524,29 +524,29 @@ public:
switch (waypointId)
{
case 7:
- Talk(SAY_STAY_1, player->GetGUID());
+ Talk(SAY_STAY_1, player);
break;
case 11:
- Talk(SAY_STAY_2, player->GetGUID());
+ Talk(SAY_STAY_2, player);
break;
case 25:
- Talk(SAY_STAY_3, player->GetGUID());
+ Talk(SAY_STAY_3, player);
break;
case 26:
- Talk(SAY_STAY_4, player->GetGUID());
+ Talk(SAY_STAY_4, player);
break;
case 27:
- Talk(SAY_STAY_5, player->GetGUID());
+ Talk(SAY_STAY_5, player);
break;
case 28:
- Talk(SAY_STAY_6, player->GetGUID());
+ Talk(SAY_STAY_6, player);
me->SetStandState(UNIT_STAND_STATE_KNEEL);
break;
case 29:
me->SetStandState(UNIT_STAND_STATE_STAND);
break;
case 37:
- Talk(SAY_QUEST_COMPLETE, player->GetGUID());
+ Talk(SAY_QUEST_COMPLETE, player);
me->SetSpeed(MOVE_RUN, 1.2f, true);
me->SetWalk(false);
if (player->GetQuestStatus(QUEST_STINKYS_ESCAPE_H))
@@ -562,7 +562,7 @@ public:
void EnterCombat(Unit* who) OVERRIDE
{
- Talk(SAY_ATTACKED_1, who->GetGUID());
+ Talk(SAY_ATTACKED_1, who);
}
void Reset() OVERRIDE { }
diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp
index 1fdeacb6183..84f2fc97b2c 100644
--- a/src/server/scripts/Kalimdor/zone_silithus.cpp
+++ b/src/server/scripts/Kalimdor/zone_silithus.cpp
@@ -470,11 +470,11 @@ public:
switch (AnimationCount)
{
case 0:
- Talk(ANACHRONOS_SAY_1, Fandral->GetGUID());
+ Talk(ANACHRONOS_SAY_1, Fandral);
break;
case 1:
Fandral->SetTarget(me->GetGUID());
- Fandral->AI()->Talk(FANDRAL_SAY_1, me->GetGUID());
+ Fandral->AI()->Talk(FANDRAL_SAY_1, me);
break;
case 2:
Fandral->SetTarget(0);
@@ -544,7 +544,7 @@ public:
case 21:
break;
case 22:
- Caelestrasz->AI()->Talk(CAELESTRASZ_SAY_2, Fandral->GetGUID());
+ Caelestrasz->AI()->Talk(CAELESTRASZ_SAY_2, Fandral);
break;
case 23:
Caelestrasz->GetMotionMaster()->MoveCharge(-8065, 1530, 2.61f, 10);
@@ -566,7 +566,7 @@ public:
Caelestrasz->CastSpell(Caelestrasz, 54293, false);
break;
case 28:
- Talk(ANACHRONOS_SAY_2, Fandral->GetGUID());
+ Talk(ANACHRONOS_SAY_2, Fandral);
break;
case 29:
Caelestrasz->GetMotionMaster()->MoveCharge(-8095, 1530, 50, 42);
@@ -575,7 +575,7 @@ public:
case 30:
break;
case 31:
- Talk(ANACHRONOS_SAY_3, Fandral->GetGUID());
+ Talk(ANACHRONOS_SAY_3, Fandral);
break;
case 32:
Caelestrasz->SetVisible(false);
@@ -604,7 +604,7 @@ public:
me->SummonGameObject(GO_GLYPH_OF_AHN_QIRAJ, -8130, 1525, 17.5f, 0, 0, 0, 0, 0, 0);
break;
case 39:
- Talk(ANACHRONOS_SAY_5, Fandral->GetGUID());
+ Talk(ANACHRONOS_SAY_5, Fandral);
break;
case 40:
Fandral->CastSpell(me, 25167, true);
@@ -634,10 +634,10 @@ public:
Talk(ANACHRONOS_EMOTE_1);
break;
case 48:
- Fandral->AI()->Talk(FANDRAL_SAY_4, me->GetGUID());
+ Fandral->AI()->Talk(FANDRAL_SAY_4, me);
break;
case 49:
- Fandral->AI()->Talk(FANDRAL_SAY_5, me->GetGUID());
+ Fandral->AI()->Talk(FANDRAL_SAY_5, me);
break;
case 50:
Fandral->AI()->Talk(FANDRAL_EMOTE_2);
@@ -660,7 +660,7 @@ public:
}
case 52:
Fandral->GetMotionMaster()->MoveCharge(-8028.75f, 1538.795f, 2.61f, 4);
- Fandral->AI()->Talk(ANACHRONOS_SAY_9, me->GetGUID());
+ Fandral->AI()->Talk(ANACHRONOS_SAY_9, me);
break;
case 53:
Fandral->AI()->Talk(FANDRAL_SAY_6);
@@ -686,7 +686,7 @@ public:
break;
case 60:
if (player)
- Talk(ANACHRONOS_SAY_10, player->GetGUID());
+ Talk(ANACHRONOS_SAY_10, player);
me->GetMotionMaster()->MoveCharge(-8113.46f, 1524.16f, 2.89f, 4);
break;
case 61:
diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp
index be169ef6139..85f0b968ecb 100644
--- a/src/server/scripts/Kalimdor/zone_tanaris.cpp
+++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp
@@ -99,7 +99,7 @@ public:
void EnterCombat(Unit* who)
{
- Talk(AGGRO_YELL_AQUE, who->GetGUID());
+ Talk(AGGRO_YELL_AQUE, who);
}
void UpdateAI(uint32 diff) OVERRIDE
@@ -187,58 +187,58 @@ public:
switch (waypointId)
{
case 0:
- Talk(WHISPER_CUSTODIAN_1, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_1, player);
break;
case 1:
- Talk(WHISPER_CUSTODIAN_2, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_2, player);
break;
case 2:
- Talk(WHISPER_CUSTODIAN_3, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_3, player);
break;
case 3:
- Talk(WHISPER_CUSTODIAN_4, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_4, player);
break;
case 5:
- Talk(WHISPER_CUSTODIAN_5, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_5, player);
break;
case 6:
- Talk(WHISPER_CUSTODIAN_6, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_6, player);
break;
case 7:
- Talk(WHISPER_CUSTODIAN_7, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_7, player);
break;
case 8:
- Talk(WHISPER_CUSTODIAN_8, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_8, player);
break;
case 9:
- Talk(WHISPER_CUSTODIAN_9, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_9, player);
break;
case 10:
- Talk(WHISPER_CUSTODIAN_4, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_4, player);
break;
case 13:
- Talk(WHISPER_CUSTODIAN_10, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_10, player);
break;
case 14:
- Talk(WHISPER_CUSTODIAN_4, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_4, player);
break;
case 16:
- Talk(WHISPER_CUSTODIAN_11, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_11, player);
break;
case 17:
- Talk(WHISPER_CUSTODIAN_12, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_12, player);
break;
case 18:
- Talk(WHISPER_CUSTODIAN_4, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_4, player);
break;
case 22:
- Talk(WHISPER_CUSTODIAN_13, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_13, player);
break;
case 23:
- Talk(WHISPER_CUSTODIAN_4, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_4, player);
break;
case 24:
- Talk(WHISPER_CUSTODIAN_14, player->GetGUID());
+ Talk(WHISPER_CUSTODIAN_14, player);
DoCast(player, 34883);
// below here is temporary workaround, to be removed when spell works properly
player->AreaExploredOrEventHappens(10277);
diff --git a/src/server/scripts/Kalimdor/zone_teldrassil.cpp b/src/server/scripts/Kalimdor/zone_teldrassil.cpp
index 14f8f2a9dac..96326febcac 100644
--- a/src/server/scripts/Kalimdor/zone_teldrassil.cpp
+++ b/src/server/scripts/Kalimdor/zone_teldrassil.cpp
@@ -79,7 +79,7 @@ public:
{
if (me->IsWithinDistInMap(who, 10.0f))
{
- Talk(SAY_AT_HOME, who->GetGUID());
+ Talk(SAY_AT_HOME, who);
DoComplete();
}
}
diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
index b23710b3d00..49b557e9fab 100644
--- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp
+++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp
@@ -104,7 +104,7 @@ public:
creature->setFaction(FACTION_ESCORTEE);
creature->SetStandState(UNIT_STAND_STATE_STAND);
- creature->AI()->Talk(SAY_GIL_START, player->GetGUID());
+ creature->AI()->Talk(SAY_GIL_START, player);
if (npc_giltharesAI* pEscortAI = CAST_AI(npc_gilthares::npc_giltharesAI, creature->AI()))
pEscortAI->Start(false, false, player->GetGUID(), quest);
@@ -132,22 +132,22 @@ public:
switch (waypointId)
{
case 16:
- Talk(SAY_GIL_AT_LAST, player->GetGUID());
+ Talk(SAY_GIL_AT_LAST, player);
break;
case 17:
- Talk(SAY_GIL_PROCEED, player->GetGUID());
+ Talk(SAY_GIL_PROCEED, player);
break;
case 18:
- Talk(SAY_GIL_FREEBOOTERS, player->GetGUID());
+ Talk(SAY_GIL_FREEBOOTERS, player);
break;
case 37:
- Talk(SAY_GIL_ALMOST, player->GetGUID());
+ Talk(SAY_GIL_ALMOST, player);
break;
case 47:
- Talk(SAY_GIL_SWEET, player->GetGUID());
+ Talk(SAY_GIL_SWEET, player);
break;
case 53:
- Talk(SAY_GIL_FREED, player->GetGUID());
+ Talk(SAY_GIL_FREED, player);
player->GroupEventHappens(QUEST_FREE_FROM_HOLD, me);
break;
}
@@ -163,7 +163,7 @@ public:
if (who->GetTypeId() != TYPEID_PLAYER && me->GetAreaId() == AREA_MERCHANT_COAST)
{
//appears to be pretty much random (possible only if escorter not in combat with who yet?)
- Talk(SAY_GIL_AGGRO, who->GetGUID());
+ Talk(SAY_GIL_AGGRO, who);
}
}
};
@@ -403,7 +403,7 @@ public:
if (x >= -1684 && x <= -1674 && y >= -4334 && y <= -4324)
{
warrior->AreaExploredOrEventHappens(1719);
- Talk(SAY_TWIGGY_FLATHEAD_BEGIN, warrior->GetGUID());
+ Talk(SAY_TWIGGY_FLATHEAD_BEGIN, warrior);
for (uint8 i = 0; i < 6; ++i)
{
@@ -572,10 +572,10 @@ public:
switch (PointId)
{
case 9:
- Talk(SAY_STARTUP2, player->GetGUID());
+ Talk(SAY_STARTUP2, player);
break;
case 18:
- Talk(SAY_PROGRESS_1, player->GetGUID());
+ Talk(SAY_PROGRESS_1, player);
SetRun();
break;
}
diff --git a/src/server/scripts/Kalimdor/zone_winterspring.cpp b/src/server/scripts/Kalimdor/zone_winterspring.cpp
index 18df584e64a..c9a526c6306 100644
--- a/src/server/scripts/Kalimdor/zone_winterspring.cpp
+++ b/src/server/scripts/Kalimdor/zone_winterspring.cpp
@@ -524,7 +524,7 @@ public:
if (Player* player = GetPlayerForEscort())
{
me->SetFacingToObject(player);
- Talk(SAY_RANSHALLA_END_1, player->GetGUID());
+ Talk(SAY_RANSHALLA_END_1, player);
}
break;
case SAY_RANSHALLA_END_2:
@@ -538,7 +538,7 @@ public:
if (Player* player = GetPlayerForEscort())
{
player->GroupEventHappens(QUEST_GUARDIANS_ALTAR, me);
- Talk(SAY_RANSHALLA_END_2, player->GetGUID());
+ Talk(SAY_RANSHALLA_END_2, player);
}
me->DespawnOrUnsummon(4000);
break;
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
index ae4406353bf..02f8ddb0010 100644
--- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp
@@ -147,7 +147,7 @@ class boss_elder_nadox : public CreatureScript
if (me->HealthBelowPct(100 - AmountHealthModifier* 25))
{
- Talk(EMOTE_HATCHES, me->GetGUID());
+ Talk(EMOTE_HATCHES, me);
DoCast(me, SPELL_SUMMON_SWARM_GUARD);
++AmountHealthModifier;
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
index bcb68ae5ce3..8c470f73e04 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp
@@ -412,7 +412,7 @@ public:
if (!PlayerList.isEmpty())
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
if (i->GetSource() && i->GetSource()->IsAlive())
- Talk(WHISPER_LAVA_CHURN, i->GetSource()->GetGUID());
+ Talk(WHISPER_LAVA_CHURN, i->GetSource());
}
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
index be1c83e185f..6aa1eb74706 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/obsidian_sanctum.cpp
@@ -247,7 +247,7 @@ struct dummy_dragonAI : public ScriptedAI
if (!PlayerList.isEmpty())
{
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- Talk(iTextId, i->GetSource()->GetGUID());
+ Talk(iTextId, i->GetSource());
}
}
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index 6f6b28851ad..3574b162d57 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -851,9 +851,9 @@ class npc_halion_controller : public CreatureScript
halion->CastSpell(halion, GetSpell(_materialCorporealityValue, itr == DATA_TWILIGHT_HALION), true);
if (itr == DATA_TWILIGHT_HALION)
- halion->AI()->Talk(oldValue < _materialCorporealityValue ? EMOTE_CORPOREALITY_TOT : EMOTE_CORPOREALITY_TIT, halion->GetGUID());
+ halion->AI()->Talk(oldValue < _materialCorporealityValue ? EMOTE_CORPOREALITY_TOT : EMOTE_CORPOREALITY_TIT, halion);
else // if (itr == DATA_HALION)
- halion->AI()->Talk(oldValue > _materialCorporealityValue ? EMOTE_CORPOREALITY_POT : EMOTE_CORPOREALITY_PIP, halion->GetGUID());
+ halion->AI()->Talk(oldValue > _materialCorporealityValue ? EMOTE_CORPOREALITY_POT : EMOTE_CORPOREALITY_PIP, halion);
}
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index 53b11de921a..32a8a2fe379 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -257,7 +257,7 @@ class boss_anubarak_trial : public CreatureScript
case NPC_SPIKE:
summoned->CombatStart(target);
summoned->SetDisplayId(summoned->GetCreatureTemplate()->Modelid1);
- Talk(EMOTE_SPIKE, target->GetGUID());
+ Talk(EMOTE_SPIKE, target);
break;
default:
break;
@@ -689,7 +689,7 @@ class npc_anubarak_spike : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
{
StartChase(target);
- Talk(EMOTE_SPIKE, who->GetGUID());
+ Talk(EMOTE_SPIKE, who);
}
}
@@ -719,7 +719,7 @@ class npc_anubarak_spike : public CreatureScript
if (Unit* target2 = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
{
StartChase(target2);
- Talk(EMOTE_SPIKE, target2->GetGUID());
+ Talk(EMOTE_SPIKE, target2);
}
_phaseSwitchTimer = 7*IN_MILLISECONDS;
return;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index 4cea1ea5b06..3fa9ac7387f 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -175,7 +175,7 @@ class boss_jaraxxus : public CreatureScript
case EVENT_INCINERATE_FLESH:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true, -SPELL_LORD_HITTIN))
{
- Talk(EMOTE_INCINERATE, target->GetGUID());
+ Talk(EMOTE_INCINERATE, target);
Talk(SAY_INCINERATE);
DoCast(target, SPELL_INCINERATE_FLESH);
}
@@ -188,7 +188,7 @@ class boss_jaraxxus : public CreatureScript
case EVENT_LEGION_FLAME:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true, -SPELL_LORD_HITTIN))
{
- Talk(EMOTE_LEGION_FLAME, target->GetGUID());
+ Talk(EMOTE_LEGION_FLAME, target);
DoCast(target, SPELL_LEGION_FLAME);
}
events.ScheduleEvent(EVENT_LEGION_FLAME, 30*IN_MILLISECONDS);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index 3fdfc0c8ae3..7843808a6a3 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -1068,7 +1068,8 @@ class boss_icehowl : public CreatureScript
case 4:
me->StopMoving();
me->AttackStop();
- Talk(EMOTE_TRAMPLE_START, _trampleTargetGUID);
+ if (Player* target = ObjectAccessor::GetPlayer(*me, _trampleTargetGUID))
+ Talk(EMOTE_TRAMPLE_START, target);
me->GetMotionMaster()->MoveCharge(_trampleTargetX, _trampleTargetY, _trampleTargetZ, 42, 1);
me->SetTarget(0);
_stage = 5;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
index ff7092590e7..36cf9432d96 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
@@ -375,7 +375,7 @@ class npc_fizzlebang_toc : public CreatureScript
void JustDied(Unit* killer) OVERRIDE
{
- Talk(SAY_STAGE_1_06, killer->GetGUID());
+ Talk(SAY_STAGE_1_06, killer);
_instance->SetData(TYPE_EVENT, 1180);
if (Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS)))
{
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
index 4a9a41f6f8e..5bf50cbb46f 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp
@@ -189,7 +189,7 @@ class boss_garfrost : public CreatureScript
case EVENT_THROW_SARONITE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
{
- Talk(SAY_THROW_SARONITE, target->GetGUID());
+ Talk(SAY_THROW_SARONITE, target);
DoCast(target, SPELL_THROW_SARONITE);
}
events.ScheduleEvent(EVENT_THROW_SARONITE, urand(12500, 20000));
@@ -201,7 +201,7 @@ class boss_garfrost : public CreatureScript
case EVENT_DEEP_FREEZE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))
{
- Talk(SAY_CAST_DEEP_FREEZE, target->GetGUID());
+ Talk(SAY_CAST_DEEP_FREEZE, target);
DoCast(target, SPELL_DEEP_FREEZE);
}
events.ScheduleEvent(EVENT_DEEP_FREEZE, 35000, 0, PHASE_THREE);
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
index 3b3f65c7704..f2ee24f5b86 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
@@ -622,7 +622,7 @@ class spell_krick_pursuit : public SpellScriptLoader
{
if (Unit* target = ick->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, 200.0f, true))
{
- ick->AI()->Talk(SAY_ICK_CHASE_1, target->GetGUID());
+ ick->AI()->Talk(SAY_ICK_CHASE_1, target);
ick->AddAura(GetSpellInfo()->Id, target);
CAST_AI(boss_ick::boss_ickAI, ick->AI())->SetTempThreat(ick->getThreatManager().getThreat(target));
ick->AddThreat(target, float(GetEffectValue()));
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index 48cc6f89a13..5a58dfa1b4a 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -265,7 +265,7 @@ class boss_tyrannus : public CreatureScript
Talk(SAY_MARK_RIMEFANG_1);
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true))
{
- Talk(SAY_MARK_RIMEFANG_2, target->GetGUID());
+ Talk(SAY_MARK_RIMEFANG_2, target);
DoCast(target, SPELL_MARK_OF_RIMEFANG);
}
events.ScheduleEvent(EVENT_MARK_OF_RIMEFANG, urand(24000, 26000));
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index 0c859236965..5df69097f9b 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -666,7 +666,7 @@ class boss_prince_taldaram_icc : public CreatureScript
target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true); // too bad for you raiders, its going to boom
if (summon->GetEntry() == NPC_BALL_OF_INFERNO_FLAME && target)
- Talk(EMOTE_TALDARAM_FLAME, target->GetGUID());
+ Talk(EMOTE_TALDARAM_FLAME, target);
if (target)
summon->AI()->SetGUID(target->GetGUID());
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
index 1e5919536f3..65622411623 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
@@ -412,7 +412,7 @@ class boss_blood_queen_lana_thel : public CreatureScript
case EVENT_SWARMING_SHADOWS:
if (Player* target = SelectRandomTarget(false))
{
- Talk(EMOTE_SWARMING_SHADOWS, target->GetGUID());
+ Talk(EMOTE_SWARMING_SHADOWS, target);
Talk(SAY_SWARMING_SHADOWS);
DoCast(target, SPELL_SWARMING_SHADOWS);
}
@@ -601,7 +601,7 @@ class spell_blood_queen_frenzied_bloodthirst : public SpellScriptLoader
{
if (InstanceScript* instance = GetTarget()->GetInstanceScript())
if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetTarget(), instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL)))
- bloodQueen->AI()->Talk(EMOTE_BLOODTHIRST, GetTarget()->GetGUID());
+ bloodQueen->AI()->Talk(EMOTE_BLOODTHIRST, GetTarget());
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
index eddc67b5f5e..88a00e78aae 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
@@ -538,7 +538,7 @@ class spell_rotface_mutated_infection : public SpellScriptLoader
{
if (Creature* caster = GetCaster()->ToCreature())
if (Unit* target = GetHitUnit())
- caster->AI()->Talk(EMOTE_MUTATED_INFECTION, target->GetGUID());
+ caster->AI()->Talk(EMOTE_MUTATED_INFECTION, target);
}
void Register() OVERRIDE
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 1b03022c9bd..64e87ac8873 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -484,7 +484,7 @@ class boss_sindragosa : public CreatureScript
case EVENT_ICE_TOMB:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, FrostBeaconSelector(me)))
{
- Talk(EMOTE_WARN_FROZEN_ORB, target->GetGUID());
+ Talk(EMOTE_WARN_FROZEN_ORB, target);
DoCast(target, SPELL_ICE_TOMB_DUMMY, true);
}
events.ScheduleEvent(EVENT_ICE_TOMB, urand(16000, 23000));
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index 4c927517952..615540e7b49 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -913,7 +913,7 @@ class boss_the_lich_king : public CreatureScript
case EVENT_NECROTIC_PLAGUE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, NecroticPlagueTargetCheck(me, NECROTIC_PLAGUE_LK, NECROTIC_PLAGUE_PLR)))
{
- Talk(EMOTE_NECROTIC_PLAGUE_WARNING, target->GetGUID());
+ Talk(EMOTE_NECROTIC_PLAGUE_WARNING, target);
DoCast(target, SPELL_NECROTIC_PLAGUE);
}
events.ScheduleEvent(EVENT_NECROTIC_PLAGUE, urand(30000, 33000), 0, PHASE_ONE);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
index 9116222a4e0..a04e98e74bc 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp
@@ -628,7 +628,7 @@ class npc_rotting_frost_giant : public CreatureScript
case EVENT_DEATH_PLAGUE:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true))
{
- Talk(EMOTE_DEATH_PLAGUE_WARNING, target->GetGUID());
+ Talk(EMOTE_DEATH_PLAGUE_WARNING, target);
DoCast(target, SPELL_DEATH_PLAGUE);
}
_events.ScheduleEvent(EVENT_DEATH_PLAGUE, 15000);
@@ -841,7 +841,7 @@ class boss_sister_svalna : public CreatureScript
if (spell->Id == SPELL_HURL_SPEAR && me->HasAura(SPELL_AETHER_SHIELD))
{
me->RemoveAurasDueToSpell(SPELL_AETHER_SHIELD);
- Talk(EMOTE_SVALNA_BROKEN_SHIELD, caster->GetGUID());
+ Talk(EMOTE_SVALNA_BROKEN_SHIELD, caster);
}
}
@@ -867,7 +867,7 @@ class boss_sister_svalna : public CreatureScript
case SPELL_IMPALING_SPEAR:
if (TempSummon* summon = target->SummonCreature(NPC_IMPALING_SPEAR, *target))
{
- Talk(EMOTE_SVALNA_IMPALE, target->GetGUID());
+ Talk(EMOTE_SVALNA_IMPALE, target);
summon->CastCustomSpell(VEHICLE_SPELL_RIDE_HARDCODED, SPELLVALUE_BASE_POINT0, 1, target, false);
summon->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_UNK1 | UNIT_FLAG2_ALLOW_ENEMY_INTERACT);
}
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
index 8980cd063c0..3f751e86149 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gluth.cpp
@@ -76,7 +76,7 @@ public:
{
SetGazeOn(who);
/// @todo use a script text
- me->MonsterTextEmote(EMOTE_NEARBY, 0, true);
+ me->MonsterTextEmote(EMOTE_NEARBY, NULL, true);
}
else
BossAI::MoveInLineOfSight(who);
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index c073ec28a2b..c813577dd53 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -670,7 +670,7 @@ public:
Talk(SAY_BUFF_SPARK);
}
else if (spell->Id == SPELL_MALYGOS_BERSERK)
- sCreatureTextMgr->SendChat(me, EMOTE_HIT_BERSERKER_TIMER, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);
+ sCreatureTextMgr->SendChat(me, EMOTE_HIT_BERSERKER_TIMER, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);
}
void MoveInLineOfSight(Unit* who) OVERRIDE
@@ -963,7 +963,7 @@ public:
{
if (passenger->GetTypeId() == TYPEID_PLAYER)
{
- Talk(EMOTE_SURGE_OF_POWER_WARNING_P3, passenger->GetGUID());
+ Talk(EMOTE_SURGE_OF_POWER_WARNING_P3, passenger);
DoCast(tempSurgeTarget, SPELL_SURGE_OF_POWER_PHASE_3_10, true);
}
}
@@ -1142,7 +1142,7 @@ public:
{
_instance = creature->GetInstanceScript();
// Talk range was not enough for this encounter
- sCreatureTextMgr->SendChat(me, EMOTE_POWER_SPARK_SUMMONED, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);
+ sCreatureTextMgr->SendChat(me, EMOTE_POWER_SPARK_SUMMONED, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);
MoveToMalygos();
}
@@ -2351,7 +2351,7 @@ class spell_malygos_surge_of_power_warning_selector_25 : public SpellScriptLoade
if (Vehicle* vehicle = target->GetVehicleKit())
if (Unit* passenger = vehicle->GetPassenger(0))
if (passenger->GetTypeId() == TYPEID_PLAYER)
- caster->AI()->Talk(EMOTE_SURGE_OF_POWER_WARNING_P3, passenger->GetGUID());
+ caster->AI()->Talk(EMOTE_SURGE_OF_POWER_WARNING_P3, passenger);
}
}
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
index 1230868c020..c565f71320d 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp
@@ -310,17 +310,21 @@ class npc_ruby_emerald_amber_drake : public CreatureScript
switch (eventId)
{
case EVENT_WELCOME:
- Talk(WHISPER_DRAKES_WELCOME, me->GetCreatorGUID());
+ if (Unit* creator = ObjectAccessor::GetUnit(*me, me->GetCreatorGUID()))
+ Talk(WHISPER_DRAKES_WELCOME, creator);
_events.ScheduleEvent(EVENT_ABILITIES, 5 * IN_MILLISECONDS);
break;
case EVENT_ABILITIES:
- Talk(WHISPER_DRAKES_ABILITIES, me->GetCreatorGUID());
+ if (Unit* creator = ObjectAccessor::GetUnit(*me, me->GetCreatorGUID()))
+ Talk(WHISPER_DRAKES_ABILITIES, creator);
break;
case EVENT_SPECIAL_ATTACK:
- Talk(WHISPER_DRAKES_SPECIAL, me->GetCreatorGUID());
+ if (Unit* creator = ObjectAccessor::GetUnit(*me, me->GetCreatorGUID()))
+ Talk(WHISPER_DRAKES_SPECIAL, creator);
break;
case EVENT_LOW_HEALTH:
- Talk(WHISPER_DRAKES_LOWHEALTH, me->GetCreatorGUID());
+ if (Unit* creator = ObjectAccessor::GetUnit(*me, me->GetCreatorGUID()))
+ Talk(WHISPER_DRAKES_LOWHEALTH, creator);
_healthWarning = false;
_events.ScheduleEvent(EVENT_RESET_LOW_HEALTH, 25000);
break;
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 69f009a2ca2..4bcbe855c2f 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
@@ -1530,7 +1530,7 @@ class spell_auto_repair : public SpellScriptLoader
if (!driver)
return;
- driver->MonsterTextEmote(EMOTE_REPAIR, driver->GetGUID(), true);
+ driver->MonsterTextEmote(EMOTE_REPAIR, driver, true);
InstanceScript* instance = driver->GetInstanceScript();
if (!instance)
@@ -1690,9 +1690,9 @@ class spell_pursue : public SpellScriptLoader
for (SeatMap::const_iterator itr = caster->GetVehicleKit()->Seats.begin(); itr != caster->GetVehicleKit()->Seats.end(); ++itr)
{
- if (IS_PLAYER_GUID(itr->second.Passenger.Guid))
+ if (Player* passenger = ObjectAccessor::GetPlayer(*caster, itr->second.Passenger.Guid))
{
- caster->AI()->Talk(EMOTE_PURSUE, itr->second.Passenger.Guid);
+ caster->AI()->Talk(EMOTE_PURSUE, passenger);
return;
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
index 4ba6d948f1a..575ab574140 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
@@ -452,7 +452,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
if (Player* player = itr->GetSource())
{
if (events.IsInPhase(PHASE_ONE))
- Talk(WHISPER_VOICE_PHASE_1_WIPE, player->GetGUID());
+ Talk(WHISPER_VOICE_PHASE_1_WIPE, player);
player->RemoveAurasDueToSpell(SPELL_SANITY);
player->RemoveAurasDueToSpell(SPELL_INSANE);
@@ -531,7 +531,7 @@ class boss_voice_of_yogg_saron : public CreatureScript
case EVENT_EXTINGUISH_ALL_LIFE:
if (Creature* yogg = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_YOGG_SARON)))
{
- yogg->AI()->Talk(EMOTE_YOGG_SARON_EXTINGUISH_ALL_LIFE, me->GetGUID());
+ yogg->AI()->Talk(EMOTE_YOGG_SARON_EXTINGUISH_ALL_LIFE, me);
yogg->CastSpell((Unit*)NULL, SPELL_EXTINGUISH_ALL_LIFE, true);
}
events.ScheduleEvent(EVENT_EXTINGUISH_ALL_LIFE, 10000); // cast it again after a short while, players can survive
@@ -1071,7 +1071,7 @@ class boss_brain_of_yogg_saron : public CreatureScript
uint8 illusion = _instance->GetData(DATA_ILLUSION);
if (++_tentaclesKilled >= (illusion == ICECROWN_ILLUSION ? 9 : 8))
{
- sCreatureTextMgr->SendChat(me, EMOTE_BRAIN_ILLUSION_SHATTERED, 0, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_AREA);
+ sCreatureTextMgr->SendChat(me, EMOTE_BRAIN_ILLUSION_SHATTERED, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_AREA);
_summons.DespawnAll();
DoCastAOE(SPELL_SHATTERED_ILLUSION, true);
_instance->HandleGameObject(_instance->GetData64(GO_BRAIN_ROOM_DOOR_1 + illusion), true);
@@ -1524,8 +1524,8 @@ class npc_observation_ring_keeper : public CreatureScript
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
me->DespawnOrUnsummon(2000);
DoCast(SPELL_TELEPORT);
- Talk(SAY_KEEPER_CHOSEN_1, player->GetGUID());
- Talk(SAY_KEEPER_CHOSEN_2, player->GetGUID());
+ Talk(SAY_KEEPER_CHOSEN_1, player);
+ Talk(SAY_KEEPER_CHOSEN_2, player);
switch (me->GetEntry())
{
@@ -2234,7 +2234,7 @@ class spell_yogg_saron_boil_ominously : public SpellScriptLoader // 63030
if (!target->HasAura(SPELL_FLASH_FREEZE) && !GetCaster()->HasAura(SPELL_SUMMON_GUARDIAN_1) && !GetCaster()->HasAura(SPELL_SUMMON_GUARDIAN_2))
{
if (Creature* caster = GetCaster()->ToCreature())
- caster->AI()->Talk(EMOTE_OMINOUS_CLOUD_PLAYER_TOUCH, target->GetGUID());
+ caster->AI()->Talk(EMOTE_OMINOUS_CLOUD_PLAYER_TOUCH, target);
GetCaster()->CastSpell(GetCaster(), SPELL_SUMMON_GUARDIAN_1, true);
}
@@ -2905,7 +2905,7 @@ class spell_yogg_saron_insane : public SpellScriptLoader // 63120
{
if (Unit* caster = GetCaster())
if (Creature* yogg = caster->ToCreature())
- yogg->AI()->Talk(WHISPER_VOICE_INSANE, GetTarget()->GetGUID());
+ yogg->AI()->Talk(WHISPER_VOICE_INSANE, GetTarget());
GetTarget()->CastSpell(GetTarget(), SPELL_INSANE_VISUAL, true);
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
index e7719fcfbbb..126185215e9 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp
@@ -194,7 +194,7 @@ class boss_keleseth : public CreatureScript
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true, -SPELL_FROST_TOMB))
{
Talk(SAY_FROST_TOMB);
- Talk(SAY_FROST_TOMB_EMOTE, target->GetGUID());
+ Talk(SAY_FROST_TOMB_EMOTE, target);
DoCast(target, SPELL_FROST_TOMB_STUN, true);
// checked from sniffs - the player casts the spell
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp
index f5700358150..ccb18df7f0d 100644
--- a/src/server/scripts/Northrend/zone_borean_tundra.cpp
+++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp
@@ -1728,7 +1728,7 @@ public:
Talk(SAY_IMPRISIONED_BERYL_1);
break;
case 2:
- Talk(SAY_IMPRISIONED_BERYL_2, caster->GetGUID());
+ Talk(SAY_IMPRISIONED_BERYL_2, caster);
break;
case 3:
Talk(SAY_IMPRISIONED_BERYL_3);
@@ -1740,7 +1740,7 @@ public:
Talk(SAY_IMPRISIONED_BERYL_5);
break;
case 6:
- Talk(SAY_IMPRISIONED_BERYL_6, caster->GetGUID());
+ Talk(SAY_IMPRISIONED_BERYL_6, caster);
break;
case 7:
Talk(SAY_IMPRISIONED_BERYL_7);
@@ -1872,7 +1872,7 @@ public:
if (quest->GetQuestId() == QUEST_GET_ME_OUTA_HERE)
{
creature->SetStandState(UNIT_STAND_STATE_STAND);
- creature->AI()->Talk(SAY_BONKER_2, player->GetGUID());
+ creature->AI()->Talk(SAY_BONKER_2, player);
CAST_AI(npc_escortAI, (creature->AI()))->Start(true, true, player->GetGUID());
}
return true;
diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp
index 2c311e20a79..5f3442c1ba9 100644
--- a/src/server/scripts/Northrend/zone_dragonblight.cpp
+++ b/src/server/scripts/Northrend/zone_dragonblight.cpp
@@ -446,12 +446,12 @@ public:
if (roll == 1) // friendly version
{
tree->CastSpell(player, SPELL_CREATE_ITEM_BARK);
- tree->AI()->Talk(SAY_WALKER_FRIENDLY, player->GetGUID());
+ tree->AI()->Talk(SAY_WALKER_FRIENDLY, player);
tree->DespawnOrUnsummon(1000);
}
else if (roll == 0) // enemy version
{
- tree->AI()->Talk(SAY_WALKER_ENEMY, player->GetGUID());
+ tree->AI()->Talk(SAY_WALKER_ENEMY, player);
tree->setFaction(FACTION_WALKER_ENEMY);
tree->Attack(player, true);
}
@@ -603,13 +603,13 @@ class npc_wyrmrest_defender : public CreatureScript
switch (spell->Id)
{
case SPELL_WYRMREST_DEFENDER_MOUNT:
- Talk(WHISPER_MOUNTED, me->GetCharmerOrOwnerGUID());
+ Talk(WHISPER_MOUNTED, me->GetCharmerOrOwner());
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
break;
// Both below are for checking low hp warning
case SPELL_DEFENDER_ON_LOW_HEALTH_EMOTE:
- Talk(BOSS_EMOTE_ON_LOW_HEALTH, me->GetCharmerOrOwnerGUID());
+ Talk(BOSS_EMOTE_ON_LOW_HEALTH, me->GetCharmerOrOwner());
break;
case SPELL_RENEW:
if (!hpWarningReady && RenewRecoveryChecker <= 100)
@@ -663,7 +663,7 @@ class npc_torturer_lecraft : public CreatureScript
_events.ScheduleEvent(EVENT_KIDNEY_SHOT, urand(12000, 15000));
if (Player* player = who->ToPlayer())
- Talk (SAY_AGGRO, player->GetGUID());
+ Talk (SAY_AGGRO, player);
}
void SpellHit(Unit* caster, const SpellInfo* spell) OVERRIDE
@@ -679,7 +679,7 @@ class npc_torturer_lecraft : public CreatureScript
if (_playerGUID != player->GetGUID())
return;
- Talk(_textCounter, player->GetGUID());
+ Talk(_textCounter, player);
if (_textCounter == 5)
player->KilledMonsterCredit(NPC_TORTURER_LECRAFT, 0);
diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
index 6587f0536b3..1f04089af87 100644
--- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp
@@ -160,7 +160,7 @@ public:
if (player)
{
player->GroupEventHappens(QUEST_PERILOUS_ADVENTURE, me);
- Talk(SAY_QUEST_COMPLETE, player->GetGUID());
+ Talk(SAY_QUEST_COMPLETE, player);
}
me->SetWalk(false);
break;
diff --git a/src/server/scripts/Northrend/zone_sholazar_basin.cpp b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
index a0b6524bd89..04331a88cca 100644
--- a/src/server/scripts/Northrend/zone_sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/zone_sholazar_basin.cpp
@@ -225,7 +225,7 @@ public:
break;
case GOSSIP_ACTION_INFO_DEF+2:
player->CLOSE_GOSSIP_MENU();
- creature->AI()->Talk(SAY_TEXTID_VEKJIK1, player->GetGUID());
+ creature->AI()->Talk(SAY_TEXTID_VEKJIK1, player);
player->AreaExploredOrEventHappens(QUEST_MAKING_PEACE);
creature->CastSpell(player, SPELL_FREANZYHEARTS_FURY, false);
break;
@@ -772,7 +772,7 @@ public:
{
if (Creature* presence = caster->FindNearestCreature(NPC_PRESENCE, 50.0f))
{
- presence->AI()->Talk(WHISPER_ACTIVATE, caster->GetGUID());
+ presence->AI()->Talk(WHISPER_ACTIVATE, caster);
presence->CastSpell(presence, SPELL_FREYA_DUMMY, true); // will target plants
// Freya Dummy could be scripted with the following code
@@ -1110,10 +1110,10 @@ public:
switch (GetSpellInfo()->Id)
{
case SPELL_CORRECT_TRACKS:
- player->MonsterSay(sObjectMgr->GetTrinityStringForDBCLocale(SAY_CORRECT_TRACKS), LANG_UNIVERSAL, player->GetGUID());
+ player->MonsterSay(sObjectMgr->GetTrinityStringForDBCLocale(SAY_CORRECT_TRACKS), LANG_UNIVERSAL, player);
break;
case SPELL_INCORRECT_TRACKS:
- player->MonsterSay(sObjectMgr->GetTrinityStringForDBCLocale(SAY_INCORRECT_TRACKS), LANG_UNIVERSAL, player->GetGUID());
+ player->MonsterSay(sObjectMgr->GetTrinityStringForDBCLocale(SAY_INCORRECT_TRACKS), LANG_UNIVERSAL, player);
break;
default:
break;
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index b1ece9b1aec..e089d736992 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -57,7 +57,7 @@ public:
switch (waypointId)
{
case 26:
- Talk(SAY_END_WP_REACHED, player->GetGUID());
+ Talk(SAY_END_WP_REACHED, player);
break;
case 27:
player->GroupEventHappens(QUEST_BITTER_DEPARTURE, me);
@@ -282,7 +282,7 @@ public:
if (Vehicle* vehicle = me->GetVehicleKit())
if (Unit* passenger = vehicle->GetPassenger(0))
{
- Talk(TEXT_EMOTE, passenger->GetGUID());
+ Talk(TEXT_EMOTE, passenger);
me->GetMotionMaster()->MovePath(NPC_DRAKE, false);
}
}
@@ -477,7 +477,8 @@ public:
switch (eventId)
{
case EVENT_SCRIPT_1:
- Talk(SAY_BRANN_1, playerGUID);
+ if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
+ Talk(SAY_BRANN_1, player);
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
if (Creature* voice = me->SummonCreature(NPC_A_DISTANT_VOICE, 7863.43f, -1396.585f, 1538.076f, 2.949606f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 49000))
voiceGUID = voice->GetGUID();
@@ -497,36 +498,41 @@ public:
if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
{
voice->AI()->DoCast(voice, SPELL_RESURRECTION);
- voice->AI()->Talk(SAY_VOICE_1, playerGUID);
+ if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
+ voice->AI()->Talk(SAY_VOICE_1, player);
}
if (GameObject* go = me->SummonGameObject(OBJECT_TOL_SIGNAL_1, 7860.273f, -1383.622f, 1538.302f, -1.658062f, 0, 0, -0.737277f, 0.6755905f, 0))
objectGUID[objectCounter++] = go->GetGUID();
events.ScheduleEvent(EVENT_SCRIPT_5, 6000);
break;
case EVENT_SCRIPT_5:
- if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
- voice->AI()->Talk(SAY_VOICE_2, playerGUID);
+ if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
+ if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
+ voice->AI()->Talk(SAY_VOICE_2, player);
if (GameObject* go = me->SummonGameObject(OBJECT_TOL_SIGNAL_2, 7875.67f, -1387.266f, 1538.323f, -2.373644f, 0, 0, -0.9271832f, 0.3746083f, 0))
objectGUID[objectCounter++] = go->GetGUID();
events.ScheduleEvent(EVENT_SCRIPT_6, 6000);
break;
case EVENT_SCRIPT_6:
- if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
- voice->AI()->Talk(SAY_VOICE_3, playerGUID);
+ if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
+ if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
+ voice->AI()->Talk(SAY_VOICE_3, player);
if (GameObject* go = me->SummonGameObject(OBJECT_TOL_SIGNAL_3, 7879.212f, -1401.175f, 1538.279f, 2.967041f, 0, 0, 0.9961939f, 0.08716504f, 0))
objectGUID[objectCounter++] = go->GetGUID();
events.ScheduleEvent(EVENT_SCRIPT_7, 6000);
break;
case EVENT_SCRIPT_7:
- if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
- voice->AI()->Talk(SAY_VOICE_4, playerGUID);
+ if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
+ if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
+ voice->AI()->Talk(SAY_VOICE_4, player);
if (GameObject* go = me->SummonGameObject(OBJECT_TOL_SIGNAL_4, 7868.944f, -1411.18f, 1538.213f, 2.111848f, 0, 0, 0.8703556f, 0.4924237f, 0))
objectGUID[objectCounter++] = go->GetGUID();
events.ScheduleEvent(EVENT_SCRIPT_8, 6000);
break;
case EVENT_SCRIPT_8:
- if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
- voice->AI()->Talk(SAY_VOICE_5, playerGUID);
+ if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
+ if (Creature* voice = ObjectAccessor::GetCreature(*me, voiceGUID))
+ voice->AI()->Talk(SAY_VOICE_5, player);
if (GameObject* go = me->SummonGameObject(OBJECT_TOL_SIGNAL_5, 7855.11f, -1406.839f, 1538.42f, 1.151916f, 0, 0, 0.5446386f, 0.8386708f, 0))
objectGUID[objectCounter] = go->GetGUID();
events.ScheduleEvent(EVENT_SCRIPT_9, 6000);
@@ -537,14 +543,17 @@ public:
events.ScheduleEvent(EVENT_SCRIPT_10, 6000);
break;
case EVENT_SCRIPT_10:
- Talk(SAY_BRANN_2, playerGUID);
if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
+ {
+ Talk(SAY_BRANN_2, player);
player->KilledMonsterCredit(me->GetEntry());
+ }
events.ScheduleEvent(EVENT_SCRIPT_11, 6000);
break;
case EVENT_SCRIPT_11:
me->SetFacingTo(2.932153f);
- Talk(SAY_BRANN_3, playerGUID);
+ if (Player* player = ObjectAccessor::GetPlayer(*me, playerGUID))
+ Talk(SAY_BRANN_3, player);
for (uint8 i = 0; i < 5; ++i)
if (GameObject* go = ObjectAccessor::GetGameObject(*me, objectGUID[i]))
@@ -640,7 +649,7 @@ public:
if (apply)
{
playerGUID = who->GetGUID();
- Talk(SAY_HOLD_ON, playerGUID);
+ Talk(SAY_HOLD_ON, who);
me->CastSpell(who, SPELL_JOKKUM_KILL_CREDIT, true);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
me->GetMotionMaster()->MovePath(PATH_JOKKUM, false);
diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp
index 1137c86f287..c2ce0201565 100644
--- a/src/server/scripts/Northrend/zone_zuldrak.cpp
+++ b/src/server/scripts/Northrend/zone_zuldrak.cpp
@@ -506,7 +506,7 @@ public:
case EVENT_EASY_123:
if (Player* player = ObjectAccessor::GetPlayer(*me, _playerGUID))
{
- Talk(SAY_EASY_123, _playerGUID);
+ Talk(SAY_EASY_123, player);
DoCast(player, SPELL_RANDOM_INGREDIENT_EASY_AURA);
++_getingredienttry;
}
@@ -514,7 +514,7 @@ public:
case EVENT_MEDIUM_4:
if (Player* player = ObjectAccessor::GetPlayer(*me, _playerGUID))
{
- Talk(SAY_MEDIUM_4, _playerGUID);
+ Talk(SAY_MEDIUM_4, player);
DoCast(player, SPELL_RANDOM_INGREDIENT_MEDIUM_AURA);
++_getingredienttry;
}
@@ -522,7 +522,7 @@ public:
case EVENT_MEDIUM_5:
if (Player* player = ObjectAccessor::GetPlayer(*me, _playerGUID))
{
- Talk(SAY_MEDIUM_5, _playerGUID);
+ Talk(SAY_MEDIUM_5, player);
DoCast(player, SPELL_RANDOM_INGREDIENT_MEDIUM_AURA);
++_getingredienttry;
}
@@ -530,7 +530,7 @@ public:
case EVENT_HARD_6:
if (Player* player = ObjectAccessor::GetPlayer(*me, _playerGUID))
{
- Talk(SAY_HARD_6, _playerGUID);
+ Talk(SAY_HARD_6, player);
DoCast(player, SPELL_RANDOM_INGREDIENT_HARD_AURA);
++_getingredienttry;
}
@@ -693,7 +693,7 @@ class spell_random_ingredient : public SpellScriptLoader
if (Creature* finklestein = GetClosestCreatureWithEntry(player, NPC_FINKLESTEIN, 25.0f))
{
finklestein->CastSpell(player, FetchIngredients[ingredient][0], true, NULL);
- finklestein->AI()->Talk(FetchIngredients[ingredient][3], player->GetGUID());
+ finklestein->AI()->Talk(FetchIngredients[ingredient][3], player);
}
}
}
@@ -776,7 +776,7 @@ class spell_pot_check : public SpellScriptLoader
RemoveItems(player);
player->RemoveAura(SPELL_ALCHEMIST_APPRENTICE_INVISBUFF);
if (Creature* finklestein = GetClosestCreatureWithEntry(player, NPC_FINKLESTEIN, 25.0f))
- finklestein->AI()->Talk(SAY_RUINED, player->GetGUID());
+ finklestein->AI()->Talk(SAY_RUINED, player);
return;
}
}
@@ -823,7 +823,7 @@ class spell_fetch_ingredient_aura : public SpellScriptLoader
if (Creature* finklestein = GetClosestCreatureWithEntry(target, NPC_FINKLESTEIN, 100.0f))
{
target->RemoveAura(SPELL_ALCHEMIST_APPRENTICE_INVISBUFF);
- finklestein->AI()->Talk(SAY_RUINED, target->GetGUID());
+ finklestein->AI()->Talk(SAY_RUINED, target);
}
}
diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
index 9f7a27ecdef..2c0c42e6092 100644
--- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
+++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp
@@ -149,7 +149,7 @@ public:
{
FocusedTargetGUID = target->GetGUID();
me->SummonCreature(NPC_FOCUS_FIRE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 5500);
- Talk(EMOTE_FOCUSED, FocusedTargetGUID);
+ Talk(EMOTE_FOCUSED, target);
}
FocusFire_Timer = 15000+(rand()%5000);
} else FocusFire_Timer -= diff;
diff --git a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp
index af8a4390d96..e36e80f8c14 100644
--- a/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp
+++ b/src/server/scripts/Outland/Auchindoun/SethekkHalls/boss_anzu.cpp
@@ -140,7 +140,7 @@ class boss_anzu : public CreatureScript
if (target->getPowerType() == POWER_MANA)
{
DoCast(target, SPELL_SPELL_BOMB);
- Talk(SAY_SPELL_BOMB, target->GetGUID());
+ Talk(SAY_SPELL_BOMB, target);
}
}
break;
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
index 3f90118ec8b..c9ccbb79ad0 100644
--- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
+++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp
@@ -608,7 +608,7 @@ public:
if (Conversation[count].emote)
creature->HandleEmoteCommand(Conversation[count].emote); // Make the Creature do some animation!
if (Conversation[count].text.size())
- creature->MonsterYell(Conversation[count].text.c_str(), LANG_UNIVERSAL, 0); // Have the Creature yell out some text
+ creature->MonsterYell(Conversation[count].text.c_str(), LANG_UNIVERSAL, NULL); // Have the Creature yell out some text
if (Conversation[count].sound)
DoPlaySoundToSet(creature, Conversation[count].sound); // Play some sound on the creature
}
@@ -764,7 +764,7 @@ public:
if (!MaievGUID) // If Maiev cannot be summoned, reset the encounter and post some errors to the console.
{
EnterEvadeMode();
- me->MonsterTextEmote(EMOTE_UNABLE_TO_SUMMON, 0);
+ me->MonsterTextEmote(EMOTE_UNABLE_TO_SUMMON, NULL);
TC_LOG_ERROR("scripts", "SD2 ERROR: Unable to summon Maiev Shadowsong (entry: 23197). Check your database to see if you have the proper SQL for Maiev Shadowsong (entry: 23197)");
}
}
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 a27677f60f5..6ccf69ae39b 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp
@@ -293,7 +293,7 @@ public:
if (continueTriggering)
{
DoCast(me, SPELL_BLESSING_OF_THE_TIDES);
- me->MonsterYell(SAY_GAIN_BLESSING_OF_TIDES, LANG_UNIVERSAL, 0);
+ me->MonsterYell(SAY_GAIN_BLESSING_OF_TIDES, LANG_UNIVERSAL, NULL);
DoPlaySoundToSet(me, SOUND_GAIN_BLESSING_OF_TIDES);
}
}
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
index 0393379d26a..c4a55065f27 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lurker_below.cpp
@@ -240,7 +240,7 @@ public:
if (SpoutTimer <= diff)
{
- me->MonsterTextEmote(EMOTE_SPOUT, 0, true);
+ me->MonsterTextEmote(EMOTE_SPOUT, NULL, true);
me->SetReactState(REACT_PASSIVE);
me->GetMotionMaster()->MoveRotate(20000, urand(0, 1) ? ROTATE_DIRECTION_LEFT : ROTATE_DIRECTION_RIGHT);
SpoutTimer = 45000;
diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
index bfe829de9fd..37a37d2197e 100644
--- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp
@@ -180,7 +180,7 @@ class instance_magtheridons_lair : public InstanceMapScript
Creature* Magtheridon = instance->GetCreature(MagtheridonGUID);
if (Magtheridon && Magtheridon->IsAlive())
{
- Magtheridon->MonsterTextEmote(EMOTE_BONDS_WEAKEN, 0);
+ Magtheridon->MonsterTextEmote(EMOTE_BONDS_WEAKEN, NULL);
CageTimer = 120000;
}
HandleGameObject(DoorGUID, false);
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
index 2f9e882d176..e85c8781dd9 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -1078,7 +1078,7 @@ class boss_thaladred_the_darkener : public CreatureScript
{
DoResetThreat();
me->AddThreat(target, 5000000.0f);
- Talk(EMOTE_THALADRED_GAZE, target->GetGUID());
+ Talk(EMOTE_THALADRED_GAZE, target);
Gaze_Timer = 8500;
}
}
diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
index 31e4fd88cb5..dcb9f71615d 100644
--- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
+++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp
@@ -425,7 +425,7 @@ public:
{
if (who->HasAura(SPELL_LASHHAN_CHANNEL) && me->IsWithinDistInMap(who, 10.0f))
{
- Talk(SAY_SPELL_INFLUENCE, who->GetGUID());
+ Talk(SAY_SPELL_INFLUENCE, who);
/// @todo Move the below to updateAI and run if this statement == true
DoCast(who, 37028, true);
}
diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
index 0aad4973000..672cf51bdb7 100644
--- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
+++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp
@@ -399,25 +399,25 @@ public:
switch (waypointId)
{
case 0:
- Talk(SAY_ELF_START, player->GetGUID());
+ Talk(SAY_ELF_START, player);
break;
case 9:
- Talk(SAY_ELF_SUMMON1, player->GetGUID());
+ Talk(SAY_ELF_SUMMON1, player);
// 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:
- Talk(SAY_ELF_RESTING, player->GetGUID());
+ Talk(SAY_ELF_RESTING, player);
break;
case 14:
- Talk(SAY_ELF_SUMMON2, player->GetGUID());
+ Talk(SAY_ELF_SUMMON2, player);
// 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:
- Talk(SAY_ELF_COMPLETE, player->GetGUID());
+ Talk(SAY_ELF_COMPLETE, player);
// Award quest credit
player->GroupEventHappens(QUEST_ROAD_TO_FALCON_WATCH, me);
break;
diff --git a/src/server/scripts/Outland/zone_nagrand.cpp b/src/server/scripts/Outland/zone_nagrand.cpp
index c8e4241974e..4f30638d707 100644
--- a/src/server/scripts/Outland/zone_nagrand.cpp
+++ b/src/server/scripts/Outland/zone_nagrand.cpp
@@ -688,7 +688,7 @@ class go_warmaul_prison : public GameObjectScript
{
player->KilledMonsterCredit(NPC_MAGHAR_PRISONER, 0);
- prisoner->AI()->Talk(SAY_FREE, player->GetGUID());
+ prisoner->AI()->Talk(SAY_FREE, player);
prisoner->DespawnOrUnsummon(6000);
}
return true;
diff --git a/src/server/scripts/Outland/zone_netherstorm.cpp b/src/server/scripts/Outland/zone_netherstorm.cpp
index e1b95aea972..64b0901b720 100644
--- a/src/server/scripts/Outland/zone_netherstorm.cpp
+++ b/src/server/scripts/Outland/zone_netherstorm.cpp
@@ -245,7 +245,7 @@ public:
{
Unit* u = Unit::GetUnit(*me, someplayer);
if (u && u->GetTypeId() == TYPEID_PLAYER)
- Talk(EMOTE_START, u->GetGUID());
+ Talk(EMOTE_START, u);
}
Event_Timer = 60000;
Wave = true;
@@ -667,7 +667,7 @@ public:
//OnQuestAccept:
//if (quest->GetQuestId() == QUEST_DIMENSIUS)
- //creature->AI()->Talk(WHISPER_DABIRI, player->GetGUID());
+ //creature->AI()->Talk(WHISPER_DABIRI, player);
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
@@ -896,7 +896,7 @@ public:
break;
case 13:
if (me->FindNearestCreature(N_THADELL, 30))
- Talk(SAY_THADELL_2, player->GetGUID());
+ Talk(SAY_THADELL_2, player);
break;
}
}
diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
index c8a2dfe03cd..73f044be7e6 100644
--- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
@@ -693,7 +693,7 @@ public:
{
Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID);
if (player)
- Talk(OVERLORD_SAY_1, player->GetGUID());
+ Talk(OVERLORD_SAY_1, player);
}
ConversationTimer = 4200;
Step = 0;
@@ -721,7 +721,7 @@ public:
return 9000;
break;
case 2:
- Talk(OVERLORD_YELL_1, player->GetGUID());
+ Talk(OVERLORD_YELL_1, player);
return 4500;
break;
case 3:
@@ -729,7 +729,7 @@ public:
return 3200;
break;
case 4:
- Talk(OVERLORD_SAY_2, player->GetGUID());
+ Talk(OVERLORD_SAY_2, player);
return 2000;
break;
case 5:
@@ -768,7 +768,7 @@ public:
return 5000;
break;
case 11:
- Talk(OVERLORD_SAY_4, player->GetGUID());
+ Talk(OVERLORD_SAY_4, player);
return 6000;
break;
case 12:
@@ -867,7 +867,7 @@ public:
case 29:
{
if (Creature* Yarzill = me->FindNearestCreature(C_YARZILL, 50.0f))
- Yarzill->AI()->Talk(YARZILL_THE_MERC_SAY, player->GetGUID());
+ Yarzill->AI()->Talk(YARZILL_THE_MERC_SAY, player);
return 5000;
}
break;
@@ -947,7 +947,7 @@ public:
{
if (quest->GetQuestId() == QUEST_ESCAPE_COILSCAR)
{
- creature->AI()->Talk(SAY_WIL_START, player->GetGUID());
+ creature->AI()->Talk(SAY_WIL_START, player);
creature->setFaction(FACTION_EARTHEN);
if (npc_earthmender_wildaAI* pEscortAI = CAST_AI(npc_earthmender_wilda::npc_earthmender_wildaAI, creature->AI()))
@@ -981,14 +981,14 @@ public:
switch (waypointId)
{
case 13:
- Talk(SAY_WIL_PROGRESS1, player->GetGUID());
+ Talk(SAY_WIL_PROGRESS1, player);
DoSpawnAssassin();
break;
case 14:
DoSpawnAssassin();
break;
case 15:
- Talk(SAY_WIL_FIND_EXIT, player->GetGUID());
+ Talk(SAY_WIL_FIND_EXIT, player);
break;
case 19:
DoRandomSay();
@@ -1015,7 +1015,7 @@ public:
DoSpawnAssassin();
break;
case 39:
- Talk(SAY_WIL_JUST_AHEAD, player->GetGUID());
+ Talk(SAY_WIL_JUST_AHEAD, player);
break;
case 43:
DoRandomSay();
@@ -1024,7 +1024,7 @@ public:
DoSpawnAssassin();
break;
case 50:
- Talk(SAY_WIL_END, player->GetGUID());
+ Talk(SAY_WIL_END, player);
player->GroupEventHappens(QUEST_ESCAPE_COILSCAR, me);
break;
}
diff --git a/src/server/scripts/Outland/zone_shattrath_city.cpp b/src/server/scripts/Outland/zone_shattrath_city.cpp
index adbec22ca2d..bb595d82a34 100644
--- a/src/server/scripts/Outland/zone_shattrath_city.cpp
+++ b/src/server/scripts/Outland/zone_shattrath_city.cpp
@@ -342,70 +342,70 @@ public:
switch (waypointId)
{
case 0:
- Talk(SAY1, player->GetGUID());
+ Talk(SAY1, player);
break;
case 4:
- Talk(WHISP1, player->GetGUID());
+ Talk(WHISP1, player);
break;
case 6:
- Talk(WHISP2, player->GetGUID());
+ Talk(WHISP2, player);
break;
case 7:
- Talk(WHISP3, player->GetGUID());
+ Talk(WHISP3, player);
break;
case 8:
- Talk(WHISP4, player->GetGUID());
+ Talk(WHISP4, player);
break;
case 17:
- Talk(WHISP5, player->GetGUID());
+ Talk(WHISP5, player);
break;
case 18:
- Talk(WHISP6, player->GetGUID());
+ Talk(WHISP6, player);
break;
case 19:
- Talk(WHISP7, player->GetGUID());
+ Talk(WHISP7, player);
break;
case 33:
- Talk(WHISP8, player->GetGUID());
+ Talk(WHISP8, player);
break;
case 34:
- Talk(WHISP9, player->GetGUID());
+ Talk(WHISP9, player);
break;
case 35:
- Talk(WHISP10, player->GetGUID());
+ Talk(WHISP10, player);
break;
case 36:
- Talk(WHISP11, player->GetGUID());
+ Talk(WHISP11, player);
break;
case 43:
- Talk(WHISP12, player->GetGUID());
+ Talk(WHISP12, player);
break;
case 44:
- Talk(WHISP13, player->GetGUID());
+ Talk(WHISP13, player);
break;
case 49:
- Talk(WHISP14, player->GetGUID());
+ Talk(WHISP14, player);
break;
case 50:
- Talk(WHISP15, player->GetGUID());
+ Talk(WHISP15, player);
break;
case 51:
- Talk(WHISP16, player->GetGUID());
+ Talk(WHISP16, player);
break;
case 52:
- Talk(WHISP17, player->GetGUID());
+ Talk(WHISP17, player);
break;
case 53:
- Talk(WHISP18, player->GetGUID());
+ Talk(WHISP18, player);
break;
case 54:
- Talk(WHISP19, player->GetGUID());
+ Talk(WHISP19, player);
break;
case 55:
- Talk(WHISP20, player->GetGUID());
+ Talk(WHISP20, player);
break;
case 56:
- Talk(WHISP21, player->GetGUID());
+ Talk(WHISP21, player);
player->GroupEventHappens(10211, me);
break;
}
diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp
index ec7f5f976fd..261640f3379 100644
--- a/src/server/scripts/Outland/zone_terokkar_forest.cpp
+++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp
@@ -373,7 +373,7 @@ public:
{
player->CLOSE_GOSSIP_MENU();
creature->setFaction(FACTION_HOSTILE_FL);
- creature->AI()->Talk(SAY_FLOON_ATTACK, player->GetGUID());
+ creature->AI()->Talk(SAY_FLOON_ATTACK, player);
creature->AI()->AttackStart(player);
}
return true;
@@ -482,16 +482,16 @@ public:
Cage->SetGoState(GO_STATE_ACTIVE);
break;
case 2:
- Talk(SAY_PROGRESS_1, player->GetGUID());
+ Talk(SAY_PROGRESS_1, player);
break;
case 5:
- Talk(SAY_PROGRESS_2, player->GetGUID());
+ Talk(SAY_PROGRESS_2, player);
break;
case 6:
- Talk(SAY_PROGRESS_3, player->GetGUID());
+ Talk(SAY_PROGRESS_3, player);
break;
case 29:
- Talk(SAY_PROGRESS_4, player->GetGUID());
+ Talk(SAY_PROGRESS_4, player);
if (player->GetTeam() == ALLIANCE)
player->GroupEventHappens(QUEST_EFTW_A, me);
else if (player->GetTeam() == HORDE)
diff --git a/src/server/scripts/Outland/zone_zangarmarsh.cpp b/src/server/scripts/Outland/zone_zangarmarsh.cpp
index 2497df76bb1..7c8c81b3672 100644
--- a/src/server/scripts/Outland/zone_zangarmarsh.cpp
+++ b/src/server/scripts/Outland/zone_zangarmarsh.cpp
@@ -355,16 +355,16 @@ public:
switch (waypointId)
{
case 4:
- Talk(SAY_AMBUSH1, player->GetGUID());
+ Talk(SAY_AMBUSH1, player);
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:
- Talk(SAY_PROGRESS, player->GetGUID());
+ Talk(SAY_PROGRESS, player);
SetRun();
break;
case 16:
- Talk(SAY_AMBUSH2, player->GetGUID());
+ Talk(SAY_AMBUSH2, player);
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;
@@ -372,7 +372,7 @@ public:
SetRun(false);
break;
case 25:
- Talk(SAY_END, player->GetGUID());
+ Talk(SAY_END, player);
player->GroupEventHappens(QUEST_ESCAPE_FROM, me);
break;
}
@@ -383,7 +383,7 @@ public:
{
if (quest->GetQuestId() == QUEST_ESCAPE_FROM)
{
- creature->AI()->Talk(SAY_START, player->GetGUID());
+ creature->AI()->Talk(SAY_START, player);
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/Pet/pet_generic.cpp b/src/server/scripts/Pet/pet_generic.cpp
index f10a14716c6..f59f850c20b 100644
--- a/src/server/scripts/Pet/pet_generic.cpp
+++ b/src/server/scripts/Pet/pet_generic.cpp
@@ -62,7 +62,7 @@ class npc_pet_gen_mojo : public CreatureScript
return;
}
- Talk(SAY_MOJO, player->GetGUID());
+ Talk(SAY_MOJO, player);
if (_victimGUID)
if (Player* victim = ObjectAccessor::GetPlayer(*me, _victimGUID))
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 3d84d9bbca9..92a18a654d5 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -1137,9 +1137,9 @@ public:
// player must cast kill credit and do emote text, according to sniff
if (Player* target = GetTarget()->ToPlayer())
{
- target->MonsterWhisper(SAY_1, target->GetGUID(), true);
+ target->MonsterWhisper(SAY_1, target, true);
target->KilledMonsterCredit(NPC_KILLCREDIT, 0);
- target->MonsterWhisper(SAY_2, target->GetGUID(), true);
+ target->MonsterWhisper(SAY_2, target, true);
}
}
@@ -1380,7 +1380,7 @@ class spell_q12372_azure_on_death_force_whisper : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
if (Creature* defender = GetHitCreature())
- defender->AI()->Talk(WHISPER_ON_HIT_BY_FORCE_WHISPER, defender->GetCharmerOrOwnerGUID());
+ defender->AI()->Talk(WHISPER_ON_HIT_BY_FORCE_WHISPER, defender->GetCharmerOrOwner());
}
void Register() OVERRIDE
@@ -1823,7 +1823,7 @@ class spell_q13011_bear_flank_master : public SpellScriptLoader
if (failed)
{
player->CastSpell(creature, SPELL_BEAR_FLANK_FAIL);
- creature->AI()->Talk(0, player->GetGUID());
+ creature->AI()->Talk(0, player);
}
else
player->CastSpell(player, SPELL_CREATE_BEAR_FLANK);
diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp
index 2f8d5fa2ce4..ac3ef5e59e5 100644
--- a/src/server/scripts/World/areatrigger_scripts.cpp
+++ b/src/server/scripts/World/areatrigger_scripts.cpp
@@ -342,11 +342,11 @@ class AreaTrigger_at_brewfest : public AreaTriggerScript
{
case AT_BREWFEST_DUROTAR:
if (Creature* tapper = player->FindNearestCreature(NPC_TAPPER_SWINDLEKEG, 20.0f))
- tapper->AI()->Talk(SAY_WELCOME, player->GetGUID());
+ tapper->AI()->Talk(SAY_WELCOME, player);
break;
case AT_BREWFEST_DUN_MOROGH:
if (Creature* ipfelkofer = player->FindNearestCreature(NPC_IPFELKOFER_IRONKEG, 20.0f))
- ipfelkofer->AI()->Talk(SAY_WELCOME, player->GetGUID());
+ ipfelkofer->AI()->Talk(SAY_WELCOME, player);
break;
default:
break;
diff --git a/src/server/scripts/World/guards.cpp b/src/server/scripts/World/guards.cpp
index 95f97b1dc84..5ba95dca199 100644
--- a/src/server/scripts/World/guards.cpp
+++ b/src/server/scripts/World/guards.cpp
@@ -65,7 +65,7 @@ public:
void EnterCombat(Unit* who) OVERRIDE
{
if (me->GetEntry() == NPC_CENARION_HOLD_INFANTRY)
- Talk(SAY_GUARD_SIL_AGGRO, who->GetGUID());
+ Talk(SAY_GUARD_SIL_AGGRO, who);
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 27236be5812..c761eada5f3 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -959,14 +959,14 @@ public:
{
if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
{
- Talk(SAY_THANKS, caster->GetGUID());
+ Talk(SAY_THANKS, caster);
CanRun = true;
}
else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
{
CasterGUID = caster->GetGUID();
me->SetStandState(UNIT_STAND_STATE_STAND);
- Talk(SAY_HEALED, caster->GetGUID());
+ Talk(SAY_HEALED, caster);
IsHealed = true;
}
}
@@ -976,14 +976,14 @@ public:
{
if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
{
- Talk(SAY_THANKS, caster->GetGUID());
+ Talk(SAY_THANKS, caster);
CanRun = true;
}
else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
{
CasterGUID = caster->GetGUID();
me->SetStandState(UNIT_STAND_STATE_STAND);
- Talk(SAY_HEALED, caster->GetGUID());
+ Talk(SAY_HEALED, caster);
IsHealed = true;
}
}
@@ -993,14 +993,14 @@ public:
{
if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
{
- Talk(SAY_THANKS, caster->GetGUID());
+ Talk(SAY_THANKS, caster);
CanRun = true;
}
else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
{
CasterGUID = caster->GetGUID();
me->SetStandState(UNIT_STAND_STATE_STAND);
- Talk(SAY_HEALED, caster->GetGUID());
+ Talk(SAY_HEALED, caster);
IsHealed = true;
}
}
@@ -1010,14 +1010,14 @@ public:
{
if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
{
- Talk(SAY_THANKS, caster->GetGUID());
+ Talk(SAY_THANKS, caster);
CanRun = true;
}
else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
{
CasterGUID = caster->GetGUID();
me->SetStandState(UNIT_STAND_STATE_STAND);
- Talk(SAY_HEALED, caster->GetGUID());
+ Talk(SAY_HEALED, caster);
IsHealed = true;
}
}
@@ -1027,14 +1027,14 @@ public:
{
if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
{
- Talk(SAY_THANKS, caster->GetGUID());
+ Talk(SAY_THANKS, caster);
CanRun = true;
}
else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
{
CasterGUID = caster->GetGUID();
me->SetStandState(UNIT_STAND_STATE_STAND);
- Talk(SAY_HEALED, caster->GetGUID());
+ Talk(SAY_HEALED, caster);
IsHealed = true;
}
}
@@ -1064,19 +1064,11 @@ public:
switch (me->GetEntry())
{
case ENTRY_SHAYA:
- Talk(SAY_GOODBYE, unit->GetGUID());
- break;
case ENTRY_ROBERTS:
- Talk(SAY_GOODBYE, unit->GetGUID());
- break;
case ENTRY_DOLF:
- Talk(SAY_GOODBYE, unit->GetGUID());
- break;
case ENTRY_KORJA:
- Talk(SAY_GOODBYE, unit->GetGUID());
- break;
case ENTRY_DG_KEL:
- Talk(SAY_GOODBYE, unit->GetGUID());
+ Talk(SAY_GOODBYE, unit);
break;
}