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:
@@ -416,7 +416,7 @@ namespace Game.Entities
|
||||
}
|
||||
}
|
||||
|
||||
m_achievementSys.UpdateTimedCriteria(diff);
|
||||
m_achievementSys.UpdateTimedCriteria(TimeSpan.FromMilliseconds(diff));
|
||||
|
||||
if (HasUnitState(UnitState.MeleeAttacking) && !HasUnitState(UnitState.Casting | UnitState.Charging))
|
||||
{
|
||||
@@ -662,7 +662,7 @@ namespace Game.Entities
|
||||
UpdateCriteria(CriteriaType.DieInInstance, 1);
|
||||
|
||||
// reset all death criterias
|
||||
ResetCriteria(CriteriaFailEvent.Death, 0);
|
||||
FailCriteria(CriteriaFailEvent.Death, 0);
|
||||
}
|
||||
|
||||
base.SetDeathState(s);
|
||||
@@ -5365,6 +5365,7 @@ namespace Game.Entities
|
||||
DB.Characters.CommitTransaction(trans);
|
||||
}
|
||||
|
||||
StartCriteria(CriteriaStartEvent.ReachLevel, level);
|
||||
UpdateCriteria(CriteriaType.ReachLevel);
|
||||
UpdateCriteria(CriteriaType.ActivelyReachLevel, level);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user