Commit Graph

24648 Commits

Author SHA1 Message Date
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
treeston
64d8b183de Add new command 'npc showloot'. Does exactly what it says on the tin.
(cherry picked from commit 6f29aac936)
2020-07-16 22:00:29 +02:00
treeston
d4caff90aa dynamic_spawning conflict avoidance, part deux: World.h enums
(cherry picked from commit c9e7ab496e)
2020-07-16 22:00:29 +02:00
treeston
17a0139b0e - Add new commands .group set assistant, .group set maintank and .group set mainassist to toggle raid member flags.
- Fix 2017_05_29_00_auth.sql to be reapply safe.

(cherry picked from commit ac0f76f8c5)
2020-07-16 22:00:29 +02:00
treeston
7df8546d7e Removed a now-unused local (ca02629 follow-up)
(cherry picked from commit 4e41d3e6bd)
2020-07-16 22:00:29 +02:00
treeston
f543e570d6 Make some adjustments to .summon and .group summon behavior to make them more permissive:
- Now only requires the either target's group leader or target itself to be on your map
- Now summons all applicable group members even if one member fails checks
- No longer has some truly weird edge case instance unbind code that could cause exploit behavior (Really, I have no idea why this existed, because it certainly didn't do what it might've been meant to do.)

(cherry picked from commit ca02629950)
2020-07-16 22:00:29 +02:00
ariel-
8abbc097a0 Core/Scripts: fix some /W4 warnings
(cherry picked from commit d6cae113c6)
2020-07-16 22:00:29 +02:00
ariel-
47ca8cb021 Core/OutdoorPvP: fix another warning
(cherry picked from commit 6b49380806)
2020-07-16 22:00:29 +02:00