Commit Graph

19808 Commits

Author SHA1 Message Date
xinef1
14dfc377b4 Core/Misc: Various crash fixes (#19059)
* Replaced some FindPlayer calls with GetPlayer
Fixed some more crashes

* Correction
2017-02-05 23:42:31 +01:00
Aokromes
075f0e26cc Coding standards 2017-02-05 23:25:33 +01:00
Shauren
fbff3e5b3a Build fix 2017-02-05 23:17:29 +01:00
xinef1
59ce3d6c9b Core/Misc: Moved CharacterInfo out of world to separate class
Closes #19030
2017-02-05 23:14:19 +01:00
xinef1
3c605ba614 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
2017-02-05 22:29:23 +01:00
xinef1
227d5a9288 Core/Spells: Corrected summon category SUMMON_CATEGORY_VEHICLE (#19052) 2017-02-05 22:24:23 +01:00
Gustavo
169e150628 Core/Scripts: boss The Curator (Karazhan) rework (#19040)
Closes #16099
2017-02-05 17:52:14 -03:00
xinef1
c1ca852e16 Core/Spells: Corrected execution time calculation for dst targets (#19039) 2017-02-05 21:05:00 +01:00
Keader
8731975187 Core/Scripts: Illidan Stormrage Rewrite (#18963)
Closes #5018
2017-02-05 12:45:29 -03:00
Xinef
7c7b877c3f Core/Achievements: Optimized resetting achievement criteria by condition and changed the functionality to properly reset all possible criteria with given condition
Closes #18905
2017-02-05 16:41:45 +01:00
xinef1
78a729b6a4 Corrected immunity checking after recent changes (#19049)
- Shouldn't compare immunity to spells without schoolmask
2017-02-05 12:36:42 -03:00
xinef1
e1f14215d8 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
2017-02-05 15:39:22 +01:00
xinef1
93746e8c4a 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
2017-02-04 19:50:32 -03:00
xinef1
86da1a19bb 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.
2017-02-04 22:37:16 +01:00
xinef1
9e1b286984 Core/Spells: Fixed spell effect 93 (SPELL_EFFECT_FORCE_DESELECT) (#19001) 2017-02-04 20:21:12 +01:00
xinef1
0fa38d0ae0 Core/Pets: Fixed flashing pet attack button (#18906) 2017-02-04 19:38:36 +01:00
treeston
4f842d91e1 Revert "Core/Movement: Added support to change orientation in MovePoint function (#18893)"
This reverts commit bc95fce93f.

See #18893.
2017-02-04 16:43:32 +01:00
Keader
bc95fce93f Core/Movement: Added support to change orientation in MovePoint function (#18893) 2017-02-04 12:14:28 -03:00
Gustavo
ad8a71c084 Core/Scripts: boss Nightbane rework (Karazhan) (#18899)
Closes #10017
2017-02-04 11:56:00 -03:00
xinef1
ab6ac42bf0 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) 2017-02-04 14:58:50 +01:00
Keader
ce774918a7 Core/Scripts: Updated Ruby Sanctum instance model 2017-02-04 10:13:22 -03:00
Keader
c58dd6c166 Core/Ruby Sanctum: Improved General Zarithrian encounter
* Fixed spell timers
* Improved Codestyle
* Fixed minions number in 25 man
* Fixed movement
* Implemented DespawnAtEvade
*
2017-02-03 22:28:20 -03:00
Shauren
c2a36c9e89 Fixed clang segmentation fault in nopch mode
(cherry picked from commit 787adc24b2)
2017-01-30 17:22:01 +01:00
xinef1
2ecc0c0775 Core/Pets: Fixed bug where pets tamed from large npcs had too big combat reach (#18909) 2017-01-30 11:10:22 +01:00
xinef1
f86ca9e3c9 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
2017-01-30 10:57:24 +01:00
ariel-
5e46bb3e8c Core/Scripts: fix penance procs with Unchained magic
Closes #19005
2017-01-30 02:43:24 -03:00
Gildor
b209353266 Build Fix (#19004) 2017-01-29 18:15:21 +01:00
ariel-
60dd803bbe Core/Server: fix duplicated inserts into tutorials table for newly created characters 2017-01-29 14:00:19 -03:00
xinef1
8646e72f18 Core/Achievements: Mountain o' Mounts and similar achievement will be properly awarded when you have required amount of mounts, not earlier (#19002) 2017-01-29 16:10:03 +01:00
Gerhood
bab59b28fa Core/Spells: implement Mad/Crazy Alchemist's potions 2017-01-29 14:06:40 +01:00
ariel-
d3d6c55650 Core/World: readd lines lost in rebase 2017-01-29 01:38:03 -03:00
ariel-
6245b0703e Misc: fixed some headers.
Updated year, bye bye 2016!
2017-01-29 01:03:19 -03:00
xinef1
88f746935f Remade who list processing (#18636)
* Remade who list processing, requests are now processed in maps. Player entries are now copied every 5 seconds to dedicated storage (avoids usage of hashmapholder mutex)
2017-01-29 00:59:17 -03:00
Shauren
2dc939c204 Fixed copypaste mistake in character creation 2017-01-28 17:16:12 +01:00
ariel-
317efd51ec Core/Scripts: remove GMs from Sindragosa's Fury's targetlist
By Keader
Ref #18452
2017-01-28 01:42:50 -03:00
ariel-
6f9e8b6c91 Core: add some missing Player Name normalization on input data 2017-01-28 01:27:39 -03:00
xinef1
b955456008 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
2017-01-28 01:00:28 -03:00
Keader
3c4dc3ec4f Core/Scripts: Removed double check of CheckRequiredBosses in Sindragosa 2017-01-27 23:42:25 -03:00
Keader
15ea5b1b8d Core/Entities: Implemented CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE (#18980) 2017-01-27 20:47:54 -02:00
xinef1
3c81a9a6d4 Properly clear focused target on evade (#18992)
Closes #18095
2017-01-27 19:42:50 -03:00
xinef1
66dc97bb27 Core/Spells: Added very little tolerance level to completed casts to ensure that spell cast at target standing at the max possible range is finished properly even if target moves a little (#18969) 2017-01-27 20:50:25 +01:00
xinef1
587786ce66 Core/Spells: Properly send autorepeat cancel packet to self and fix some problems with autoshot (#18918)
Closes #13595
Closes #14460
2017-01-27 20:49:08 +01:00
Tonghost
684a5fd3f1 Core/Auth: Use QueryCallbackProcessor insted boost::optional. Fixes build for boost 1.55.0 2017-01-26 13:21:58 -03:00
xinef1
0d1c535041 Fixed unstuck mechanics (#18968) 2017-01-26 11:57:32 +01:00
Shauren
d7b02a0624 Removed debug leftovers
(cherry picked from commit e8273b7b37)
2017-01-25 23:38:19 -03:00
Shauren
580f46693d Build fix
(cherry picked from commit 0314abc26a)
2017-01-25 23:38:16 -03:00
Shauren
4c27203c8f Core/DBLayer: Convert async queries to new query callbacks and remove old callback handling
(cherry picked from commit 8e2634b2b4)

Conflicts:
	src/server/bnetserver/Server/Session.cpp
	src/server/bnetserver/Server/Session.h
	src/server/database/Database/QueryCallback.cpp
	src/server/game/Handlers/CharacterHandler.cpp
	src/server/game/Handlers/SocialHandler.cpp
	src/server/game/Server/WorldSession.cpp
	src/server/game/Server/WorldSession.h
	src/server/game/Server/WorldSocket.cpp
	src/server/game/Server/WorldSocket.h
	src/server/game/World/World.cpp
	src/server/game/World/World.h
2017-01-25 23:38:13 -03:00
Shauren
8af3cccc83 Core/DBLayer: Refine new query callback for chaining
(cherry picked from commit 73e61fa652)
2017-01-25 23:38:10 -03:00
Shauren
b879a6cae5 Core/DBLayer: Added new async query callback api
(cherry picked from commit fcabeed754)
2017-01-25 23:38:07 -03:00
joschiwald
62b62ddd63 Core/Packets: updated some contactlist packets
(cherry picked from commit e01bb91887)

Conflicts:
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Player/Player.h
	src/server/game/Entities/Player/SocialMgr.cpp
	src/server/game/Entities/Player/SocialMgr.h
	src/server/game/Handlers/MiscHandler.cpp
	src/server/game/Server/Packets/MiscPackets.cpp
	src/server/game/Server/Protocol/Opcodes.cpp
	src/server/game/Server/Protocol/Opcodes.h
	src/server/game/Server/WorldSession.cpp
	src/server/game/Server/WorldSession.h
	src/server/shared/Database/Implementation/CharacterDatabase.cpp
	src/server/shared/Database/Implementation/CharacterDatabase.h
2017-01-25 23:36:24 -03:00