feat(Core/SmartAI): Add support for waypoint_data in SAI (#18706)

* Create rev_1712670662273633900.sql

* eol?

* doesn't like a comment at the end, ok, ok

* init

* mack

* Update SmartScript.cpp

* kurzel

* random paths and garg

* Update rev_1712889530436412200.sql

* brend & marge

* Update rev_1712889530436412200.sql

* movement actions

* Update SmartScriptMgr.h
This commit is contained in:
Gultask
2024-04-18 10:31:41 -03:00
committed by GitHub
parent 5386443388
commit 6f154d0a6b
6 changed files with 813 additions and 2 deletions

View File

@@ -214,8 +214,10 @@ enum SMART_EVENT
SMART_EVENT_AREA_CASTING = 105, // min, max, repeatMin, repeatMax, rangeMin, rangeMax
SMART_EVENT_AREA_RANGE = 106, // min, max, repeatMin, repeatMax, rangeMin, rangeMax
SMART_EVENT_SUMMONED_UNIT_EVADE = 107, // CreatureId(0 all), CooldownMin, CooldownMax
SMART_EVENT_WAYPOINT_DATA_REACHED = 108, // PointId (0: any), pathId (0: any)
SMART_EVENT_WAYPOINT_DATA_ENDED = 109, // PointId (0: any), pathId (0: any)
SMART_EVENT_AC_END = 108
SMART_EVENT_AC_END = 110
};
struct SmartEvent
@@ -507,6 +509,12 @@ struct SmartEvent
uint32 timer;
} nearUnitNegation;
struct
{
uint32 pointId;
uint32 pathId;
} wpData;
struct
{
uint32 param1;
@@ -714,8 +722,13 @@ enum SMART_ACTION
SMART_ACTION_PLAY_SPELL_VISUAL = 229, // visualId, visualIdImpact
SMART_ACTION_FOLLOW_GROUP = 230, // followState, followType, dist
SMART_ACTION_SET_ORIENTATION_TARGET = 231, // type, target_type, target_param1, target_param2, target_param3, target_param4
SMART_ACTION_WAYPOINT_DATA_START = 232, // pathId, repeat
SMART_ACTION_WAYPOINT_DATA_RANDOM = 233, // pathId1, pathId2, repeat
SMART_ACTION_MOVEMENT_STOP = 234, //
SMART_ACTION_MOVEMENT_PAUSE = 235, // timer
SMART_ACTION_MOVEMENT_RESUME = 236, // timerOverride
SMART_ACTION_AC_END = 232, // placeholder
SMART_ACTION_AC_END = 237, // placeholder
};
enum class SmartActionSummonCreatureFlags
@@ -1434,6 +1447,24 @@ struct SmartAction
uint32 targetParam3;
uint32 targetParam4;
} orientationTarget;
struct
{
uint32 pathId;
SAIBool repeat;
} wpData;
struct
{
uint32 pathId1;
uint32 pathId2;
SAIBool repeat;
} wpDataRandom;
struct
{
uint32 timer;
} move;
//! Note for any new future actions
//! All parameters must have type uint32
@@ -1844,6 +1875,8 @@ const uint32 SmartAIEventMask[SMART_EVENT_AC_END][2] =
{SMART_EVENT_AREA_CASTING, SMART_SCRIPT_TYPE_MASK_CREATURE },
{SMART_EVENT_AREA_RANGE, SMART_SCRIPT_TYPE_MASK_CREATURE },
{SMART_EVENT_SUMMONED_UNIT_EVADE, SMART_SCRIPT_TYPE_MASK_CREATURE + SMART_SCRIPT_TYPE_MASK_GAMEOBJECT },
{SMART_EVENT_WAYPOINT_DATA_REACHED, SMART_SCRIPT_TYPE_MASK_CREATURE },
{SMART_EVENT_WAYPOINT_DATA_ENDED, SMART_SCRIPT_TYPE_MASK_CREATURE },
};
enum SmartEventFlags