diff options
author | QAston <none@none> | 2010-02-04 00:36:40 +0100 |
---|---|---|
committer | QAston <none@none> | 2010-02-04 00:36:40 +0100 |
commit | 6ec51e7bbc06a3aca32417ed9680661de3ae6731 (patch) | |
tree | 7ade698793df534157701f9c9bab57aae6c0d183 /src | |
parent | b1cc10aaf0ab8dde7c90fc29a1c79ad0baee6f43 (diff) |
*Implement spell target type TARGET_GAMEOBJECT_NEARBY_ENTRY
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/game/Spell.cpp | 4 | ||||
-rw-r--r-- | src/game/SpellMgr.cpp | 7 |
3 files changed, 9 insertions, 4 deletions
diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 9f28963581b..d047dd90544 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -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 diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index add99c25795..6cbb9b16e48 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -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; diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index a72718fc98b..3f01630a590 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -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; |