|
|
Модератор форума: Dimitro |
Форум TrinityCore Патчи / Моды / Фиксы для Trinity Оповещение о муте |
Оповещение о муте |
Данный патч может быть и не полезен, но бывает в игре такое, что игроку пишешь, а он не отвечает, потому что ему дали мут.
Этот патч выводит сообщение о том, что игрок не может в данный момент с вами говорить. Код # HG changeset patch # User DeathMetal # Date 1362997769 -7200 # Node ID ef9a09455e697b094dab955effca90b4585d56fc # Parent 9aa5e28b33f9e6c6d5e452a5727cade27174d5c9 Fixed "Player can't speak with you now." diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -20110,7 +20110,22 @@ else if (rPlayer->isDND()) ChatHandler(GetSession()).PSendSysMessage(LANG_PLAYER_DND, rPlayer->GetName().c_str(), rPlayer->autoReplyMsg.c_str()); else if (!rPlayer->CanSpeak()) - ChatHandler(GetSession()).PSendSysMessage(LANG_CANNOT_SPEAK, rPlayer->GetName().c_str(), rPlayer->autoReplyMsg.c_str()); + { + uint64 muteTime = 0; + uint32 accId = rPlayer->GetSession()->GetAccountId(); + PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_PINFO); + stmt->setInt32(0, int32(realmID)); + stmt->setUInt32(1, accId); + PreparedQueryResult result = LoginDatabase.Query(stmt); + + if(result) + { + Field* fields = result->Fetch(); + muteTime = fields[5].GetUInt64(); + if(muteTime > 0) + ChatHandler(GetSession()).PSendSysMessage(LANG_CANNOT_SPEAK, secsToTimeString(muteTime - time(NULL), true).c_str()); + } + } } void Player::PetSpellInitialize() diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -1164,6 +1164,7 @@ // Use for custom patches 11000-11999 LANG_AUTO_BROADCAST = 11000, LANG_INVALID_REALMID = 11001, + LANG_CANNOT_SPEAK = 11002, // NOT RESERVED IDS 12000-1999999999 // `db_script_string` table index 2000000000-2000009999 (MIN_DB_SCRIPT_STRING_ID-MAX_DB_SCRIPT_STRING_ID) И к нему залить sql в базу Код INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES (11002, 'Player can\'t speak with you now. Mute time remaining: %s'); |
Отлично=)Я залил к себе ,понравилось.
Рисовщик,разрабатываю игровые миры wow.
База world(рисованный сервер) Для крайзи серверов Ищу место разработчика игрового мира(Рисовщика. My skype - Ustus301.
Сообщение # 3 написано 11.03.2013 в 17:39
|
Цитата (std_Suicide) # HG changeset patch # User DeathMetal # Date 1362997769 -7200 # Node ID ef9a09455e697b094dab955effca90b4585d56fc # Parent 9aa5e28b33f9e6c6d5e452a5727cade27174d5c9 Fixed "Player can't speak with you now." diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -20110,7 +20110,22 @@ else if (rPlayer->isDND()) ChatHandler(GetSession()).PSendSysMessage(LANG_PLAYER_DND, rPlayer->GetName().c_str(), rPlayer->autoReplyMsg.c_str()); else if (!rPlayer->CanSpeak()) - ChatHandler(GetSession()).PSendSysMessage(LANG_CANNOT_SPEAK, rPlayer->GetName().c_str(), rPlayer->autoReplyMsg.c_str()); + { + uint64 muteTime = 0; + uint32 accId = rPlayer->GetSession()->GetAccountId(); + PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_PINFO); + stmt->setInt32(0, int32(realmID)); + stmt->setUInt32(1, accId); + PreparedQueryResult result = LoginDatabase.Query(stmt); + + if(result) + { + Field* fields = result->Fetch(); + muteTime = fields[5].GetUInt64(); + if(muteTime > 0) + ChatHandler(GetSession()).PSendSysMessage(LANG_CANNOT_SPEAK, secsToTimeString(muteTime - time(NULL), true).c_str()); + } + } } void Player::PetSpellInitialize() diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -1164,6 +1164,7 @@ // Use for custom patches 11000-11999 LANG_AUTO_BROADCAST = 11000, LANG_INVALID_REALMID = 11001, + LANG_CANNOT_SPEAK = 11002, // NOT RESERVED IDS 12000-1999999999 // `db_script_string` table index 2000000000-2000009999 (MIN_DB_SCRIPT_STRING_ID-MAX_DB_SCRIPT_STRING_ID) что это вообще за код, куда и как его заливать непойму Добавлено (18.05.2013, 21:02)
Сообщение # 5 написано 18.05.2013 в 21:02
|
| |||
| |||