Positive auras can be cancelled once again :)

This commit is contained in:
tomrus88 2008-11-09 19:53:24 +03:00
parent 1d3667e765
commit 2c1671ef5c
3 changed files with 10 additions and 7 deletions

View file

@ -17753,6 +17753,9 @@ void Player::learnSkillRewardedSpells()
void Player::SendAurasForTarget(Unit *target) void Player::SendAurasForTarget(Unit *target)
{ {
if(target->GetVisibleAuras()->empty()) // speedup things
return;
WorldPacket data(SMSG_AURA_UPDATE_ALL); WorldPacket data(SMSG_AURA_UPDATE_ALL);
data.append(target->GetPackGUID()); data.append(target->GetPackGUID());
@ -17776,7 +17779,7 @@ void Player::SendAurasForTarget(Unit *target)
// charges // charges
data << uint8(aura->m_procCharges); data << uint8(aura->m_procCharges);
if(!(auraFlags & AFLAG_NOT_GUID)) if(!(auraFlags & AFLAG_NOT_CASTER))
{ {
data << uint8(0); // packed GUID of someone (caster?) data << uint8(0); // packed GUID of someone (caster?)
} }

View file

@ -26,8 +26,8 @@ enum AURA_FLAGS
AFLAG_EFF_INDEX_0 = 0x01, AFLAG_EFF_INDEX_0 = 0x01,
AFLAG_EFF_INDEX_1 = 0x02, AFLAG_EFF_INDEX_1 = 0x02,
AFLAG_EFF_INDEX_2 = 0x04, AFLAG_EFF_INDEX_2 = 0x04,
AFLAG_NOT_GUID = 0x08, // caster guid? AFLAG_NOT_CASTER = 0x08,
AFLAG_UNK1 = 0x10, // positive? AFLAG_POSITIVE = 0x10,
AFLAG_DURATION = 0x20, AFLAG_DURATION = 0x20,
AFLAG_UNK2 = 0x40, AFLAG_UNK2 = 0x40,
AFLAG_NEGATIVE = 0x80 AFLAG_NEGATIVE = 0x80

View file

@ -969,7 +969,7 @@ void Aura::_AddAura()
if(slot < MAX_AURAS) // slot found if(slot < MAX_AURAS) // slot found
{ {
SetAura(false); SetAura(false);
SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_GUID | (GetAuraMaxDuration() ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_NONE : AFLAG_NEGATIVE)); SetAuraFlags((1 << GetEffIndex()) | AFLAG_NOT_CASTER | ((GetAuraMaxDuration() > 0) ? AFLAG_DURATION : AFLAG_NONE) | (IsPositive() ? AFLAG_POSITIVE : AFLAG_NEGATIVE));
SetAuraLevel(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL)); SetAuraLevel(caster ? caster->getLevel() : sWorld.getConfig(CONFIG_MAX_PLAYER_LEVEL));
UpdateAuraCharges(); UpdateAuraCharges();
SendAuraUpdate(false); SendAuraUpdate(false);
@ -1126,7 +1126,7 @@ void Aura::SendAuraUpdate(bool remove)
data << uint8(GetAuraLevel()); data << uint8(GetAuraLevel());
data << uint8(GetAuraCharges()); data << uint8(GetAuraCharges());
if(!(auraFlags & AFLAG_NOT_GUID)) if(!(auraFlags & AFLAG_NOT_CASTER))
{ {
data << uint8(0); // pguid data << uint8(0); // pguid
} }