*Fix auras amount after relog

--HG--
branch : trunk
This commit is contained in:
QAston
2009-04-08 00:07:32 +02:00
parent af406ef271
commit ebc7176678
3 changed files with 4 additions and 2 deletions
+1 -1
View File
@@ -15862,7 +15862,7 @@ void Player::_SaveAuras()
CharacterDatabase.PExecute("INSERT INTO character_aura (guid,caster_guid,spell,effect_mask,stackcount,amount0, amount1, amount2,maxduration,remaintime,remaincharges) " CharacterDatabase.PExecute("INSERT INTO character_aura (guid,caster_guid,spell,effect_mask,stackcount,amount0, amount1, amount2,maxduration,remaintime,remaincharges) "
"VALUES ('%u', '" I64FMTD "', '%u', '%u', '%d', '%d', '%d', '%d', '%d', '%d', '%d')", "VALUES ('%u', '" I64FMTD "', '%u', '%u', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
GetGUIDLow(), itr->second->GetCasterGUID(),(uint32)itr->second->GetId(), (uint32)itr->second->GetEffectMask(), GetGUIDLow(), itr->second->GetCasterGUID(),(uint32)itr->second->GetId(), (uint32)itr->second->GetEffectMask(),
(uint32)itr->second->GetStackAmount(), (int32)amounts[0], (int32)amounts[1], (int32)amounts[2] (int32)itr->second->GetStackAmount(), (int32)amounts[0], (int32)amounts[1], (int32)amounts[2]
,int(itr->second->GetAuraMaxDuration()),int(itr->second->GetAuraDuration()),int(itr->second->GetAuraCharges())); ,int(itr->second->GetAuraMaxDuration()),int(itr->second->GetAuraDuration()),int(itr->second->GetAuraCharges()));
} }
} }
+1 -1
View File
@@ -1310,7 +1310,7 @@ void Aura::SetLoadedState(uint64 caster_guid,int32 maxduration,int32 duration,in
m_stackAmount = stackamount; m_stackAmount = stackamount;
for (uint8 i=0; i<MAX_SPELL_EFFECTS;++i) for (uint8 i=0; i<MAX_SPELL_EFFECTS;++i)
if (m_partAuras[i]) if (m_partAuras[i])
m_partAuras[i]->SetAmount(amount[0]+i); m_partAuras[i]->SetAmount(amount[i]);
} }
void AuraEffect::HandleShapeshiftBoosts(bool apply) void AuraEffect::HandleShapeshiftBoosts(bool apply)
+2
View File
@@ -2061,6 +2061,8 @@ void Spell::EffectTriggerSpell(uint32 i)
{ {
m_caster->RemoveAura(iter->second); m_caster->RemoveAura(iter->second);
} }
else
iter++;
} }
return; return;
} }