From 886f00ed50964a58040d4b5ee850a66f44d5f943 Mon Sep 17 00:00:00 2001 From: Natedog2012 Date: Sat, 6 Nov 2021 16:36:19 -0500 Subject: [PATCH] Fix resetAA to actually remove all AAs except granted AAs (#1681) --- zone/aa.cpp | 3 ++- zone/zonedb.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/zone/aa.cpp b/zone/aa.cpp index f114abb93..4945b2a94 100644 --- a/zone/aa.cpp +++ b/zone/aa.cpp @@ -492,7 +492,8 @@ void Client::ResetAA() { m_pp.raid_leadership_points = 0; m_pp.group_leadership_exp = 0; m_pp.raid_leadership_exp = 0; - + + database.DeleteCharacterAAs(CharacterID()); database.DeleteCharacterLeadershipAAs(CharacterID()); } diff --git a/zone/zonedb.cpp b/zone/zonedb.cpp index 04b4a9326..f8e2b3a43 100755 --- a/zone/zonedb.cpp +++ b/zone/zonedb.cpp @@ -1973,7 +1973,7 @@ bool ZoneDatabase::DeleteCharacterLeadershipAAs(uint32 character_id){ } bool ZoneDatabase::DeleteCharacterAAs(uint32 character_id){ - std::string query = StringFormat("DELETE FROM `character_alternate_abilities` WHERE `id` = %u", character_id); + std::string query = StringFormat("DELETE FROM `character_alternate_abilities` WHERE `id` = %u AND `aa_id` NOT IN(SELECT a.first_rank_id FROM aa_ability a WHERE a.grant_only != 0)", character_id); QueryDatabase(query); return true; }