Core/Achievements: Fixed achievement criteria StartEvent and FailEvent
* Criteria using StartEvent cannot be updated without that event triggering first (not only for timed achievements) * Implemented most StartEvent and FailEvent types * Fixed saving criteria removed by RemoveCriteriaProgress Port From (https://github.com/TrinityCore/TrinityCore/commit/41a20b1e4008d450d075847ef1fe367f0e3a240f)
This commit is contained in:
@@ -2164,17 +2164,14 @@ namespace Game.Spells
|
||||
Player player = unit.ToPlayer();
|
||||
if (player != null)
|
||||
{
|
||||
player.StartCriteriaTimer(CriteriaStartEvent.BeSpellTarget, m_spellInfo.Id);
|
||||
player.FailCriteria(CriteriaFailEvent.BeSpellTarget, m_spellInfo.Id);
|
||||
player.StartCriteria(CriteriaStartEvent.BeSpellTarget, m_spellInfo.Id);
|
||||
player.UpdateCriteria(CriteriaType.BeSpellTarget, m_spellInfo.Id, 0, 0, m_caster);
|
||||
player.UpdateCriteria(CriteriaType.GainAura, m_spellInfo.Id);
|
||||
}
|
||||
|
||||
Player casterPlayer = m_caster.ToPlayer();
|
||||
if (casterPlayer != null)
|
||||
{
|
||||
casterPlayer.StartCriteriaTimer(CriteriaStartEvent.CastSpell, m_spellInfo.Id);
|
||||
casterPlayer.UpdateCriteria(CriteriaType.LandTargetedSpellOnTarget, m_spellInfo.Id, 0, 0, unit);
|
||||
}
|
||||
|
||||
if (m_caster != unit)
|
||||
{
|
||||
@@ -2915,10 +2912,12 @@ namespace Game.Spells
|
||||
{
|
||||
if (!Convert.ToBoolean(_triggeredCastFlags & TriggerCastFlags.IgnoreCastItem) && m_CastItem != null)
|
||||
{
|
||||
player.StartCriteriaTimer(CriteriaStartEvent.UseItem, m_CastItem.GetEntry());
|
||||
player.StartCriteria(CriteriaStartEvent.UseItem, m_CastItem.GetEntry());
|
||||
player.UpdateCriteria(CriteriaType.UseItem, m_CastItem.GetEntry());
|
||||
}
|
||||
|
||||
player.FailCriteria(CriteriaFailEvent.CastSpell, m_spellInfo.Id);
|
||||
player.StartCriteria(CriteriaStartEvent.CastSpell, m_spellInfo.Id);
|
||||
player.UpdateCriteria(CriteriaType.CastSpell, m_spellInfo.Id);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user