Commit Graph

231 Commits

Author SHA1 Message Date
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
r00ty-tc
59db2eeea0 Dynamic Creature/Go spawning:
- True blizzlike creature spawn/respawn behavior - new creature = new object
 - Toggleable spawn groups (with C++/SAI/command options to use them)
 - Custom feature: dynamic spawn rate scaling. Accelerates respawn rate based on players in the zone.
 - Backward compatibility mode (set via group and for summons)
   to support creatures/gos that currently don't work well with this
   (this should be removed once the exceptions are fixed)

Fixes and closes #2858
Tags #8661 as fixable.
Fixes and closes #13787
Fixes #15222.
2017-07-31 21:21:04 +02:00
ariel-
85a7d5ce9a Core: ported headers cleanup from master branch 2017-06-19 23:20:06 -03:00
ariel-
619a5534c5 Core/SmartAI: implemented SMART_EVENT_EVENT_PHASE_CHANGE
- Use instead of Update + event_phase_mask when action needs to be synchronized
2017-06-10 19:20:44 -03:00
ariel-
866074b689 Core/SAI: properly validate stored targets when using SmartTrigger and fix a related crash 2017-06-04 16:44:43 -03:00