aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoschiwald <joschiwald@online.de>2014-01-05 00:49:54 +0100
committerjoschiwald <joschiwald@online.de>2014-01-05 00:49:54 +0100
commit738afccfc1c736109f520d5d60a1f211a4fe6329 (patch)
treea0ea49a2b8cc8302cffd3bd34e62c2bd0b143a19
parent853b9e9c585aab81d51a3c5878a17b4ce6f179e8 (diff)
DB/Spells: correct more spelldifficulty_dbc entries
* add log message to find wrong entries
-rw-r--r--sql/updates/world/2014_01_04_02_world_spelldifficulty_dbc.sql6
-rw-r--r--src/server/game/DataStores/DBCStores.cpp3
-rw-r--r--src/server/game/Spells/SpellMgr.cpp4
3 files changed, 11 insertions, 2 deletions
diff --git a/sql/updates/world/2014_01_04_02_world_spelldifficulty_dbc.sql b/sql/updates/world/2014_01_04_02_world_spelldifficulty_dbc.sql
new file mode 100644
index 00000000000..047d5cb937d
--- /dev/null
+++ b/sql/updates/world/2014_01_04_02_world_spelldifficulty_dbc.sql
@@ -0,0 +1,6 @@
+DELETE FROM `spelldifficulty_dbc` WHERE `spellid0` IN (31956,36127,49380,59803,49381);
+INSERT INTO `spelldifficulty_dbc` (`id`, `spellid0`, `spellid1`, `spellid2`, `spellid3`) VALUES
+(31956,31956,38801,0,0),
+(36127,36127,39005,0,0),
+(49380,49380,59803,0,0),
+(49381,49381,59805,0,0);
diff --git a/src/server/game/DataStores/DBCStores.cpp b/src/server/game/DataStores/DBCStores.cpp
index 648b2a435d7..a4b3ded80e5 100644
--- a/src/server/game/DataStores/DBCStores.cpp
+++ b/src/server/game/DataStores/DBCStores.cpp
@@ -482,7 +482,8 @@ void LoadDBCStores(const std::string& dataPath)
continue;
for (int x = 0; x < MAX_DIFFICULTY; ++x)
- sSpellMgr->SetSpellDifficultyId(uint32(newEntry.SpellID[x]), spellDiff->ID);
+ if (newEntry.SpellID[x])
+ sSpellMgr->SetSpellDifficultyId(uint32(newEntry.SpellID[x]), spellDiff->ID);
}
// create talent spells set
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 3b224cfca94..e59693b7c4a 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -455,6 +455,8 @@ uint32 SpellMgr::GetSpellDifficultyId(uint32 spellId) const
void SpellMgr::SetSpellDifficultyId(uint32 spellId, uint32 id)
{
+ if (uint32 i = GetSpellDifficultyId(spellId))
+ TC_LOG_ERROR("spells", "SpellMgr::SetSpellDifficultyId: Spell %u has already spellDifficultyId %u. Will override with spellDifficultyId %u.", spellId, i, id);
mSpellDifficultySearcherMap[spellId] = id;
}
@@ -480,7 +482,7 @@ uint32 SpellMgr::GetSpellIdForDifficulty(uint32 spellId, Unit const* caster) con
SpellDifficultyEntry const* difficultyEntry = sSpellDifficultyStore.LookupEntry(difficultyId);
if (!difficultyEntry)
{
- TC_LOG_DEBUG("spells", "SpellMgr::GetSpellIdForDifficulty: SpellDifficultyEntry not found for spell %u. This should never happen.", spellId);
+ TC_LOG_ERROR("spells", "SpellMgr::GetSpellIdForDifficulty: SpellDifficultyEntry not found for spell %u. This should never happen.", spellId);
return spellId; //return source spell
}