diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 56 | ||||
-rwxr-xr-x | src/server/game/Entities/Player/Player.h | 8 | ||||
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp | 6 | ||||
-rw-r--r-- | src/server/scripts/World/item_scripts.cpp | 5 |
5 files changed, 40 insertions, 37 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index bb5eeb2e71b..2116b0b3e05 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -18804,74 +18804,76 @@ void Player::StopCastingCharm() } } -void Player::BuildPlayerChat(WorldPacket *data, uint8 msgtype, const std::string& text, uint32 language) const -{ - *data << (uint8)msgtype; - *data << (uint32)language; - *data << (uint64)GetGUID(); - *data << (uint32)language; //language 2.1.0 ? - *data << (uint64)GetGUID(); - *data << (uint32)(text.length()+1); +inline void Player::BuildPlayerChat(WorldPacket *data, uint8 msgtype, const std::string& text, uint32 language) const +{ + *data << uint8(msgtype); + *data << uint32(language); + *data << uint64(GetGUID()); + *data << uint32(language); //language 2.1.0 ? + *data << uint64(GetGUID()); + *data << uint32(text.length() + 1); *data << text; - *data << (uint8)chatTag(); + *data << uint8(chatTag()); } -void Player::Say(std::string& text, const uint32 language) +void Player::Say(const std::string& text, const uint32 language) { - sScriptMgr.OnPlayerChat(this, CHAT_MSG_SAY, language, text); + std::string _text(text); + sScriptMgr.OnPlayerChat(this, CHAT_MSG_SAY, language, _text); WorldPacket data(SMSG_MESSAGECHAT, 200); - BuildPlayerChat(&data, CHAT_MSG_SAY, text, language); - SendMessageToSetInRange(&data,sWorld.getFloatConfig(CONFIG_LISTEN_RANGE_SAY),true); + BuildPlayerChat(&data, CHAT_MSG_SAY, _text, language); + SendMessageToSetInRange(&data, sWorld.getFloatConfig(CONFIG_LISTEN_RANGE_SAY), true); } -void Player::Yell(std::string& text, const uint32 language) +void Player::Yell(const std::string& text, const uint32 language) { - sScriptMgr.OnPlayerChat(this, CHAT_MSG_YELL, language, text); + std::string _text(text); + sScriptMgr.OnPlayerChat(this, CHAT_MSG_YELL, language, _text); WorldPacket data(SMSG_MESSAGECHAT, 200); - BuildPlayerChat(&data, CHAT_MSG_YELL, text, language); - SendMessageToSetInRange(&data,sWorld.getFloatConfig(CONFIG_LISTEN_RANGE_YELL),true); + BuildPlayerChat(&data, CHAT_MSG_YELL, _text, language); + SendMessageToSetInRange(&data, sWorld.getFloatConfig(CONFIG_LISTEN_RANGE_YELL), true); } -void Player::TextEmote(std::string& text) +void Player::TextEmote(const std::string& text) { - sScriptMgr.OnPlayerChat(this, CHAT_MSG_EMOTE, LANG_UNIVERSAL, 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); - SendMessageToSetInRange(&data,sWorld.getFloatConfig(CONFIG_LISTEN_RANGE_TEXTEMOTE),true, !sWorld.getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT)); + BuildPlayerChat(&data, CHAT_MSG_EMOTE, _text, LANG_UNIVERSAL); + SendMessageToSetInRange(&data, sWorld.getFloatConfig(CONFIG_LISTEN_RANGE_TEXTEMOTE), true, !sWorld.getBoolConfig(CONFIG_ALLOW_TWO_SIDE_INTERACTION_CHAT)); } -void Player::Whisper(std::string& text, uint32 language,uint64 receiver) +void Player::Whisper(const std::string& text, uint32 language, uint64 receiver) { if (language != LANG_ADDON) // if not addon data language = LANG_UNIVERSAL; // whispers should always be readable Player *rPlayer = sObjectMgr.GetPlayer(receiver); - sScriptMgr.OnPlayerChat(this, CHAT_MSG_WHISPER, language, text, rPlayer); + std::string _text(text); + sScriptMgr.OnPlayerChat(this, CHAT_MSG_WHISPER, language, _text, rPlayer); // when player you are whispering to is dnd, he cannot receive your message, unless you are in gm mode if (!rPlayer->isDND() || isGameMaster()) { WorldPacket data(SMSG_MESSAGECHAT, 200); - BuildPlayerChat(&data, CHAT_MSG_WHISPER, text, language); + BuildPlayerChat(&data, CHAT_MSG_WHISPER, _text, language); rPlayer->GetSession()->SendPacket(&data); // not send confirmation for addon messages if (language != LANG_ADDON) { data.Initialize(SMSG_MESSAGECHAT, 200); - rPlayer->BuildPlayerChat(&data, CHAT_MSG_WHISPER_INFORM, text, language); + rPlayer->BuildPlayerChat(&data, CHAT_MSG_WHISPER_INFORM, _text, language); GetSession()->SendPacket(&data); } } else - { // announce to player that player he is whispering to is dnd and cannot receive his message ChatHandler(this).PSendSysMessage(LANG_PLAYER_DND, rPlayer->GetName(), rPlayer->dndMsg.c_str()); - } if (!isAcceptWhispers() && !isGameMaster() && !rPlayer->isGameMaster()) { diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 11c3f1cee4a..7e151769810 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -1113,10 +1113,10 @@ class Player : public Unit, public GridObject<Player> void RemovePet(Pet* pet, PetSaveMode mode, bool returnreagent = false); uint32 GetPhaseMaskForSpawn() const; // used for proper set phase for DB at GM-mode creature/GO spawn - void Say(std::string& text, const uint32 language); - void Yell(std::string& text, const uint32 language); - void TextEmote(std::string& text); - void Whisper(std::string& text, const uint32 language,uint64 receiver); + void Say(const std::string& text, const uint32 language); + void Yell(const std::string& text, const uint32 language); + void TextEmote(const std::string& text); + void Whisper(const std::string& text, const uint32 language,uint64 receiver); void BuildPlayerChat(WorldPacket *data, uint8 msgtype, const std::string& text, uint32 language) const; /*********************************************************/ diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 0a89700c001..e5291f28271 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -5458,7 +5458,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger target = this; if (roll_chance_i(10)) - this->ToPlayer()->Say(std::string("This is Madness!"), LANG_UNIVERSAL); + this->ToPlayer()->Say("This is Madness!", LANG_UNIVERSAL); // TODO: It should be moved to database, shouldn't it? break; } // Sunwell Exalted Caster Neck (??? neck) diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index 71d896fc914..4dd7081d836 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -625,18 +625,18 @@ public: if (say_timer <= diff) { say_timer = 3000; - Player *plr = SelectRandomPlayer(100.0f,false); + Player *plr = SelectRandomPlayer(100.0f, false); if (count < 3) { if (plr) - plr->Say(std::string(Text[count]),0); + plr->Say(Text[count], 0); } else { DoCast(me, SPELL_RHYME_BIG); if (plr) { - plr->Say(std::string(Text[count]),0); + plr->Say(Text[count], 0); plr->HandleEmoteCommand(ANIM_EMOTE_SHOUT); } wp_reached = true; diff --git a/src/server/scripts/World/item_scripts.cpp b/src/server/scripts/World/item_scripts.cpp index 9f0b5cbf6c0..8500c289119 100644 --- a/src/server/scripts/World/item_scripts.cpp +++ b/src/server/scripts/World/item_scripts.cpp @@ -270,8 +270,9 @@ public: return false; else { - //This should be sent to the player as red text. - pPlayer->Say(std::string("You have created enough ghouls. Return to Gothik the Harvester at Death's Breach."), LANG_UNIVERSAL); + // This should be sent to the player as red text. + // TODO: Text should be moved to DB + pPlayer->Say("You have created enough ghouls. Return to Gothik the Harvester at Death's Breach.", LANG_UNIVERSAL); return true; } } |