Commit Graph

4963 Commits

Author SHA1 Message Date
xinef1
fb5c07ffe8 Fixed setting and unsetting of m_spellModTakingSpell (#19116)
- A problem when a different spell tries to overwrite existing ModTakingSpell should no longer happen

(cherrypicked from e261754c9c)
2019-07-21 21:06:54 +02:00
xinef1
ecb44f82a4 Core/Creatures: Remove template immunities only for hunter pets (#19100)
(cherrypicked from 949b38b048)
2019-07-21 21:06:54 +02:00
xinef1
cfefd27cb8 Added some missing SetFallInformation calls (#19121)
Fixed HP drop bug on zeppelins
Fixed possible packet relocation problems on huge transports

(cherrypicked from b3f04ec157)
2019-07-21 21:06:54 +02:00
xinef1
89f728cd5b Core/Misc: Fixed player corpse looting, added player corpse loot and some more (#19122)
* Fixed corpse looting in wintergrasp
Added corpse loot for wintergrasp quests and To the Looter Go the Spoils (1166) achievement
Don't generate money for loot if no loot mode is available
Simplified few things

(cherrypicked from 2412886ef6)
2019-07-21 21:06:54 +02:00
xinef1
4f65dc5e20 Core/Misc: Various crash fixes (#19059)
* Replaced some FindPlayer calls with GetPlayer
Fixed some more crashes

* Correction

(cherrypicked from 14dfc377b4)
2019-07-21 21:06:54 +02:00
xinef1
ad4e63bae1 Core/Misc: Moved CharacterInfo out of world to separate class
Closes #19030

(cherrypicked from 59ce3d6c9b)
2019-07-21 21:06:54 +02:00
xinef1
36a4e008d0 Corrected immunity checking after recent changes (#19049)
- Shouldn't compare immunity to spells without schoolmask

(cherrypicked from 78a729b6a4)
2019-07-21 21:06:54 +02:00
xinef1
fe63cd3dbb Core/Creatures: Various fixes for creatures, regarding combat conditions, despawning, and few others (#18998)
* Made some changes to kiting mechanics, simplified code and made taunt auras prolong combat no matter the distance from the spawn
Unified some creature despawning code, removed some brutal direct calls in scripts
Don't play death anim on forced despawn
Removed some redundant visibility changes on creature despawn
Fixed possible problem with pet initializing template info from difficulty greater than normal
Properly keep UNIT_FLAG_IN_COMBAT on UpdateEntry call
Moved RegenerateMana function to general Regenerate(Power) function
Fixed increased health regeneration from polymorph for pets
Implemented CREATURE_TYPE_FLAG_GHOST_VISIBLE, those creatures will be properly seen when player is dead also
Removed hackfix from Gaeriyan and Franclorn Forgewright, fixed properly
Simplified ForcedRespawnTime code in ForcedDespawn
Do not allow to assist unit while evading or when enemy is evading
Do not allow to attack other units when evading or when the unit is evading
Corrected distance checking code before creature is allowed to evade, should fix some common problems
Properly return summon position for summoned creatures as their respawn position
Properly stop all moving units on gossip hello, no matter their npc flags

(cherrypicked from e1f14215d8)
2019-07-21 21:06:54 +02:00
xinef1
ca26c33145 Implemented binary resistances and some more (#18933)
- Fixed possible exploit with tamed pets having template immunities
- Implemented binary resistances
- Corrected resistances calculations
- Pets properly inherit players spell penetration
- Fixed doubled block calculation for damaging melee spells
- Auras removing snare effects will only remove the snaring component
- Shapeshifting will properly remove movement impairing auras only and not crowd control (dragon's breath)
- Immunities are properly checked versus all schools appearing in spell, unit is immune only if immune to all schools
- Spells with melee and magic school mask should compare armor reduction with resistances and select smaller reduction
- Demonic Circle: Teleport no longer removes root effects

(cherrypicked from 93746e8c4a)
2019-07-21 21:06:54 +02:00
xinef1
ad008c43b7 Core/Misc: Fix various crashes, also related to multithreading (#19012)
* When iterating groups we have to either do it not in multithreaded context (map updates) or start with checking maps (they are guaranteed to change in single thread update).
* Properly clear ComboPoint references on player remove
* remove some possible references item may have when it is deleted during save.
* Also clear all hostile references when unit is removed from map.

(cherrypicked from 86da1a19bb)
2019-07-21 21:06:54 +02:00
Gerhood
7e83cce81f Core/Spells: implement Mad/Crazy Alchemist's potions
(cherrypicked frombab59b28faad262dc5d9873ca7c0856477ec4d66)
2019-07-21 21:06:54 +02:00
xinef1
b485f3e673 Few small optimizations here and there (#18684)
Changes list:
- Added CharacterGuidByNameContainer which contains name -> guid unordered map (updated along CharacterInfo)
- Extended CharacterInfo structure with GuildId
- Extended CharacterInfo structure with ArenaTeamId[3], for all possible teams (2v2, 3v3, 5v5)
- Removed CHAR_SEL_GUID_BY_NAME and CHAR_SEL_CHAR_GUID_BY_NAME synchronous queries, name -> guid can be now retrieved in World::GetCharacterGuidByName
- Removed CHAR_SEL_GUID_RACE_ACC_BY_NAME synchronous query, guid can be retrieved by name and rest of the data can be retrieved by guid
- Removed CHAR_SEL_CHAR_LEVEL synchronous query, level can be retrieved by guid
- Changed CHAR_SEL_CHARACTER_ACTIONS_SPEC to asynchronous query, action bars are now loaded asynchronously
- Removed CHAR_SEL_CHARACTER_NAME_CLASS synchronous query, guid can be retrieved by name and rest of the data can be retrieved by guid
- Removed CHAR_SEL_PLAYER_ARENA_TEAMS and CHAR_SEL_ARENA_TEAM_ID_BY_PLAYER_GUID synchronous queries, arena teams are now stored in CharacterInfo
- Replaced synchronous db calls with CharacterInfo lookups
- Removed ObjectMgr::GetPlayerGUIDByName, as it used db query
- Replaced some unnecessary UpdateObjectVisibility() calls because they were either duplicated (called few lines above in other function) or it is enough to call DestroyForNearbyPlayers because object is being removed or should be invisible and DestroyForNearbyPlayers is faster
- Corrected typo in Player::DestroyForPlayer, only items in slots 0 to EQUIPMENT_SLOT_END are sent to other players
- Renamed Player::GetGuildIdFromDB to Player::GetGuildIdFromCharacterInfo and changed the function to use CharacterInfo structure
- Renamed Player::GetArenaTeamIdFromDB to Player::GetArenaTeamIdFromCharacterInfo and changed the function to use CharacterInfo structure
- Renamed Player::GetLevelFromDB to Player::GetLevelFromCharacterInfo and changed the function to use CharacterInfo structure
- Removed GameEventMgr::_questToEventLinks and associated functions, eventId is now stored in Quest class under _eventIdForQuest variable
- Changed some functions checking quest status to use other functions for quest status check instead of duplicating code
- Removed callback from add friend, because we can get the guid from appropriate storage, no need to make db query
- Removed callback from add ignore, because we can get the guid from appropriate storage, no need to make db query
- Added callback to unwrap wrapped items asynchronously
- Removed synchronous select in tutorials to check if we have any entries in db, if any entry exists in db, m_TutorialsChanged variable will have TUTORIALS_FLAG_LOADED_FROM_DB flag added and it is no longer necessary to query database

(cherrypicked from b955456008)
2019-07-21 21:06:54 +02:00
ariel-
17703e8924 Core/Spell: remove duplicated SPELL_AURA_MOD_DEBUFF_RESISTANCE handling.
Each spell had two rolls in which it could be resisted, effectively adding to the resist chance.

Closes #7406

(cherrypicked from 23f76b563f)
2019-07-21 21:06:54 +02:00
Shauren
ff334ae707 Core/Conditions: Reimplemented CONDITION_OBJECT_ENTRY_GUID and CONDITION_TYPE_MASK under new values to allow easier porting conditions between branches. Old data is dynamically converted during startup 2019-07-21 17:12:34 +02:00
Shauren
857bb68deb Core/Spells: Fixed creating enchant scrolls 2019-07-14 19:20:45 +02:00
Shauren
3262bc827d Core/DataStores: Updated db2 structures to 8.2 2019-07-14 19:20:45 +02:00
Shauren
3714bf8e7a Core/Misc: Updated GameObjectTemplate structure 2019-07-14 19:20:45 +02:00
Shauren
0e4c569770 Core/PacketIO: Updated packet structures to 8.2 2019-07-14 19:20:44 +02:00
Shauren
07572fd12c Core/PacketIO: Fixed writing update masks for SMSG_UPDATE_OBJECT 2019-07-04 22:25:44 +02:00
Shauren
be87c0e8b8 fix typo
(cherrypicked from 09cc6b3c33)
2019-06-15 18:41:09 +02:00
Shauren
48cc6f384d Core/Maps: Adjusted WorldObject::GetGridActivationRange() to never be less than map visibility distance for active objects to ensure equal ranges for activation/deactivation of grids
Updates #19072

(cherrypicked from 74bb92a582)
2019-06-15 18:41:09 +02:00
Kittnz
5291842a33 Game/Scripting: Add OnPlayerRepop hook
Called when a player presses release when he died

(cherrypicked from d550ba7392)
2019-06-15 18:41:09 +02:00
treeston
cc020b2a0f Core/Creature: Prevent boss creatures from ever respawning naturally.
(cherrypicked from 3ddcf40037)
2019-06-15 18:41:09 +02:00
xinef1
3f7fe6f8a5 Core/Spells: Remade trajectory target selection (#19048)
* Remade trajectory target selection
* Added possibility to apply conditions to trajectory spells
* Properly recalculate delay time if CMSG_UPDATE_PROJECTILE_POSITION is received

(cherrypicked from c6060dd0c5)
2019-06-15 18:41:09 +02:00
xinef1
b711f0bcae Core/Spells: Added SPELL_FAILED_NOTHING_TO_STEAL error (#19036)
Corrected Dispel check in sanctuary area
Added root check for SPELL_EFFECT_JUMP and SPELL_EFFECT_JUMP_DEST

(cherrypicked from 3c605ba614)
2019-06-15 18:41:09 +02:00
xinef1
d1cbd8a837 Core/Pets: Fixed flashing pet attack button (#18906)
(cherrypicked from 0fa38d0ae0)
2019-06-15 18:41:09 +02:00
xinef1
67000a7826 Core/Spells: Properly send autorepeat cancel packet to self and fix some problems with autoshot (#18918)
Closes #13595
Closes #14460

(cherrypicked from 587786ce66)
2019-06-15 18:41:09 +02:00
ariel-
6135ee1ad7 Core/Creature: don't allow turning if spell would cancel due to turning to face target
Closes #18549

(cherrypicked from 6b55faba06)
(cherrypicked from  c83092a127)
2019-06-15 18:41:09 +02:00
Shauren
101f82855e Fix warnings and nopch build 2019-06-08 17:57:58 +02:00
Shauren
bcaaa3d6f6 Core/DataStores: Updated db2 structures to 8.1.5 2019-06-08 17:10:00 +02:00
Shauren
82c7b6c568 Core/Items: Drop item random property and suffix - all random stats must be given using bonus lists 2019-06-08 17:09:20 +02:00
Shauren
455959c606 Core/PacketIO: Rewrite updatefield handling 2019-06-08 17:06:57 +02:00
Shauren
31fda79556 Core/PacketIO: Updated packet structures to 8.1.5 2019-06-08 17:03:15 +02:00
Shauren
d180944f59 Core/AreaTriggers: Document scale curve fields 2019-05-05 17:54:39 +02:00
Shauren
25594c5a8e Core/Misc: Fix static analysis issues
Fix static analysis issues reported by Coverity
2019-02-16 17:37:16 +01:00
Kittnz
83e6fde066 Core/Objects: increase sight range of all Infinite, Gigantic and Large objects & correct general default visibility distance (#22892)
Note: This does not make the object active.

Some info on range
https://trinitycore.atlassian.net/wiki/spaces/tc/pages/74950924/Lua+Scene+Script+Documentation#LuaSceneScriptDocumentation-ActorAOIRange

#21111 #21681 #22891

Thanks Kinzcool & Kelno
2019-01-16 20:48:01 +01:00
Shauren
3a323f2b60 Core/Chat: Fixed addon chat messages using C_ChatInfo.SendAddonMessageLogged
Closes #22926
2019-01-11 18:23:10 +01:00
vincent-michael
5620eb9463 Update copyright note for 2019
auto happy = new year(2019);
2019-01-01 10:14:33 +01:00
Ovah
fe388d789b Core/Player: update player phase before updating area depending auras (#22872) 2018-12-17 21:16:17 +01:00
Shauren
f94deace76 Merge branch 'bfa' 2018-12-09 14:45:03 +01:00
xinef1
8725eec9c1 Core/Loot: Only allow the roll winner to loot the item he won in case it cannot be added to inventory instantly (full or any other reason) (#19037)
(cherry-picked from ab6ac42bf0)
2018-12-09 14:18:42 +01:00
xinef1
fef8e5fe14 Core/Pets: Fixed bug where pets tamed from large npcs had too big combat reach (#18909)
(cherry-picked from 2ecc0c0775)
2018-12-09 14:18:42 +01:00
xinef1
befea2f7a6 Core/Creatures: Stop falling if corpse is removed (can happen when alive unit is despawned instantly in air) (#18995)
Do not allow to start waypoint movement when unit is dead

(cherry-picked from f86ca9e3c9)
2018-12-09 14:18:42 +01:00
Keader
2e45423537 Core/Entities: Implemented CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE (#18980)
(cherry-picked from 15ea5b1b8d)
2018-12-09 14:18:42 +01:00
xinef1
e1cda57955 Core/Pets: Disable pet interface for charmed units while mounted (#18607)
(cherry-picked from 44388bc8fb)
2018-12-09 14:18:42 +01:00
xinef1
4afee01b01 Core/Auras: Prevent remove of auras interrupted by turning if the turn could be caused by float calculation error (#18595)
(cherry-picked from 38f9919a37)
2018-12-09 14:18:42 +01:00
xinef1
8573b651c8 Core/Units: Drop hostile world references that are out of our sight (fixes combat bug) (#18591)
(cherry-picked from ba6281bf42)
2018-12-09 14:18:42 +01:00
HelloKitty
46c69df3a7 Core/Vmaps: Stop M2s from occluding for spellcast LoS
Closes #18528

(cherry-picked from 01d715eaef)
2018-12-09 14:18:42 +01:00
Shauren
da3783876b Core/Player: Removed unneeded distance check from Player::ActivateTaxiPathTo, it is already checked by HandleActivateTaxi* methods (and taxis started serverside should not have such requirements)
Closes #15398

(cherry-picked from 998efa55d8)
2018-12-09 14:18:42 +01:00
ariel-
0a0042282b Core/Spell: add missing null caster check
01d272d6cb follow-up

Closes #18875

(cherry-picked from 7283cbe140)
2018-12-09 14:18:42 +01:00