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:
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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())
|
||||||
|
|||||||
Reference in New Issue
Block a user