*Implement spell target type TARGET_GAMEOBJECT_NEARBY_ENTRY
--HG-- branch : trunk
This commit is contained in:
@@ -1121,7 +1121,7 @@ enum Targets
|
||||
TARGET_UNIT_PARTY_TARGET = 37,
|
||||
TARGET_UNIT_NEARBY_ENTRY = 38,
|
||||
TARGET_UNIT_CASTER_FISHING = 39,
|
||||
TARGET_OBJECT_USE = 40,
|
||||
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
|
||||
|
||||
+2
-2
@@ -1754,8 +1754,8 @@ WorldObject* Spell::SearchNearbyTarget(float range, SpellTargets TargetType)
|
||||
if ((*itr)->GetEntry() == i_spellST->second.targetEntry && (*itr)->IsWithinDistInMap(m_caster, range))
|
||||
{
|
||||
goScriptTarget = NULL;
|
||||
range = m_caster->GetDistance(creatureScriptTarget);
|
||||
creatureScriptTarget = ((Creature *)*itr);
|
||||
range = m_caster->GetDistance(creatureScriptTarget);
|
||||
}
|
||||
break;
|
||||
case SPELL_TARGET_TYPE_GAMEOBJECT:
|
||||
@@ -1941,6 +1941,7 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
|
||||
target = SearchNearbyTarget(range, SPELL_TARGETS_ALLY);
|
||||
break;
|
||||
case TARGET_UNIT_NEARBY_ENTRY:
|
||||
case TARGET_GAMEOBJECT_NEARBY_ENTRY:
|
||||
range = GetSpellMaxRange(m_spellInfo, IsPositiveSpell(m_spellInfo->Id));
|
||||
if(modOwner) modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_RANGE, range, this);
|
||||
target = SearchNearbyTarget(range, SPELL_TARGETS_ENTRY);
|
||||
@@ -2180,7 +2181,6 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
|
||||
switch (cur)
|
||||
{
|
||||
case TARGET_GAMEOBJECT:
|
||||
case TARGET_OBJECT_USE:
|
||||
if(m_targets.getGOTarget())
|
||||
AddGOTarget(m_targets.getGOTarget(), i);
|
||||
break;
|
||||
|
||||
@@ -137,6 +137,7 @@ SpellMgr::SpellMgr()
|
||||
case TARGET_UNIT_NEARBY_ALLY_UNK:
|
||||
case TARGET_UNIT_NEARBY_ENTRY:
|
||||
case TARGET_UNIT_NEARBY_RAID:
|
||||
case TARGET_GAMEOBJECT_NEARBY_ENTRY:
|
||||
SpellTargetType[i] = TARGET_TYPE_UNIT_NEARBY;
|
||||
break;
|
||||
case TARGET_UNIT_AREA_ENEMY_SRC:
|
||||
@@ -1981,6 +1982,8 @@ void SpellMgr::LoadSpellScriptTarget()
|
||||
spellProto->EffectImplicitTargetB[i]==TARGET_UNIT_AREA_ENTRY_DST ||
|
||||
spellProto->EffectImplicitTargetA[i]==TARGET_UNIT_NEARBY_ENTRY ||
|
||||
spellProto->EffectImplicitTargetB[i]==TARGET_UNIT_NEARBY_ENTRY ||
|
||||
spellProto->EffectImplicitTargetA[i]==TARGET_GAMEOBJECT_NEARBY_ENTRY ||
|
||||
spellProto->EffectImplicitTargetB[i]==TARGET_GAMEOBJECT_NEARBY_ENTRY ||
|
||||
spellProto->EffectImplicitTargetA[i]==TARGET_DST_NEARBY_ENTRY ||
|
||||
spellProto->EffectImplicitTargetB[i]==TARGET_DST_NEARBY_ENTRY ||
|
||||
spellProto->EffectImplicitTargetA[i]==TARGET_UNIT_CONE_ENTRY ||
|
||||
@@ -1993,7 +1996,7 @@ void SpellMgr::LoadSpellScriptTarget()
|
||||
if (!targetfound)
|
||||
{
|
||||
sLog.outErrorDb("Table `spell_script_target`: spellId %u listed for TargetEntry %u does not have any implicit target TARGET_UNIT_NEARBY_ENTRY(38) or TARGET_DST_NEARBY_ENTRY (46)\
|
||||
,TARGET_UNIT_AREA_ENTRY_SRC(7), TARGET_UNIT_AREA_ENTRY_DST(8), TARGET_UNIT_CONE_ENTRY(60)",spellId,targetEntry);
|
||||
,TARGET_UNIT_AREA_ENTRY_SRC(7), TARGET_UNIT_AREA_ENTRY_DST(8), TARGET_UNIT_CONE_ENTRY(60), TARGET_GAMEOBJECT_NEARBY_ENTRY(40)",spellId,targetEntry);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2064,6 +2067,7 @@ void SpellMgr::LoadSpellScriptTarget()
|
||||
case TARGET_UNIT_AREA_ENTRY_SRC:
|
||||
case TARGET_UNIT_AREA_ENTRY_DST:
|
||||
case TARGET_UNIT_NEARBY_ENTRY:
|
||||
case TARGET_GAMEOBJECT_NEARBY_ENTRY:
|
||||
case TARGET_DST_NEARBY_ENTRY:
|
||||
case TARGET_UNIT_CONE_ENTRY:
|
||||
found = true;
|
||||
@@ -2077,6 +2081,7 @@ void SpellMgr::LoadSpellScriptTarget()
|
||||
case TARGET_UNIT_AREA_ENTRY_SRC:
|
||||
case TARGET_UNIT_AREA_ENTRY_DST:
|
||||
case TARGET_UNIT_NEARBY_ENTRY:
|
||||
case TARGET_GAMEOBJECT_NEARBY_ENTRY:
|
||||
case TARGET_DST_NEARBY_ENTRY:
|
||||
case TARGET_UNIT_CONE_ENTRY:
|
||||
found = true;
|
||||
|
||||
Reference in New Issue
Block a user