Commit Graph

726 Commits

Author SHA1 Message Date
ariel-
5a91e1e31b Core/Spell: revamp of immunities system
- Spell attributes research
- Container optimization
- Do not skip damage immunity checks on SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY present
- Added additonal arguments support to SendCastResult / CheckCast, spells can now send proper error messages
- Loads spell immune masks/states/effects at startup.
- This cached info is used whenever a spell cast requires immunities to be known beforehand (to see if an aura could be applied for example)

Closes #16658
Closes #16901
Closes #18114

(cherry picked from commit 50a3ce5703)

Core/Spell: fix warning

(cherry picked from commit 3588ff894b)

Core/Unit: misc codestyle

use typedef for constant reference

(cherry picked from commit 7943150dcb)

Core/Spell: Fixed immunities for some spells (they were broken before rewrite too)

- Warlord's Presence, Uncontrollable Frenzy, Free Friend
- Overload, Lightning Tendrils
- Fervor, Berserk
- Determination

(cherry picked from commit fc6844173f)

Core/Spell: fix typos

(cherry picked from commit f060efbdb4)

Core/Unit: improved handling of some spell attributes

- SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE
- SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE
- SPELL_ATTR3_IGNORE_HIT_RESULT

(cherry picked from commit 352c84943c)

Core/Spell: fix typo

Closes #18248

(cherry picked from commit 1ad9c7d3fd)

Core/Spell: perform charmer check against player controlling unit. Fixes spellcasts while charmed

(cherry picked from commit 425f6c3c34)

Core/Unit: don't use damage immunity to calculate hit result for the whole spell. Should be used only for damage

(cherry picked from commit 9f5df023b7)

Core/Spell: fix a potential null dereference crash

(cherry picked from commit 64304d8b2b)
2017-12-26 17:11:18 +01:00
Shauren
61ca3d6235 Core/Crypto: Refactor RSA encryption to use openssl functions instead of doing it manually 2017-12-25 21:41:34 +01:00
joschiwald
eee5a4f248 Core/Misc: Removed Death knight creation restrictions
Closes #20987
2017-12-10 12:40:13 +01:00
ariel-
2d75d8071b Core/Globals: compute aura diminishing return info at startup and cache it
Core/Entities: Save diminish return on an array instead of a linked list

(cherry picked from commit 9b0fa51022)
2017-10-03 20:53:49 +02:00
Shauren
6eb9973947 Core/Weather: Fixed weather updates to be thread safe 2017-09-14 22:33:40 +02:00
ariel-
c7cd9102d3 Core/Globals: cache SpellSpecific and AuraState information instead of computing them each time they're needed
(cherry picked from commit ce45e1bf95)

# Conflicts:
#	src/server/game/Spells/SpellInfo.cpp
#	src/server/game/Spells/SpellInfo.h
#	src/server/game/Spells/SpellMgr.cpp
#	src/server/game/World/World.cpp
2017-08-26 23:23:32 +02:00
roc13x
e04f75bd96 Core/Players: Several gold handling improvements
* Update gold limit to 10 million
* Updated auction house gold handling to 64-bit
* Fixed some vendor checks for when BuyCount > 1
* Tweaked some checks for available gold space
* Updated guild bank gold handling to 64-bit and fix withdraw limits
* Enforce gold limit on guild bank
* Check correct rank right when withdrawing from bank
* Other small changes to update money to 64-bit

Closes #19195
Closes #20152
2017-08-20 18:10:11 +02:00
Shauren
fb1fdf27b9 Core/Creatures: Fixed trainers that don't use gossip but open trainer list directly from CMSG_TRAINER_LIST 2017-08-20 14:12:25 +02:00
Aokromes
90328b594b Core/Misc: Removed obsolete comment 2017-08-20 07:17:14 +02:00
joschiwald
1f8fc55ac9 Core/Spells: Implementation of QAston proc system (#20131)
* Core/Spells: Implementation of QAston proc system

- Move checks from Unit::IsTriggeredAtSpellProcEvent (old system) to Aura::IsProcTriggeredOnEvent (new system)
- killed charge counter from SpellModifier and Player system for handling charges... no point in having 3 different systems doing the same thing
- Automatically add default entries to spellProcMap, based on spellinfo (else auras won't proc without an entry) Based on old Unit::ProcDamageAndSpellFor
- Old Unit::ProcDamageAndSpellFor renamed to Unit::ProcSkillsAndReactives and made private, will no longer handle auras.
- Start making use of HealInfo::AbsorbHeal in unit calculations, add effective healing info to HealInfo struct
- Changes in spell reflection system, emulates old behaviour, delaying aura drop
- Removed old charge count hacks in SpellMgr::LoadSpellInfoCorrections
- Removed bogus error log when procChance is 0: Some auras have initial 0 procChance but modified by SPELLMOD_CHANCE_OF_SUCCESS
- Fixed TriggerAurasProcOnEvent logic that tried to trigger twice from actor.
- Allow non damaging spells with DamageClass Melee or Ranged to proc character enchants. Ref issue #17034:

  * http://web.archive.org/web/20110309092008/http://elitistjerks.com/f47/t49865-paladin_retribution_pve/
  * When an auto-attack lands (does not dodge/parry/miss) that can proc a seal the of the following things happen independently of each other (see 2 roll system).

  * 1) A "hidden strike" which uses melee combat mechanics occurs. If it lands it refreshes/stacks SoV DoT. Only white swings can trigger a refresh or stack. (This hidden strike mechanic can also proc things like berserking..)
  * 2) A weapon damage based proc will occur if you used a special (CS/DS/judge) or if you have a 5 stack (from auto attacks). This attack can not be avoided.

  * Holy Vengeance is the "hidden strike" it has an apply aura effect and damage class melee.
- Fixed Blood Tap interaction with Death Runes (btw, don't know what was going on with those MiscValueB, spell 45529 doesn't have any MiscValueB in SPELL_EFFECT_ACTIVATE_RUNE)
- Ported some AuraEffect checks from old Unit.cpp function. added new AuraScript hook to check procs of an specific effect
- Allow only AuraEffects that passed the check to proc, this won't block whole aura from proccing (and lose charges) if at least one of the effects procs, though
- Changes in spell mod system (for SPELLMOD_CASTING_TIME). fixes #17558.
- Added an exception for SPELLMOD_CRITICAL_CHANCE too, fixes #15193

(cherry picked from commit e641d0c7d7)

# Conflicts:
#	sql/base/auth_database.sql
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/Player.h
#	src/server/game/Entities/Unit/Unit.cpp
#	src/server/game/Entities/Unit/Unit.h
#	src/server/game/Spells/Auras/SpellAuraEffects.cpp
#	src/server/game/Spells/Auras/SpellAuras.cpp
#	src/server/game/Spells/Auras/SpellAuras.h
#	src/server/game/Spells/Spell.cpp
#	src/server/game/Spells/SpellEffects.cpp
#	src/server/game/Spells/SpellInfo.cpp
#	src/server/game/Spells/SpellMgr.cpp
#	src/server/game/Spells/SpellMgr.h
#	src/server/game/Spells/SpellScript.cpp
2017-08-13 12:03:43 +02:00
Seyden
5675902485 Core/Creatures: Implemented Basic Creature Scaling (#20026) 2017-07-29 21:40:28 +02:00
Shauren
0cd5179726 Core/Creatures: Rewrite trainer handling to properly support multiple trainers on the same creature
* Trainers are now defined as templates (sniffable), assigned by gossip options
2017-07-26 00:53:51 +02:00
joschiwald
151441697f Core/Misc: Fixed warning 2017-06-06 21:15:22 +02:00
Shauren
b453e12423 Core/Game: Include cleanup part 5
* ObjectMgr.h
* Player.h
* Unit.h
* G3D should no longer propagate everywhere from Spline/MotionMaster
2017-06-04 01:00:45 +02:00
Shauren
3d7c2ef88f Core/Game: Include cleanup, part 4 - packets and largest headers (after preprocessing, except player/objectmgr) 2017-05-21 23:18:43 +02:00
Shauren
c5d3dd90be Core/Game: Include cleanup
* Mostly aimed at removing Log/DatabaseEnv includes from other headers
* Fix most packet headers including other packet headers - moved common structures such as ItemInstance to their own files
* Moved SAI function definitions to source files (massive or requiring many different dependencies)
2017-05-18 23:53:25 +02:00
DDuarte
c784780156 Core/Guilds: Remove old Guild.UndeletableLevel config
Send guild achievement points in SMSG_GUILD_INVITE instead of level
Remove old references to guild levels
Player still have PLAYER_GUILDLEVEL field which is always 25
2017-05-14 17:31:06 +01:00
Traesh
c73ce93f4c Core/Entities : Basic Conversation Implementation (#18010) 2017-05-14 11:40:55 +02:00
joschiwald
229c78b5a3 Core/Packets: Implemented CMSG_QUERY_REALM_NAME and SMSG_REALM_QUERY_RESPONSE 2017-05-13 17:25:21 +02:00
Shauren
3a418a0bbc Core/Common: Include cleanup 2017-05-11 22:29:51 +02:00
Shauren
6636ca8585 Core/DataStores: Updated sending out hotfixes 2017-04-19 19:10:49 +02:00
AlcDenat
024ae15681 Core/Quests: Implement quest_request_items_locale
Closes #19331
2017-03-21 17:45:07 +01:00
AlcDenat
c5c030ccc0 Core/Quests: Reimplemented quest offer reward locales
Closes #19242
2017-03-18 12:47:46 +01:00
Chazy Chaz
c7ea1b97c2 Core/Config: Add option CharDelete.DemonHunter.MinLevel
Closes #19285
2017-03-17 19:08:38 +01:00
Chazy Chaz
c31de25627 Core/Players: Rename "heroic character" to "death knight"
Closes #19286
2017-03-17 19:00:56 +01:00
SnapperRy
1006091f16 Core/Config: allow to specify daily quest reset hour in config.
Also default it to 3:00AM, as that's when daily quests used to reset during WotLK.

(cherry picked from commit e9870fb1fc)
2017-03-04 19:01:44 +01:00
SnapperRy
034ff93ba8 Core/World: properly re-initialize daily quest reset time when resetting daily quests. (#17986)
Prevents daily quests from resetting at weird times when restarting the server after a player has completed a daily quest.
(cherry picked from commit f9ea646c82)
2017-03-04 19:01:42 +01:00
Shauren
b8db320bf1 Core/Misc: Prefix all preprocessor defines from CompilerDefs with TRINITY_ to avoid conflicts (PLATFORM_WINDOWS is used/defined by CascLib) 2017-03-04 18:46:18 +01:00
r00ty-tc
8a71e4255e [Core/Maps] Activate creatures and objects during opening cinematics and other flyby cameras (sunwell etc).
Requires re-running map extractor to extract camera m2 files from data
files. These are very small.
2017-02-19 14:47:20 +01:00
ariel-
804496e2df Core/World: short circuit setWorldState and avoid a db query in case there's nothing to update really
(cherry picked from commit c7b8f0f773)
2017-02-12 15:41:28 +01:00
ShinDarth
7f38c2759a Core/Worldstates: move WS_ARENA_DISTRIBUTION_TIME declaration
(cherry picked from commit 54a7b8358e)
2017-02-12 14:23:09 +01:00
treeston
af6041740c Scripts/Commands: Some adjustments to make shutdown commands more user-friendly.
- New error message if a shutdown is delayed due to force threshold.
- New status message indicating that a server shutdown was successfully cancelled.

(cherry picked from commit d760219062)
2017-02-11 22:35:00 +01:00
Aokromes
6326bf20f5 Core/Chat: Split ChatLevelReq.Say into 3
ChatLevelReq.Say
ChatLevelReq.Emote
ChatLevelReq.Yell

(cherry picked from commit cf8276845d)

# Conflicts:
#	src/server/game/Handlers/ChatHandler.cpp
2017-02-11 21:11:37 +01:00
Aokromes
5264374fd6 Core/Player: New PartyLevelReq setting (#17707)
(cherry picked from commit bfda0ba91d)

Typo fix
(cherry picked from commit 35f06ccb55)
2017-02-11 21:08:48 +01:00
Aokromes
3b9efd35df Core/PVP: Move report AFK requirement to config (#17699)
(cherry picked from commit 633264f58f)

# Conflicts:
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/World/World.cpp
2017-02-11 20:55:14 +01:00
ariel-
f2c5c6995f Core/World: fix race condition in _UpdateRealmCharCount
(cherry picked from commit 5251dadf29)
2017-02-05 21:07:31 +01:00
psayafan
d1e9bb6f26 Core/Player: Add option to prevent rename during character customization
Closes #17420

(cherry picked from commit fe2aed6047)
2017-02-01 22:53:24 +01:00
joschiwald
acac606b21 Core/World: Fixed compile warning 2017-01-29 16:36:54 +01:00
joschiwald
a6d238b833 Core/Player: Moved character_template from character to world db 2017-01-29 16:09:46 +01:00
Traesh
6ab3877c91 Core/Entities: Basic AreaTrigger System (#18035)
* Implemented AreaTrigger Templates
* Implemented AreaTrigger Splines
* Implemented SPELL_AURA_AREA_TRIGGER
* and many more
2017-01-29 00:00:43 +01:00
Shauren
8e2634b2b4 Core/DBLayer: Convert async queries to new query callbacks and remove old callback handling 2017-01-13 21:38:03 +01:00
DDuarte
237e291c3f Core/World: Remove unused config CONFIG_SIGHT_GUARDER
(cherry picked from commit ca231cba0b)
2017-01-11 21:44:33 +01:00
vincent-michael
86b98686a9 Update copyright note for 2017
Happy new year
2017-01-01 16:23:13 +01:00
Krudor
8444ab7365 Core/Instances: Implemented base scenario system and objectives in dungeons
Closes #17905
Closes #18034
2016-11-06 23:30:49 +01:00
joschiwald
12a52595ed Core/Spells: use spellinfo helper methods 2016-10-01 17:51:05 +02:00
MitchesD
ad3da9c971 Core/Player: Implemented account wide mounts
Closes #17369
2016-10-01 13:48:16 +02:00
Shauren
c676e80c45 Core/Players: Removed references to removed currencies
Closes #17721
2016-09-29 23:30:47 +02:00
Traesh
d4887311e3 Core/Scenes: Implemented scene system
Closes #17858
Closes #17976
2016-09-25 16:13:12 +02:00
Shauren
dd64a3cd36 Core/Config: Add config values for all power regen rates 2016-09-25 14:48:18 +02:00
treeston
a92bfb5505 Scripts/Commands: Small QoL adjustments
- .debug hostil now shows spawn ID (DBGUID) in addition to current GUID (so you can .go creature to it)
- .npc temp now takes an additional argument before the creature entry that determines whether the spawned creature instantly despawns upon death. Default is instant despawn (current behavior).
- Add .npc evade command.
- Add .pet level command.
- .server shutdown and .server restart now fail with an error message if time is below a config var (GM.ForceShutdownThreshold, default 30s) as long as another player is connected.
    - New commands .server shutdown force and .server restart force bypass this limitation.

(cherry picked from commit 0e1eb460d6)
2016-09-03 13:46:33 +02:00