diff options
| author | Aqua Deus <95978183+aquadeus@users.noreply.github.com> | 2022-12-30 16:32:37 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-30 16:32:37 +0100 |
| commit | 09591fbdb0a81f8565c6a16f844953752f597f18 (patch) | |
| tree | ea0a58c4623805ca085388af4b76b5910234c99b /src/server/game/AI/SmartScripts | |
| parent | bde93b25d2b899c4623467a094c71333b2b54e8d (diff) | |
Core/SAI: Add action param 7 (#28519)
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Diffstat (limited to 'src/server/game/AI/SmartScripts')
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.h | 2 | ||||
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScriptMgr.cpp | 21 | ||||
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScriptMgr.h | 3 |
4 files changed, 17 insertions, 14 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 73913c3b89c..a3f20b9856b 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1672,7 +1672,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u break; ObjectVector casters; - GetTargets(casters, CreateSmartEvent(SMART_EVENT_UPDATE_IC, 0, 0, 0, 0, 0, 0, SMART_ACTION_NONE, 0, 0, 0, 0, 0, 0, (SMARTAI_TARGETS)e.action.crossCast.targetType, e.action.crossCast.targetParam1, e.action.crossCast.targetParam2, e.action.crossCast.targetParam3, 0, 0), unit); + GetTargets(casters, CreateSmartEvent(SMART_EVENT_UPDATE_IC, 0, 0, 0, 0, 0, 0, SMART_ACTION_NONE, 0, 0, 0, 0, 0, 0, 0, (SMARTAI_TARGETS)e.action.crossCast.targetType, e.action.crossCast.targetParam1, e.action.crossCast.targetParam2, e.action.crossCast.targetParam3, 0, 0), unit); for (WorldObject* caster : casters) { @@ -2533,7 +2533,7 @@ void SmartScript::ProcessTimedAction(SmartScriptHolder& e, uint32 const& min, ui RecalcTimer(e, std::min<uint32>(min, 5000), std::min<uint32>(min, 5000)); } -SmartScriptHolder SmartScript::CreateSmartEvent(SMART_EVENT e, uint32 event_flags, uint32 event_param1, uint32 event_param2, uint32 event_param3, uint32 event_param4, uint32 event_param5, SMART_ACTION action, uint32 action_param1, uint32 action_param2, uint32 action_param3, uint32 action_param4, uint32 action_param5, uint32 action_param6, SMARTAI_TARGETS t, uint32 target_param1, uint32 target_param2, uint32 target_param3, uint32 target_param4, uint32 phaseMask) +SmartScriptHolder SmartScript::CreateSmartEvent(SMART_EVENT e, uint32 event_flags, uint32 event_param1, uint32 event_param2, uint32 event_param3, uint32 event_param4, uint32 event_param5, SMART_ACTION action, uint32 action_param1, uint32 action_param2, uint32 action_param3, uint32 action_param4, uint32 action_param5, uint32 action_param6, uint32 action_param7, SMARTAI_TARGETS t, uint32 target_param1, uint32 target_param2, uint32 target_param3, uint32 target_param4, uint32 phaseMask) { SmartScriptHolder script; script.event.type = e; @@ -2553,6 +2553,7 @@ SmartScriptHolder SmartScript::CreateSmartEvent(SMART_EVENT e, uint32 event_flag 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; diff --git a/src/server/game/AI/SmartScripts/SmartScript.h b/src/server/game/AI/SmartScripts/SmartScript.h index 822813e32f3..d0d660b7a29 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.h +++ b/src/server/game/AI/SmartScripts/SmartScript.h @@ -52,7 +52,7 @@ class TC_GAME_API SmartScript void ProcessTimedAction(SmartScriptHolder& e, uint32 const& min, uint32 const& max, Unit* unit = nullptr, uint32 var0 = 0, uint32 var1 = 0, bool bvar = false, SpellInfo const* spell = nullptr, GameObject* gob = nullptr, std::string const& varString = ""); void GetTargets(ObjectVector& targets, SmartScriptHolder const& e, WorldObject* invoker = nullptr) const; void GetWorldObjectsInDist(ObjectVector& objects, float dist) const; - static SmartScriptHolder CreateSmartEvent(SMART_EVENT e, uint32 event_flags, uint32 event_param1, uint32 event_param2, uint32 event_param3, uint32 event_param4, uint32 event_param5, SMART_ACTION action, uint32 action_param1, uint32 action_param2, uint32 action_param3, uint32 action_param4, uint32 action_param5, uint32 action_param6, SMARTAI_TARGETS t, uint32 target_param1, uint32 target_param2, uint32 target_param3, uint32 target_param4, uint32 phaseMask); + static SmartScriptHolder CreateSmartEvent(SMART_EVENT e, uint32 event_flags, uint32 event_param1, uint32 event_param2, uint32 event_param3, uint32 event_param4, uint32 event_param5, SMART_ACTION action, uint32 action_param1, uint32 action_param2, uint32 action_param3, uint32 action_param4, uint32 action_param5, uint32 action_param6, uint32 action_param7, SMARTAI_TARGETS t, uint32 target_param1, uint32 target_param2, uint32 target_param3, uint32 target_param4, uint32 phaseMask); void SetPathId(uint32 id) { mPathId = id; } uint32 GetPathId() const { return mPathId; } WorldObject* GetBaseObject() const; diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index ecfe2faaf05..2db99410223 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -329,16 +329,17 @@ void SmartAIMgr::LoadSmartAIFromDB() temp.action.raw.param4 = fields[18].GetUInt32(); temp.action.raw.param5 = fields[19].GetUInt32(); temp.action.raw.param6 = fields[20].GetUInt32(); - - temp.target.type = (SMARTAI_TARGETS)fields[21].GetUInt8(); - temp.target.raw.param1 = fields[22].GetUInt32(); - temp.target.raw.param2 = fields[23].GetUInt32(); - temp.target.raw.param3 = fields[24].GetUInt32(); - temp.target.raw.param4 = fields[25].GetUInt32(); - temp.target.x = fields[26].GetFloat(); - temp.target.y = fields[27].GetFloat(); - temp.target.z = fields[28].GetFloat(); - temp.target.o = fields[29].GetFloat(); + temp.action.raw.param7 = fields[21].GetUInt32(); + + temp.target.type = (SMARTAI_TARGETS)fields[22].GetUInt8(); + temp.target.raw.param1 = fields[23].GetUInt32(); + temp.target.raw.param2 = fields[24].GetUInt32(); + temp.target.raw.param3 = fields[25].GetUInt32(); + temp.target.raw.param4 = fields[26].GetUInt32(); + temp.target.x = fields[27].GetFloat(); + temp.target.y = fields[28].GetFloat(); + temp.target.z = fields[29].GetFloat(); + temp.target.o = fields[30].GetFloat(); //check target if (!IsTargetValid(temp)) diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index aaae5c0bfb3..858b3043c77 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -33,7 +33,7 @@ typedef uint32 SAIBool; enum eSmartAI { SMART_EVENT_PARAM_COUNT = 4, - SMART_ACTION_PARAM_COUNT = 6, + SMART_ACTION_PARAM_COUNT = 7, SMART_SUMMON_COUNTER = 0xFFFFFF, SMART_ESCORT_LAST_OOC_POINT = 0xFFFFFF, SMART_RANDOM_POINT = 0xFFFFFE, @@ -1247,6 +1247,7 @@ struct SmartAction uint32 param4; uint32 param5; uint32 param6; + uint32 param7; } raw; }; }; |
