mirror of
https://github.com/mangosfour/server.git
synced 2025-12-18 10:37:01 +00:00
[12665] Correct summon object slot effects
This commit is contained in:
parent
2cbca9deb6
commit
48568c3219
5 changed files with 16 additions and 24 deletions
|
|
@ -828,10 +828,10 @@ enum SpellEffects
|
||||||
SPELL_EFFECT_FEED_PET = 101,
|
SPELL_EFFECT_FEED_PET = 101,
|
||||||
SPELL_EFFECT_DISMISS_PET = 102,
|
SPELL_EFFECT_DISMISS_PET = 102,
|
||||||
SPELL_EFFECT_REPUTATION = 103,
|
SPELL_EFFECT_REPUTATION = 103,
|
||||||
SPELL_EFFECT_SUMMON_OBJECT_SLOT1 = 104,
|
SPELL_EFFECT_SUMMON_OBJECT_SLOT = 104,
|
||||||
SPELL_EFFECT_SUMMON_OBJECT_SLOT2 = 105,
|
SPELL_EFFECT_SURVEY = 105,
|
||||||
SPELL_EFFECT_SUMMON_OBJECT_SLOT3 = 106,
|
SPELL_EFFECT_SUMMON_RAID_MARKER = 106,
|
||||||
SPELL_EFFECT_SUMMON_OBJECT_SLOT4 = 107,
|
SPELL_EFFECT_LOOT_CORPSE = 107,
|
||||||
SPELL_EFFECT_DISPEL_MECHANIC = 108,
|
SPELL_EFFECT_DISPEL_MECHANIC = 108,
|
||||||
SPELL_EFFECT_SUMMON_DEAD_PET = 109,
|
SPELL_EFFECT_SUMMON_DEAD_PET = 109,
|
||||||
SPELL_EFFECT_DESTROY_ALL_TOTEMS = 110,
|
SPELL_EFFECT_DESTROY_ALL_TOTEMS = 110,
|
||||||
|
|
|
||||||
|
|
@ -4332,10 +4332,7 @@ void Spell::SendLogExecute()
|
||||||
case SPELL_EFFECT_SUMMON_OBJECT_WILD:
|
case SPELL_EFFECT_SUMMON_OBJECT_WILD:
|
||||||
case SPELL_EFFECT_CREATE_HOUSE:
|
case SPELL_EFFECT_CREATE_HOUSE:
|
||||||
case SPELL_EFFECT_DUEL:
|
case SPELL_EFFECT_DUEL:
|
||||||
case SPELL_EFFECT_SUMMON_OBJECT_SLOT1:
|
case SPELL_EFFECT_SUMMON_OBJECT_SLOT:
|
||||||
//case SPELL_EFFECT_SUMMON_OBJECT_SLOT2:
|
|
||||||
//case SPELL_EFFECT_SUMMON_OBJECT_SLOT3:
|
|
||||||
//case SPELL_EFFECT_SUMMON_OBJECT_SLOT4:
|
|
||||||
case SPELL_EFFECT_171:
|
case SPELL_EFFECT_171:
|
||||||
if (Unit* unit = m_targets.getUnitTarget())
|
if (Unit* unit = m_targets.getUnitTarget())
|
||||||
data << unit->GetPackGUID();
|
data << unit->GetPackGUID();
|
||||||
|
|
|
||||||
|
|
@ -164,10 +164,10 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS] =
|
||||||
&Spell::EffectFeedPet, //101 SPELL_EFFECT_FEED_PET
|
&Spell::EffectFeedPet, //101 SPELL_EFFECT_FEED_PET
|
||||||
&Spell::EffectDismissPet, //102 SPELL_EFFECT_DISMISS_PET
|
&Spell::EffectDismissPet, //102 SPELL_EFFECT_DISMISS_PET
|
||||||
&Spell::EffectReputation, //103 SPELL_EFFECT_REPUTATION
|
&Spell::EffectReputation, //103 SPELL_EFFECT_REPUTATION
|
||||||
&Spell::EffectSummonObject, //104 SPELL_EFFECT_SUMMON_OBJECT_SLOT1
|
&Spell::EffectSummonObject, //104 SPELL_EFFECT_SUMMON_OBJECT_SLOT
|
||||||
&Spell::EffectSummonObject, //105 SPELL_EFFECT_SUMMON_OBJECT_SLOT2
|
&Spell::EffectNULL, //105 SPELL_EFFECT_SURVEY
|
||||||
&Spell::EffectSummonObject, //106 SPELL_EFFECT_SUMMON_OBJECT_SLOT3
|
&Spell::EffectNULL, //106 SPELL_EFFECT_SUMMON_RAID_MARKER
|
||||||
&Spell::EffectSummonObject, //107 SPELL_EFFECT_SUMMON_OBJECT_SLOT4
|
&Spell::EffectNULL, //107 SPELL_EFFECT_LOOT_CORPSE
|
||||||
&Spell::EffectDispelMechanic, //108 SPELL_EFFECT_DISPEL_MECHANIC
|
&Spell::EffectDispelMechanic, //108 SPELL_EFFECT_DISPEL_MECHANIC
|
||||||
&Spell::EffectSummonDeadPet, //109 SPELL_EFFECT_SUMMON_DEAD_PET
|
&Spell::EffectSummonDeadPet, //109 SPELL_EFFECT_SUMMON_DEAD_PET
|
||||||
&Spell::EffectDestroyAllTotems, //110 SPELL_EFFECT_DESTROY_ALL_TOTEMS
|
&Spell::EffectDestroyAllTotems, //110 SPELL_EFFECT_DESTROY_ALL_TOTEMS
|
||||||
|
|
@ -9360,16 +9360,9 @@ void Spell::EffectDismissPet(SpellEffectEntry const* /*effect*/)
|
||||||
void Spell::EffectSummonObject(SpellEffectEntry const* effect)
|
void Spell::EffectSummonObject(SpellEffectEntry const* effect)
|
||||||
{
|
{
|
||||||
uint32 go_id = effect->EffectMiscValue;
|
uint32 go_id = effect->EffectMiscValue;
|
||||||
|
uint8 slot = effect->EffectMiscValueB;
|
||||||
uint8 slot = 0;
|
if (slot >= MAX_OBJECT_SLOT)
|
||||||
switch(effect->Effect)
|
return;
|
||||||
{
|
|
||||||
case SPELL_EFFECT_SUMMON_OBJECT_SLOT1: slot = 0; break;
|
|
||||||
case SPELL_EFFECT_SUMMON_OBJECT_SLOT2: slot = 1; break;
|
|
||||||
case SPELL_EFFECT_SUMMON_OBJECT_SLOT3: slot = 2; break;
|
|
||||||
case SPELL_EFFECT_SUMMON_OBJECT_SLOT4: slot = 3; break;
|
|
||||||
default: return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ObjectGuid guid = m_caster->m_ObjectSlotGuid[slot])
|
if (ObjectGuid guid = m_caster->m_ObjectSlotGuid[slot])
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1227,6 +1227,8 @@ enum IgnoreUnitState
|
||||||
|
|
||||||
struct SpellProcEventEntry; // used only privately
|
struct SpellProcEventEntry; // used only privately
|
||||||
|
|
||||||
|
#define MAX_OBJECT_SLOT 5
|
||||||
|
|
||||||
class MANGOS_DLL_SPEC Unit : public WorldObject
|
class MANGOS_DLL_SPEC Unit : public WorldObject
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -2410,7 +2412,7 @@ class MANGOS_DLL_SPEC Unit : public WorldObject
|
||||||
bool CheckAndIncreaseCastCounter();
|
bool CheckAndIncreaseCastCounter();
|
||||||
void DecreaseCastCounter() { if (m_castCounter) --m_castCounter; }
|
void DecreaseCastCounter() { if (m_castCounter) --m_castCounter; }
|
||||||
|
|
||||||
ObjectGuid m_ObjectSlotGuid[4];
|
ObjectGuid m_ObjectSlotGuid[MAX_OBJECT_SLOT];
|
||||||
uint32 m_detectInvisibilityMask;
|
uint32 m_detectInvisibilityMask;
|
||||||
uint32 m_invisibilityMask;
|
uint32 m_invisibilityMask;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "12664"
|
#define REVISION_NR "12665"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue