diff options
author | DDuarte <dnpd.dd@gmail.com> | 2014-01-10 06:13:26 +0000 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-01-10 06:13:26 +0000 |
commit | 25d1be5a75acdbc7988b477522a5953c85c5d869 (patch) | |
tree | 276389daf5489c93ebedec9900e00fbe31467ca8 | |
parent | 86107a0296eedaa783fc8b8f7a2892c606626d0b (diff) | |
parent | 107af528536980380c887379b56f6351a9781a2f (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
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; } |