feat(Core/SmartAI): Add more smart events (#16642)

* init

* :)

* Update rev_1687966694240866600.sql

* >:)

change name from unit -> target
fix typo

Co-Authored-By: Angelo Venturini <nefertum.dev@protonmail.com>

* Update data/sql/updates/pending_db_world/rev_1687966694240866600.sql

Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>

* more_events

* Update SmartScriptMgr.cpp

---------

Co-authored-by: Angelo Venturini <nefertum.dev@protonmail.com>
Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
This commit is contained in:
Gultask
2023-07-02 03:57:56 -03:00
committed by GitHub
parent d0fa5f04ef
commit 54f8386d99
4 changed files with 148 additions and 23 deletions

View File

@@ -206,10 +206,12 @@ enum SMART_EVENT
/* AC Custom Events */
SMART_EVENT_AC_START = 100,
SMART_EVENT_NEAR_PLAYERS = 101, // min, radius, first timer, check timer
SMART_EVENT_NEAR_PLAYERS_NEGATION = 102, // min, radius, first timer, check timer
SMART_EVENT_NEAR_PLAYERS = 101, // min, radius, first timer, repeatMin, repeatMax
SMART_EVENT_NEAR_PLAYERS_NEGATION = 102, // max, radius, first timer, repeatMin, repeatMax
SMART_EVENT_NEAR_UNIT = 103, // type (0: creature 1: gob), entry, count, range, timer
SMART_EVENT_AREA_CASTING = 104, // spellId (0: any), range (0: any), repeatMin, repeatMax, checkTimer
SMART_EVENT_AC_END = 103
SMART_EVENT_AC_END = 105
};
struct SmartEvent
@@ -482,17 +484,37 @@ struct SmartEvent
uint32 minCount;
uint32 radius;
uint32 firstTimer;
uint32 checkTimer;
uint32 repeatMin;
uint32 repeatMax;
} nearPlayer;
struct
{
uint32 minCount;
uint32 maxCount;
uint32 radius;
uint32 firstTimer;
uint32 checkTimer;
uint32 repeatMin;
uint32 repeatMax;
} nearPlayerNegation;
struct
{
uint32 type;
uint32 entry;
uint32 count;
uint32 range;
uint32 timer;
} nearUnit;
struct
{
uint32 spellId;
uint32 range;
uint32 repeatMin;
uint32 repeatMax;
uint32 checkTimer;
} areaCasting;
struct
{
uint32 param1;
@@ -1795,8 +1817,10 @@ const uint32 SmartAIEventMask[SMART_EVENT_AC_END][2] =
{ 0, 0 }, // 98
{ 0, 0 }, // 99
{ 0, 0 }, // 100
{SMART_EVENT_NEAR_PLAYERS, SMART_SCRIPT_TYPE_MASK_CREATURE },
{SMART_EVENT_NEAR_PLAYERS_NEGATION, SMART_SCRIPT_TYPE_MASK_CREATURE }
{SMART_EVENT_NEAR_PLAYERS, SMART_SCRIPT_TYPE_MASK_CREATURE + SMART_SCRIPT_TYPE_MASK_GAMEOBJECT },
{SMART_EVENT_NEAR_PLAYERS_NEGATION, SMART_SCRIPT_TYPE_MASK_CREATURE + SMART_SCRIPT_TYPE_MASK_GAMEOBJECT },
{SMART_EVENT_NEAR_UNIT, SMART_SCRIPT_TYPE_MASK_CREATURE + SMART_SCRIPT_TYPE_MASK_GAMEOBJECT },
{SMART_EVENT_AREA_CASTING, SMART_SCRIPT_TYPE_MASK_CREATURE }
};
enum SmartEventFlags