* fix(Core): Save gameobject state on instances
Currently, azerothcore doesn't save gameobject states on instances.
Whenever there's a re-start or crash, the instance's gameobjects and
their states aren't saved, producing un-wanted behaviours and blocking instances at times.
Implemented CRUD for new table `instance_saved_data` that holds the states of gameobjects.
- When worldserver launches and gameobjects are loaded, this will check
if this object's state exists on the DB and sets the previous state.
- On instance deletion (reset) these states are also removed based on
the instance ID.
- Whenever a gameobject state changes inside a dungeon or raid, we save
on the database the set state.
* Select query to synchronous and used FindMap()
* loading gameobject states on create
* reseting instance saved data
* missing reset methods and on create state
* database structure
* Update src/server/game/Entities/GameObject/GameObject.cpp
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
* Update src/server/game/Entities/GameObject/GameObject.cpp
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
* Update src/server/game/Entities/GameObject/GameObject.cpp
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
* Update src/server/game/Entities/GameObject/GameObject.cpp
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
* Update src/server/game/Entities/Player/PlayerMisc.cpp
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
* Update src/server/game/Groups/Group.cpp
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
* codestyle
* table changes
* table style
* codestyle
* table changes for columns
* data sanitization
* todo:
- Finish loading db data into the containers
- Using containers to find data
- How to get data from ObjectMGR inside Gameobject?
* loading on start up and db changes
* Removing unused data structure
* Uninitialised integer
* Whitespace
* clean-up and hooks to save states on memory
* Codestyle MySQL deprecated backticks
* i dont understand codefactor
* build
* Update data/sql/updates/pending_db_world/rev_1643395587559675400.sql
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
* Update src/server/game/Globals/ObjectMgr.h
Co-authored-by: Kargatum <dowlandtop@yandex.com>
* review changes
* unecessary removal
* pushback instead of emplace
* wrong database update
* Update ObjectMgr.cpp
* missing check
* removing entry from the PR
* missing removals
* last delete
* build
* aha! Found the culprit for the sudden assert errors
* type safety, save only important gameobjects
* static cast to unsigned short
* Update data/sql/updates/pending_db_characters/rev_1643629468629316100.sql
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
* type changes
* queries fix
* fix build
* enabling which gameobjects to save on the database
* deadmines iron clad door
* Adjustment to gameobject onj create state and instances:
- Gnomeregan doors and Grubbis boss state
- Deadmines missing doors
- Stratholme gameobjects state saved
* forgot emi blastfuse change to despawn
* Leaving group logic
* codestyle
* fixing merge issues
* prevent bad behaviour
* brain meltdown
* Update data/sql/updates/pending_db_characters/rev_1643629468629316100.sql
* Update data/sql/updates/pending_db_world/rev_1649359139539727000.sql
Co-authored-by: Claudiodfc <54484196+claudiodfc@users.noreply.github.com>
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
Co-authored-by: Kargatum <dowlandtop@yandex.com>
Co-authored-by: Skjalf <47818697+Nyeriah@users.noreply.github.com>
- Players that did not participate in killing dungeon boss are not eligible to get loot.
- Players that are too far away from the looted object are not eligible to get loot.
- Players that released spirit and were outside the dungeon when the loot has been released are eligible to get loot.
- Players that have pending bind are not eligible to get loot.
- Properly get loot recipient for some chests in dungeons.
- All above fixes should work in any loot mode (group loot, master loot, etc.)
- Closes#2104.
* fix(Core): fix chests not despawning when opened in group
* fix(Core): fix crashes in pr #5371
* Replaced nullptr checks
* Used if with initializer instead of separate scope
This collection of hooks comes from the Maelstrom project. It allows to release modules such as :
- 3v3-soloqueue
- 1v1 arena
- pvestats
and many others
* NULL to nullptr
* NULL to nullptr
* NULL to nullptr
* NULL to nullptr
* NULL to nullptr
Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
Co-authored-by: Stefano Borzì <stefanoborzi32@gmail.com>