From f2f765d6501f344510c2087035b7d506ddf66181 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Fri, 6 Jan 2023 15:54:49 -0500 Subject: [PATCH] Core/SAI: Add action param 7 Port From (https://github.com/TrinityCore/TrinityCore/commit/09591fbdb0a81f8565c6a16f844953752f597f18) --- Source/Framework/Constants/SharedConst.cs | 2 +- .../Database/Databases/WorldDatabase.cs | 2 +- Source/Game/AI/SmartScripts/SmartAIManager.cs | 20 ++++++++++--------- Source/Game/AI/SmartScripts/SmartScript.cs | 5 +++-- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/Source/Framework/Constants/SharedConst.cs b/Source/Framework/Constants/SharedConst.cs index 985fd237b..5f5954223 100644 --- a/Source/Framework/Constants/SharedConst.cs +++ b/Source/Framework/Constants/SharedConst.cs @@ -117,7 +117,7 @@ namespace Framework.Constants /// Smart AI Const /// public const int SmartEventParamCount = 4; - public const int SmartActionParamCount = 6; + public const int SmartActionParamCount = 7; public const uint SmartSummonCounter = 0xFFFFFF; public const uint SmartEscortTargets = 0xFFFFFF; diff --git a/Source/Framework/Database/Databases/WorldDatabase.cs b/Source/Framework/Database/Databases/WorldDatabase.cs index f54c9b155..4678e2d8a 100644 --- a/Source/Framework/Database/Databases/WorldDatabase.cs +++ b/Source/Framework/Database/Databases/WorldDatabase.cs @@ -25,7 +25,7 @@ namespace Framework.Database PrepareStatement(WorldStatements.DEL_LINKED_RESPAWN_MASTER, "DELETE FROM linked_respawn WHERE linkedGuid = ? AND linkType = ?"); PrepareStatement(WorldStatements.REP_LINKED_RESPAWN, "REPLACE INTO linked_respawn (guid, linkedGuid, linkType) VALUES (?, ?, ?)"); PrepareStatement(WorldStatements.SEL_CREATURE_TEXT, "SELECT CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange FROM creature_text"); - PrepareStatement(WorldStatements.SEL_SMART_SCRIPTS, "SELECT entryorguid, source_type, id, link, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, target_type, target_param1, target_param2, target_param3, target_param4, target_x, target_y, target_z, target_o FROM smart_scripts ORDER BY entryorguid, source_type, id, link"); + PrepareStatement(WorldStatements.SEL_SMART_SCRIPTS, "SELECT entryorguid, source_type, id, link, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, target_type, target_param1, target_param2, target_param3, target_param4, target_x, target_y, target_z, target_o FROM smart_scripts ORDER BY entryorguid, source_type, id, link"); PrepareStatement(WorldStatements.SEL_SMARTAI_WP, "SELECT entry, pointid, position_x, position_y, position_z, orientation, delay FROM waypoints ORDER BY entry, pointid"); PrepareStatement(WorldStatements.DEL_GAMEOBJECT, "DELETE FROM gameobject WHERE guid = ?"); PrepareStatement(WorldStatements.DEL_EVENT_GAMEOBJECT, "DELETE FROM game_event_gameobject WHERE guid = ?"); diff --git a/Source/Game/AI/SmartScripts/SmartAIManager.cs b/Source/Game/AI/SmartScripts/SmartAIManager.cs index 2f076cbcd..c68de7e68 100644 --- a/Source/Game/AI/SmartScripts/SmartAIManager.cs +++ b/Source/Game/AI/SmartScripts/SmartAIManager.cs @@ -224,16 +224,17 @@ namespace Game.AI temp.Action.raw.param4 = result.Read(18); temp.Action.raw.param5 = result.Read(19); temp.Action.raw.param6 = result.Read(20); + temp.Action.raw.param7 = result.Read(21); - temp.Target.type = (SmartTargets)result.Read(21); - temp.Target.raw.param1 = result.Read(22); - temp.Target.raw.param2 = result.Read(23); - temp.Target.raw.param3 = result.Read(24); - temp.Target.raw.param4 = result.Read(25); - temp.Target.x = result.Read(26); - temp.Target.y = result.Read(27); - temp.Target.z = result.Read(28); - temp.Target.o = result.Read(29); + temp.Target.type = (SmartTargets)result.Read(22); + temp.Target.raw.param1 = result.Read(23); + temp.Target.raw.param2 = result.Read(24); + temp.Target.raw.param3 = result.Read(25); + temp.Target.raw.param4 = result.Read(26); + temp.Target.x = result.Read(27); + temp.Target.y = result.Read(28); + temp.Target.z = result.Read(29); + temp.Target.o = result.Read(30); //check target if (!IsTargetValid(temp)) @@ -3704,6 +3705,7 @@ namespace Game.AI public uint param4; public uint param5; public uint param6; + public uint param7; } #endregion } diff --git a/Source/Game/AI/SmartScripts/SmartScript.cs b/Source/Game/AI/SmartScripts/SmartScript.cs index 8f5d7ca50..51cc7416c 100644 --- a/Source/Game/AI/SmartScripts/SmartScript.cs +++ b/Source/Game/AI/SmartScripts/SmartScript.cs @@ -1606,7 +1606,7 @@ namespace Game.AI if (targets.Empty()) break; - List casters = GetTargets(CreateSmartEvent(SmartEvents.UpdateIc, 0, 0, 0, 0, 0, 0, SmartActions.None, 0, 0, 0, 0, 0, 0, (SmartTargets)e.Action.crossCast.targetType, e.Action.crossCast.targetParam1, e.Action.crossCast.targetParam2, e.Action.crossCast.targetParam3, 0, 0), unit); + List casters = GetTargets(CreateSmartEvent(SmartEvents.UpdateIc, 0, 0, 0, 0, 0, 0, SmartActions.None, 0, 0, 0, 0, 0, 0, 0, (SmartTargets)e.Action.crossCast.targetType, e.Action.crossCast.targetParam1, e.Action.crossCast.targetParam2, e.Action.crossCast.targetParam3, 0, 0), unit); foreach (var caster in casters) { if (!IsUnit(caster)) @@ -2531,7 +2531,7 @@ namespace Game.AI } SmartScriptHolder CreateSmartEvent(SmartEvents e, SmartEventFlags event_flags, uint event_param1, uint event_param2, uint event_param3, uint event_param4, uint event_param5, - SmartActions action, uint action_param1, uint action_param2, uint action_param3, uint action_param4, uint action_param5, uint action_param6, + SmartActions action, uint action_param1, uint action_param2, uint action_param3, uint action_param4, uint action_param5, uint action_param6, uint action_param7, SmartTargets t, uint target_param1, uint target_param2, uint target_param3, uint target_param4, uint phaseMask) { SmartScriptHolder script = new(); @@ -2552,6 +2552,7 @@ namespace Game.AI script.Action.raw.param4 = action_param4; script.Action.raw.param5 = action_param5; script.Action.raw.param6 = action_param6; + script.Action.raw.param7 = action_param7; script.Target.type = t; script.Target.raw.param1 = target_param1;