Core/Quests: Implement new quest objective types QUEST_OBJECTIVE_LEARNSPELL, QUEST_OBJECTIVE_AREA_TRIGGER_ENTER, QUEST_OBJECTIVE_AREA_TRIGGER_EXIT
Port From (https://github.com/TrinityCore/TrinityCore/commit/254d5af7c2970620ae3bcecea4b7f1d65597f8b6)
This commit is contained in:
@@ -452,9 +452,13 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
Player player = unit.ToPlayer();
|
Player player = unit.ToPlayer();
|
||||||
if (player)
|
if (player)
|
||||||
|
{
|
||||||
if (player.IsDebugAreaTriggers)
|
if (player.IsDebugAreaTriggers)
|
||||||
player.SendSysMessage(CypherStrings.DebugAreatriggerEntered, GetTemplate().Id);
|
player.SendSysMessage(CypherStrings.DebugAreatriggerEntered, GetTemplate().Id);
|
||||||
|
|
||||||
|
player.UpdateQuestObjectiveProgress(QuestObjectiveType.AreaTriggerEnter, (int)GetEntry(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
DoActions(unit);
|
DoActions(unit);
|
||||||
|
|
||||||
_ai.OnUnitEnter(unit);
|
_ai.OnUnitEnter(unit);
|
||||||
@@ -467,9 +471,13 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
Player player = leavingUnit.ToPlayer();
|
Player player = leavingUnit.ToPlayer();
|
||||||
if (player)
|
if (player)
|
||||||
|
{
|
||||||
if (player.IsDebugAreaTriggers)
|
if (player.IsDebugAreaTriggers)
|
||||||
player.SendSysMessage(CypherStrings.DebugAreatriggerLeft, GetTemplate().Id);
|
player.SendSysMessage(CypherStrings.DebugAreatriggerLeft, GetTemplate().Id);
|
||||||
|
|
||||||
|
player.UpdateQuestObjectiveProgress(QuestObjectiveType.AreaTriggerExit, (int)GetEntry(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
UndoActions(leavingUnit);
|
UndoActions(leavingUnit);
|
||||||
|
|
||||||
_ai.OnUnitExit(leavingUnit);
|
_ai.OnUnitExit(leavingUnit);
|
||||||
|
|||||||
@@ -2268,7 +2268,7 @@ namespace Game.Entities
|
|||||||
UpdateQuestObjectiveProgress(QuestObjectiveType.ObtainCurrency, (int)currencyId, change);
|
UpdateQuestObjectiveProgress(QuestObjectiveType.ObtainCurrency, (int)currencyId, change);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateQuestObjectiveProgress(QuestObjectiveType objectiveType, int objectId, long addCount, ObjectGuid victimGuid = default)
|
public void UpdateQuestObjectiveProgress(QuestObjectiveType objectiveType, int objectId, long addCount, ObjectGuid victimGuid = default)
|
||||||
{
|
{
|
||||||
bool anyObjectiveChangedCompletionState = false;
|
bool anyObjectiveChangedCompletionState = false;
|
||||||
|
|
||||||
|
|||||||
@@ -2072,7 +2072,8 @@ namespace Game.Entities
|
|||||||
LearnSpell(id, false, fromSkill);
|
LearnSpell(id, false, fromSkill);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
UpdateQuestObjectiveProgress(QuestObjectiveType.LearnSpell, (int)spellId, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveSpell(uint spellId, bool disabled = false, bool learnLowRank = true, bool suppressMessaging = false)
|
public void RemoveSpell(uint spellId, bool disabled = false, bool learnLowRank = true, bool suppressMessaging = false)
|
||||||
|
|||||||
Reference in New Issue
Block a user