Oops clicked too soon.
This commit is contained in:
@@ -64,8 +64,8 @@ namespace Framework.Constants
|
|||||||
JoinArenas = 5,
|
JoinArenas = 5,
|
||||||
JoinDungeonFinder = 6,
|
JoinDungeonFinder = 6,
|
||||||
IgnoreIdleConnection = 7,
|
IgnoreIdleConnection = 7,
|
||||||
// 8 - Reuse
|
CannotEarnAchievements = 8,
|
||||||
// 9 - Reuse
|
CannotEarnRealmFirstAchievements = 9,
|
||||||
UseCharacterTemplates = 10,
|
UseCharacterTemplates = 10,
|
||||||
LogGmTrade = 11,
|
LogGmTrade = 11,
|
||||||
SkipCheckCharacterCreationDemonHunter = 12,
|
SkipCheckCharacterCreationDemonHunter = 12,
|
||||||
|
|||||||
@@ -88,10 +88,15 @@ namespace Game.Achievements
|
|||||||
(achievement.Faction == AchievementFaction.Alliance && referencePlayer.GetTeam() != Team.Alliance))
|
(achievement.Faction == AchievementFaction.Alliance && referencePlayer.GetTeam() != Team.Alliance))
|
||||||
{
|
{
|
||||||
Log.outTrace(LogFilter.Achievement, "CanUpdateCriteriaTree: (Id: {0} Type {1} Achievement {2}) Wrong faction",
|
Log.outTrace(LogFilter.Achievement, "CanUpdateCriteriaTree: (Id: {0} Type {1} Achievement {2}) Wrong faction",
|
||||||
criteria.Id, criteria.Entry.Type, achievement.Id);
|
criteria.Id, criteria.Entry.Type, achievement.Id);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Don't update realm first achievements if the player's account isn't allowed to do so
|
||||||
|
if (achievement.Flags.HasAnyFlag(AchievementFlags.RealmFirstReach | AchievementFlags.RealmFirstKill))
|
||||||
|
if (referencePlayer.GetSession().HasPermission(RBACPermissions.CannotEarnRealmFirstAchievements))
|
||||||
|
return false;
|
||||||
|
|
||||||
if (achievement.CovenantID != 0 && referencePlayer.m_playerData.CovenantID != achievement.CovenantID)
|
if (achievement.CovenantID != 0 && referencePlayer.m_playerData.CovenantID != achievement.CovenantID)
|
||||||
{
|
{
|
||||||
Log.outTrace(LogFilter.Achievement, $"CanUpdateCriteriaTree: (Id: {criteria.Id} Type {criteria.Entry.Type} Achievement {achievement.Id}) Wrong covenant");
|
Log.outTrace(LogFilter.Achievement, $"CanUpdateCriteriaTree: (Id: {criteria.Id} Type {criteria.Entry.Type} Achievement {achievement.Id}) Wrong covenant");
|
||||||
@@ -373,8 +378,8 @@ namespace Game.Achievements
|
|||||||
{
|
{
|
||||||
Log.outDebug(LogFilter.Achievement, $"ResetAchievementCriteria({failEvent}, {failAsset}, {evenIfCriteriaComplete})");
|
Log.outDebug(LogFilter.Achievement, $"ResetAchievementCriteria({failEvent}, {failAsset}, {evenIfCriteriaComplete})");
|
||||||
|
|
||||||
// disable for gamemasters with GM-mode enabled
|
// Disable for GameMasters with GM-mode enabled or for players that don't have the related RBAC permission
|
||||||
if (_owner.IsGameMaster())
|
if (_owner.IsGameMaster() || _owner.GetSession().HasPermission(RBACPermissions.CannotEarnAchievements))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var achievementCriteriaList = Global.CriteriaMgr.GetCriteriaByFailEvent(failEvent, (int)failAsset);
|
var achievementCriteriaList = Global.CriteriaMgr.GetCriteriaByFailEvent(failEvent, (int)failAsset);
|
||||||
@@ -499,8 +504,8 @@ namespace Game.Achievements
|
|||||||
|
|
||||||
public override void CompletedAchievement(AchievementRecord achievement, Player referencePlayer)
|
public override void CompletedAchievement(AchievementRecord achievement, Player referencePlayer)
|
||||||
{
|
{
|
||||||
// disable for gamemasters with GM-mode enabled
|
// Disable for GameMasters with GM-mode enabled or for players that don't have the related RBAC permission
|
||||||
if (_owner.IsGameMaster())
|
if (_owner.IsGameMaster() || _owner.GetSession().HasPermission(RBACPermissions.CannotEarnAchievements))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ((achievement.Faction == AchievementFaction.Horde && referencePlayer.GetTeam() != Team.Horde) ||
|
if ((achievement.Faction == AchievementFaction.Horde && referencePlayer.GetTeam() != Team.Horde) ||
|
||||||
|
|||||||
@@ -70,10 +70,11 @@ namespace Game.Achievements
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// disable for gamemasters with GM-mode enabled
|
// Disable for GameMasters with GM-mode enabled or for players that don't have the related RBAC permission
|
||||||
if (referencePlayer.IsGameMaster())
|
if (referencePlayer.IsGameMaster() || referencePlayer.GetSession().HasPermission(RBACPermissions.CannotEarnAchievements))
|
||||||
{
|
{
|
||||||
Log.outDebug(LogFilter.Achievement, "UpdateCriteria: [Player {0} GM mode on] {1}, {2} ({3}), {4}, {5}, {6}", referencePlayer.GetName(), GetOwnerInfo(), type, type, miscValue1, miscValue2, miscValue3);
|
Log.outDebug(LogFilter.Achievement, $"CriteriaHandler::UpdateCriteria: [Player {referencePlayer.GetName()} {(referencePlayer.IsGameMaster() ? "GM mode on" : "disallowed by RBAC")}]" +
|
||||||
|
$" {GetOwnerInfo()}, {type} ({(uint)type}), {miscValue1}, {miscValue2}, {miscValue3}");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user