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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user