Commit Graph

235 Commits

Author SHA1 Message Date
Giacomo Pozzoni 84c8d21ad3 Core/SAI: Add a warning when a boolean value is outside of [0,1] range (#26608)
* Core/SAI: Add a warning when a boolean value is outside of [0,1] range

*  Replace boolean fields in SAI with SAIBool (from uint32)
2021-06-25 20:44:28 +02:00
jackpoz 5628ca7f7c Core/SAI: Allow SMART_ACTION_SUMMON_CREATURE to summon more than 1 creature
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.
2021-06-17 19:47:50 +02:00
Giacomo Pozzoni 9e7cdb02d2 Core/SAI: Add support to friendly+hostile to SMART_EVENT_OOC_LOS and SMART_EVENT_IC_LOS (#26579)
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
2021-06-08 18:59:46 +03:00
jackpoz 483f24c5ed Core/SAI: Fix typo 2021-06-06 18:07:55 +02:00
Matan Shukry ee839fee1e Core/SAI: Added new Flags argument for SMART_ACTION_SUMMON_CREATURE (#26055)
* 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
2021-04-05 17:29:41 +02:00
Shauren fd54f19d41 Core/SAI: Reserve master branch SAI action id 143 2021-02-27 11:46:40 +01:00
Shauren 895dbc06dc Core/SAI: Reserve additional param for SMART_ACTION_SUMMON_CREATURE 2021-02-10 21:19:56 +01:00
Shauren 88ffc2596d Core/SAI: Reserve SmartScriptType for master branch 2021-02-05 19:19:13 +01:00
Giacomo Pozzoni d5fc86af8b Core/Creature: Allow to skip Rate.Corpse.Decay.Looted when calling SetCorpseDelay() (#25989)
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).
2021-01-30 19:13:10 +01:00
Giacomo Pozzoni 7d6f7e4d19 Core/SAI: Add new action SMART_ACTION_SET_HEALTH_PCT (#25932)
* 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%
2021-01-25 21:27:57 +01:00
Giacomo Pozzoni 96b289cadb Core/SAI: Fix SMART_EVENT_FLAG_NOT_REPEATABLE flag being ignored when specifying a chance (and other SMART_ACTION_CAST fixes) (#25778)
* 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
2020-12-30 21:18:00 +01:00
Shauren fe89e835fb Core/SmartAI: Reserve a param for SMART_ACTION_SOUND master branch specific functionality, for compatibility reasons 2020-12-27 22:28:27 +01:00
Ovah b7ba856b63 Core/SAI: implement new smart actions to change AI Animkits and to enable/disable hover movement (#25623)
* 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
2020-12-26 23:31:25 +01:00
Rushor 02fca032e1 Game/AI: Implement option to move a creature back to Homeposition on Evade. (#24492)
* 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>
2020-09-11 21:16:35 +02:00
Giacomo Pozzoni cbed1039c4 Core/SAI: Implement SMART_TARGET_ACTION_INVOKER in SMART_EVENT_FRIENDLY_HEALTH_PCT (#25318)
* Core/SAI: Implement SMART_TARGET_ACTION_INVOKER in SMART_EVENT_FRIENDLY_HEALTH_PCT

* Require radius (5th parameter) to be set
2020-08-25 14:14:06 +02:00
Giacomo Pozzoni ca25e8d019 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 (#25238)
* 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
2020-08-16 16:50:04 +02:00
Rothend 5339d1d3b8 Core/SAI: implement SMART_EVENT_SUMMONED_UNIT_DIES (82), useable by creatures and gameobjects (#24874)
* Core/SAI: implement SMART_EVENT_SUMMONED_UNIT_DIES (82), useable by creatures and gameobjects.

Closes #24831

* Update SmartScriptMgr.h
2020-06-24 21:27:34 +02:00
Ovahlord 152ea60116 Core/SAI: implement SMART_ACTION_ATTACK_STOP
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
2020-06-14 22:51:42 +02:00
Rushor 2d948d3366 Game/AI: Implement new targettype SMART_TARGET_CLOSEST_UNSPAWNED_GAMEOBJECT (#24494)
* 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
2020-04-26 21:32:24 +02:00
Shauren e10313b380 Core/Maps: Citizens of Dalaran! Raise your eyes to the skies and observe! Any non-map-default light can now be overriden!
Closes #24250
2020-03-06 17:44:10 +01:00
ForesterDev 5cfce94619 Core/DynamicInfo: rename some parameters according packet definitions (#24192) 2020-02-28 19:23:20 +01:00
ForesterDev c65ba35269 Core/SmartAI: implement SMART_ACTION_OVERRIDE_LIGHT and SMART_ACTION_OVERRIDE_WEATHER (#24146)
* 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
2020-02-22 21:11:14 +01:00
Ovahlord 6f31784979 Core/SAI: SMART_ACTION_PAUSE_MOVEMENT
Closes #22346
2020-02-18 22:52:35 +01:00
Aokromes ed93932537 New year
Say bye bye to every year changing dates
2020-01-02 06:25:50 +01:00
Lopfest 443a425c4c Core/SAI: Implement new action to set movement speed
(cherry picked from commit 5dd6d31c01)

# Conflicts:
#	src/server/game/AI/SmartScripts/SmartScriptMgr.cpp
#	src/server/game/AI/SmartScripts/SmartScriptMgr.h
2020-01-01 19:56:05 +01:00
Shauren dab66cb8d0 Core/SAI: Reserve action ids 2019-08-31 13:58:55 +02:00
Wyrserth eeba12778b Core/SAI: add param3 to SMART_ACTION_CALL_TIMED_ACTIONLIST to allow it to override a currently running actionlist. 2019-06-27 01:48:12 +02:00
Wyrserth 50be697e1f Core/SAI: add cooldownMin (event_param2) and cooldownMax (event_param3) to SMART_EVENT_ACCEPTED_QUEST and SMART_EVENT_REWARD_QUEST. (#23422) 2019-06-16 20:08:37 +02:00
jackpoz 50ed1bb5b3 Core/SmartAI: Rename SMART_EVENT_HEALT_PCT to SMART_EVENT_HEALTH_PCT 2019-06-07 21:57:32 +02:00
Wyrserth d365dd9157 Core/SAI: add action_param3 to SMART_ACTION_REMOVEAURASFROMSPELL to allow it to remove only auras from spells that were cast by the entity itself. (#23345) 2019-06-02 21:40:55 +02:00
jackpoz 9e58ef6940 Core/SmartAI: Improve SMART_EVENT_GOSSIP_HELLO
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
2019-05-26 12:44:58 +02:00
Aokromes 63aa5d1e35 Core/SmartScripts: Implement SMART_ACTION_PLAY_CINEMATIC
By Malcrom
2019-04-17 23:59:02 +02:00
Aokromes 91bcf20b02 Core/SmartScripts: Reserve SMART_ACTION_PLAY_CINEMATIC 2019-04-17 22:10:08 +02:00
Treeston fcfcb0eb6f Happy New Year, folks. It's 2019! 2019-01-01 15:45:25 +01:00
jackpoz 46368188ce Core/SAI: Add maxSize parameter to SMART_TARGET_CREATURE_DISTANCE, SMART_TARGET_GAMEOBJECT_DISTANCE, SMART_TARGET_CREATURE_RANGE and SMART_TARGET_GAMEOBJECT_RANGE 2018-09-21 17:59:15 +02:00
jackpoz 7634a57f64 Core/SAI: Add a 4th target parameter to SAI 2018-09-21 17:56:20 +02:00
Treeston 0df3cb5bcc AI/SmartScripts: Replace SMART_ACTION_INVOKER_CAST with SMART_ACTION_SELF_CAST in action 85. SMART_ACTION_INVOKER_CAST moves to 134. 2018-08-10 23:18:04 +02:00
ccrs 982643cd96 Core/Movement: MotionMaster reimplementation (#21888)
Internal structure and handling changes, nothing behavioural (or thats the intention at least).
2018-06-03 10:06:57 -07:00
Aokromes 4e55e79753 Core/SAI: Reserve SMART_ACTION 16 for 4.3.4 or higher scripts 2018-04-11 14:43:30 +02:00
Killyana 5ad38c31b0 Core/SAI: Add event_parm5 "player only" for EVENT_OOC_LOS and EVENT_IC_LOS
Closes #21497
2018-03-11 18:46:07 +01:00
Treeston 0850b5ff39 Core/SmartScripts: Rename SMART_ACTION_RESPAWN_TARGET -> SMART_ACTION_ENABLE_TEMP_GOBJ, since that's the only thing it still does in the dynspawn model. Adjust body accordingly to warn on misuse. 2018-02-24 02:26:35 +01:00
Treeston 691c67f0be AI/SmartAI: New SMART_ACTION_RESPAWN_BY_SPAWNID (hi kilyana) 2018-02-23 03:20:03 +01:00
Killyana ca4f1e334a Core/SAI: Add an action_param3 to "summon gob" to control when the object will despawn
0 - For despawn when creature dies or time runs out
1 - For despawn after time
Closes #11601
2018-02-16 02:19:19 +01:00
Treeston 264d4e1d30 Entities/GO: Add forceRespawnTimer support to DespawnOrUnsummon. Use it in SAI. 2018-02-14 02:24:13 +01:00
Treeston 482328bddf Scripts/SmartAI: SMART_TARGET_INVOKER cleanup step 1. The core will now log errors on start-up if SMART_TARGET_INVOKER abuse is found, but will continue to load the scripts as deprecated for now.
Note that a lot of these scripts may either not currently work, not work reliably, or may be prone to breaking unexpectedly when core internals change. SMART_TARGET_INVOKER is undefined behavior on any event that doesn't directly specify its invoker.

(We are considering options for allowing INVOKER to make sense in timed action lists in a reliable fashion, so they are exempted at this time.)
2018-02-13 16:59:32 +01:00
Moein 891bca934e Core/SAI: Extended SMART_TARGET_VEHICLE_PASSENGER to allow specifying seat mask instead of single seat index (can now target all passengers) (#21245) 2018-01-16 21:28:41 +01:00
jackpoz 1c60af6328 Core/SAI: Add a 5th parameter to SAI events 2018-01-12 20:17:53 +01:00
tkrokli f6b6f57a6d Update copyright note for 2018
Best wishes for the new year.
2018-01-01 01:55:29 +01:00
Kittnz 37995ade29 Core/SAI: Add distance option for SMART_ACTION_SOUND & SMART_ACTION_RANDOM_SOUND (#20717) 2017-10-26 11:27:44 +02:00
ccrs 7fff83d675 Core/Movement: waypoint movement (#20121)
Following the work done in #19361 this is the cleanup and improvement of the related logic of waypoint management.

Ref 28050f3 #18020
(taking the good parts and ignoring the incomplete work)
2017-08-12 01:40:25 +02:00