Commit Graph

1446 Commits

Author SHA1 Message Date
Wyrserth 3db4fbbcef Core/Pet: generate a new name for Death Knights' Ghouls when a new one is summoned.
Unlike Warlock pets, whose names are generated only once because they're the same demon that is summoned over and over, Death Knight pets are different entities generated from different corpses (or corpse dust). So each has their own, randomly generated, name.
2019-07-17 20:17:10 +02:00
Wyrserth c52c0f0b7d Core/GameObject: do not allow players to interact with gameobjects that use the "Point" icon.
Updates #21890.
2019-07-17 19:56:02 +02:00
Wyrserth 91f214cd22 Core/Quest: when receiving an item required for a quest, update every quest in the quest log instead of stopping at the first objective that matches the received item.
Closes #10586.
2019-07-17 18:08:21 +02:00
Wyrserth ad039c0999 Core/Player: always set the player's dugeon/raid difficulty to the group's dungeon/raid difficulty, regardless of level.
Fixes cases where players could enter heroic dungeons without meeting the heroic version requirements.
2019-07-17 17:15:07 +02:00
Wyrserth a4ddb30489 Core/Player: don't send errors to client from Satisfy* methods when Player::CanRewardQuest() is called with msg = false.
Fixes cases where people would get strange errors like "You are not high enough level for that quest" when entering WotLK instances.
2019-07-17 16:11:54 +02:00
ccrs 6826b8cb2c Build: fix build error
In file included from /home/circleci/project/src/server/game/Entities/Player/Player.cpp:19:
In file included from /home/circleci/project/src/server/game/Entities/Player/Player.h:22:
In file included from /home/circleci/project/src/server/game/Entities/Unit/Unit.h:22:
In file included from /home/circleci/project/src/server/game/Entities/Object/Object.h:22:
In file included from /home/circleci/project/src/common/Common.h:23:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/memory:63:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/allocator.h:46:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8/bits/c++allocator.h:33:
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/ext/new_allocator.h:136:23: fatal error: no matching constructor for initialization of 'WorldPackets::Spells::ResyncRune'
        { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
                             ^   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/alloc_traits.h:475:8: note: in instantiation of function template specialization '__gnu_cxx::new_allocator<WorldPackets::Spells::ResyncRune>::construct<WorldPackets::Spells::ResyncRune, unsigned char &, unsigned int &>' requested here
        { __a.construct(__p, std::forward<_Args>(__args)...); }
              ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/vector.tcc:103:21: note: in instantiation of function template specialization 'std::allocator_traits<std::allocator<WorldPackets::Spells::ResyncRune> >::construct<WorldPackets::Spells::ResyncRune, unsigned char &, unsigned int &>' requested here
            _Alloc_traits::construct(this->_M_impl, this->_M_impl._M_finish,
                           ^
/home/circleci/project/src/server/game/Entities/Player/Player.cpp:24611:22: note: in instantiation of function template specialization 'std::vector<WorldPackets::Spells::ResyncRune, std::allocator<WorldPackets::Spells::ResyncRune> >::emplace_back<unsigned char &, unsigned int &>' requested here
        packet.Runes.emplace_back(type, cooldown);
                     ^
/home/circleci/project/src/server/game/Server/Packets/SpellPackets.h:117:16: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
        struct ResyncRune
               ^
/home/circleci/project/src/server/game/Server/Packets/SpellPackets.h:117:16: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 2 were provided
/home/circleci/project/src/server/game/Server/Packets/SpellPackets.h:117:16: note: candidate constructor (the implicit default constructor) not viable: requires 0 arguments, but 2 were provided
1 error generated.
2019-07-14 14:20:39 +02:00
ccrs bbb9d94acc Core/Server: 3785a35 followup 2019-07-14 13:21:49 +02:00
ccrs 3785a35511 Server/Packets: implement SMSG_RESYNC_RUNES packet structure 2019-07-13 18:58:04 +02:00
ccrs d1dc0e2dc1 Scripts/DK: correctly handle Blood Tap 2019-07-13 17:57:07 +02:00
Treeston 8c16f318fe Core/Chat: Rewrite some custom channel handling. Channel creation now properly saves passwords. Closes #23589. 2019-07-13 17:44:41 +02:00
Treeston af082664ca Battleground/Arena: Properly check RBAC arena join permission before allowing queue. Closes #23000. 2019-07-12 14:14:01 +02:00
Shauren 6eecb685ce Core/Weather: Fixed weather updates to be thread safe
(cherry picked from commit 6eb9973947)
2019-07-09 21:17:59 +02:00
Treeston a1fd404b64 Core/Quest: Do not allow quests to be turned in if the player no longer satisfies level/skill/reputation requirements. Fixes #226. Yes, you read that issue tag right. 2019-07-08 21:35:57 +02:00
Treeston 671052575a Entities/Player: Properly restore PvP-enabled state on login 2019-07-08 14:09:57 +02:00
Wyrserth 7fc1ecca8a Core/Player: fix crash happening when trying to send drunken state to nearby players while the character is loading. 2019-07-05 16:23:06 +02:00
Wyrserth 12e545f7e2 Core/Conditions: allow spellclick conditions to properly work for aura apply/remove (#23527) 2019-07-05 14:11:15 +02:00
ForesterDev c44fb37f74 Core/Unit: Implement more helper methods (#23555) 2019-07-05 14:07:35 +02:00
Giacomo Pozzoni 2cb4517303 Core/Quest: Fix repeatable quest mark (#23338) 2019-07-04 15:11:35 +02:00
Treeston 4e767f1c7c Entities/Player: Fix an edge case where overlapping CCs could prevent player movement from being re-enabled. f6f1c48 follow-up. 2019-07-03 19:26:43 +02:00
Wyrserth 670085d8c0 Core/Quest: fix money reward for quests turned in at level cap. (#23495) 2019-07-03 17:42:23 +02:00
Wyrserth 858fa4d2dd Core/Reputation: don't allow quests to reward Honor Hold/Alliance Vanguard reputation to Horde players or Thrallmar reputation to Alliance players (#23552) 2019-07-03 16:09:21 +02:00
Treeston f6f1c48aa5 Entities/Player: Clean up client control handling behavior around possession. Mind Control should no longer cause various weirdness. Closes #23539. 2019-07-02 11:58:12 +02:00
ForesterDev b47bb59e2a Core/Player: add helper methods GetNativeGender/SetNativeGender/SetGender (#23520)
* Core/Player: add helper methods GetNativeGender/SetNativeGender/SetGender and fix some cases, where we should get player gender, instead of modified by display gender

* fix merge

* Add virtual methods for Unit class
2019-07-02 10:17:02 +02:00
ccrs 401777d024 Core/Unit: rename several getters to follow codestyle
uint8 GetLevel()
        uint8 GetLevelForTarget(WorldObject const* /*target*/)
        void SetLevel(uint8 lvl)
        uint8 GetRace()
        uint32 GetRaceMask()
        uint8 GetClass()
        uint32 GetClassMask()
        uint8 GetGender()
2019-07-01 21:36:32 +02:00
Wyrserth c8289ada7f Core/Quest: do not send SMSG_QUESTGIVER_OFFER_REWARD right after SMSG_QUESTGIVER_QUEST_FAILED.
Allows the gossip window to close after the client receives a quest failed error (for example: not enough inventory space to store the reward).
2019-07-01 01:19:31 +02:00
jackpoz de88691e25 Core/Misc: Fix static analysis issues reported by Coverity Scan 2019-06-28 22:18:30 +02:00
Wyrserth cb524a06b7 Core/GameObject: trigger an update of nearby objects when the player completes a quest objective.
Prevents quest-related gameobjects from staying lootable after the player looted the last quest item from another gameobject.
2019-06-27 20:30:26 +02:00
ccrs 337de2b61e Core/Player: 72fc79a followup
safer approach, please report any returning issue
2019-06-24 14:32:59 +02:00
Treeston f4b06fd0b7 Entities/Unit: Fix an issue where Unit pointers could be left dangling if a channeled Charm was interrupted by a control aura application. Closes #23440. 2019-06-23 16:45:32 +02:00
Treeston 396f87c30d Entities/Unit: Cleanup all the direct accesses to m_unitMovedByMe. Refactor the field to be protected. Add assertions to catch dangling pointers. 2019-06-23 16:44:37 +02:00
Wyrserth 4320cd7d37 Core/Loot: don't allow to regenerate chest loot inside instances and raids. (#23449) 2019-06-20 08:13:38 +02:00
Wyrserth cb8b1069c4 Core/Packet: send SMSG_QUESTGIVER_STATUS_MULTIPLE when the player levels up. (#23434)
Ensures that nearby questgivers are properly updated and will offer quests unlocked at the new level reached.
2019-06-18 08:58:06 +02:00
jackpoz 4019cae375 Core/Player: Fix teleporting FlyPath dismounting the player
Issue added in 72fc79a9e6
2019-06-15 17:45:33 +02:00
Wyrserth 218055280a Core/Spells: don't allow spells with SPELL_EFFECT_CREATE_ITEM_2 to be cast if there isn't enough space in inventory (#23404)
* Core/Spells: don't allow spells with SPELL_EFFECT_CREATE_ITEM_2 to be cast if there isn't enough space in inventory,

* Move GetFreeInventorySpace() to a better place, thanks ccrs!
2019-06-15 15:11:49 +02:00
Wyrserth 8d53d16d16 Core/Player: allow AutoStoreLoot to specify if the looted item should be shown as if created by the player. (#23400) 2019-06-14 15:06:39 +02:00
jackpoz 72fc79a9e6 Core/Player: Remove all Motion Masters when teleporting
Fix #22859
2019-06-09 16:33:27 +02:00
jackpoz bda351d7f1 Core/Map: Don't log errors about Area ID 0
Restore a check about Area ID 0 that would silently ignore this case instead of spamming log errors. Check removed in e79c595b69
Fix #23085
2019-06-01 15:59:52 +02:00
Ovah 635cefc67e Core/Players: out of range group updates will now get sent every 5 seconds instead of as soon as they are available to reflect retail behaivior. (#23323)
* according to sniffs the group update packet for out of range members has a fixed 5 seconds interval instead of spaming packets like crazy for example when updating positions. On 4.x and above this will fix a very nasty and ugly fps drop
* validated with 4.3.4 and 3.3.5 sniffs
2019-05-27 16:37:47 -03:00
jackpoz 3828596847 Core/Packet: Clean up packet creation
Clean up packet creation by removing some unneeded checks to specify the exact packet size to reserve.
It's cheaper and easier to just always specify the max size as it's a matter of a few bytes only anyway.
2019-05-18 20:37:18 +02:00
jackpoz a0bd68cf46 Core/Misc: Fix static analysis issues reported by Coverity 2019-05-18 16:12:23 +02:00
Wyrserth 404c4f8091 Core/Scripts: implement a PlayerScript hook called when a quest's objective receives progress (#23286) 2019-05-17 20:38:15 +02:00
Wyrserth 49dc8a8e44 Core/Quest: improve source item deletion logic for items that give quests (#23250)
* Core/Quest: improve source item deletion logic for items that give quests.

Prevent deletion of items that aren't supposed to be destroyed (like Demon Scarred Cloak).

* Whoops.
2019-05-10 17:49:46 +02:00
Wyrserth b76bcc836c Core/Achievement: fix mistake related to ACHIEVEMENT_CRITERIA_TYPE_OWN_ITEM. (#23252) 2019-05-07 19:49:25 +02:00
Wyrserth 0a25069db4 Core/Achievement: correctly credit progress for skill-related achievements when learning a new skill. (#23249) 2019-05-07 10:45:37 +02:00
jackpoz a76d01278a Core/Misc: Apply fatigue when flying too
Fix #22856
2019-05-04 19:36:00 +02:00
Jozef Dúc 78070163dc Core/Object: Range check vol. 2 (#23226)
* Core/Object: Fix all missing parts for #23062

* Update GameObject.cpp
2019-05-02 21:53:12 +02:00
Chaouki Dhib 975f1e364a Core/Movement: Add time synchronisation (#18189) 2019-04-15 23:31:25 +02:00
Jozef Dúc f221fcdd4b Core/Creatures: Filter out trainer spells that belong to a skill that can never be learned by a player with given class and race combination (#23176)
Closes #23172
2019-04-11 21:06:53 +02:00
PolarCookie 5ed77113b6 Core support for breadcrumb quests (#23157)
* Breadcrumb quests support in core

* To Winterspring! & Starfall

* translating ZenoX92's list, part 1

* Carendin Summons is Blood Elf only

* Breadcrumb to an exclusive group

* translating ZenoX92's list, part 2

* class quests

* breadcrumb trails

* better prevquest check

* less harsh error warnings

* minor optimization

* Rename 9999_99_99_99_world.sql to 2019_04_10_00_world.sql
2019-04-10 12:58:40 +02:00
Ovah b9e9ccf93c Core/Objects: use the actual collision height of players and creatures to get more accurate liquid status results (#23070) 2019-04-06 17:39:04 +02:00