Core/Conditions: Sync CONDITION_QUEST_OBJECTIVE_PROGRESS implementation

Port From (https://github.com/TrinityCore/TrinityCore/commit/3d3d255a47725398fd4d011a1a01eee141691ec4)
This commit is contained in:
hondacrx
2021-12-22 20:30:31 -05:00
parent ca64ca25f6
commit 97730e14ad
4 changed files with 16 additions and 6 deletions
+3 -3
View File
@@ -357,7 +357,7 @@ namespace Game.Conditions
}
break;
}
case ConditionTypes.ObjectiveComplete:
case ConditionTypes.ObjectiveProgress:
{
if (player)
{
@@ -373,7 +373,7 @@ namespace Game.Conditions
if (slot >= SharedConst.MaxQuestLogSize)
break;
condMeets = (!player.GetQuestRewardStatus(questObj.QuestID) && player.IsQuestObjectiveComplete(slot, quest, questObj));
condMeets = player.GetQuestSlotObjectiveData(slot, questObj) == ConditionValue3;
}
break;
}
@@ -502,7 +502,7 @@ namespace Game.Conditions
mask |= GridMapTypeMask.AreaTrigger;
break;
case ConditionTypes.DailyQuestDone:
case ConditionTypes.ObjectiveComplete:
case ConditionTypes.ObjectiveProgress:
mask |= GridMapTypeMask.Player;
break;
default:
+8 -2
View File
@@ -1625,7 +1625,7 @@ namespace Game
}
break;
}
case ConditionTypes.ObjectiveComplete:
case ConditionTypes.ObjectiveProgress:
{
QuestObjective obj = Global.ObjectMgr.GetQuestObjective(cond.ConditionValue1);
if (obj == null)
@@ -1633,6 +1633,12 @@ namespace Game
Log.outError(LogFilter.Sql, "{0} points to non-existing quest objective ({1}), skipped.", cond.ToString(true), cond.ConditionValue1);
return false;
}
int limit = obj.IsStoringFlag() ? 1 : obj.Amount;
if (cond.ConditionValue3 > limit)
{
Log.outError(LogFilter.Sql, $"{cond.ToString(true)} has quest objective count {cond.ConditionValue3} in value3, but quest objective {cond.ConditionValue1} has a maximum objective count of {limit}, skipped.");
return false;
}
break;
}
case ConditionTypes.PetType:
@@ -2573,7 +2579,7 @@ namespace Game
new ConditionTypeInfo("Pet type", true, false, false),
new ConditionTypeInfo("On Taxi", false,false, false),
new ConditionTypeInfo("Quest state mask", true, true, false),
new ConditionTypeInfo("Objective Complete", true, false, false),
new ConditionTypeInfo("Quest objective progress", true, false, true),
new ConditionTypeInfo("Map Difficulty", true, false, false),
new ConditionTypeInfo("Is Gamemaster", true, false, false),
new ConditionTypeInfo("Object Entry or Guid", true, true, true),