*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_PARTY_TARGET = 37,
|
||||||
TARGET_UNIT_NEARBY_ENTRY = 38,
|
TARGET_UNIT_NEARBY_ENTRY = 38,
|
||||||
TARGET_UNIT_CASTER_FISHING = 39,
|
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_FRONT_LEFT = 41, //earth totem
|
||||||
TARGET_DEST_CASTER_BACK_LEFT = 42, //water totem
|
TARGET_DEST_CASTER_BACK_LEFT = 42, //water totem
|
||||||
TARGET_DEST_CASTER_BACK_RIGHT = 43, //air 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))
|
if ((*itr)->GetEntry() == i_spellST->second.targetEntry && (*itr)->IsWithinDistInMap(m_caster, range))
|
||||||
{
|
{
|
||||||
goScriptTarget = NULL;
|
goScriptTarget = NULL;
|
||||||
range = m_caster->GetDistance(creatureScriptTarget);
|
|
||||||
creatureScriptTarget = ((Creature *)*itr);
|
creatureScriptTarget = ((Creature *)*itr);
|
||||||
|
range = m_caster->GetDistance(creatureScriptTarget);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SPELL_TARGET_TYPE_GAMEOBJECT:
|
case SPELL_TARGET_TYPE_GAMEOBJECT:
|
||||||
@@ -1941,6 +1941,7 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
|
|||||||
target = SearchNearbyTarget(range, SPELL_TARGETS_ALLY);
|
target = SearchNearbyTarget(range, SPELL_TARGETS_ALLY);
|
||||||
break;
|
break;
|
||||||
case TARGET_UNIT_NEARBY_ENTRY:
|
case TARGET_UNIT_NEARBY_ENTRY:
|
||||||
|
case TARGET_GAMEOBJECT_NEARBY_ENTRY:
|
||||||
range = GetSpellMaxRange(m_spellInfo, IsPositiveSpell(m_spellInfo->Id));
|
range = GetSpellMaxRange(m_spellInfo, IsPositiveSpell(m_spellInfo->Id));
|
||||||
if(modOwner) modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_RANGE, range, this);
|
if(modOwner) modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_RANGE, range, this);
|
||||||
target = SearchNearbyTarget(range, SPELL_TARGETS_ENTRY);
|
target = SearchNearbyTarget(range, SPELL_TARGETS_ENTRY);
|
||||||
@@ -2180,7 +2181,6 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
|
|||||||
switch (cur)
|
switch (cur)
|
||||||
{
|
{
|
||||||
case TARGET_GAMEOBJECT:
|
case TARGET_GAMEOBJECT:
|
||||||
case TARGET_OBJECT_USE:
|
|
||||||
if(m_targets.getGOTarget())
|
if(m_targets.getGOTarget())
|
||||||
AddGOTarget(m_targets.getGOTarget(), i);
|
AddGOTarget(m_targets.getGOTarget(), i);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ SpellMgr::SpellMgr()
|
|||||||
case TARGET_UNIT_NEARBY_ALLY_UNK:
|
case TARGET_UNIT_NEARBY_ALLY_UNK:
|
||||||
case TARGET_UNIT_NEARBY_ENTRY:
|
case TARGET_UNIT_NEARBY_ENTRY:
|
||||||
case TARGET_UNIT_NEARBY_RAID:
|
case TARGET_UNIT_NEARBY_RAID:
|
||||||
|
case TARGET_GAMEOBJECT_NEARBY_ENTRY:
|
||||||
SpellTargetType[i] = TARGET_TYPE_UNIT_NEARBY;
|
SpellTargetType[i] = TARGET_TYPE_UNIT_NEARBY;
|
||||||
break;
|
break;
|
||||||
case TARGET_UNIT_AREA_ENEMY_SRC:
|
case TARGET_UNIT_AREA_ENEMY_SRC:
|
||||||
@@ -1981,6 +1982,8 @@ void SpellMgr::LoadSpellScriptTarget()
|
|||||||
spellProto->EffectImplicitTargetB[i]==TARGET_UNIT_AREA_ENTRY_DST ||
|
spellProto->EffectImplicitTargetB[i]==TARGET_UNIT_AREA_ENTRY_DST ||
|
||||||
spellProto->EffectImplicitTargetA[i]==TARGET_UNIT_NEARBY_ENTRY ||
|
spellProto->EffectImplicitTargetA[i]==TARGET_UNIT_NEARBY_ENTRY ||
|
||||||
spellProto->EffectImplicitTargetB[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->EffectImplicitTargetA[i]==TARGET_DST_NEARBY_ENTRY ||
|
||||||
spellProto->EffectImplicitTargetB[i]==TARGET_DST_NEARBY_ENTRY ||
|
spellProto->EffectImplicitTargetB[i]==TARGET_DST_NEARBY_ENTRY ||
|
||||||
spellProto->EffectImplicitTargetA[i]==TARGET_UNIT_CONE_ENTRY ||
|
spellProto->EffectImplicitTargetA[i]==TARGET_UNIT_CONE_ENTRY ||
|
||||||
@@ -1993,7 +1996,7 @@ void SpellMgr::LoadSpellScriptTarget()
|
|||||||
if (!targetfound)
|
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)\
|
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;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2064,6 +2067,7 @@ void SpellMgr::LoadSpellScriptTarget()
|
|||||||
case TARGET_UNIT_AREA_ENTRY_SRC:
|
case TARGET_UNIT_AREA_ENTRY_SRC:
|
||||||
case TARGET_UNIT_AREA_ENTRY_DST:
|
case TARGET_UNIT_AREA_ENTRY_DST:
|
||||||
case TARGET_UNIT_NEARBY_ENTRY:
|
case TARGET_UNIT_NEARBY_ENTRY:
|
||||||
|
case TARGET_GAMEOBJECT_NEARBY_ENTRY:
|
||||||
case TARGET_DST_NEARBY_ENTRY:
|
case TARGET_DST_NEARBY_ENTRY:
|
||||||
case TARGET_UNIT_CONE_ENTRY:
|
case TARGET_UNIT_CONE_ENTRY:
|
||||||
found = true;
|
found = true;
|
||||||
@@ -2077,6 +2081,7 @@ void SpellMgr::LoadSpellScriptTarget()
|
|||||||
case TARGET_UNIT_AREA_ENTRY_SRC:
|
case TARGET_UNIT_AREA_ENTRY_SRC:
|
||||||
case TARGET_UNIT_AREA_ENTRY_DST:
|
case TARGET_UNIT_AREA_ENTRY_DST:
|
||||||
case TARGET_UNIT_NEARBY_ENTRY:
|
case TARGET_UNIT_NEARBY_ENTRY:
|
||||||
|
case TARGET_GAMEOBJECT_NEARBY_ENTRY:
|
||||||
case TARGET_DST_NEARBY_ENTRY:
|
case TARGET_DST_NEARBY_ENTRY:
|
||||||
case TARGET_UNIT_CONE_ENTRY:
|
case TARGET_UNIT_CONE_ENTRY:
|
||||||
found = true;
|
found = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user