diff options
-rw-r--r-- | sql/base/characters_database.sql | 3 | ||||
-rw-r--r-- | sql/updates/characters/master/2024_08_05_00_characters.sql | 23 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 3 |
3 files changed, 28 insertions, 1 deletions
diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql index 44c876cc49a..936051a3131 100644 --- a/sql/base/characters_database.sql +++ b/sql/base/characters_database.sql @@ -3743,7 +3743,8 @@ INSERT INTO `updates` VALUES ('2024_04_28_00_characters.sql','F80F476704BE535B5DCB0BCEBDD56024FCFBBAA2','ARCHIVED','2024-04-28 19:26:58',0), ('2024_05_11_00_characters.sql','A65765D87C1BA181561A6517040DC1A3A8103B71','ARCHIVED','2024-05-11 03:06:52',0), ('2024_07_31_00_characters.sql','F7E7AE0B8077CB9A1EA0AE4F49693BB05A742AC3','RELEASED','2024-07-31 16:18:36',0), -('2024_08_04_00_characters.sql','7D153C59998416E6EA1455086730A2321AD0F2A8','RELEASED','2024-08-04 17:58:59',0); +('2024_08_04_00_characters.sql','7D153C59998416E6EA1455086730A2321AD0F2A8','RELEASED','2024-08-04 17:58:59',0), +('2024_08_05_00_characters.sql','7E4AE28F9EC370A1B22DBD8DD718EE027A321F33','RELEASED','2024-08-05 11:19:40',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/characters/master/2024_08_05_00_characters.sql b/sql/updates/characters/master/2024_08_05_00_characters.sql new file mode 100644 index 00000000000..cd0d2f167ea --- /dev/null +++ b/sql/updates/characters/master/2024_08_05_00_characters.sql @@ -0,0 +1,23 @@ +DELETE + ctc, + cte, + ca +FROM + character_trait_config AS ctc + LEFT JOIN ( + SELECT + ctc2.guid AS guid, + MIN(ctc2.traitConfigId) AS traitConfigId + FROM + character_trait_config ctc2 + WHERE + ctc2.type = 3 + GROUP BY + ctc2.guid, + ctc2.traitSystemId + ) AS minctc ON ctc.guid = minctc.guid AND ctc.traitConfigId = minctc.traitConfigId + LEFT JOIN character_trait_entry AS cte ON ctc.guid = cte.guid AND ctc.traitConfigId = cte.traitConfigId + LEFT JOIN character_action AS ca ON ctc.guid = ca.guid AND ctc.traitConfigId = ca.traitConfigId +WHERE + ctc.type = 3 AND + minctc.traitConfigId IS NULL; diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 48791d06b5f..54d36d7f24e 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -6048,6 +6048,9 @@ void Spell::EffectCreateTraitTreeConfig() if (!target) return; + if (target->IsLoading() && target->m_activePlayerData->TraitConfigs.empty()) + return; // traits not loaded yet + WorldPackets::Traits::TraitConfig newConfig; newConfig.Type = TraitMgr::GetConfigTypeForTree(effectInfo->MiscValue); if (newConfig.Type != TraitConfigType::Generic) |