mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-03-08 02:00:29 +00:00
feat(Core/Commands): add honor and arena point reset to .reset all … (#24978)
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
-- Add acore_string entries for reset all honor/arena messages
|
||||
DELETE FROM `acore_string` WHERE `entry` IN (5118, 5119);
|
||||
INSERT INTO `acore_string` (`entry`, `content_default`, `locale_koKR`, `locale_frFR`, `locale_deDE`, `locale_zhCN`, `locale_zhTW`, `locale_esES`, `locale_esMX`, `locale_ruRU`) VALUES
|
||||
(5118, 'Honor points have been reset for all players.', NULL, NULL, 'Ehrenpunkte wurden für alle Spieler zurückgesetzt.', '所有玩家的荣誉点数已被重置。', NULL, 'Los puntos de honor se han restablecido para todos los jugadores.', 'Los puntos de honor se han restablecido para todos los jugadores.', NULL),
|
||||
(5119, 'Arena points have been reset for all players.', NULL, NULL, 'Arenapunkte wurden für alle Spieler zurückgesetzt.', '所有玩家的竞技场点数已被重置。', NULL, 'Los puntos de arena se han restablecido para todos los jugadores.', 'Los puntos de arena se han restablecido para todos los jugadores.', NULL);
|
||||
|
||||
-- Update reset all command description to include honor and arena
|
||||
UPDATE `command` SET `help` = 'Syntax: .reset all spells\r\n\r\nSyntax: .reset all talents\r\n\r\nSyntax: .reset all honor\r\n\r\nSyntax: .reset all arena\r\n\r\nRequests a reset of spells or talents (including talents for all of a character\'s pets, if any) at the next login for each existing character, or immediately resets honor points or arena points for all characters.' WHERE `name` = 'reset all';
|
||||
@@ -502,6 +502,8 @@ void CharacterDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(CHAR_UDP_CHAR_HONOR_POINTS_ACCUMULATIVE, "UPDATE characters SET totalHonorPoints = totalHonorPoints + ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UDP_CHAR_ARENA_POINTS, "UPDATE characters SET arenaPoints = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UDP_CHAR_ARENA_POINTS_ACCUMULATIVE, "UPDATE characters SET arenaPoints = arenaPoints + ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_ALL_HONOR_POINTS, "UPDATE characters SET totalHonorPoints = 0", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_UPD_ALL_ARENA_POINTS, "UPDATE characters SET arenaPoints = 0", CONNECTION_SYNCH);
|
||||
PrepareStatement(CHAR_UDP_CHAR_MONEY, "UPDATE characters SET money = ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UDP_CHAR_MONEY_ACCUMULATIVE, "UPDATE characters SET money = money + ? WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(CHAR_UPD_CHAR_REMOVE_GHOST, "UPDATE characters SET playerFlags = (playerFlags & (~16)) WHERE guid = ?", CONNECTION_ASYNC);
|
||||
|
||||
@@ -426,6 +426,8 @@ enum CharacterDatabaseStatements : uint32
|
||||
CHAR_UDP_CHAR_HONOR_POINTS_ACCUMULATIVE,
|
||||
CHAR_UDP_CHAR_ARENA_POINTS,
|
||||
CHAR_UDP_CHAR_ARENA_POINTS_ACCUMULATIVE,
|
||||
CHAR_UPD_ALL_HONOR_POINTS,
|
||||
CHAR_UPD_ALL_ARENA_POINTS,
|
||||
CHAR_UDP_CHAR_MONEY,
|
||||
CHAR_UDP_CHAR_MONEY_ACCUMULATIVE,
|
||||
CHAR_UPD_CHAR_REMOVE_GHOST, // pussywizard
|
||||
|
||||
@@ -1192,7 +1192,9 @@ enum AcoreStrings
|
||||
LANG_BF_ENABLED = 5116,
|
||||
LANG_BF_DISABLED = 5117,
|
||||
|
||||
// Room for more strings 5118-9999
|
||||
LANG_RESETALL_HONOR = 5118,
|
||||
LANG_RESETALL_ARENA = 5119,
|
||||
// Room for more strings 5120-9999
|
||||
|
||||
// Level requirement notifications
|
||||
LANG_SAY_REQ = 6604,
|
||||
|
||||
@@ -286,6 +286,34 @@ public:
|
||||
if (!handler->GetSession())
|
||||
handler->SendSysMessage(LANG_RESETALL_TALENTS);
|
||||
}
|
||||
else if (caseName == "honor")
|
||||
{
|
||||
CharacterDatabase.Execute(CharacterDatabase.GetPreparedStatement(CHAR_UPD_ALL_HONOR_POINTS));
|
||||
|
||||
sWorldSessionMgr->DoForAllOnlinePlayers([](Player* player)
|
||||
{
|
||||
player->SetHonorPoints(0);
|
||||
});
|
||||
|
||||
handler->SendWorldText(LANG_RESETALL_HONOR);
|
||||
if (!handler->GetSession())
|
||||
handler->SendSysMessage(LANG_RESETALL_HONOR);
|
||||
return true;
|
||||
}
|
||||
else if (caseName == "arena")
|
||||
{
|
||||
CharacterDatabase.Execute(CharacterDatabase.GetPreparedStatement(CHAR_UPD_ALL_ARENA_POINTS));
|
||||
|
||||
sWorldSessionMgr->DoForAllOnlinePlayers([](Player* player)
|
||||
{
|
||||
player->SetArenaPoints(0);
|
||||
});
|
||||
|
||||
handler->SendWorldText(LANG_RESETALL_ARENA);
|
||||
if (!handler->GetSession())
|
||||
handler->SendSysMessage(LANG_RESETALL_ARENA);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
handler->SendErrorMessage(LANG_RESETALL_UNKNOWN_CASE, caseName);
|
||||
|
||||
Reference in New Issue
Block a user