Change SPELL_EFFECT_SUMMON_PHANTAS to SPELL_EFFECT_FORCE_DESELECT and allow it to be casted with active pet

This fixes Mirror Image not changing names when Water Elemental is active. (Note that deselect effect is done in linked spells for Killing Spree/Shadowmeld)

--HG--
branch : trunk
This commit is contained in:
thenecromancer
2010-01-13 10:27:44 +01:00
parent a4cb03d9cd
commit c36a8d2d5f
4 changed files with 10 additions and 13 deletions
+1 -1
View File
@@ -678,7 +678,7 @@ enum SpellEffects
SPELL_EFFECT_KILL_CREDIT = 90, SPELL_EFFECT_KILL_CREDIT = 90,
SPELL_EFFECT_THREAT_ALL = 91, SPELL_EFFECT_THREAT_ALL = 91,
SPELL_EFFECT_ENCHANT_HELD_ITEM = 92, SPELL_EFFECT_ENCHANT_HELD_ITEM = 92,
SPELL_EFFECT_SUMMON_PHANTASM = 93, //unused SPELL_EFFECT_FORCE_DESELECT = 93,
SPELL_EFFECT_SELF_RESURRECT = 94, SPELL_EFFECT_SELF_RESURRECT = 94,
SPELL_EFFECT_SKINNING = 95, SPELL_EFFECT_SKINNING = 95,
SPELL_EFFECT_CHARGE = 96, SPELL_EFFECT_CHARGE = 96,
-11
View File
@@ -4995,17 +4995,6 @@ SpellCastResult Spell::CheckCast(bool strict)
} }
break; break;
} }
// Not used for summon?
case SPELL_EFFECT_SUMMON_PHANTASM:
{
if(m_caster->GetPetGUID())
return SPELL_FAILED_ALREADY_HAVE_SUMMON;
if(m_caster->GetCharmGUID())
return SPELL_FAILED_ALREADY_HAVE_CHARM;
break;
}
case SPELL_EFFECT_SUMMON_PET: case SPELL_EFFECT_SUMMON_PET:
{ {
if(m_caster->GetPetGUID()) //let warlock do a replacement summon if(m_caster->GetPetGUID()) //let warlock do a replacement summon
+1
View File
@@ -322,6 +322,7 @@ class Spell
void EffectFeedPet(uint32 i); void EffectFeedPet(uint32 i);
void EffectDismissPet(uint32 i); void EffectDismissPet(uint32 i);
void EffectReputation(uint32 i); void EffectReputation(uint32 i);
void EffectForceDeselect(uint32 i);
void EffectSelfResurrect(uint32 i); void EffectSelfResurrect(uint32 i);
void EffectSkinning(uint32 i); void EffectSkinning(uint32 i);
void EffectCharge(uint32 i); void EffectCharge(uint32 i);
+8 -1
View File
@@ -159,7 +159,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]=
&Spell::EffectKillCreditPersonal, // 90 SPELL_EFFECT_KILL_CREDIT Kill credit but only for single person &Spell::EffectKillCreditPersonal, // 90 SPELL_EFFECT_KILL_CREDIT Kill credit but only for single person
&Spell::EffectUnused, // 91 SPELL_EFFECT_THREAT_ALL one spell: zzOLDBrainwash &Spell::EffectUnused, // 91 SPELL_EFFECT_THREAT_ALL one spell: zzOLDBrainwash
&Spell::EffectEnchantHeldItem, // 92 SPELL_EFFECT_ENCHANT_HELD_ITEM &Spell::EffectEnchantHeldItem, // 92 SPELL_EFFECT_ENCHANT_HELD_ITEM
&Spell::EffectUnused, // 93 SPELL_EFFECT_SUMMON_PHANTASM &Spell::EffectForceDeselect, // 93 SPELL_EFFECT_FORCE_DESELECT
&Spell::EffectSelfResurrect, // 94 SPELL_EFFECT_SELF_RESURRECT &Spell::EffectSelfResurrect, // 94 SPELL_EFFECT_SELF_RESURRECT
&Spell::EffectSkinning, // 95 SPELL_EFFECT_SKINNING &Spell::EffectSkinning, // 95 SPELL_EFFECT_SKINNING
&Spell::EffectCharge, // 96 SPELL_EFFECT_CHARGE &Spell::EffectCharge, // 96 SPELL_EFFECT_CHARGE
@@ -6636,6 +6636,13 @@ void Spell::EffectQuestComplete(uint32 i)
_player->AreaExploredOrEventHappens(quest_id); _player->AreaExploredOrEventHappens(quest_id);
} }
void Spell::EffectForceDeselect(uint32 i)
{
WorldPacket data(SMSG_CLEAR_TARGET, 8);
data << uint64(m_caster->GetGUID());
m_caster->SendMessageToSet(&data, true);
}
void Spell::EffectSelfResurrect(uint32 i) void Spell::EffectSelfResurrect(uint32 i)
{ {
if(!unitTarget || unitTarget->isAlive()) if(!unitTarget || unitTarget->isAlive())