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:
Andrew
2026-03-03 12:21:37 -03:00
committed by GitHub
parent 4dce54c9a5
commit 82781f24a9
5 changed files with 43 additions and 1 deletions

View File

@@ -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);

View File

@@ -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

View File

@@ -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,

View File

@@ -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);