Commit Graph

16555 Commits

Author SHA1 Message Date
xinef1
16cf95654f 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

(cherry picked from commit cbbb745246)
2020-04-28 12:56:03 +02:00
ariel-
9ef39fa5d2 Core/Movement: allow focused spells to not break movement if it's movement allowed spell
- Core/Unit: made IsFocusing virtual

Thanks to ccrs for suggestion

(cherry picked from commit 522f537048)
2020-04-28 12:35:23 +02:00
ariel-
52ab270768 Core/Spell: don't make creature change orientation to 0 if channeling self
(cherry picked from commit 1f4439ece4)
2020-04-28 12:35:22 +02:00
ariel-
5e32e96278 Core/Spell: define channels without movement interrupt flags as allowed move
- Remove script hacks no longer needed

(cherry picked from commit 3a0cb90ea9)
2020-04-28 12:35:16 +02:00
ariel-
9c53ee0fe8 Core/AI: prevent launching a new MoveChase if victim didn't change
Thanks ccrs for feedback :P

(cherry picked from commit b6b0353bff)
2020-04-27 18:29:39 +02:00
Xyventh
2bd7c9aa40 [3.3.5] Core/Quest: always send the specified RewardNextQuest regardless of eventual scripts (#19498)
- Fixes certain situations in which the quest window would get stuck after completing a quest

(cherry picked from commit f0bf1fc77a)
2020-04-27 18:23:07 +02:00
tkrokli
cf3c5dc948 Core/Scripts: Willix the Importer - $n in aggro text
* In the existing core script, Willix the Importer in Razorfen Kraul says
"Help! Get this $n off of me!" (showing the $n part in his SAY text)
instead of naming the attacker when using his 'SAY_AGGRO1' creature_text.

* With this commit change, unit target is no longer missing for Talk,
making Willix name the attacking unit when he shouts for help.

(cherry picked from commit 6cc267d909)
2020-04-27 17:29:27 +02:00
ariel-
cfdde556cd Core/Player: don't randomly change temporary spell status
- They shouldn't be saved in db
- Prevented temporary spell removal after a save

Closes #14373

(cherry picked from commit 7ffe056366)
2020-04-27 15:50:27 +02:00
ariel-
e3eca0c264 Core/Spell: fix creature focus with channeled spells
- Remove one not needed ReleaseFocus, this is done at finish already

(cherry picked from commit 88c12b45d0)
2020-04-27 15:34:38 +02:00
ariel-
92719d1dc9 Revert "Core/Spell: don't set scaleAura for some special spells"
This reverts commit 1ca8434b36.

Closes #19472

(cherry picked from commit c296d255e2)
2020-04-27 15:20:00 +02:00
ariel-
8889b6f54c Core/Unit: fix SPELL_AURA_MOD_DAMAGE_DONE damage calculation on non-melee schools
for Keader :P

(cherry picked from commit 66ac1509ae)
2020-04-27 14:58:52 +02:00
ariel-
71c2fda113 Core/Spell: register spell mod owner properly on spell cast
- This fixes pets and totems getting mods from owner

(cherry picked from commit 8b52cf902b)
2020-04-27 14:51:36 +02:00
ariel-
677df56d2d Core/Auras: don't skip stack rule check whenever spells have same ID
- The auras might not have the same amounts due to spellmods

Closes #1626

(cherry picked from commit 9414f50f5c)
2020-04-27 14:31:29 +02:00
ariel-
1edfd0d064 Core/Spell: fix broken Unit::GetHighestExclusiveSameEffectSpellGroupValue
- Affects 3 aura effects currently, should be rewritten with GetTotalAuraModifier maybe?

(cherry picked from commit d44a44abac)
2020-04-27 14:31:29 +02:00
ariel-
60824d8c7a Core/Spell: fix nopch build x2
(cherry picked from commit abaa9d635a)
2020-04-27 14:31:29 +02:00
ariel-
3675d2b494 Core/Spell: fix nopch build
(cherry picked from commit f0a93140e8)
2020-04-27 14:31:28 +02:00
ariel-
4523c5619b Core/Spell: build fix
(cherry picked from commit 9a05157003)
2020-04-27 14:31:28 +02:00
ariel-
52e00746cf Core/Spell: fixed SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT to actually check effects
- This commit enables stack rule 3 to be properly used to fix auras that should be active but only one providing effects, even if the spell has multiple auras

Closes #19454

(cherry picked from commit 9900899dd9)
2020-04-27 14:31:21 +02:00
ariel-
f31e380499 Core/Spell: check aura positivity per effect on spell hit
- Fixes applying DR to positive effects, and changing duration of whole aura

Closes #19447

(cherry picked from commit 232e631390)
2020-04-27 12:25:52 +02:00
ariel-
296abf3e12 Core/Player: fix use after free crash
(cherry picked from commit d914c55c05)
2020-04-27 12:25:52 +02:00
ariel-
fc0a037eef Core/Spell: fix SPELL_ATTR3_IGNORE_HIT_RESULT bypassing reflects
Closes #19440

(cherry picked from commit 83177e771a)
2020-04-27 12:25:52 +02:00
ariel-
7dcc185a15 Core/Instance: stop updating the instance resettimes based on creature respawns
- Rather update normal instance reset time to 2 hours after last creature kill
- This fixes yet another integer overflow due to the possibility of having time_t max showing up
- Also change respawntime and resettime fields to bigint on respawn/instance related tables
- Start using prepared statements on the InstanceSaveMgr

(cherry picked from commit 4c593f12ca)
2020-04-27 12:25:52 +02:00
ariel-
a2ee35d9a3 Core/Misc: pch fixes pt 2
(cherry picked from commit e32a4f26aa)
2020-04-27 12:25:52 +02:00
ariel-
0d8c1b49b8 Core/Creature: fix integer overflow in Creature::Update leading to endless thrashing of characters database
Closes #19182

(cherry picked from commit 66755eecf1)
2020-04-27 12:25:52 +02:00
ariel-
7c571c5b0a Core/Misc: fix non-pch build
(cherry picked from commit 5e0485178d)
2020-04-27 12:25:52 +02:00
xinef1
090fd8304a Core/Loot: implement Loot Item Storage (#19018)
* Created Item Loot Storage, no more synchronous DB selects
* Fixed buyback case, where stored loot was not removed from db
* Added Primary key, and changed field types to be unsigned for table item_loot_money

(cherry picked from commit 9dc3de10f0)
2020-04-27 12:25:52 +02:00
ccrs
4e03d2717a Core/Movement: correct no point recalculation on speed change in TargetedMovementGenerator
(cherry picked from commit 4d7e7a97b3)
2020-04-27 12:25:52 +02:00
ariel-
e5e37f0d86 Core/Unit: fix crash on magic school autoattacks
Closes #19436

(cherry picked from commit 0b50ea072e)
2020-04-27 12:25:52 +02:00
ariel-
1960a95425 Core/Unit: cleanup and minor fixes of miss and resist calculations
- Removed Unit::GetUnitMeleeSkill as it was basically a copy of GetMaxSkillValueForLevel
- Removed static from GetEffectiveResistChance, as this was passed anyways, changed name to CalculateAverageResistReduction, which better reflects what it does
- Fix melee miss chances calculated from attacker maxskill instead of victim maxskill
- Do actual checks if spell can be resisted/missed in MagicSpellHitResult (ie chances > 0)
- Fixed SPELLMOD_RESIST_MISS_CHANCE calculation in MeleeSpellMissChance
- Minor codestyle and cleanup of diminishing returns calcs

(cherry picked from commit e565b34f6d)
2020-04-27 12:25:52 +02:00
ariel-
16e3796c7f Core/Misc: fix static analysis issues
CID 1373466
CID 1373481
CID 1373482

(cherry picked from commit e478434146)
2020-04-27 12:25:52 +02:00
ariel-
9e945615bc Core/Quest: fix RewardNextQuest being used to condition previous quests in chain
(cherry picked from commit 214b8e53c5)
2020-04-27 12:25:52 +02:00
Keader
304eeea570 Core/Scripts: Baltharus the Warborn preincrement _cloneCount
(cherry picked from commit 2921449a33)
2020-04-27 12:25:52 +02:00
ccrs
84df2c57a3 Core/Movement: FormationMovementGenerator
Use own movement generator for creatures following on a formation.
First step of implementation, huge room for improvement.

Closes #19422

(cherry picked from commit 46221b6dc1)
2020-04-27 12:25:52 +02:00
jackpoz
c31f875cc8 Core/Misc: Fix static analysis issues
(cherry picked from commit 3c4c67160a)
2020-04-27 12:25:52 +02:00
ccrs
14c6a4d823 [3.3.5] Core/Movement: MotionMaster & MovementGenerators cleaning (#19361)
(cherry picked from commit 21b8c4997a)
2020-04-27 12:25:52 +02:00
ariel-
7f64eaa3ee Core/Player: fix weapon dependent aura talents not applied on talent learn
Closes #19408

(cherry picked from commit 5cb1555de6)
2020-04-27 12:25:52 +02:00
ariel-
af3934e8ce Core/Auction: wrap item deletions from AHBot auction on a transaction
This speeds up the query execution time tremendously
Refs #19182

(cherry picked from commit ae9995f463)
2020-04-27 12:25:52 +02:00
Keader
f623fea923 Core/Scripts: Baltharus the Warborn make clone count more readable
*Also fixed issue that make Baltharus summons alot of clones when he is casting

(cherry picked from commit 58f2e62098)
2020-04-27 12:25:52 +02:00
ariel-
f97c28f2f1 Core/AHBot: fix price calc
- priceRatio is already a factor

(cherry picked from commit 4a654be2fb)
2020-04-27 12:25:52 +02:00
ariel-
847990f030 Core/AHBot: fixed assert check
(cherry picked from commit c36854677c)
2020-04-27 12:25:52 +02:00
ariel-
d80350da68 Core/Spell: don't set scaleAura for some special spells
Closes #14541

(cherry picked from commit 1ca8434b36)
2020-04-27 12:25:52 +02:00
ariel-
8be8b7cff4 Core/AHBot: fix a typo
(cherry picked from commit e594c2d096)
2020-04-27 12:25:52 +02:00
ariel-
d6e293c718 Core/AHBot: Refactor of AuctionHouseBotSeller:
- Use AuctionHouseBot.Class.* for what they really are, priorities, factor them when calculating item amount per class, changed enums to CONFIG_AHBOT_CLASS_*_PRIORITY to reflect this change
- Don't factor in the priority calc empty item lists:
  * Let's say you had AuctionHouseBot.Class.Glyph set to 10, sum of AuctionHouseBot.Class.* is 20, and AuctionHouseBot.Items.Amount.White is 5000
  * If there were no glyphs on the item list, you automatically lost 50% of the total item amount, meaning only 2500 of original 5000 were alloted to fill
- Fixed AuctionHouseBot.AH.Price.Ratio to be an actual percentage factor

- Separated containers in SellerConfiguration, each one better reflects what kind of data is stored there, now we won't use magic index 0 from _ItemInfo :P
- General cleanup, removal of bad voodoo and magical numbers
- Use unordered_sets for loading item lists, as they were only used to check for item presence

(cherry picked from commit 7f8bfe68d0)
2020-04-27 12:25:52 +02:00
Keader
14cf4c0692 Core/Scripts: Fixing Carbonion/Travis
(cherry picked from commit 270a639678)
2020-04-27 12:25:52 +02:00
Keader
287ed04c8b Core/Scripts: Fixed Baltharus the Warborn clones
*Clones not working after wipe
*Changed Clone Action for a event (to check casting)

(cherry picked from commit 6b8c4fb74f)
2020-04-27 12:25:52 +02:00
Keader
410585361a Core/Scripts: Typo in last commit
(cherry picked from commit a2a8ffe723)
2020-04-27 12:25:52 +02:00
Keader
fc2872e16c Core/Scripts: Fixed Volatile Ooze/Gas Cloud issues in Professor Putricide
Closes #18925

(cherry picked from commit 8d198cb360)
2020-04-27 12:25:52 +02:00
xinef1
e36497aef5 Core/Misc: Always reward all necessary reputations on creature kill (#19106)
(cherry picked from commit fb2aebe46b)
2020-04-27 12:25:52 +02:00
xinef1
8df577ebfe Corrected points per level calculation for some spells (#19105)
(cherry picked from commit 9142c778dd)
2020-04-27 12:25:52 +02:00
Xinef
6f7ff9a3ef Core/Achievements: Optimized resetting achievement criteria by condition and changed the functionality to properly reset all possible criteria with given condition
Closes #18905

(cherry picked from commit 7c7b877c3f)
2020-04-26 22:58:51 +02:00