aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-11-04 17:36:45 +0100
committerShauren <shauren.trinity@gmail.com>2024-11-04 17:36:45 +0100
commit9bab2801c6f7fbad0ac32702c67a76f06718f2da (patch)
treea81ec3f9172cb81f022e4650cf5f33b27936ba8d
parent5b278a4ca79dd8aa19cde3892d92ae857d6f1dd4 (diff)
Core/Players: Don't flag unlearned talents and specialization spells as disabled since they are learned with "dependent" flag (and not saved in database)
-rw-r--r--sql/base/characters_database.sql3
-rw-r--r--sql/updates/characters/master/2024_11_04_00_characters.sql1
-rw-r--r--src/server/game/Entities/Player/Player.cpp20
3 files changed, 13 insertions, 11 deletions
diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql
index 35bcbbd9d1c..ee2d369cebf 100644
--- a/sql/base/characters_database.sql
+++ b/sql/base/characters_database.sql
@@ -3749,7 +3749,8 @@ INSERT INTO `updates` VALUES
('2024_08_26_00_characters.sql','68EEBE1D639D59B24F5121008C2D103CA67FFC9A','ARCHIVED','2024-08-26 00:49:08',0),
('2024_09_03_00_characters.sql','71ECC73A3F324EB64DA19B0CC4DF72A85E022BDC','ARCHIVED','2024-09-03 00:47:42',0),
('2024_09_23_00_characters.sql','D8491BCEE728F40D55D47E3A4BC5A5F083EBD02E','ARCHIVED','2024-09-23 22:48:10',0),
-('2024_10_03_00_characters.sql','408249A6992999A36EB94089D184972E8E0767A3','RELEASED','2024-10-03 11:10:18',0);
+('2024_10_03_00_characters.sql','408249A6992999A36EB94089D184972E8E0767A3','RELEASED','2024-10-03 11:10:18',0),
+('2024_11_04_00_characters.sql','F7980E0CEE728FF866703693690F76F932E7C764','RELEASED','2024-11-04 17:14:03',0);
/*!40000 ALTER TABLE `updates` ENABLE KEYS */;
UNLOCK TABLES;
diff --git a/sql/updates/characters/master/2024_11_04_00_characters.sql b/sql/updates/characters/master/2024_11_04_00_characters.sql
new file mode 100644
index 00000000000..b056282ea77
--- /dev/null
+++ b/sql/updates/characters/master/2024_11_04_00_characters.sql
@@ -0,0 +1 @@
+DELETE FROM `character_spell` WHERE `disabled`=1;
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index fa45b862b94..ff05a3c2efe 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -2714,12 +2714,12 @@ void Player::RemoveTalent(TalentEntry const* talent)
if (!spellInfo)
return;
- RemoveSpell(talent->SpellID, true);
+ RemoveSpell(talent->SpellID);
// search for spells that the talent teaches and unlearn them
for (SpellEffectInfo const& spellEffectInfo : spellInfo->GetEffects())
if (spellEffectInfo.IsEffect(SPELL_EFFECT_LEARN_SPELL) && spellEffectInfo.TriggerSpell > 0)
- RemoveSpell(spellEffectInfo.TriggerSpell, true);
+ RemoveSpell(spellEffectInfo.TriggerSpell);
if (talent->OverridesSpellID)
RemoveOverrideSpell(talent->OverridesSpellID, talent->SpellID);
@@ -27214,7 +27214,7 @@ void Player::RemovePvpTalent(PvpTalentEntry const* talent, uint8 activeTalentGro
if (!spellInfo)
return;
- RemoveSpell(talent->SpellID, true);
+ RemoveSpell(talent->SpellID);
// Move this to toggle ?
if (talent->OverridesSpellID)
@@ -27235,7 +27235,7 @@ void Player::TogglePvpTalents(bool enable)
{
if (enable)
{
- LearnSpell(pvpTalentInfo->SpellID, false);
+ LearnSpell(pvpTalentInfo->SpellID, true);
if (pvpTalentInfo->OverridesSpellID)
AddOverrideSpell(pvpTalentInfo->OverridesSpellID, pvpTalentInfo->SpellID);
}
@@ -27243,7 +27243,7 @@ void Player::TogglePvpTalents(bool enable)
{
if (pvpTalentInfo->OverridesSpellID)
RemoveOverrideSpell(pvpTalentInfo->OverridesSpellID, pvpTalentInfo->SpellID);
- RemoveSpell(pvpTalentInfo->SpellID, true);
+ RemoveSpell(pvpTalentInfo->SpellID);
}
}
}
@@ -28226,12 +28226,12 @@ void Player::ActivateTalentGroup(ChrSpecializationEntry const* spec)
if (!spellInfo)
continue;
- RemoveSpell(talentInfo->SpellID, true);
+ RemoveSpell(talentInfo->SpellID);
// search for spells that the talent teaches and unlearn them
for (SpellEffectInfo const& spellEffectInfo : spellInfo->GetEffects())
if (spellEffectInfo.IsEffect(SPELL_EFFECT_LEARN_SPELL) && spellEffectInfo.TriggerSpell > 0)
- RemoveSpell(spellEffectInfo.TriggerSpell, true);
+ RemoveSpell(spellEffectInfo.TriggerSpell);
if (talentInfo->OverridesSpellID)
RemoveOverrideSpell(talentInfo->OverridesSpellID, talentInfo->SpellID);
@@ -28247,12 +28247,12 @@ void Player::ActivateTalentGroup(ChrSpecializationEntry const* spec)
if (!spellInfo)
continue;
- RemoveSpell(talentInfo->SpellID, true);
+ RemoveSpell(talentInfo->SpellID);
// search for spells that the talent teaches and unlearn them
for (SpellEffectInfo const& spellEffectInfo : spellInfo->GetEffects())
if (spellEffectInfo.IsEffect(SPELL_EFFECT_LEARN_SPELL) && spellEffectInfo.TriggerSpell > 0)
- RemoveSpell(spellEffectInfo.TriggerSpell, true);
+ RemoveSpell(spellEffectInfo.TriggerSpell);
if (talentInfo->OverridesSpellID)
RemoveOverrideSpell(talentInfo->OverridesSpellID, talentInfo->SpellID);
@@ -30078,7 +30078,7 @@ void Player::RemoveSpecializationSpells()
for (size_t j = 0; j < specSpells->size(); ++j)
{
SpecializationSpellsEntry const* specSpell = (*specSpells)[j];
- RemoveSpell(specSpell->SpellID, true);
+ RemoveSpell(specSpell->SpellID);
if (specSpell->OverridesSpellID)
RemoveOverrideSpell(specSpell->OverridesSpellID, specSpell->SpellID);
}