Core/SAI: Added support for StringIds to creature and gameobject targets

Port From (https://github.com/TrinityCore/TrinityCore/commit/2ce40684595a0e49a7b2355012c2806952698ce4)
This commit is contained in:
Hondacrx
2024-08-05 17:23:37 -04:00
parent 54e6b02ffc
commit 5a9714a375
15 changed files with 149 additions and 118 deletions
+1 -1
View File
@@ -103,7 +103,7 @@ namespace Framework.Constants
/// <summary>
/// Smart AI Const
/// </summary>
public const int SmartEventParamCount = 4;
public const int SmartEventParamCount = 5;
public const int SmartActionParamCount = 7;
public const uint SmartSummonCounter = 0xFFFFFF;
public const uint SmartEscortTargets = 0xFFFFFF;
+7 -7
View File
@@ -321,7 +321,7 @@ namespace Framework.Constants
RemoveNpcFlag = 83, // Flags
SimpleTalk = 84, // Groupid, Can Be Used To Make Players Say Groupid, TextOver Event Is Not Triggered, Whisper Can Not Be Used (Target Units Will Say The Text)
SelfCast = 85, // Spellid, Castflags
CrossCast = 86, // Spellid, Castflags, Castertargettype, Castertarget Param1, Castertarget Param2, Castertarget Param3, ( + The Origonal Target Fields As Destination Target), Castertargets Will Cast Spellid On All Targets (Use With Caution If Targeting Multiple * Multiple Units)
CrossCast = 86, // spellID, castFlags, CasterTargetType, CasterTarget param1, CasterTarget param2, CasterTarget param3, CasterTarget param4, CasterTarget ParamString ( + the original target fields as Destination target), CasterTargets will cast spellID on all Targets (use with caution if targeting multiple * multiple units)
CallRandomTimedActionlist = 87, // Script9 Ids 1-9
CallRandomRangeTimedActionlist = 88, // Script9 Id Min, Max
RandomMove = 89, // Maxdist
@@ -401,18 +401,18 @@ namespace Framework.Constants
HostileRandomNotTop = 6, // Any random target except top threat, maxdist, playerOnly, powerType + 1
ActionInvoker = 7, // Unit Who Caused This Event To Occur
Position = 8, // Use Xyz From Event Params
CreatureRange = 9, // Creatureentry(0any), Mindist, Maxdist
CreatureRange = 9, // Creatureentry(0any), Mindist, Maxdist, maxSize, StringId
CreatureGuid = 10, // Guid, Entry
CreatureDistance = 11, // Creatureentry(0any), Maxdist
CreatureDistance = 11, // Creatureentry(0any), Maxdist, maxSize, StringId
Stored = 12, // Id, Uses Pre-Stored Target(List)
GameobjectRange = 13, // Entry(0any), Min, Max
GameobjectRange = 13, // Entry(0any), minDist, maxDist, StringId
GameobjectGuid = 14, // Guid, Entry
GameobjectDistance = 15, // Entry(0any), Maxdist
GameobjectDistance = 15, // Entry(0any), Maxdist, StringId
InvokerParty = 16, // Invoker'S Party Members
PlayerRange = 17, // Min, Max
PlayerDistance = 18, // Maxdist
ClosestCreature = 19, // Creatureentry(0any), Maxdist, Dead?
ClosestGameobject = 20, // Entry(0any), Maxdist
ClosestCreature = 19, // Creatureentry(0any), Maxdist, Dead?, StringId
ClosestGameobject = 20, // Entry(0any), Maxdist, StringId
ClosestPlayer = 21, // Maxdist
ActionInvokerVehicle = 22, // Unit'S Vehicle Who Caused This Event To Occur
OwnerOrSummoner = 23, // Unit's owner or summoner, Use Owner/Charmer of this unit
@@ -11,7 +11,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, Difficulties, 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_SMART_SCRIPTS, "SELECT entryorguid, source_type, id, link, Difficulties, 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, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o FROM smart_scripts ORDER BY entryorguid, source_type, id, link");
PrepareStatement(WorldStatements.DEL_GAMEOBJECT, "DELETE FROM gameobject WHERE guid = ?");
PrepareStatement(WorldStatements.DEL_EVENT_GAMEOBJECT, "DELETE FROM game_event_gameobject WHERE guid = ?");
PrepareStatement(WorldStatements.INS_GRAVEYARD_ZONE, "INSERT INTO graveyard_zone (ID, GhostZone) VALUES (?, ?)");