Commit Graph

114 Commits

Author SHA1 Message Date
Shauren
8349444749 Core/Pets: Save last summoned pet number in characters table 2022-01-31 21:34:48 +01:00
Shauren
e458144442 Core/Pets: Removed storing stable slot count in db 2022-01-31 14:34:05 +01:00
Shauren
ca92686b44 Core/Pets: Pet management refactoring (#25191)
* Core/Pets: Pet management refactoring

* Preload basic pet data on character login with async query
* Load additional pet data (declined names/auras/spells/cooldowns) using async query after we are sure pet loading will succeed
* Remove all select queries related to pet stable/unstable
* Remove all silent pet deletions except explicit UI-triggered abandons
* Fixed displaying stable master content when current pet is not summoned
* Allow to stable/swap unsummoned current pet

Closes #3610
Closes #21266

(cherry picked from commit 5c1fc5e387)
2022-01-31 00:17:21 +01:00
Shauren
a9b4f9aca0 Core/Mail: Load mails at login instead of on demand when queried by packets (logging in always sends one of the packets that cause mail loading anyway)
(cherry picked from commit 57eaab80d9)
2022-01-24 14:45:54 +01:00
Shauren
0d3235f569 Core/Guilds: Separate guild rank id from guild rank order
Co-authored-by: aquadeus <efectokoleos13@gmail.com>
2022-01-09 23:12:00 +01:00
Shauren
1aad7f8ddd Core/DB: Add missing prepared statement parameters to CHAR_SEL_WAR_MODE_TUNING 2021-12-27 20:42:03 +01:00
Matan Shukry
b821a72973 Core/Player: Initial War Mode support (#25926)
* Enable PvP talents
* War Mode buff aura
* Forced PvP flagging

Co-authored-by: Shauren <shauren.trinity@gmail.com>
2021-12-26 19:14:46 +01:00
Treeston
51fbda4223 Core/Pooling: Quest pooling rewrite: (PR#23627)
- Split quest pooling from PoolMgr (into QuestPoolMgr)
- Proper saving/restoring on server restart
- No more hacking into sObjectMgr to insert/remove available quests

(cherry picked from commit a5e73e41c0)
2021-12-18 15:28:45 +01:00
Treeston
8839fa3fe2 Core/Chat: Custom channel preservation rewrite. Channel data is now loaded at startup, and written to the DB periodically, instead of both things happening in real time.
(cherry picked from commit fedf1f557b)
2021-12-17 23:22:13 +01:00
Treeston
be05590a12 Core/DB: Unify creature_respawn and gameobject_respawn into a single respawn table
(cherry picked from commit 374597c8e9)
2021-12-16 01:10:06 +01:00
zartech22
1c3c59d7fa Core/Instance : Fix instance resetting exploit (#23263)
* Push offline players out of instance

Push offline players out of instance when reseting dungeon with a raid mode group

* Add SQL request to character

Add a SQL request to update the position of a player in a specified map

* Teleport to graveyard instead

(cherry picked from commit 678e0e606a)
2021-12-11 23:12:27 +01:00
TheWinchesters
47adf2e4c8 [3.3.5] Commands: lookup player shows which character is online (#23039)
* Show 'online' for every online player in lookup player commands

(cherry picked from commit a0056951f7)
2021-11-23 22:52:53 +01:00
Shauren
5c8a058120 Core/PacketIO: 9.1.5 updatefields and SMSG_UPDATE_OBJECT structure 2021-11-04 21:47:03 +01:00
Shauren
edc94e8ae8 Core/GuildFinder: Remove as preparation for 9.1.5 2021-11-02 18:14:49 +01:00
ModoX
68c2fc8ff5 Core/Characters: Made homebind location a WorldLocation (this implicitly adds orientation) (#27055) 2021-10-16 01:17:47 +02:00
Shauren
2bf8110032 Core/Players: Do not show zone on character list before first login 2021-10-02 21:46:58 +02:00
Shauren
11762273c6 Core/Players: Store player creation timestamp and type (normal/npe) 2021-10-02 21:28:11 +02:00
Gooyeth
80d4bde77a Core/Player: Skip the cinematic of the first login if the character is teleported before. (#21776)
(cherry picked from commit 8cec3ffe43)
2021-09-26 15:45:44 +02:00
Gooyeth
086447370b Core/Database: Add columns on *_banned (#21748)
* Add columns on ban character query

* Add columns on ban account query

(cherry picked from commit 768968f0c0)
2021-09-23 21:18:49 +02:00
Shauren
03f09ea16a Core/Items: Implemented secondary shoulder transmog appearance 2021-08-11 22:32:14 +02:00
Shauren
c2751f9195 Core/Players: Add PlayerExtraFlags for tracking race change, level boost, and raf level grant usage 2021-06-06 14:19:28 +02:00
Shauren
d9d242bea4 Core/Quests: Set quest accept time updatefield 2021-05-11 15:47:58 +02:00
Shauren
3ad389efee Core/Quests: Un-deprecate QUEST_SPECIAL_FLAGS_EXPLORATION_OR_EVENT 2021-05-11 00:38:08 +02:00
Matan Shukry
1c852af7f2 Core/Spells: Implement SPELL_EFFECT_TELEPORT_TO_RETURN_POINT (#26217) 2021-03-28 00:22:34 +01:00
Shauren
49f8b1dbb4 Core/Corpses: Fixed crash during loading corpses
Closes #25748
Closes #25744
2020-12-22 16:11:34 +01:00
Shauren
93f2affbf2 Core/Corpses: Fixed client crashes with player corpses
Closes #25714
2020-12-13 18:38:31 +01:00
Shauren
b82a3a557a Core/DataStores: Updated db2 structures to 9.0.2
* Includes support for new character customization
2020-12-08 18:16:47 +01: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-
7dcc185a15 Core/Instance: stop updating the instance resettimes based on creature respawns
- Rather update normal instance reset time to 2 hours after last creature kill
- This fixes yet another integer overflow due to the possibility of having time_t max showing up
- Also change respawntime and resettime fields to bigint on respawn/instance related tables
- Start using prepared statements on the InstanceSaveMgr

(cherry picked from commit 4c593f12ca)
2020-04-27 12:25:52 +02:00
xinef1
090fd8304a Core/Loot: implement Loot Item Storage (#19018)
* Created Item Loot Storage, no more synchronous DB selects
* Fixed buyback case, where stored loot was not removed from db
* Added Primary key, and changed field types to be unsigned for table item_loot_money

(cherry picked from commit 9dc3de10f0)
2020-04-27 12:25:52 +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
Shauren
90628b7d29 Core/DataStores: Updated db2 structures to 8.3.0 2020-02-17 23:58:47 +01:00
Aokromes
b0bf1275ee New Year 2020-01-02 06:44:10 +01:00
Shauren
d934824421 Core/Items: Implement azerite empowered items 2019-12-05 00:12:35 +01:00
Shauren
1238583312 Core/Spells: Fixed value of aura effects for stat mod auras applied by items 2019-11-30 12:11:29 +01:00
Shauren
599722eba0 Core/Mail: Mark mail item loading prepared statements as synchronous, not async queries
Closes #23935
2019-11-23 17:58:29 +01:00
Shauren
edc440c109 Core/Mail: Fix copypaste mistake in prepared statements
Closes #23934
2019-11-23 14:45:44 +01:00
Shauren
ec9d624aec Core/Items: Implement azerite essences
* Implement inspecting heart of azeroth data
* Fixed heart of azeroth item level - bonuses now apply
2019-11-22 11:02:04 +01:00
Shauren
ef3485e6fc Core/Items: Refactor loading additional item data (artifacts/azerite) 2019-11-19 14:37:05 +01:00
Shauren
f48b87054e Core/Players: Fixed crash when deleting from db
Closes #23921
2019-11-16 13:06:34 +01:00
Shauren
ab6ae44b63 Core/Items: Implemented AzeriteItem 2019-11-12 00:28:59 +01:00
Shauren
9ea577da13 Core/RaF: Remove level granting (new RaF doesn't support this) 2019-11-03 14:25:39 +01:00
Shauren
c3a9d56b56 Core/DBLayer: Support using mysql 8 2019-11-01 16:21:14 +01:00
Shauren
2072258ef4 Core/DBLayer: Escape mysql 8 keywords 2019-11-01 16:20:15 +01:00
Shauren
3ac790287a Core/DataStores: Updated db2 structures to 8.2.5 2019-10-27 00:12:45 +02:00
ariel-
26fe949619 Core/Server: fix duplicated inserts into tutorials table for newly created characters
(cherrypicked from 60dd803bbe)
2019-07-21 21:06:54 +02:00
xinef1
b485f3e673 Few small optimizations here and there (#18684)
Changes list:
- Added CharacterGuidByNameContainer which contains name -> guid unordered map (updated along CharacterInfo)
- Extended CharacterInfo structure with GuildId
- Extended CharacterInfo structure with ArenaTeamId[3], for all possible teams (2v2, 3v3, 5v5)
- Removed CHAR_SEL_GUID_BY_NAME and CHAR_SEL_CHAR_GUID_BY_NAME synchronous queries, name -> guid can be now retrieved in World::GetCharacterGuidByName
- Removed CHAR_SEL_GUID_RACE_ACC_BY_NAME synchronous query, guid can be retrieved by name and rest of the data can be retrieved by guid
- Removed CHAR_SEL_CHAR_LEVEL synchronous query, level can be retrieved by guid
- Changed CHAR_SEL_CHARACTER_ACTIONS_SPEC to asynchronous query, action bars are now loaded asynchronously
- Removed CHAR_SEL_CHARACTER_NAME_CLASS synchronous query, guid can be retrieved by name and rest of the data can be retrieved by guid
- Removed CHAR_SEL_PLAYER_ARENA_TEAMS and CHAR_SEL_ARENA_TEAM_ID_BY_PLAYER_GUID synchronous queries, arena teams are now stored in CharacterInfo
- Replaced synchronous db calls with CharacterInfo lookups
- Removed ObjectMgr::GetPlayerGUIDByName, as it used db query
- Replaced some unnecessary UpdateObjectVisibility() calls because they were either duplicated (called few lines above in other function) or it is enough to call DestroyForNearbyPlayers because object is being removed or should be invisible and DestroyForNearbyPlayers is faster
- Corrected typo in Player::DestroyForPlayer, only items in slots 0 to EQUIPMENT_SLOT_END are sent to other players
- Renamed Player::GetGuildIdFromDB to Player::GetGuildIdFromCharacterInfo and changed the function to use CharacterInfo structure
- Renamed Player::GetArenaTeamIdFromDB to Player::GetArenaTeamIdFromCharacterInfo and changed the function to use CharacterInfo structure
- Renamed Player::GetLevelFromDB to Player::GetLevelFromCharacterInfo and changed the function to use CharacterInfo structure
- Removed GameEventMgr::_questToEventLinks and associated functions, eventId is now stored in Quest class under _eventIdForQuest variable
- Changed some functions checking quest status to use other functions for quest status check instead of duplicating code
- Removed callback from add friend, because we can get the guid from appropriate storage, no need to make db query
- Removed callback from add ignore, because we can get the guid from appropriate storage, no need to make db query
- Added callback to unwrap wrapped items asynchronously
- Removed synchronous select in tutorials to check if we have any entries in db, if any entry exists in db, m_TutorialsChanged variable will have TUTORIALS_FLAG_LOADED_FROM_DB flag added and it is no longer necessary to query database

(cherrypicked from b955456008)
2019-07-21 21:06:54 +02:00
Shauren
82c7b6c568 Core/Items: Drop item random property and suffix - all random stats must be given using bonus lists 2019-06-08 17:09:20 +02:00
Shauren
455959c606 Core/PacketIO: Rewrite updatefield handling 2019-06-08 17:06:57 +02:00
vincent-michael
5620eb9463 Update copyright note for 2019
auto happy = new year(2019);
2019-01-01 10:14:33 +01:00