mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-06 08:59:11 +01:00
Core/Spells: fixed loading spell_target_position
This commit is contained in:
@@ -1711,7 +1711,7 @@ void SpellMgr::LoadSpellTargetPositions()
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
|
||||
uint32 Spell_ID = fields[0].GetUInt32();
|
||||
uint32 spellId = fields[0].GetUInt32();
|
||||
SpellEffIndex effIndex = SpellEffIndex(fields[1].GetUInt8());
|
||||
|
||||
SpellTargetPosition st;
|
||||
@@ -1724,27 +1724,27 @@ void SpellMgr::LoadSpellTargetPositions()
|
||||
MapEntry const* mapEntry = sMapStore.LookupEntry(st.target_mapId);
|
||||
if (!mapEntry)
|
||||
{
|
||||
TC_LOG_ERROR("sql.sql", "Spell (ID: %u, EffectIndex: %u) is using a non-existant MapID (ID: %u).", Spell_ID, effIndex, st.target_mapId);
|
||||
TC_LOG_ERROR("sql.sql", "Spell (Id: %u, EffectIndex: %u) is using a non-existant MapID (ID: %u).", spellId, effIndex, st.target_mapId);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (st.target_X == 0 && st.target_Y == 0 && st.target_Z == 0)
|
||||
{
|
||||
TC_LOG_ERROR("sql.sql", "Spell (ID: %u, EffectIndex: %u): target coordinates not provided.", Spell_ID, effIndex);
|
||||
TC_LOG_ERROR("sql.sql", "Spell (Id: %u, EffectIndex: %u): target coordinates not provided.", spellId, effIndex);
|
||||
continue;
|
||||
}
|
||||
|
||||
SpellInfo const* spellInfo = GetSpellInfo(Spell_ID);
|
||||
SpellInfo const* spellInfo = GetSpellInfo(spellId);
|
||||
if (!spellInfo)
|
||||
{
|
||||
TC_LOG_ERROR("sql.sql", "Spell (ID: %u) listed in `spell_target_position` does not exist.", Spell_ID);
|
||||
TC_LOG_ERROR("sql.sql", "Spell (Id: %u) listed in `spell_target_position` does not exist.", spellId);
|
||||
continue;
|
||||
}
|
||||
|
||||
SpellEffectInfo const* effect = spellInfo->GetEffect(effIndex);
|
||||
if (!effect)
|
||||
{
|
||||
TC_LOG_ERROR("sql.sql", "Spell (Id: %u, effIndex: %u) listed in `spell_target_position` does not have an effect at index %u.", Spell_ID, effIndex, effIndex);
|
||||
TC_LOG_ERROR("sql.sql", "Spell (Id: %u, EffectIndex: %u) listed in `spell_target_position` does not have an effect at index %u.", spellId, effIndex, effIndex);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1756,19 +1756,13 @@ void SpellMgr::LoadSpellTargetPositions()
|
||||
|
||||
if (effect->TargetA.GetTarget() == TARGET_DEST_DB || effect->TargetB.GetTarget() == TARGET_DEST_DB)
|
||||
{
|
||||
TC_LOG_ERROR("sql.sql", "Spell (Id: %u, effIndex: %u) listed in `spell_target_position` does not have TARGET_DEST_DB as target at index %u.", Spell_ID, effIndex, effIndex);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (effect->TargetA.GetTarget() == TARGET_DEST_DB || effect->TargetB.GetTarget() == TARGET_DEST_DB)
|
||||
{
|
||||
std::pair<uint32, SpellEffIndex> key = std::make_pair(Spell_ID, effIndex);
|
||||
std::pair<uint32, SpellEffIndex> key = std::make_pair(spellId, effIndex);
|
||||
mSpellTargetPositions[key] = st;
|
||||
++count;
|
||||
}
|
||||
else
|
||||
{
|
||||
TC_LOG_ERROR("sql.sql", "Spell (Id: %u, effIndex: %u) listed in `spell_target_position` does not have target TARGET_DEST_DB (17).", Spell_ID, effIndex);
|
||||
TC_LOG_ERROR("sql.sql", "Spell (Id: %u, EffectIndex: %u) listed in `spell_target_position` does not have target TARGET_DEST_DB (17).", spellId, effIndex);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1776,38 +1770,26 @@ void SpellMgr::LoadSpellTargetPositions()
|
||||
|
||||
/*
|
||||
// Check all spells
|
||||
for (uint32 i = 1; i < GetSpellInfoStoreSize; ++i)
|
||||
for (uint32 i = 1; i < GetSpellInfoStoreSize(); ++i)
|
||||
{
|
||||
SpellInfo const* spellInfo = GetSpellInfo(i);
|
||||
if (!spellInfo)
|
||||
continue;
|
||||
|
||||
bool found = false;
|
||||
for (int j = 0; j < MAX_SPELL_EFFECTS; ++j)
|
||||
for (uint8 j = 0; j < MAX_SPELL_EFFECTS; ++j)
|
||||
{
|
||||
switch (spellInfo->Effects[j].TargetA)
|
||||
{
|
||||
case TARGET_DEST_DB:
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
if (found)
|
||||
break;
|
||||
switch (spellInfo->Effects[j].TargetB)
|
||||
{
|
||||
case TARGET_DEST_DB:
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
if (found)
|
||||
break;
|
||||
SpellEffectInfo const* effect = spellInfo->GetEffect(j);
|
||||
if (!effect)
|
||||
continue;
|
||||
|
||||
if (effect->TargetA.GetTarget() != TARGET_DEST_DB && effect->TargetB.GetTarget() != TARGET_DEST_DB)
|
||||
continue;
|
||||
|
||||
if (!GetSpellTargetPosition(i, SpellEffIndex(j)))
|
||||
TC_LOG_DEBUG("spells", "Spell (Id: %u, EffectIndex: %u) does not have record in `spell_target_position`.", i, j);
|
||||
}
|
||||
if (found)
|
||||
{
|
||||
if (!sSpellMgr->GetSpellTargetPosition(i))
|
||||
TC_LOG_DEBUG("spells", "Spell (ID: %u) does not have record in `spell_target_position`", i);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
*/
|
||||
|
||||
TC_LOG_INFO("server.loading", ">> Loaded %u spell teleport coordinates in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user