Commit Graph

21804 Commits

Author SHA1 Message Date
Giacomo Pozzoni
aeddd417c4 Core/Misc: Handle timezones for hour-specific events specifieds in worldserver.conf (#23540)
* Core/Misc: Handle timezones for hour-specific events specifieds in worldserver.conf

* Handle Respawn.RestartQuietTime too

* Handle XP.Boost.Daymask too

* Core/Misc: Code cleanup

* Core/Misc: Code cleanup

* Update Util.cpp

* Update boosted_xp.cpp
2019-07-19 21:24:56 +02:00
Treeston
c0f8e8535a build fix after d1dc0e2 2019-07-19 20:37:22 +02:00
ccrs
ba8d3254c2 Core/Player: d1dc0e2 followup
build error going to be fixed soon..ish
2019-07-19 18:52:07 +02:00
ccrs
0e3e4353a1 Core/SmartAI: add missing movement generator type check on SmartAI::SetCombatMove
ref #21562
2019-07-19 16:07:00 +02:00
ccrs
c8cb866db0 Core/SmartAI: allow more Unit::ResumeMovement calls on JustReachedHome()
Since ResumeMovement also works on other MOTION_SLOT_DEFAULT generators (like RandomMG)
2019-07-19 15:52:35 +02:00
ccrs
bca46aa750 Core/Player: d1dc0e2 followup 2019-07-19 15:43:30 +02:00
Wyrserth
246a8661fd Script/Spell: don't use invalid spells for the Magic Rooster mount.
Closes #1822.
2019-07-19 00:31:39 +02:00
Ovah
6e2ca481e5 Core/Misc: Add new centralized location for generic predicates (PR #23607) 2019-07-18 22:51:23 +02:00
jackpoz
a9f1dc1da7 Core/Misc: Fix warnings 2019-07-18 21:16:28 +02:00
jackpoz
9ed35e2108 Core/MovementGenerator: Add more asserts 2019-07-18 21:14:27 +02:00
jackpoz
560b7e3397 Core/MovementGenerator: Add more details to asserts
Include movespline in Unit::GetDebugInfo() and the Player owner in FlightPathMovementGenerator::DoEventIfAny() assert
2019-07-18 20:09:00 +02:00
Ovah
3f7b2252a1 Core/Movement: add a velocity argument for the spline chain meta table (PR #23575) 2019-07-18 15:52:03 +02:00
OcelotGear
085f40a278 Script/Hunter: fix Snake Trap's snakes' initialization.
Closes #23570.
2019-07-18 03:36:00 +02:00
Wyrserth
55570be661 Core/Creature: honor existing DB data for health and mana in case of summoned pets that don't have pet-specific stat data.
Closes #23570.
2019-07-18 02:47:58 +02:00
Wyrserth
5f5d2028df Core/Creature: don't set guardian stats in Creature::UpdateEntry(), because stat calculation from guardians is already done in Guardian::InitStatsForLevel.
Closes #281.

Signed-off-by: Wyrserth <wyrserth@protonmail.com>
2019-07-18 02:20:36 +02:00
Treeston
b64834c3f5 Scripts/Commands: Adjust .list respawns to use enum iteration. Add enum iteration capability to SpawnObjectTypes. 2019-07-17 22:58:49 +02:00
Treeston
af66b60987 Core/DB: Add a trinity string for pool respawns. 2019-07-17 22:31:03 +02:00
Wyrserth
a58955d88c Core/Achievement: don't increase ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM counters for items bought back from vendors. 2019-07-17 20:48:21 +02:00
Wyrserth
25e01b0402 Core/Script: fix logical mistake in spell_gen_clone_weapon_aura. 2019-07-17 20:42:42 +02:00
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
e7cf24d263 Script/BoreanTundra: move Pile of Fake Furs' script (related to quest Unfit for Death) from ItemScript to SpellScript.
Closes #21890.
2019-07-17 19:57:21 +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
Treeston
a82bbeb101 Core/DB: Add RBAC for .debug poolstatus, because I need it for the pooling branch. 2019-07-17 15:59:52 +02:00
jackpoz
504e452450 Core/Misc: Fix no-pch build 2019-07-16 19:50:11 +02:00
Treeston
45bc91c238 Core/DB: Merge pool_creature, pool_gameobject and pool_pool into a single pool_members table.
(More pooling prep, I really don't want to have any sql update files in that PR if I can help it.)
2019-07-16 19:22:24 +02:00
Shauren
86b516c3f2 Core/Addons: Fixed Blizzard_* addons insecure lua errors
Closes #23599
2019-07-16 17:10:28 +02:00
Treeston
293ba08d21 Scripts/Commands: Add .debug questreset to force daily/weekly/monthly quest reset. 2019-07-16 15:04:14 +02:00
Treeston
2c1b87ca29 Core/Chat: Properly reload saved channel settings from DB after 8c16f31. 2019-07-16 13:17:45 +02:00
Treeston
1277c54263 Core/DB: Add a world state for daily quest reset time to characters. Not used right now, but written to allow easier transition later. 2019-07-16 12:50:16 +02:00
Shauren
c278044739 Core/Authserver: Fixed crash happening when sending packets larger than 4096 bytes (giant realmlist basically)
Closes #23597
2019-07-15 22:28:10 +02:00
Shauren
01124c6f4e Fix clang build 2019-07-15 18:30:17 +02:00
Shauren
cd3d317ebf Core/Addons: Improve WorldSession::ReadAddonsInfo
* Only allow built-in addons to be marked as secure
* Better protect against malformed packets
2019-07-15 17:47:35 +02:00
Treeston
37f69825c4 Core/Spells: Spell pushback now only affects players (as it should) 2019-07-15 17:21:40 +02:00
Treeston
d60082ae86 Core/Misc: Various dynspawn cleanup and refactors split off from pooling rewrite:
- Map::RemoveRespawnTime(SpawnObjectType, LowType, doRespawn) split into Map::Respawn and Map::RemoveRespawnTime, without the extra boolean
- Map::RemoveRespawnTime(RespawnInfo*) merged into Map::DeleteRespawnInfo(RespawnInfo*) and is now private
- Map::DeleteRespawnInfo(void) renamed to Map::UnloadAllRespawnInfos to properly describe what it does
- Map::ProcessRespawns now actually saves the delayed respawn time to DB if the respawn was delayed
- Map::AddRespawnInfo now takes const reference, and returns success as a boolean
- Map::AddRespawnInfo no longer offers an unused "replace" parameter
- Map::DeleteRespawnInfo no longer offers a variety of unused private overloads
- Map::SaveRespawnTime no longer offers a tantalizing writeDB parameter. Parameter is now called "startup" to properly describe what it does.
- Map::SaveRespawnInfoDB now takes RespawnInfo reference instead of all the various fields. Still public because compatibility mode. QQ.
- Map::GetWorldObjectBySpawnId sanitized
- Map::GetXRespawnTime methods sanitized to all go through Map::GetRespawnTime
2019-07-15 17:14:58 +02:00
Treeston
26440857c1 Core/Spawns: Exterminate CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY with extreme prejudice. (It didn't work anyway.) 2019-07-15 15:57:04 +02:00
Treeston
374597c8e9 Core/DB: Unify creature_respawn and gameobject_respawn into a single respawn table 2019-07-14 18:49:38 +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
Shauren
eed9267685 Core/DB: Improved terrible assertion message 2019-07-14 12:06:43 +02:00
ccrs
3785a35511 Server/Packets: implement SMSG_RESYNC_RUNES packet structure 2019-07-13 18:58:04 +02:00
jackpoz
7421ccaf7e Core/Commands: Add .debug guidlimits <optional map id> chat command
Add .debug guidlimits <optional map id> chat command to show the highest low guid counter for Creature and GameObject, useful when reaching Respawn.GuidWarnLevel
2019-07-13 18:15:39 +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
jackpoz
7f3d8c99bb Core/Calendar: Fix issue with invite status being set to the wrong invite
Consider the case of Player A inviting Player B to a Calendar Event. After Player B clicks on Accepts/Tentative/Reject, the calendar shows that status for Player A instead.
2019-07-13 12:10:32 +02:00
Wyrserth
5707019256 Core/Player: apply LevelReq.Trade only to the player initiating a trade, aligning it with the other LevelReq.* config options. 2019-07-13 01:08:16 +02:00
Wyrserth
a54af39e29 Core/Player: prevent trade system from getting stuck in an invalid state when the LevelReq.Trade config is used. 2019-07-13 00:52:14 +02:00
ccrs
81475f709f Scripts/ScarletEnclave: 4ee84bb followup 2019-07-12 20:38:50 +02:00