Do not remove poison enchantment auras when entering arena battle.
--HG-- branch : trunk
This commit is contained in:
@@ -957,7 +957,7 @@ void BattleGround::AddPlayer(Player *plr)
|
||||
{
|
||||
plr->RemoveArenaSpellCooldowns();
|
||||
plr->RemoveArenaAuras();
|
||||
plr->RemoveAllEnchantments(TEMP_ENCHANTMENT_SLOT);
|
||||
plr->RemoveAllEnchantments(TEMP_ENCHANTMENT_SLOT, true);
|
||||
if(team == ALLIANCE) // gold
|
||||
{
|
||||
if(plr->GetTeam() == HORDE)
|
||||
|
||||
+14
-1
@@ -11539,7 +11539,7 @@ void Player::RemoveEnchantmentDurations(Item *item)
|
||||
}
|
||||
}
|
||||
|
||||
void Player::RemoveAllEnchantments(EnchantmentSlot slot)
|
||||
void Player::RemoveAllEnchantments(EnchantmentSlot slot, bool arena)
|
||||
{
|
||||
// remove enchantments from equipped items first to clean up the m_enchantDuration list
|
||||
for(EnchantDurationList::iterator itr = m_enchantDuration.begin(),next;itr != m_enchantDuration.end();itr=next)
|
||||
@@ -11547,6 +11547,19 @@ void Player::RemoveAllEnchantments(EnchantmentSlot slot)
|
||||
next = itr;
|
||||
if(itr->slot==slot)
|
||||
{
|
||||
if(arena && itr->item)
|
||||
{
|
||||
uint32 enchant_id = itr->item->GetEnchantmentId(slot);
|
||||
if(enchant_id)
|
||||
{
|
||||
SpellItemEnchantmentEntry const *pEnchant = sSpellItemEnchantmentStore.LookupEntry(enchant_id);
|
||||
if(pEnchant && pEnchant->aura_id == ITEM_ENCHANTMENT_AURAID_POISON)
|
||||
{
|
||||
++next;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(itr->item && itr->item->GetEnchantmentId(slot))
|
||||
{
|
||||
// remove from stats
|
||||
|
||||
+1
-1
@@ -1154,7 +1154,7 @@ class TRINITY_DLL_SPEC Player : public Unit
|
||||
void UpdateItemDuration(uint32 time, bool realtimeonly=false);
|
||||
void AddEnchantmentDurations(Item *item);
|
||||
void RemoveEnchantmentDurations(Item *item);
|
||||
void RemoveAllEnchantments(EnchantmentSlot slot);
|
||||
void RemoveAllEnchantments(EnchantmentSlot slot, bool arena);
|
||||
void AddEnchantmentDuration(Item *item,EnchantmentSlot slot,uint32 duration);
|
||||
void ApplyEnchantment(Item *item,EnchantmentSlot slot,bool apply, bool apply_dur = true, bool ignore_condition = false);
|
||||
void ApplyEnchantment(Item *item,bool apply);
|
||||
|
||||
+2
-2
@@ -485,7 +485,7 @@ enum ProcFlags
|
||||
PROC_FLAG_KILLED = 0x00000001, // 00 Killed by agressor
|
||||
PROC_FLAG_KILL_AND_GET_XP = 0x00000002, // 01 Kill that yields experience or honor
|
||||
|
||||
PROC_FLAG_SUCCESSFUL_MILEE_HIT = 0x00000004, // 02 Successful melee attack
|
||||
PROC_FLAG_SUCCESSFUL_MELEE_HIT = 0x00000004, // 02 Successful melee attack
|
||||
PROC_FLAG_TAKEN_MELEE_HIT = 0x00000008, // 03 Taken damage from melee strike hit
|
||||
|
||||
PROC_FLAG_SUCCESSFUL_MELEE_SPELL_HIT = 0x00000010, // 04 Successful attack by Spell that use melee weapon
|
||||
@@ -519,7 +519,7 @@ enum ProcFlags
|
||||
PROC_FLAG_SUCCESSFUL_OFFHAND_HIT = 0x00800000 // 23 Successful off-hand melee attacks
|
||||
};
|
||||
|
||||
#define MELEE_BASED_TRIGGER_MASK (PROC_FLAG_SUCCESSFUL_MILEE_HIT | \
|
||||
#define MELEE_BASED_TRIGGER_MASK (PROC_FLAG_SUCCESSFUL_MELEE_HIT | \
|
||||
PROC_FLAG_TAKEN_MELEE_HIT | \
|
||||
PROC_FLAG_SUCCESSFUL_MELEE_SPELL_HIT | \
|
||||
PROC_FLAG_TAKEN_MELEE_SPELL_HIT | \
|
||||
|
||||
+2
-2
@@ -1334,12 +1334,12 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da
|
||||
switch (attackType)
|
||||
{
|
||||
case BASE_ATTACK:
|
||||
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MILEE_HIT;
|
||||
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MELEE_HIT;
|
||||
damageInfo->procVictim = PROC_FLAG_TAKEN_MELEE_HIT;
|
||||
damageInfo->HitInfo = HITINFO_NORMALSWING2;
|
||||
break;
|
||||
case OFF_ATTACK:
|
||||
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MILEE_HIT | PROC_FLAG_SUCCESSFUL_OFFHAND_HIT;
|
||||
damageInfo->procAttacker = PROC_FLAG_SUCCESSFUL_MELEE_HIT | PROC_FLAG_SUCCESSFUL_OFFHAND_HIT;
|
||||
damageInfo->procVictim = PROC_FLAG_TAKEN_MELEE_HIT;//|PROC_FLAG_TAKEN_OFFHAND_HIT // not used
|
||||
damageInfo->HitInfo = HITINFO_LEFTSWING;
|
||||
break;
|
||||
|
||||
@@ -98,6 +98,16 @@ enum ItemEnchantmentType
|
||||
ITEM_ENCHANTMENT_TYPE_TOTEM = 6
|
||||
};
|
||||
|
||||
enum ItemEnchantmentAuraId
|
||||
{
|
||||
ITEM_ENCHANTMENT_AURAID_POISON = 26,
|
||||
ITEM_ENCHANTMENT_AURAID_NORMAL = 28,
|
||||
ITEM_ENCHANTMENT_AURAID_FIRE = 32,
|
||||
ITEM_ENCHANTMENT_AURAID_FROST = 33,
|
||||
ITEM_ENCHANTMENT_AURAID_NATURE = 81,
|
||||
ITEM_ENCHANTMENT_AURAID_SHADOW = 107
|
||||
};
|
||||
|
||||
enum TotemCategoryType
|
||||
{
|
||||
TOTEM_CATEGORY_TYPE_KNIFE = 1,
|
||||
|
||||
Reference in New Issue
Block a user