Commit Graph
302 Commits
Author SHA1 Message Date
Shauren a03455acbb Core/AreaTriggers: Add Spell* argument to AreaTriggerAI::OnCreate script 2023-06-24 20:10:14 +02:00
ModoX 89e09dc44e Core/AI: Drop script_waypoints and move data to waypoint_data (#28879) 2023-04-10 04:04:33 +02:00
Shauren b6965b2c30 Core/Objects: Move EventProcessor update to WorldObject::Update 2023-02-05 16:24:13 +01:00
Shauren d791afae1d Core/Logging: Switch from fmt::sprintf to fmt::format (c++20 standard compatible api) 2023-01-08 21:16:53 +01:00
Shauren 92ed5e8af1 Core/Misc: Include cleanup, 2023 edition 2023-01-07 22:38:21 +01:00
Shauren 515c0a43ef Core/Maps: Split Ebon Hold and Exile's reach by faction and removed forced sanctuary hack 2022-07-25 21:43:19 +02:00
Shauren 16a06346ae Core/Maps: Move terrain data handling out of Map class
Partial port of cmangos/mangos-wotlk@ff5232c648
2022-07-23 19:13:33 +02:00
Shauren 073a036d84 Core/Battlefields: Refactor Battlefield creation to be linked to host map creation instead of having globally accessible objects 2022-07-19 23:18:19 +02:00
Shauren 775be0682a Core/OutdoorPvP: Refactor OutdoorPvP creation to be linked to host map creation instead of having globally accessible objects 2022-07-18 22:45:03 +02:00
Shauren 737d94d7ef Core/World: implement database support for default map and realm wide world states
Co-Authored-By: Shauren <[email protected]>
2022-06-25 22:48:27 +02:00
Shauren a2c1b699e6 Core/Transports: Path generation rewrite v2
* No TaxiPathNode row is skipped anymore (events/delays on first node now work)
* Fixed transport animation synchronization with client
* Fixed stoppable transports randomly resuming their path after relogging

Closes #27985
2022-06-07 16:02:51 +02:00
offl 7a0268d4f1 Core/Scripting: Get rid of ModifyVehiclePassengerExitPos (#27126)
(cherry picked from commit d7adc50daa5a20142e0f39a9f65d39869525fd0e)
2022-03-20 16:27:10 +01:00
Treeston 5e013a9996 Core/ChatCommands: Add trinity_string support for chat command help
(cherry picked from commit 26c510775c6a1995d81b16ad7459227381801dcc)
2022-02-27 21:23:11 +01:00
Treeston 3fd2eb126c [3.3.5] ChatCommands, the other half: chat command resolution refactor (PR #25463)
(cherry picked from commit 1eca51b417678b9a48b28552925d5694105f82bb)
2022-02-27 20:08:41 +01:00
Seyden 272addbf2b Core/Scripts: Fix Hotswap not reinitializing AIs after destroying them and then crashing due to AI being nullptr (#27744) 2022-02-15 22:36:48 +01:00
Shauren f8ad7017dd Core/Misc: Move (or delete) constructors and destructors to .cpp files (avoids compiling them in every file that includes them) 2022-02-12 21:36:46 +01:00
Shauren d057e057d3 Core/Misc: Optimize ChatCommand includes (include only where neccessary) 2022-02-11 21:57:45 +01:00
Meji 27cba3f523 Core/Scripts: Added script hook to execute actions after completing an achievement (#27718) 2022-02-08 23:23:05 +01:00
Treeston 358dc78e47 Scripts/AreaTrigger: Rename OnlyOnceAreaTriggerScript::_OnTrigger to TryHandleOnce, and make its return value useful.
(cherry picked from commit 0c7f6ac89fcc5fdc7f4435a6c1b673c752eb1e41)
2022-02-05 14:53:54 +01:00
Treeston 75e5c44638 Scripts/IcecrownCitadel: correct Rimefang's script name
(cherry picked from commit fc3feebee9e26ec5bc21a46f37b5affe416582c6)
2022-02-05 13:32:55 +01:00
Carbenium eeffb310de Core/EventProcessor: std::chrono-ify CalculateTime
uint64 CalculateTime(uint64 t_offset) has been replaced with Milliseconds CalculateTime(Milliseconds t_offset).
Also add the std::chrono-ified overload void AddEvent(BasicEvent*, Milliseconds, bool)

(cherry picked from commit 92a02a5c8750913f596d7e3b58bf8439cb770c28)
2022-01-24 12:00:35 +01:00
Shaurenandaquadeus 0d3235f569 Core/Guilds: Separate guild rank id from guild rank order
Co-authored-by: aquadeus <[email protected]>
2022-01-09 23:12:00 +01:00
Carbenium 49523a74a4 Battlefields: Move BF scripts out of game
This commit introduces the usual script interface
for battlefields.

(cherry picked from commit f7faf20254a120a90b8ee8eb55a284a6351aabc3)
2022-01-07 00:20:57 +01:00
jackpoz c03af362c6 Core/Scripts: Show a message when aborting because two scripts have the same registered name
(cherry picked from commit 96df3b7adb02f763aaaa6138922bd032a75a9b9e)
2021-12-22 22:57:34 +01:00
Ovah 64fc549be8 Core/AI: call ModifyVehiclePassengerExitPos for CreatureScripts since the hook is available for that class as well
(cherry picked from commit ebf116e6a3381835fd2af885bd2721233485b684)
2021-12-20 23:56:31 +01:00
Aokromes 30cec73c61 Coding standards (#23514)
* Coding standards

* revert part

(cherry picked from commit fe744977c917957e112704ccd66e228b826b3f7a)
2021-12-13 00:42:17 +01:00
Wyrserth 1edd93bc0c Core/Script: add script hook to allow overriding of a vehicle passenger's exit position (#23322)
* Core/Script: add script hook to allow overriding of a vehicle passenger's exit position.

* Allow to change orientation, and fix nopch.

* Keep original orientation, thanks jackpoz!

* Update Unit.cpp

Code cleanup

* Update Unit.cpp

(cherry picked from commit 88c6c61b95ac2b2f911b519136770479d31de27d)
2021-12-08 23:51:07 +01:00
ccrs 672d4d6baa Core/AI: silence a freaking annoying VS IntelliSense warning
(cherry picked from commit 0eb5d240fa82592ff7a4b2df81206ac49df628e2)
2021-12-05 16:19:57 +01:00
Giacomo Pozzoni ed5ba915f1 Core/Scripts: Change PlayerScript and CreatureScript inheritance (#23048)
Remove UnitScript from PlayerScript and CreatureScript classes as that's how the original system that was PR'd worked, see https://github.com/TrinityCore/TrinityCore/pull/7867 for reference.
Please note these are used as global hooks and should really just invoke stateless functions.
If you need to hook methods from PlayerScript/CreatureScript and UnitScript, just define 2 different scripts (this is how the original system worked and how it was designed to work)

(cherry picked from commit 5b7ead65bb116195f4336934bcff830e1b2af5bb)
2021-11-23 22:54:24 +01:00
Shauren f2456ff319 Scripts/Areatriggers: Fixed all areatrigger scripts triggering both on enter and exit instead of only on enter 2021-11-10 00:01:50 +01:00
Treeston e4e8c1c59c Core/AI: Clean up charm AI handling, we now have two unique_ptr instead of a crapton of booleans
(cherry picked from commit 042f5515e4f3e52b0d2e23d9b9e147041849ce12)
2021-10-22 23:47:51 +02:00
Seyden 8f097e4425 Core/Scripts: Implement script name reloading
* Authored by Seyden
* Co-authored by Naios
* We thank Shauren for your helpful feedback
2021-10-22 12:52:37 +02:00
Shauren b6b46924f6 Core/Scripts: Make ObjectMgr::LoadScriptNames safe to call multiple times 2021-10-12 16:09:47 +02:00
ModoX 6d9ce8e8ba Core/PacketIO: Implemented CMSG_CONVERSATION_LINE_STARTED (#27036)
* Added OnConversationLineStarted hook to ConversationScripts
* Added example for Defender of Azeroth conversation
2021-10-12 00:16:20 +02:00
Shauren 2d7af28e9f Core/Transports: Store information about continent transports 2021-10-02 19:59:56 +02:00
Treeston 5c80f50734 Core/Spawning: Actually check spawn group state before processing a respawn. It feels like that is something that should've been noticed at some point.
Also remove CreatureScript::CanSpawn since nobody uses it, and spawn groups do the same thing.

(cherry picked from commit 94b5d9bfa1195ad7c32cf51a665b55514dac0938)
2021-08-08 21:21:34 +02:00
Robingad 995fb23bc1 Core/Scripts: Add SpellInfo argument to ScriptMgr::ModifySpellDamageTaken (#26141) 2021-02-28 18:42:36 +01:00
Shauren f269f60d8a Scripts/Quests: Implemented new quest scripting hook, OnQuestAcknowledgeAutoAccept, used when player closes quest frame after viewing details of autoaccept quests 2021-02-26 20:42:29 +01:00
Shauren b231903932 Core/Misc: Port all the refactors sneaked in master to 3.3.5 include cleanup port 2020-09-04 13:38:24 +02:00
Treeston fe938b99f8 Core/Scripts: Implemented OnlyOnceAreaTriggerScript (#20288)
(cherry picked from commit 971ed856a49dc56ea33d9a0779b1386eea5cd3ca)
2020-08-29 00:41:22 +02:00
Yehonal ae4dacfd1d Core/Scripts: FOR_SCRIPTS macro shouldn't return early (#20187)
FOR_SCRIPTS, insteadof FOR_SCRIPTS_RET, shouldn't return
otherwise methods such as void ScriptMgr::OnPlayerEnterMap(Map* map, Player* player) will end prematurely

(cherry picked from commit 4ee16fb536177cdedcb435a59cb625490f5ec69f)
2020-08-23 16:06:43 +02:00
r00ty-tc 03b125e6d1 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.

(cherry picked from commit 59db2eeea0a35028779fd76372ae06cc98c8086f)
2020-08-22 12:59:57 +02:00
Shauren 1c52d5fff7 Core/Misc: Replace NULL with nullptr 2020-08-14 17:06:03 +02:00
ariel- bd96262248 Core/OutdoorPvP: refactor using Position and Quat to pack parameters
- Moved statics to cpp
- Save scriptids into an array

(cherry picked from commit 3e7b64b2f765bebc722c1194b7fc2f749fae77f7)
2020-07-16 22:00:29 +02:00
Peter Keresztes Schmidt bab5fd87a3 Core/Misc: Replace Trinity::make_unique with std (#24869) 2020-06-23 08:54:12 +02:00
treeston 57e3a67c94 Fix an issue where CanSpawn would never get invoked on creatures without per-guid script.
(cherry picked from commit aeaa8ecfabc2885aa24a86ce22034718cb4f62d8)
2020-06-14 23:49:04 +02:00
Shauren c7306439e7 Core/Spells: Implement using different difficulty data from all spell related db2s, not just SpellEffect and SpellPower 2020-06-12 01:29:18 +02:00
ariel- 6604849716 Core/Scripts: unified scripted gossip/quest api
- Changed self-accessor on GameObjectAI to "me", like UnitAI
- Moved all related functions to AI, now Unit and GameObject have the same function names with identical behaviour
- Remove "OnUpdate" from CreatureScript/GameObjectScript, was never used and we already have AI Update method
- Quest methods no longer return a bool, the return value was used to call the AI version if the ScriptMgr one returned false
- Implemented GameObjectAI::Destroyed hook (was never called), implemented Damaged method
- Rename OnStateChanged to OnLootStateChanged to reflect when it's really called, and created a new hook OnStateChanged that only gets called on GOState change
- Since the functions are now only getting called from AI, made GetAI methods full virtual. (CanSpawn method is anyways going to be used on creatures with AI)

(cherry picked from commit f913f3bb8977c127d200d5d4a608ab434b21bbcd)
2020-05-03 03:04:32 +02:00
ariel- 1929ca3aa1 Core/Scripts: remove OnDummyEffect hook/sOnDummyEffect ai hook
- Duplicated logic never used, sometimes only ScriptMgr version was called, sometimes only AI
- They only encourage bad scripting practices
- You can still use OnSpellHit or a SpellScript

(cherry picked from commit b6b59f6c239bc0259c92c28bf43bbb50573330b5)
2020-04-29 01:36:46 +02:00
Shauren aced88b09b Core/AuctionHouse: After taking a break at the start of patch 8.3 auction house is now back in business. 2020-04-20 20:36:24 +02:00