From e89d5db5e324461faa5937b89c7964f176a6a569 Mon Sep 17 00:00:00 2001 From: stfx Date: Fri, 7 Oct 2011 14:26:00 +0200 Subject: [PATCH] [11813] Receiving whispers while being dnd Signed-off-by: Schmoozerd --- sql/mangos.sql | 4 +- sql/updates/11813_01_mangos_mangos_string.sql | 5 +++ src/game/Player.cpp | 37 +++++++------------ src/shared/revision_nr.h | 2 +- src/shared/revision_sql.h | 2 +- 5 files changed, 22 insertions(+), 28 deletions(-) create mode 100644 sql/updates/11813_01_mangos_mangos_string.sql diff --git a/sql/mangos.sql b/sql/mangos.sql index 4487141ab..6acaf42a5 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -24,7 +24,7 @@ CREATE TABLE `db_version` ( `version` varchar(120) default NULL, `creature_ai_version` varchar(120) default NULL, `cache_id` int(10) default '0', - `required_11807_01_mangos_gameobject_addon` bit(1) default NULL + `required_11813_01_mangos_mangos_string` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -3735,7 +3735,7 @@ INSERT INTO `mangos_string` VALUES (704,'The Arena battle has begun!',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (705,'You must wait %s before speaking again.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (706,'This item(s) have problems with equipping/storing in inventory.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(707,'%s wishes to not be disturbed and cannot receive whisper messages: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(707,'%s does not wish to be disturbed: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (708,'%s is Away from Keyboard: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (709,'Do not Disturb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (710,'Away from Keyboard',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), diff --git a/sql/updates/11813_01_mangos_mangos_string.sql b/sql/updates/11813_01_mangos_mangos_string.sql new file mode 100644 index 000000000..3bca94e72 --- /dev/null +++ b/sql/updates/11813_01_mangos_mangos_string.sql @@ -0,0 +1,5 @@ +ALTER TABLE db_version CHANGE COLUMN required_11807_01_mangos_gameobject_addon required_11813_01_mangos_mangos_string bit; + +DELETE FROM mangos_string WHERE entry IN (707); + +INSERT INTO mangos_string VALUES (707,'%s does not wish to be disturbed: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/src/game/Player.cpp b/src/game/Player.cpp index d4e246eb4..fc7f17217 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -18370,40 +18370,29 @@ void Player::Whisper(const std::string& text, uint32 language, ObjectGuid receiv Player *rPlayer = sObjectMgr.GetPlayer(receiver); - // 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); - rPlayer->GetSession()->SendPacket(&data); + WorldPacket data(SMSG_MESSAGECHAT, 200); + 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); - GetSession()->SendPacket(&data); - } - } - else + // not send confirmation for addon messages + if (language != LANG_ADDON) { - // 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()); + data.Initialize(SMSG_MESSAGECHAT, 200); + rPlayer->BuildPlayerChat(&data, CHAT_MSG_WHISPER_INFORM, text, language); + GetSession()->SendPacket(&data); } - if(!isAcceptWhispers()) + if (!isAcceptWhispers()) { SetAcceptWhispers(true); ChatHandler(this).SendSysMessage(LANG_COMMAND_WHISPERON); } - // announce to player that player he is whispering to is afk - if(rPlayer->isAFK()) + // announce afk or dnd message + if (rPlayer->isAFK()) ChatHandler(this).PSendSysMessage(LANG_PLAYER_AFK, rPlayer->GetName(), rPlayer->afkMsg.c_str()); - - // if player whisper someone, auto turn of dnd to be able to receive an answer - if(isDND() && !rPlayer->isGameMaster()) - ToggleDND(); + else if (rPlayer->isDND()) + ChatHandler(this).PSendSysMessage(LANG_PLAYER_DND, rPlayer->GetName(), rPlayer->dndMsg.c_str()); } void Player::PetSpellInitialize() diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 7d93cd27a..628e0c3f9 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11812" + #define REVISION_NR "11813" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 610236012..c96776616 100644 --- a/src/shared/revision_sql.h +++ b/src/shared/revision_sql.h @@ -1,6 +1,6 @@ #ifndef __REVISION_SQL_H__ #define __REVISION_SQL_H__ #define REVISION_DB_CHARACTERS "required_11785_02_characters_instance" - #define REVISION_DB_MANGOS "required_11807_01_mangos_gameobject_addon" + #define REVISION_DB_MANGOS "required_11813_01_mangos_mangos_string" #define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version" #endif // __REVISION_SQL_H__