mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 18:36:31 +01:00
Core/Spells
* Removed area MiscValue check for spells with SPELL_EFFECT_BIND, it's purpose is only to be sent in packets, not determine real area player will be bound to. * Corrected guid sent in SMSG_PLAYERBOUND, it should be caster's guid, not player's * Also updated position for Teach: Death Gate Closes #9661
This commit is contained in:
@@ -0,0 +1 @@
|
||||
UPDATE `spell_target_position` SET `target_map`=0 WHERE `id`=53821;
|
||||
@@ -6085,7 +6085,7 @@ void Spell::EffectBind(SpellEffIndex effIndex)
|
||||
player->SetHomebind(homeLoc, areaId);
|
||||
|
||||
// binding
|
||||
WorldPacket data(SMSG_BINDPOINTUPDATE, (4+4+4+4+4));
|
||||
WorldPacket data(SMSG_BINDPOINTUPDATE, 4 + 4 + 4 + 4 + 4);
|
||||
data << float(homeLoc.GetPositionX());
|
||||
data << float(homeLoc.GetPositionY());
|
||||
data << float(homeLoc.GetPositionZ());
|
||||
@@ -6097,8 +6097,8 @@ void Spell::EffectBind(SpellEffIndex effIndex)
|
||||
homeLoc.GetPositionX(), homeLoc.GetPositionY(), homeLoc.GetPositionZ(), homeLoc.GetMapId(), areaId);
|
||||
|
||||
// zone update
|
||||
data.Initialize(SMSG_PLAYERBOUND, 8+4);
|
||||
data << uint64(player->GetGUID());
|
||||
data.Initialize(SMSG_PLAYERBOUND, 8 + 4);
|
||||
data << uint64(m_caster->GetGUID());
|
||||
data << uint32(areaId);
|
||||
player->SendDirectMessage(&data);
|
||||
}
|
||||
|
||||
@@ -1549,21 +1549,11 @@ void SpellMgr::LoadSpellTargetPositions()
|
||||
{
|
||||
if (spellInfo->Effects[i].TargetA.GetTarget() == TARGET_DEST_DB || spellInfo->Effects[i].TargetB.GetTarget() == TARGET_DEST_DB)
|
||||
{
|
||||
// additional requirements
|
||||
if (spellInfo->Effects[i].Effect == SPELL_EFFECT_BIND && spellInfo->Effects[i].MiscValue)
|
||||
{
|
||||
uint32 area_id = sMapMgr->GetAreaId(st.target_mapId, st.target_X, st.target_Y, st.target_Z);
|
||||
if (area_id != uint32(spellInfo->Effects[i].MiscValue))
|
||||
{
|
||||
sLog->outError(LOG_FILTER_SQL, "Spell (Id: %u) listed in `spell_target_position` expected to point to area %u, but points to area %u instead.", Spell_ID, spellInfo->Effects[i].MiscValue, area_id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!found)
|
||||
{
|
||||
sLog->outError(LOG_FILTER_SQL, "Spell (Id: %u) listed in `spell_target_position` does not have target TARGET_DEST_DB (17).", Spell_ID);
|
||||
|
||||
Reference in New Issue
Block a user