Add missing <limits> header
See http://gcc.gnu.org/gcc-11/porting_to.html for more info, section "Header dependency changes"
"Some C++ Standard Library headers have been changed to no longer include other headers that they do need to depend on. As such, C++ programs that used standard library components without including the right headers will no longer compile."
So far I see that only Cannot Turn flag can be changed by scripts and action to change it didn't existed in 3xx. If someone will need to change that flag, it should be implemented by action which will change only that flag and not any flag of that type.
* Core/SAI: Show a clear error for no longer supported SAI actions
* Core/SAI: Show a warning for deprecated SAI events, still loading them.
Disable log "sql.sql.deprecation" in config if you want to ignore the warning
* Core/SAI: Warn when an unused parameter is set in the database
* Warn when an unused parameter is set in the database as all unused parameters are supposed to be set to 0.
* Remove unused struct from union.
* Add a new struct simpleTalk for SMART_ACTION_SIMPLE_TALK instead of reusing only some fields of struct talk from SMART_ACTION_TALK
* Add addAura and flag structs to be used instead of generic ones to match the parameters used by actions
* Add randRangeTimedActionList struct to be used instead of generic ones to match the parameters used by actions.
* Remove unused action structs.
Add 6th parameter "count" to SMART_ACTION_SUMMON_CREATURE action to summon more than 1 creature. For backward compatibility, a value of 0 will be treated as 1.
Change SMART_EVENT_OOC_LOS and SMART_EVENT_IC_LOS first parameter to have 3 values:
- 0 : Hostile
- 1 : Not hostile (not that Friendly and Not hostile have different meanings)
- 2 : Any, as in both Hostile and Not hostile
Close#24789
* Add validation on startup for allowed values.
Code cleanup.
* Fix errors
* Added personalSpawn for SMART_ACTION_SUMMON_CREATURE
* Added flags for smart action summon creature, including prefer unit and personal spawn. When preferUnit flag is chosen only the unit will be chosen, even if nullptr
(cherry picked from commit e0278f0537)
# Conflicts:
# src/server/game/AI/SmartScripts/SmartScript.cpp
# src/server/game/AI/SmartScripts/SmartScriptMgr.h
Add a second parameter to SetCorpseDelay() that specifies if Rate.Corpse.Decay.Looted setting should be ignored, false by default (aka don't ignore by default).
Add a second parameter to SMART_ACTION_SET_CORPSE_DELAY to specify if Rate.Corpse.Decay.Looted should be included, false by default (aka ignore by default).
* Core/SAI: Add new action SMART_ACTION_SET_HEALTH_PCT
Add new action SMART_ACTION_SET_HEALTH_PCT (142) with one single parameter "percent" to set the Unit health.
Close#25317
* Do not allow 0%
* Core/SAI: Fix SMART_EVENT_FLAG_NOT_REPEATABLE flag being ignored when specifying a chance
Fix SMART_EVENT_FLAG_NOT_REPEATABLE flag being ignored when specifying a chance, always making the action trigger.
* Fix SMART_ACTION_CAST with SMART_EVENT_FLAG_NOT_REPEATABLE not casting the spell at all if rolled chance was successful but creature couldn't cast the spell
* Prevent linked actions if SMART_ACTION_CAST couldn't be completed and will be retried later
* Core/SAI: implement new smart actions to change AI Animkits and to enable/disable hover movement for units
SMART_ACTION_SET_AI_ANIM_KIT (parameter 1: animKitId)
SMART_ACTION_SET_HOVER (parameter1: enable/disable)
* Update SmartScriptMgr.cpp
* Update SmartScript.cpp
* removed SMART_ACTION_SET_AI_ANIM_KIT since it's reserved for master
* Game/AI: Implement option to move a creature back to Homeposition on Evade.
* If ToHomePosition (action param 1) is 1 > Move to last stored position
* If ToHomePosition (action param 1) is 0 > Move to homeposition
* Ref: https://github.com/TrinityCore/TrinityCore/issues/24226
* Add parameter for walkmode
* Game/AI: SAI SMART_ACTION_EVADE - Rename ToHomePosition to ToRespawnPosition and store point from GetRespawnPosition.
* Game/AI: SAI SMART_ACTION_EVADE - Rename ToHomePosition to ToRespawnPosition
* Remove broken bits, simplify the code
* Update comments
* Code cleanup
Co-authored-by: jackpoz <giacomopoz@gmail.com>
* Core/SAI: Spell casts that cannot be executed because the unit is currently casting another spell will be retried asap with priority over other events
* Core/SAI: Re-sort the events only when needed
* Fix some priority reset and wrong mEventSortingRequired handling
* Code cleanup.
Sort only events loaded from db (not stored events, not timed action list).
* Code cleanup.
Raise priority of failed casts so they are retried before other spells
* Keep priority of the action fails and is rescheduled on next update
* Don't try recasting a spell in SMART_ACTION_CAST if there are multiple targets and at least 1 was successful
Unlike SMART_ACTION_AUTO_ATTACK, this action is actually stopping the entire attack procedure, rather than just hack-disabling auto-attacks. Keep in mind that this action requires a passive react state to prevent a immediate AttackStart ai reaction
* Game/AI: Implement new targettype SMART_TARGET_CLOSEST_UNSPAWNED_GAMEOBJECT which allows to search for closest unspawned gameobjects
* updates: https://github.com/TrinityCore/TrinityCore/issues/24067
* Game/AI: Implement new targettype SMART_TARGET_CLOSEST_UNSPAWNED_GAMEOBJECT which allows to search for closest unspawned gameobjects
* Core\SmartAI: implement SMART_ACTION_OVERRIDE_LIGHT and SMART_ACTION_OVERRIDE_WEATHER
* Change the invoker of action to any worldobject
* Revert "Change the invoker of action to any worldobject"
This reverts commit 2e15f7258553b7057c3e8f67c54efc77fb6d75b8.
* Add dbc-validations for new actions
* Use GetBaseObject() instead of Creature* for new actions. Add debug-logging
Add another value to event_param1 for SMART_EVENT_GOSSIP_HELLO to support all cases of OnGossipHello/OnReportUse in GameObjects:
- event_param1 set to 0: execute the action for both OnGossipHello and OnReportUse. This might result in the action being executed twice when clicking the GameObject
- event_param1 set to 1: execute the action for only OnGossipHello
- event_param1 set to 2: execute the action for only OnReportUse