Commit Graph

24655 Commits

Author SHA1 Message Date
Gustavo
d50611c108 Core/Auras: Implement SPELL_AURA_DETECT_AMORE (#19955)
Based on b58b29c958

(cherry picked from commit a27a3e0457)
2020-08-18 18:53:13 +02:00
Treeston
94e164f9c9 Utilities/Containers: New RandomResize implementation with guaranteed asymptotic linear time for all container types (#19974)
(cherry picked from commit ac50034df7)
2020-08-18 18:53:13 +02:00
treeston
67ffe7bcf0 Core/Combat: Fixed issues with creatures sometimes entering combat with friendly targets
Close #19980

(cherry picked from commit 07593f6c34)
2020-08-18 18:53:13 +02:00
treeston
daf9c703c4 Two more refactors I missed for #19930. Last ones for now, I promise.
(cherry picked from commit 62d5113252)
2020-08-18 18:53:13 +02:00
treeston
2c88d9f162 Some more refactoring prep for combat/threat (#19930).
(cherry picked from commit 2739a5c5f5)
2020-08-18 18:53:13 +02:00
treeston
bacc5ef94e Creatures now release spell focus on projectile launch (for spells that have a projectile portion) as opposed to projectile impact.
This should make some very slow projectiles (f.ex. Professor Putricide's Malleable Goo) a lot smoother.

(cherry picked from commit 5d3c69bf44)
2020-08-18 18:53:13 +02:00
Ovah
71db17220a Core/Spells: enable and implement SMSG_MISSILE_CANCEL (#25215) 2020-08-16 12:07:51 +02:00
Keader
04c303a7e5 Core/Custom: Fixed Duel Reset Exploits
Close #17419
*Fixed exploit with SPELLMOD_COOLDOWN
*Fixed exploit with some items (like Sylvanas' Music Box)
*Little cleanup

(cherry picked from commit 0048d4b618)
2020-08-14 17:38:52 +02:00
Shauren
1c52d5fff7 Core/Misc: Replace NULL with nullptr 2020-08-14 17:06:03 +02:00
Treeston
8be23fcbbd [3.3.5] Combat/Threat rewrite - prep & refactor (#19966)
* Combat/Threat rewrite (PR #19930) prep work. Mostly refactors, and a compatibility layer on ThreatManager/HostileReference that allows scripts to be changed already.

(cherry picked from commit e2a1ccd118)
2020-08-13 22:46:44 +02:00
Shauren
2c99678118 Core/PacketIO: Send the expected value in available hotfixes packet - realm address, not arbitrary number (it no longer has any effect for clearing client cache) 2020-08-13 14:15:26 +02:00
Artamedes
e85bd8fd39 Scripts/Stockades: Cleanup the scripts (#23524)
* Scripts/Stockades: Cleanup the scripts

Scripts looked ugly before, now they are less ugly
Move Mortimer Moloch and Warden Thelwater to use TaskScheduler rather than EventMap
Use new script registers
Cleanup some other code

Co-authored-by: Carbenium <carbenium@outlook.com>
2020-08-10 20:50:25 +02:00
Shauren
7e4fdf0522 Core/PacketIO: Fixed SMSG_WORLD_SERVER_INFO structure 2020-08-09 14:12:13 +02:00
Treeston
22bad09c01 Core/DB: Split accounts.session_key into session_key_auth (3.3.5) and session_key_bnet (master), so the branches will no longer break each other's realm switching.
(cherry picked from commit 38de6d3307)
2020-08-03 22:49:31 +02:00
Treeston
73922d2a85 Core/Authserver: Re-organize the accounts table (PR #25135)
- no longer use sha_pass_hash for anything else core-side (.account, SOAP, RA)
- salt/verifier/session_key are now binary
- old s/v/sha_pass_hash fields kept around for backwards compatibility
- sha_pass_hash is still updated (for now), s/v are not
- sha_pass_hash is only read if s/v have been manually changed
- SRP6 b now uses the full 32 bytes of randomness (instead of randomly only using 19)

(cherry picked from commit 3164b58c7d)
2020-08-03 22:37:47 +02:00
Treeston
77380f032b Core/Authserver: Split SRP6 into its own file (PR #25131)
(cherry picked from commit 7f7fa8b23d)
2020-08-03 21:16:30 +02:00
Treeston
ac37ca040b how does VC++ never catch these? 5e36bf7 follow-up
(No more witty one-liners. Let me go to bed please.)

(cherry picked from commit 35411e5ed9)
2020-08-03 19:47:19 +02:00
Treeston
287e18a57c Core/Authserver: Auth cleanup phase 1b, the "I didn't hit Stage All" commit. Sorry. (5e36bf7 follow-up)
(cherry picked from commit 4f570e5d08)
2020-08-03 19:45:11 +02:00
Treeston
059bd630e9 Core/Authserver: Auth cleanup phase 1a, the "stuff I ran across while making phase 2" commit.
- Did you know BigNumber quietly assumes every byte array it gets is little-endian, even though openssl bignums use big-endian? Now you do!
- In entirely unrelated news, make the above behavior explicit through a default-true boolean, same as existing GetBytes derivatives.
- Also, if you are in the enlightened openssl 1.1 crowd, there's no more endian wrangling involved, because openssl now does all of that for us. Progress!

(cherry picked from commit 5e36bf7c67)
2020-08-03 19:41:41 +02:00
Treeston
e9392ad287 Core/Authserver: Authserver cleanup (PR#25093)
- Fix a handful of 1/256 bugs with most significant byte zero in BigNumber
- Get rid of (most of) the C-style arrays in authserver
- CryptoRandom as a unified source for cryptographic randomness
- Bring our other crypto APIs into 2020
- BigNumber usability improvements
- Authserver is now actually readable as a result of all of the above

(cherry picked from commit 210176fd91)
2020-08-03 19:39:00 +02:00
Aokromes
c9e3356ba4 Core/Creatures: Fix typo 2020-07-31 12:37:31 +02:00
Shauren
1340f2cdb3 Core/Creatures: Move gossip trainer assignment to creature_trainer table - same gossip can open different trainers depending on which creature it is assigned to
Closes #21723
2020-07-31 11:21:24 +02:00
Shauren
e3cf94d4fd Core/GameObjects: Properly set GO_FLAG_MAP_OBJECT during gameobject creation 2020-07-27 08:58:40 +02:00
Traesh
97afa3a609 Core/Spells: Handle GAMEOBJECT_TYPE_UI_LINK spellFocus (#25132) 2020-07-26 16:51:43 +02:00
Shauren
588dce6bb0 Core/Entities: Support setting nested updatefield types like ActivePlayerData::Research 2020-07-26 12:44:44 +02:00
Shauren
8f9a69c9fa Core: Updated to 8.3.7.35249 2020-07-23 20:00:27 +02:00
Shauren
59d66041b1 Core/PacketIO: Add missing opcode handler/name definitions 2020-07-23 10:16:04 +02:00
Shauren
7968fec011 Core/PlayerDump: Fix collecting pet guids 2020-07-21 20:09:51 +02:00
ariel-
4b8c4f6064 Core/PlayerDump: general revamping
- Changed insert queries to include column names, check columns on dump load
- Modify and search columns by name instead of storing magic offsets
- Fully forward and backward compatible with previous dumps
- Added better logs, C++11-ize code

(cherry picked from commit 9bdbd69655)
(cherry picked from commit 545f1a8385)
(cherry picked from commit 4bf8802da1)
(cherry picked from commit 44381a7873)
(cherry picked from commit f50575ca77)
2020-07-21 20:03:06 +02:00
sueastward
b20ede9061 Core/Battlefield: Fixed crash in wintergrasp setup revealed after 4c173e4b7b (#25072) 2020-07-18 11:18:35 +02:00
Shauren
4c173e4b7b Core/Maps: Use FindMap instead of CreateBaseMap in places where the intent was to check for a existing map (and a loaded grid on that map) 2020-07-18 00:57:16 +02:00
ariel-
593d3243d4 Core/SmartAI: implemented SMART_EVENT_EVENT_PHASE_CHANGE
- Use instead of Update + event_phase_mask when action needs to be synchronized

(cherry picked from commit 619a5534c5)
2020-07-17 18:38:25 +02:00
Mikhail Redko
9ee7f42d44 Core/Spells: Move Big Blizzard Bear implementation to spell script (#19544)
(cherry picked from commit 8a5b998f48)
2020-07-16 22:21:39 +02:00
treeston
118e53f1b8 Combat/threat rewrite prep - merge RBAC/DB changes.
(cherry picked from commit e35092c6a1)
2020-07-16 22:06:56 +02:00
Treeston
2c3fc47a96 Proper client timeout detection (#19906)
- Properly detect client timeout when logged into a character after a configurable time (default 60s) has passed without the client sending any packets.
- Fixes issues with crashed clients leaving characters in the world for a very long time (default 15 minutes), as well as edge case exploits involving intentionally pausing client execution for some amount of time.

(cherry picked from commit 7dfd472f8d)
2020-07-16 22:00:30 +02:00
Shauren
37c3259de8 Core/Maps: Fixed initializing instance free ids when compiled with WITH_COREDEBUG
Closes #19931

(cherry picked from commit 9d37c2b8eb)
2020-07-16 22:00:30 +02:00
ariel-
d73e4015d1 Core/Spells: fixed crash
Closes #19924

(cherry picked from commit 9f765a1620)
2020-07-16 22:00:30 +02:00
Carbenium
692ec8e7c1 Core/SAI: Apply include cleanups to cherry-picked changes 2020-07-16 22:00:30 +02:00
treeston
09027e5ccc Fix an overly strict check that was causing guardians to evade loop. Also make players properly enter combat when their pets are engaged by a creature.
(cherry picked from commit 052fc24315)
2020-07-16 22:00:30 +02:00
S.V
ced4820252 Core/Scripts: Fixed GAMEOBJECT_TYPE_DOOR closing automatically after being opened with .gobj act (#19342)
Closes #19261.

(cherry picked from commit 3eba093704)
2020-07-16 22:00:30 +02:00
ariel-
148dc34cb2 Core/Scripts: fix array out of bounds in Pit of Saron doorData
(cherry picked from commit 08d0105396)
2020-07-16 22:00:30 +02:00
treeston
f8fa4d734c Correct some missing auth DB changes from b59ca1c.
(cherry picked from commit 41eddd59aa)
2020-07-16 22:00:30 +02:00
treeston
64baba77b6 30ac4f5 follow-up. (Finally, Keader. Finally.)
(cherry picked from commit c81f221e48)
2020-07-16 22:00:29 +02:00
treeston
ec9fbaceb0 Fix an issue where temp summons were ignoring m_regenHealth. (Hi Keader.)
(cherry picked from commit 30ac4f5377)
2020-07-16 22:00:29 +02:00
treeston
29db04c3c9 Rename .debug uws to .debug worldstate (clarity change).
(cherry picked from commit b59ca1cc81)
2020-07-16 22:00:29 +02:00
treeston
e3077813d5 Group creation again (follow-up to 132538d). Groups now only disband if all members reject the invitation (as opposed to if any member rejects the invitation).
(cherry picked from commit 250e8d998b)
2020-07-16 22:00:29 +02:00
treeston
2d191a6680 Fixes to all-reputation and all-skill custom option handling:
- Move on-create customs (all explored, all reputations) to CharacterHandler::HandlePlayerLogin for first login. Fixes #19839.
- Add Wrath factions to all reputations custom (it only had BC factions).
- Remove unused ReputationMgr::SendStates. Add ReputationMgr::SendState handling for sending all updated states in arbitrary order if nullptr is passed (used in point #1).
- Fix all weapon skills max custom to properly apply on learning new weapon skills.

(cherry picked from commit 4b6351e6a5)
2020-07-16 22:00:29 +02:00
Cannix
c12ee97f12 Core/Player: Keep shared quests through map changes instead of getting stuck in busy state (#19821)
(cherry picked from commit c14b448d63)
2020-07-16 22:00:29 +02:00
Gustavo
23a113756e Core/Spells Allow bosses to receive KnockBack under certain conditions (#19312)
Conditions: Not player, not controlled by player and not hunter's pet

(cherry picked from commit 3bfe67792d)
2020-07-16 22:00:29 +02:00
Treeston
595a871aa2 Modify group invite behavior while creating group to be blizzlike: (#19870)
- Leader can invite multiple people before the first invite is accepted
- Leader can cancel group formation by sending CMSG_GROUP_DISBAND (using /run LeaveParty() or similar)

Fixes #17258.

(cherry picked from commit 132538db1d)
2020-07-16 22:00:29 +02:00