Commit Graph
2073 Commits
Author SHA1 Message Date
Ovahlord c80ce80644 Core/Packets: updated SMSG_LOOT_MONEY_NOTIFY, SMSG_COIN_REMOVED, SMSG_LOOT_REMOVED and SMSG_LOOT_RELEASE to packet class 2020-07-08 14:53:54 +02:00
Rothend 2ef041bf36 Core/Player: do not consider FLAG_EXTRA_NO_XP_AT_KILL or pet status when deciding if a creature counts as a "gives experience or honor" target. (#24884)
Closes #23860
2020-06-26 21:27:36 +02:00
Ovahlord 4d39bb602e Core/Players: do not update position data on character creation
Retail does not have a zone id for newly created character until their first login so we do the same as well. This will drastically improve performance on character creations as we no longer unnecessarily load grids and map data.
2020-06-18 05:17:22 +02:00
Shauren 40f80fc0ed Core/Maps: Improvements to terrain swap handling
* Fixed memory leak when unloading grids
* Handle child maps being entered
* Allow chaining more child maps (Draenor -> Tanaan Jungle -> Tanaan Jungle - No Hubs Phase)
2020-06-11 01:35:27 +02:00
Warpten 5cb747620a Core/Movement: Fixed Animation Tier handling (#113) 2020-06-03 00:49:18 +02:00
Ovahlord f1bd380b20 Core/Players: update mount capabilties when the liquid status of players change
* simplified checks for liquid restrictions in mount capability helper
* handle missing case for liquid exclusive mounts
* update position data on character login to avoid some edge case outdoors checks

closes #95
2020-06-01 15:10:13 +02:00
Ovahlord d8ec67df50 Core/Movement: converted collision height and move update opcodes back to movement structures and implement new movement status elements for future use 2020-05-10 19:21:33 +02:00
Ovahlord a2cea3ce08 Core/Movement: converted CMSG_MOVE_SET_COLLISION_HEIGHT_ACK and SMSG_MOVE_UPDATE_COLLISION_HEIGHT to packet class
* added new MovementInfo helpers for easy access to all packet related data
2020-05-10 01:31:53 +02:00
Ovahlord 5cf7de6aa7 Core/Units: make health regeneration functions for players and creatures virtual 2020-04-27 14:39:07 +02:00
Ovahlord e7ba484fcf Core/Units: reworked creature power regeneration handling
* players and creatures now share the same power regeneration regeneration function
* UpdatePowerRegeneration is now virtual and handles creature and player specific formulas individually
* handle update field flag UF_FLAG_UNIT_ALL to handle UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER and UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER for creatures as well
2020-04-27 14:20:33 +02:00
Ovahlord 6abab1704f Core/Spells: implement SPELL_AURA_INCREASE_SKILL_GAIN_CHANCE
*this fixes the Working Overtime guild perk
2020-04-23 18:19:59 +02:00
Ovahlord b653f2f819 Core/Units: ported power type updates from master branch 2020-04-22 03:13:02 +02:00
Ovahlord d30c811d9e Core/Creatures: reworked tempoary summon creation
* all stats and values will now be set before summons are getting added to map
* cleaned up summon spell effect handler to reduce duplicade code
* summoner guids will no longer be set for every minion and correctly handle assigning creator guids instead. These values will serve as fallback guid if there is no summoner guid
* friendly tempsummons will now inherit the guild data of their player and pass them on to further allied summons. This fixes guild specific visuals for creatures such as Guild Battle Standards and Guild Heralds.

Todo: check for regressions
2020-04-22 00:20:18 +02:00
Ovahlord c537a2658a Core/Units: reworked power regeneration for players
* use a reversed client function to get the power regeneration rate for all types of powers
* unified all player based regeneration updates into a single statsystem helper
* cleaned up unnecessary regeneration timers
* implement power regeneration for alternative powers
* corrected rage gain numbers based on simulationcraft formulas
2020-04-19 22:53:29 +02:00
Shauren ec6d64b9c6 Core/Player: Wait for correct transaction on character creation 2020-04-15 21:58:02 +02:00
Shauren ca881f7e3f Core/DBLayer: Implement async transaction completion callbacks 2020-04-15 21:41:14 +02:00
Shauren 40c3c785a2 Core/DBLayer: Prevent mixing databases with query holders
# Conflicts:
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/Player.h
#	src/server/game/Server/WorldSession.cpp
#	src/server/game/Server/WorldSession.h
2020-04-15 21:30:10 +02:00
Shauren 47acc59f49 Core/DBLayer: Prevent committing transactions started on a different database 2020-04-15 21:02:26 +02:00
Shauren d003ebd8e4 Core/DBLayer: Prevent using prepared statements on wrong database 2020-04-15 19:18:58 +02:00
Ovahlord a91424185b Core/Packets: convert SMSG_INIT_WORLD_STATES to packet class 2020-04-08 17:15:22 +02:00
Ovahlord d31f19265d Core/Objects:
* store liquid status lookups from UpdatePositionData in a member and draw liquid status information from it instead of doing extra vmap lookups. This also fixes collision height based liquid status states which was leading to false positive movement speed selection for creatures
* remove redundant IsUnderWater helper override from player class as our object based liquid status also considers collision height
2020-04-05 20:41:15 +02:00
Ovahlord 03f20765b8 Core/Players: fixed a typo in initial world state preparation 2020-04-04 20:27:28 +02:00
Ovahlord 77cf10ee5f Core/Misc: fixed gcc warnings 2020-04-04 20:20:41 +02:00
Ovahlord f1f00c3ec3 Core/Datastores: refactor DBC storage helpers to use a class and fixed no pch build 2020-03-18 15:24:25 +01:00
Ovahlord e47b9c8599 Core/Movement: converted SMSG_MOVE_SET_COLLISION_HEIGHT to packet class and handle reason bits to match sniff behaivior 2020-02-23 10:59:57 +01:00
Ovahlord d9b854ad59 Core/Datastores: backported hotfix system implementation 2020-02-21 23:13:38 +01:00
Ovahlord 59120fbd38 Core/Quests: ported breadcrumb quest handlings and cleaned up quest template loading handlings 2020-02-20 05:08:09 +01:00
ariel- 0fcc0ebca2 Core/Player: don't check quest requirements against RewardNextQuest
- This field is only used to propose a new quest to player after completion, shouldn't be used to condition current quest

Closes #19515
2020-02-20 02:20:08 +01:00
xinef1 c72ee80eb7 Core/Quests: Display quest objective explore completion message
- Game client should show an on-screen message for explored quest objectives
  (AreaExploredOrEventHappens) when the objective has been completed.
2020-02-20 02:15:00 +01:00
ariel- d28be94e4a Core/Quests: implemented MSG_QUEST_PUSH_RESULT notifications
- Allow to share already completed (but not rewarded) quests, restriction was unblizzlike

thanks Cannix for the heads up
2020-02-20 01:55:48 +01:00
xinef1 d6e7cc52a8 Various quest system fixes (seasonal quests, timed quests and more) (#18940)
- Unify quest status checking function, use dedicated function instead of direct map checks
- Fixed seasonal quest chains and ability to complete the same quests rewarded in past
- Update area dependent auras on quest status change (they often requires specific quest status)
- Send all not stored quest rewards by mail
- When casting quest reward spell, check if it is not self casted, if so - use player to cast this spell
- Perform full db save on quest reward to prevent data desynchronization
- Don't allow to fail completed timed quests, except for quests which are completed right from the start
- Don't allow to share pooled quests, if they are not available in the current pool (eg sharing easy dalaran weeklies, stored at alt character)
- Remove seasonal quest if rewarded quest is removed
- Don't complete whole quest on AreaExplore event, check if there are no more requirements that should be fulfilled
- Quests with flag QUEST_SPECIAL_FLAGS_PLAYER_KILL can be only credited in quest zone

Closes #18913
Closes #11187
Closes #15279
2020-02-20 01:51:14 +01:00
ariel- 08e174549e Core/Quest: fix RewardNextQuest being used to condition previous quests in chain 2020-02-20 01:42:01 +01:00
ariel- a7484837a8 Core/Quests: fixed exclusivegroup interaction with prevquestId and nextQuestId.
- They should work as documented by wiki now.
- Add some consts to Player methods
- Fixed negative PrevQuestID to mean only active quest (ie not rewarded/complete, as those quests are required to complete another)

Closes #19300
2020-02-20 01:39:08 +01:00
ariel- 330f399de3 Core/Globals: some changes in quest loading
- Made load/reload associated quest tables data-driven, so removed a bunch of similar looking code from ObjectMgr (yay!)
- Codestyle and encapsulation for ExclusiveQuestGroups
2020-02-20 01:31:29 +01:00
ariel- ef6f5abf75 Core/Globals: Fix Quest codestyle and member variable initialization 2020-02-20 01:24:47 +01:00
Ovahlord 87955a487e Core/Packets: corrected packet structure of SMSG_SUSPEND_TOKEN 2020-02-17 19:51:22 +01:00
Ovahlord 22ed3f306d Core/Movement: implement SMSG_SUSPEND_TOKEN and CMSG_SUSPEND_TOKEN_RESPONSE packets and converted SMSG_TRANSFER_PENDING and SMSG_NEW_WORLD to packet class 2020-02-17 18:40:21 +01:00
Ovahlord 274877ab67 Core/Player: fixed a typo that was causing area trigger geometric checks to return false positive results 2020-02-08 18:45:28 +01:00
Ovahlord b7f7e99d63 Core/Packets: converted SMSG_TRIGGER_CINEMATIC, SMSG_TRIGGER_MOVIE, CMSG_COMPLETE_CINEMATIC, CMSG_NEXT_CINEMATIC_CAMERA, CMSG_COMPLETE_MOVIE and SMSG_STREAMING_MOVIES to packet class 2020-02-08 15:11:32 +01:00
Ovahlord 99935970a6 Core/Player: make travis happy
* fixed spacing in msg opcode enum
2020-02-01 16:07:19 +01:00
Ovahlord 3c378d7b0d Core/Packets: converted SMSG_QUEST_UPDATE_COMPLETE, SMSG_QUEST_UPDATE_FAILED_TIMER, SMSG_QUEST_GIVER_INVALID_QUEST, SMSG_QUEST_GIVER_QUEST_FAILED, MSG_QUEST_PUSH_RESULT, SMSG_QUEST_GIVER_STATUS_MULTIPLE and SMSG_QUEST_LOG_FULL to packet class 2020-02-01 15:47:58 +01:00
Ovahlord 9c0755a343 Core/Packets: converted SMSG_QUEST_CONFIRM_ACCEPT, SMSG_QUEST_UPDATE_ADD_CREDIT and SMSG_QUEST_UPDATE_ADD_PVP_CREDIT to packet class 2020-02-01 11:41:24 +01:00
Ovahlord 1c784a7fd7 Core/Packets: convert SMSG_QUEST_GIVER_QUEST_COMPLETE to packet class 2020-02-01 11:01:45 +01:00
Ghaster a246b5a342 Core/Item: cleanup some enums (#28) 2020-01-30 17:06:37 +01:00
Ovahlord d4faba7897 Core/Players: restore enchantment update handling if a skill is being reduced by game masters 2020-01-28 21:27:51 +01:00
Ovahlord a11fb57342 Core/Players: re-organize SetSkill logic to cover all possible save state cases with the new skill initialization 2020-01-28 17:36:32 +01:00
Ovahlord 37fae4e57a Core/Player: fixed a warning 2020-01-27 11:26:36 +01:00
Ovahlord a72411241d Core/Players: simplified mount capability update checks and removed a unneeded call uppon changing liquid status 2020-01-27 09:49:26 +01:00
Ovahlord 65145b375a Core/Players: fixed an ancient typo in 34b3617184
thx to Artamedes for noticing
2020-01-26 16:34:56 +01:00
Ovahlord 28b3ae6946 Core/Items: 603b71d2a7 followup. Simplified checks 2020-01-26 08:49:13 +01:00