diff options
-rw-r--r-- | sql/base/characters_database.sql | 3 | ||||
-rw-r--r-- | sql/updates/characters/master/2023_11_02_00_characters.sql | 1 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 9 |
3 files changed, 11 insertions, 2 deletions
diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql index 5a909cb5959..648880371e3 100644 --- a/sql/base/characters_database.sql +++ b/sql/base/characters_database.sql @@ -3715,7 +3715,8 @@ INSERT INTO `updates` VALUES ('2023_08_26_00_characters.sql','FA50838609AB5E645FB2DCAC970BD5706F9EFAAF','ARCHIVED','2023-08-26 12:18:22',0), ('2023_09_14_00_characters.sql','DAC56929C724C2971A4476400F2439CBDFAF3C5C','ARCHIVED','2023-09-13 22:20:22',0), ('2023_09_30_00_characters.sql','4326C642870633873F163085D278DB9B7449D9C3','ARCHIVED','2023-09-30 16:34:19',0), -('2023_10_06_00_characters.sql','FFAFF1F0916BB9DC58345466E0BB1A15A4611836','ARCHIVED','2023-10-06 00:40:46',0); +('2023_10_06_00_characters.sql','FFAFF1F0916BB9DC58345466E0BB1A15A4611836','ARCHIVED','2023-10-06 00:40:46',0), +('2023_11_02_00_characters.sql','1A76A843F204901C8598DA5682029E815477E427','RELEASED','2023-11-02 18:59:41',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/characters/master/2023_11_02_00_characters.sql b/sql/updates/characters/master/2023_11_02_00_characters.sql new file mode 100644 index 00000000000..1c06a0785a4 --- /dev/null +++ b/sql/updates/characters/master/2023_11_02_00_characters.sql @@ -0,0 +1 @@ +DELETE ctc, cte FROM `character_trait_config` ctc LEFT JOIN `character_trait_entry` cte ON ctc.`guid` = cte.`guid` AND ctc.`traitConfigId` = cte.`traitConfigId` WHERE ctc.`type` = 3; diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 7cb4fc675d8..350f20e239d 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -6040,7 +6040,14 @@ void Spell::EffectCreateTraitTreeConfig() return; newConfig.TraitSystemID = sTraitTreeStore.AssertEntry(effectInfo->MiscValue)->TraitSystemID; - target->CreateTraitConfig(newConfig); + int32 existingConfigForSystem = target->m_activePlayerData->TraitConfigs.FindIndexIf([&](UF::TraitConfig const& config) + { + return static_cast<TraitConfigType>(*config.Type) == TraitConfigType::Generic + && config.TraitSystemID == newConfig.TraitSystemID; + }); + + if (existingConfigForSystem < 0) + target->CreateTraitConfig(newConfig); } void Spell::EffectChangeActiveCombatTraitConfig() |