diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 6 | ||||
-rwxr-xr-x | src/server/game/Miscellaneous/SharedDefines.h | 32 | ||||
-rwxr-xr-x | src/server/game/Scripting/ScriptMgr.cpp | 4 | ||||
-rwxr-xr-x | src/server/game/Spells/Spell.cpp | 54 | ||||
-rwxr-xr-x | src/server/game/Spells/Spell.h | 41 | ||||
-rwxr-xr-x | src/server/game/Spells/SpellMgr.cpp | 12 |
6 files changed, 68 insertions, 81 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 4f8d39d5b03..abf3ef9c412 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -948,12 +948,6 @@ void Unit::CastSpell(GameObject *go, uint32 spellId, bool triggered, Item *castI return; } - if (!(spellInfo->Targets & (TARGET_FLAG_OBJECT | TARGET_FLAG_OBJECT_CASTER))) - { - sLog->outError("CastSpell: spell id %i by caster: %s %u) is not gameobject spell", spellId, (GetTypeId() == TYPEID_PLAYER ? "player (GUID:" : "creature (Entry:"), (GetTypeId() == TYPEID_PLAYER ? GetGUIDLow() : GetEntry())); - return; - } - if (castItem) sLog->outStaticDebug("WORLD: cast Item spellId - %i", spellInfo->Id); diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index f5d41b12097..a06807c704c 100755 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -1287,48 +1287,46 @@ enum Targets TARGET_UNIT_TARGET_ENEMY = 6, TARGET_UNIT_AREA_ENTRY_SRC = 7, TARGET_UNIT_AREA_ENTRY_DST = 8, - TARGET_DST_HOME = 9, // uses in teleport to innkeeper spells + TARGET_DST_HOME = 9, TARGET_UNIT_TARGET_DEST_CASTER = 11, // teleport target to caster TARGET_UNIT_AREA_ENEMY_SRC = 15, TARGET_UNIT_AREA_ENEMY_DST = 16, - TARGET_DST_DB = 17, // uses in teleport spells and some other + TARGET_DST_DB = 17, TARGET_DST_CASTER = 18, TARGET_UNIT_PARTY_CASTER = 20, TARGET_UNIT_TARGET_ALLY = 21, TARGET_SRC_CASTER = 22, TARGET_GAMEOBJECT = 23, - //TARGET_OBJECT_OPEN TARGET_UNIT_CONE_ENEMY = 24, TARGET_UNIT_TARGET_ANY = 25, TARGET_GAMEOBJECT_ITEM = 26, - //TARGET_OBJECT_ITEM_PICKLOCK TARGET_UNIT_MASTER = 27, TARGET_DEST_DYNOBJ_ENEMY = 28, - TARGET_DEST_DYNOBJ_ALLY = 29, // only for effect 27 - TARGET_UNIT_AREA_ALLY_SRC = 30, // in TargetB used only with TARGET_SRC_CASTER and in self casting range in TargetA + TARGET_DEST_DYNOBJ_ALLY = 29, + TARGET_UNIT_AREA_ALLY_SRC = 30, TARGET_UNIT_AREA_ALLY_DST = 31, TARGET_MINION = 32, //TARGET_DEST_SUMMON TARGET_UNIT_AREA_PARTY_SRC = 33, - TARGET_UNIT_AREA_PARTY_DST = 34, // used in Tranquility + TARGET_UNIT_AREA_PARTY_DST = 34, TARGET_UNIT_TARGET_PARTY = 35, TARGET_DEST_CASTER_RANDOM_UNKNOWN = 36, //unknown - TARGET_UNIT_PARTY_TARGET = 37, + TARGET_UNIT_TARGET_ALLY_PARTY = 37, TARGET_UNIT_NEARBY_ENTRY = 38, TARGET_UNIT_CASTER_FISHING = 39, TARGET_GAMEOBJECT_NEARBY_ENTRY = 40, - TARGET_DEST_CASTER_FRONT_LEFT = 41, //earth totem - TARGET_DEST_CASTER_BACK_LEFT = 42, //water totem - TARGET_DEST_CASTER_BACK_RIGHT = 43, //air totem - TARGET_DEST_CASTER_FRONT_RIGHT = 44, //fire totem + TARGET_DEST_CASTER_FRONT_LEFT = 41, + TARGET_DEST_CASTER_BACK_LEFT = 42, + TARGET_DEST_CASTER_BACK_RIGHT = 43, + TARGET_DEST_CASTER_FRONT_RIGHT = 44, TARGET_UNIT_CHAINHEAL = 45, TARGET_DST_NEARBY_ENTRY = 46, TARGET_DEST_CASTER_FRONT = 47, TARGET_DEST_CASTER_BACK = 48, TARGET_DEST_CASTER_RIGHT = 49, TARGET_DEST_CASTER_LEFT = 50, - TARGET_GAMEOBJECT_AREA_SRC = 51, // If used with SPELL_EFFECT_ACTIVATE_OBJECT, appliccable GO entries should be specified in conditions table - TARGET_GAMEOBJECT_AREA_DST = 52, // If used with SPELL_EFFECT_ACTIVATE_OBJECT, appliccable GO entries should be specified in conditions table + TARGET_GAMEOBJECT_AREA_SRC = 51, + TARGET_GAMEOBJECT_AREA_DST = 52, TARGET_DST_TARGET_ENEMY = 53, // set unit coordinates as dest, only 16 target B imlemented TARGET_UNIT_CONE_ENEMY_UNKNOWN = 54, // 180 degree, or different angle TARGET_DEST_CASTER_FRONT_LEAP = 55, // for a leap spell @@ -1337,11 +1335,11 @@ enum Targets TARGET_UNIT_NEARBY_RAID = 58, TARGET_UNIT_CONE_ALLY = 59, TARGET_UNIT_CONE_ENTRY = 60, - TARGET_UNIT_CLASS_TARGET = 61, + TARGET_UNIT_TARGET_CLASS_RAID = 61, TARGET_TEST = 62, // for a test spell TARGET_DEST_TARGET_ANY = 63, TARGET_DEST_TARGET_FRONT = 64, - TARGET_DEST_TARGET_BACK = 65, // uses in teleport behind spells + TARGET_DEST_TARGET_BACK = 65, TARGET_DEST_TARGET_RIGHT = 66, TARGET_DEST_TARGET_LEFT = 67, TARGET_DEST_TARGET_FRONT_LEFT = 68, @@ -1371,7 +1369,7 @@ enum Targets TARGET_UNIT_SUMMONER = 92, TARGET_CORPSE_AREA_ENEMY_PLAYER_SRC= 93, // TODO TARGET_UNIT_VEHICLE = 94, - TARGET_UNIT_DRIVER = 95, + TARGET_UNIT_TARGET_PASSENGER = 95, TARGET_UNIT_PASSENGER_0 = 96, TARGET_UNIT_PASSENGER_1 = 97, TARGET_UNIT_PASSENGER_2 = 98, diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index a14a7175522..16c35efdcf4 100755 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -259,7 +259,7 @@ void ScriptMgr::FillSpellSummary() //Spell targets aoe friends if (pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_PARTY_CASTER || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_PARTY_TARGET || + pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_ALLY_PARTY || pTempSpell->EffectImplicitTargetA[j] == TARGET_SRC_CASTER) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_AOE_FRIEND-1); @@ -268,7 +268,7 @@ void ScriptMgr::FillSpellSummary() pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_ALLY || pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_PARTY || pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_PARTY_CASTER || - pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_PARTY_TARGET || + pTempSpell->EffectImplicitTargetA[j] == TARGET_UNIT_TARGET_ALLY_PARTY || pTempSpell->EffectImplicitTargetA[j] == TARGET_SRC_CASTER) SpellSummary[i].Targets |= 1 << (SELECT_TARGET_ANY_FRIEND-1); diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index bf5fdb72314..2532ffcc01a 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -119,16 +119,16 @@ void SpellCastTargets::Read(ByteBuffer& data, Unit* caster) if (m_targetMask == TARGET_FLAG_SELF) return; - if (m_targetMask & (TARGET_FLAG_UNIT | TARGET_FLAG_UNK17)) + if (m_targetMask & (TARGET_FLAG_UNIT | TARGET_FLAG_UNIT_MINIPET)) data.readPackGUID(m_unitTargetGUID); - if (m_targetMask & (TARGET_FLAG_OBJECT)) + if (m_targetMask & (TARGET_FLAG_GAMEOBJECT)) data.readPackGUID(m_GOTargetGUID); if (m_targetMask & (TARGET_FLAG_ITEM | TARGET_FLAG_TRADE_ITEM)) data.readPackGUID(m_itemTargetGUID); - if (m_targetMask & (TARGET_FLAG_CORPSE | TARGET_FLAG_PVP_CORPSE)) + if (m_targetMask & (TARGET_FLAG_CORPSE_ENEMY | TARGET_FLAG_CORPSE_ALLY)) data.readPackGUID(m_CorpseTargetGUID); if (m_targetMask & TARGET_FLAG_SOURCE_LOCATION) @@ -175,7 +175,7 @@ void SpellCastTargets::Write(ByteBuffer& data) { data << uint32(m_targetMask); - if (m_targetMask & (TARGET_FLAG_UNIT | TARGET_FLAG_PVP_CORPSE | TARGET_FLAG_OBJECT | TARGET_FLAG_CORPSE | TARGET_FLAG_UNK17)) + if (m_targetMask & (TARGET_FLAG_UNIT | TARGET_FLAG_CORPSE_ALLY | TARGET_FLAG_GAMEOBJECT | TARGET_FLAG_CORPSE_ENEMY | TARGET_FLAG_UNIT_MINIPET)) { if (m_targetMask & TARGET_FLAG_UNIT) { @@ -184,14 +184,14 @@ void SpellCastTargets::Write(ByteBuffer& data) else data << uint8(0); } - else if (m_targetMask & TARGET_FLAG_OBJECT) + else if (m_targetMask & TARGET_FLAG_GAMEOBJECT) { if (m_GOTarget) data.append(m_GOTarget->GetPackGUID()); else data << uint8(0); } - else if (m_targetMask & (TARGET_FLAG_CORPSE | TARGET_FLAG_PVP_CORPSE)) + else if (m_targetMask & (TARGET_FLAG_CORPSE_ALLY | TARGET_FLAG_CORPSE_ENEMY)) data.appendPackGUID(m_CorpseTargetGUID); else data << uint8(0); @@ -333,7 +333,7 @@ void SpellCastTargets::SetGOTarget(GameObject* target) { m_GOTarget = target; m_GOTargetGUID = target->GetGUID(); - m_targetMask |= TARGET_FLAG_OBJECT; + m_targetMask |= TARGET_FLAG_GAMEOBJECT; } void SpellCastTargets::SetItemTarget(Item* item) @@ -417,14 +417,14 @@ void SpellCastTargets::OutDebug() const if (m_targetMask & TARGET_FLAG_UNIT) sLog->outString("TARGET_FLAG_UNIT: " UI64FMTD, m_unitTargetGUID); - if (m_targetMask & TARGET_FLAG_UNK17) - sLog->outString("TARGET_FLAG_UNK17: " UI64FMTD, m_unitTargetGUID); - if (m_targetMask & TARGET_FLAG_OBJECT) - sLog->outString("TARGET_FLAG_OBJECT: " UI64FMTD, m_GOTargetGUID); - if (m_targetMask & TARGET_FLAG_CORPSE) - sLog->outString("TARGET_FLAG_CORPSE: " UI64FMTD, m_CorpseTargetGUID); - if (m_targetMask & TARGET_FLAG_PVP_CORPSE) - sLog->outString("TARGET_FLAG_PVP_CORPSE: " UI64FMTD, m_CorpseTargetGUID); + if (m_targetMask & TARGET_FLAG_UNIT_MINIPET) + sLog->outString("TARGET_FLAG_UNIT_MINIPET: " UI64FMTD, m_unitTargetGUID); + if (m_targetMask & TARGET_FLAG_GAMEOBJECT) + sLog->outString("TARGET_FLAG_GAMEOBJECT: " UI64FMTD, m_GOTargetGUID); + if (m_targetMask & TARGET_FLAG_CORPSE_ENEMY) + sLog->outString("TARGET_FLAG_CORPSE_ENEMY: " UI64FMTD, m_CorpseTargetGUID); + if (m_targetMask & TARGET_FLAG_CORPSE_ALLY) + sLog->outString("TARGET_FLAG_CORPSE_ALLY: " UI64FMTD, m_CorpseTargetGUID); if (m_targetMask & TARGET_FLAG_ITEM) sLog->outString("TARGET_FLAG_ITEM: " UI64FMTD, m_itemTargetGUID); if (m_targetMask & TARGET_FLAG_TRADE_ITEM) @@ -768,7 +768,7 @@ void Spell::SelectSpellTargets() case SPELL_EFFECT_APPLY_AREA_AURA_PARTY: // AreaAura if (m_spellInfo->Attributes & (SPELL_ATTR0_CASTABLE_WHILE_SITTING | SPELL_ATTR0_CASTABLE_WHILE_MOUNTED | SPELL_ATTR0_UNK18 | SPELL_ATTR0_NOT_SHAPESHIFT) || m_spellInfo->Attributes == SPELL_ATTR0_NOT_SHAPESHIFT) - SelectEffectTargets(i, TARGET_UNIT_PARTY_TARGET); + SelectEffectTargets(i, TARGET_UNIT_TARGET_ALLY_PARTY); break; case SPELL_EFFECT_SKIN_PLAYER_CORPSE: if (m_targets.GetUnitTarget()) @@ -2059,8 +2059,12 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur) if (IsValidSingleTargetSpell(target)) AddUnitTarget(target, i); break; - case TARGET_UNIT_PARTY_TARGET: - case TARGET_UNIT_CLASS_TARGET: + case TARGET_UNIT_TARGET_PASSENGER: + if (target->IsOnVehicle(m_caster)) + AddUnitTarget(target, i); + break; + case TARGET_UNIT_TARGET_ALLY_PARTY: + case TARGET_UNIT_TARGET_CLASS_RAID: pushType = PUSH_CASTER_CENTER; // not real break; } @@ -2348,11 +2352,6 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur) else if (m_targets.GetItemTarget()) AddItemTarget(m_targets.GetItemTarget(), i); break; - case TARGET_UNIT_DRIVER: - if (Unit* driver = m_targets.GetUnitTarget()) - if (driver->IsOnVehicle(m_caster)) - AddUnitTarget(driver, i); - break; default: sLog->outError("SPELL (caster[type: %u; guidlow: %u], spell: %u): unhandled spell target (%u)", m_caster->GetTypeId(), m_caster->GetGUIDLow(), m_spellInfo->Id, cur); @@ -2594,7 +2593,7 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur) case TARGET_UNIT_AREA_PARTY_DST: m_caster->GetPartyMemberInDist(unitList, radius); //fix me break; - case TARGET_UNIT_PARTY_TARGET: + case TARGET_UNIT_TARGET_ALLY_PARTY: m_targets.GetUnitTarget()->GetPartyMemberInDist(unitList, radius); break; case TARGET_UNIT_PARTY_CASTER: @@ -2603,7 +2602,7 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur) case TARGET_UNIT_RAID_CASTER: m_caster->GetRaidMember(unitList, radius); break; - case TARGET_UNIT_CLASS_TARGET: + case TARGET_UNIT_TARGET_CLASS_RAID: { Player* targetPlayer = m_targets.GetUnitTarget() && m_targets.GetUnitTarget()->GetTypeId() == TYPEID_PLAYER ? (Player*)m_targets.GetUnitTarget() : NULL; @@ -4711,9 +4710,8 @@ SpellCastResult Spell::CheckCast(bool strict) } Unit* target = m_targets.GetUnitTarget(); - // In pure self-cast spells, the client won't send any unit target - if (!target && (m_targets.GetTargetMask() == TARGET_FLAG_SELF || m_targets.GetTargetMask() & TARGET_FLAG_UNIT_CASTER)) // TARGET_FLAG_SELF == 0, remember! + if (!target && (m_targets.GetTargetMask() == TARGET_FLAG_SELF || m_targets.GetTargetMask() & TARGET_FLAG_UNIT_ALLY)) // TARGET_FLAG_SELF == 0, remember! target = m_caster; if (target) @@ -6748,7 +6746,7 @@ bool Spell::IsValidSingleTargetEffect(Unit const* target, Targets type) const case TARGET_UNIT_TARGET_ENEMY: return !m_caster->IsFriendlyTo(target); case TARGET_UNIT_TARGET_ALLY: - case TARGET_UNIT_PARTY_TARGET: + case TARGET_UNIT_TARGET_ALLY_PARTY: return m_caster->IsFriendlyTo(target); case TARGET_UNIT_TARGET_PARTY: return m_caster != target && m_caster->IsInPartyWith(target); diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index 57fbf815a9d..97e2fddff3a 100755 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -39,36 +39,37 @@ struct SpellEntry; enum SpellCastTargetFlags { TARGET_FLAG_SELF = 0x00000000, - TARGET_FLAG_UNUSED1 = 0x00000001, // not used in any spells as of 3.2.2a (can be set dynamically) + TARGET_FLAG_UNUSED_1 = 0x00000001, // not used TARGET_FLAG_UNIT = 0x00000002, // pguid - TARGET_FLAG_UNUSED2 = 0x00000004, // not used in any spells as of 3.2.2a (can be set dynamically) - TARGET_FLAG_UNUSED3 = 0x00000008, // not used in any spells as of 3.2.2a (can be set dynamically) + TARGET_FLAG_UNIT_RAID = 0x00000004, // not sent, used to validate target (if raid member) + TARGET_FLAG_UNIT_PARTY = 0x00000008, // not sent, used to validate target (if party member) TARGET_FLAG_ITEM = 0x00000010, // pguid - TARGET_FLAG_SOURCE_LOCATION = 0x00000020, // 3 float - TARGET_FLAG_DEST_LOCATION = 0x00000040, // 3 float - TARGET_FLAG_OBJECT_CASTER = 0x00000080, // used in 7 spells only - TARGET_FLAG_UNIT_CASTER = 0x00000100, // looks like self target (480 spells) - TARGET_FLAG_PVP_CORPSE = 0x00000200, // pguid - TARGET_FLAG_UNIT_CORPSE = 0x00000400, // 10 spells (gathering professions) - TARGET_FLAG_OBJECT = 0x00000800, // pguid, 2 spells - TARGET_FLAG_TRADE_ITEM = 0x00001000, // pguid, 0 spells - TARGET_FLAG_STRING = 0x00002000, // string, 0 spells - TARGET_FLAG_OPEN_LOCK = 0x00004000, // 199 spells, opening object/lock - TARGET_FLAG_CORPSE = 0x00008000, // pguid, resurrection spells - TARGET_FLAG_UNK17 = 0x00010000, // pguid, not used in any spells as of 3.2.2a (can be set dynamically) - TARGET_FLAG_GLYPH = 0x00020000, // used in glyph spells - TARGET_FLAG_UNK19 = 0x00040000, // - TARGET_FLAG_UNUSED20 = 0x00080000 // uint32 counter, loop { vec3 - screen position (?), guid }, not used so far + TARGET_FLAG_SOURCE_LOCATION = 0x00000020, // pguid, 3 float + TARGET_FLAG_DEST_LOCATION = 0x00000040, // pguid, 3 float + TARGET_FLAG_UNIT_ENEMY = 0x00000080, // not sent, used to validate target (if enemy) + TARGET_FLAG_UNIT_ALLY = 0x00000100, // not sent, used to validate target (if ally) + TARGET_FLAG_CORPSE_ENEMY = 0x00000200, // pguid + TARGET_FLAG_UNIT_DEAD = 0x00000400, // not sent, used to validate target (if dead creature) + TARGET_FLAG_GAMEOBJECT = 0x00000800, // pguid, used with TARGET_GAMEOBJECT + TARGET_FLAG_TRADE_ITEM = 0x00001000, // pguid + TARGET_FLAG_STRING = 0x00002000, // string + TARGET_FLAG_GAMEOBJECT_ITEM = 0x00004000, // not sent, used with TARGET_GAMEOBJECT_ITEM + TARGET_FLAG_CORPSE_ALLY = 0x00008000, // pguid + TARGET_FLAG_UNIT_MINIPET = 0x00010000, // pguid, used to validate target (if non combat pet) + TARGET_FLAG_GLYPH_SLOT = 0x00020000, // used in glyph spells + TARGET_FLAG_UNK19 = 0x00040000, // sometimes appears with DEST_TARGET spells (may appear or not for a given spell) + TARGET_FLAG_UNUSED20 = 0x00080000, // uint32 counter, loop { vec3 - screen position (?), guid }, not used so far + TARGET_FLAG_UNIT_PASSENGER = 0x00100000, // guessed, used to validate target (if vehicle passenger) }; #define MAX_TARGET_FLAGS 21 enum SpellCastFlags { CAST_FLAG_NONE = 0x00000000, - CAST_FLAG_PENDING = 0x00000001, // Pending == 1 + CAST_FLAG_PENDING = 0x00000001, // aoe combat log? CAST_FLAG_UNKNOWN_2 = 0x00000002, CAST_FLAG_UNKNOWN_3 = 0x00000004, - CAST_FLAG_UNKNOWN_4 = 0x00000008, + CAST_FLAG_UNKNOWN_4 = 0x00000008, // ignore AOE visual CAST_FLAG_UNKNOWN_5 = 0x00000010, CAST_FLAG_AMMO = 0x00000020, // Projectiles visual CAST_FLAG_UNKNOWN_7 = 0x00000040, diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 125f729d74b..3135054b08b 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -127,8 +127,9 @@ SpellMgr::SpellMgr() case TARGET_UNIT_TARGET_ANY: case TARGET_UNIT_TARGET_ENEMY: case TARGET_UNIT_TARGET_PARTY: - case TARGET_UNIT_PARTY_TARGET: - case TARGET_UNIT_CLASS_TARGET: + case TARGET_UNIT_TARGET_PASSENGER: + case TARGET_UNIT_TARGET_ALLY_PARTY: + case TARGET_UNIT_TARGET_RAID_CLASS: case TARGET_UNIT_CHAINHEAL: SpellTargetType[i] = TARGET_TYPE_UNIT_TARGET; break; @@ -236,7 +237,7 @@ SpellMgr::SpellMgr() case TARGET_UNIT_AREA_ENTRY_SRC: case TARGET_UNIT_AREA_PARTY_DST: case TARGET_UNIT_AREA_PARTY_SRC: - case TARGET_UNIT_PARTY_TARGET: + case TARGET_UNIT_TARGET_ALLY_PARTY: case TARGET_UNIT_PARTY_CASTER: case TARGET_UNIT_CONE_ENEMY: case TARGET_UNIT_CONE_ALLY: @@ -4047,11 +4048,6 @@ void SpellMgr::LoadSpellCustomAttr() spellInfo->EffectBasePoints[2] += 30000; ++count; break; - // some dummy spell only has dest, should push caster in this case - case 62324: // Throw Passenger - spellInfo->Targets |= TARGET_FLAG_UNIT_CASTER; - ++count; - break; case 16834: // Natural shapeshifter case 16835: spellInfo->DurationIndex = 21; |