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; }