Core/SmartAI: allow AreaTrigger SAI scripts to use the player triggering it as base object for actions and targeting

Port From (https://github.com/TrinityCore/TrinityCore/commit/1ddde5ca3cac8ac03239882778af3702b59d582d)
This commit is contained in:
hondacrx
2022-02-23 16:28:32 -05:00
parent 475600daa9
commit bbc0c07697
5 changed files with 60 additions and 107 deletions
+7 -7
View File
@@ -36,7 +36,7 @@ namespace Scripts.Smart
Log.outDebug(LogFilter.ScriptsAi, "AreaTrigger {0} is using SmartTrigger script", trigger.Id);
SmartScript script = new();
script.OnInitialize(trigger);
script.OnInitialize(player, trigger);
script.ProcessEventsFor(SmartEvents.AreatriggerOntrigger, player, trigger.Id);
return true;
}
@@ -61,28 +61,28 @@ namespace Scripts.Smart
public override void OnSceneStart(Player player, uint sceneInstanceID, SceneTemplate sceneTemplate)
{
SmartScript smartScript = new();
smartScript.OnInitialize(sceneTemplate);
smartScript.OnInitialize(null, null, sceneTemplate);
smartScript.ProcessEventsFor(SmartEvents.SceneStart, player);
}
public override void OnSceneTriggerEvent(Player player, uint sceneInstanceID, SceneTemplate sceneTemplate, string triggerName)
{
SmartScript smartScript = new();
smartScript.OnInitialize(sceneTemplate);
smartScript.OnInitialize(null, null, sceneTemplate);
smartScript.ProcessEventsFor(SmartEvents.SceneTrigger, player, 0, 0, false, null, null, triggerName);
}
public override void OnSceneCancel(Player player, uint sceneInstanceID, SceneTemplate sceneTemplate)
{
SmartScript smartScript = new();
smartScript.OnInitialize(sceneTemplate);
smartScript.OnInitialize(null, null, sceneTemplate);
smartScript.ProcessEventsFor(SmartEvents.SceneCancel, player);
}
public override void OnSceneComplete(Player player, uint sceneInstanceID, SceneTemplate sceneTemplate)
{
SmartScript smartScript = new();
smartScript.OnInitialize(sceneTemplate);
smartScript.OnInitialize(null, null, sceneTemplate);
smartScript.ProcessEventsFor(SmartEvents.SceneComplete, player);
}
}
@@ -96,7 +96,7 @@ namespace Scripts.Smart
public override void OnQuestStatusChange(Player player, Quest quest, QuestStatus oldStatus, QuestStatus newStatus)
{
SmartScript smartScript = new();
smartScript.OnInitialize(quest);
smartScript.OnInitialize(null, null, null, quest);
switch (newStatus)
{
case QuestStatus.Incomplete:
@@ -124,7 +124,7 @@ namespace Scripts.Smart
if (slot < SharedConst.MaxQuestLogSize && player.IsQuestObjectiveComplete(slot, quest, objective))
{
SmartScript smartScript = new();
smartScript.OnInitialize(quest);
smartScript.OnInitialize(null, null, null, quest);
smartScript.ProcessEventsFor(SmartEvents.QuestObjCompletion, player, objective.Id);
}
}