Commit Graph

1369 Commits

Author SHA1 Message Date
robinsch d209aaa00f Core/Social: Implement FRIEND_STATUS_RAF (#19317) 2017-03-19 16:47:56 +01:00
ForesterDev 5d562556c3 Core/SocialMgr: fix case when contacts appears in friend list many times
Closes #19306
2017-03-18 11:07:41 +01:00
Chazy Chaz a63bd06ec6 Core/Players: Rename "heroic character" to "death knight"
Closes #19287
2017-03-17 19:03:59 +01:00
ariel- 3b27a06265 Core/Quests: fixed exclusivegroup interaction with prevquestId and nextQuestId.
- They should work as documented by wiki now.
- Add some consts to Player methods
- Fixed negative PrevQuestID to mean only active quest (ie not rewarded/complete, as those quests are required to complete another)

Closes #19300
2017-03-16 02:55:48 -03:00
ariel- 076293f1f2 Core/Globals: some changes in quest loading
- Made load/reload associated quest tables data-driven, so removed a bunch of similar looking code from ObjectMgr (yay!)
- Codestyle and encapsulation for ExclusiveQuestGroups
2017-03-16 00:57:53 -03:00
ariel- 09701b0229 Core/Globals: Fix Quest codestyle and member variable initialization 2017-03-16 00:57:53 -03:00
ariel- 21d95a1d76 Core/Entities: virtualize CheckAttackFitToAuraRequirement
- Should've been like this to begin with
2017-03-12 17:48:07 -03:00
xinef1 7567cafec8 Ensure that all actions are compared to fixed point in time (ie. world update start) (#18910)
- Actions will not be dependent on processing moment
- Increased GameObjects cooldown resolution to milliseconds, fixes arming time of traps to be exactly one second and not something from range (1000, 1999)
- Created GameTime namespace and UpdateTime class and moved there some code out of world
2017-03-01 22:19:25 -03:00
xinef1 7011aabb56 Core/GameObject: regenerate GO loot if respawn time passed since last loot generation time and not all items were taken (#19101) 2017-03-01 20:19:28 -03:00
xinef1 fb2aebe46b Core/Misc: Always reward all necessary reputations on creature kill (#19106) 2017-03-01 20:10:15 -03:00
xinef1 9b284ab329 Remove auras interrupted by falling when we fall to the ground or water (#19115) 2017-03-01 20:08:12 -03:00
ariel- c69a7d1223 Core/Auras: reworked multiplicative AuraEffects calculation
- Splitted containers for flat modifiers and pct modifiers, as they now have different handling
- Amount is now multiplied only on apply; on unapply, iterate through auras and reset the counter
- Fixes many cases of rounding error due to applying/unapplying of small factors
- Allows amounts to be zeroed (ie with an AuraEffect of amount -100)
- Do a partial revert of 6dc37a9add, auras should update amounts only for items allowed (ie no more giving crit to a sword while having an axe in the other hand and being Poleaxe spec'd)
- SPELL_AURA_MOD_SCALE now scales additively, rather than multiplicatively (checked in sniffs)

Closes #18687
2017-02-27 14:24:20 -03:00
ariel- 6c9bda6093 Core/Conditions: CONDITION_SOURCE_TYPE_QUEST_ACCEPT should not prevent completed question mark from showing (#18151 follow up)
Closes #19188
2017-02-23 03:29:29 -03:00
ariel- 08fdac340c Core/Players: fix 2 Seal of Righteousness spells on paladins
Closes #14239
2017-02-23 02:51:31 -03:00
ariel- d61e0f79c4 Core/Entities: Fix null-dereference crash
Closes #19191
2017-02-23 02:09:44 -03:00
ariel- f609e7a08b Core/Spells: refactor spell_enchant_proc_data table
- Renamed fields to mimic those in spell_proc
- Added Enchant proc attributes for controlling specific enchant features

Ref #7789
2017-02-22 00:11:49 -03:00
ariel- eac9c1f0b9 Core/Scripts: fix Nightfall proc chance and reduce it for victims with level above 60
Closes #15734
2017-02-21 22:38:30 -03:00
ariel- c274ea8a98 Core/Misc: changed WorldPacket pointers to const
- Packet update sync with master
2017-02-20 16:43:16 -03:00
xinef1 4eae29d421 Properly stop attacking after player leaves ffa area (like Gurubashi Arena) (#18952) 2017-02-20 15:03:11 -03:00
xinef1 e261754c9c Fixed setting and unsetting of m_spellModTakingSpell (#19116)
- A problem when a different spell tries to overwrite existing ModTakingSpell should no longer happen
2017-02-19 02:10:50 -03:00
xinef1 b3f04ec157 Added some missing SetFallInformation calls (#19121)
Fixed HP drop bug on zeppelins
Fixed possible packet relocation problems on huge transports
2017-02-13 21:05:32 +01:00
xinef1 2412886ef6 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
2017-02-13 20:42:06 +01:00
Kittnz d550ba7392 Game/Scripting: Add OnPlayerRepop hook
Called when a player presses release when he died
2017-02-07 17:28:16 +01:00
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
xinef1 59ce3d6c9b Core/Misc: Moved CharacterInfo out of world to separate class
Closes #19030
2017-02-05 23:14:19 +01: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 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 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
Gildor b209353266 Build Fix (#19004) 2017-01-29 18:15:21 +01:00
Gerhood bab59b28fa Core/Spells: implement Mad/Crazy Alchemist's potions 2017-01-29 14:06:40 +01: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
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
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
Xinef 9b44ed9cda Core/Achievements: Greatly optimize achievement system by splitting large types by miscvalue
Closes #18633
2017-01-21 18:40:35 +01:00
xinef1 ba6281bf42 Core/Units: Drop hostile world references that are out of our sight (fixes combat bug) (#18591) 2017-01-21 14:46:32 +01:00
Shauren 998efa55d8 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
2017-01-21 13:16:06 +01:00
Staleness89 7c379129e9 Core/Player: Add another config option for IsGroupVisibleFor() (#18723) 2017-01-05 13:03:48 +01:00
tkrokli 6a51a88767 Update Copyright notice for 2017
Happy new year!
2017-01-02 19:52:45 +01:00
ariel- e1354c72e8 Core/Player: Recast lost by death item obtain spells of any items held in the inventory when resurrecting
I HAS BUKKIT

Closes #5184
2016-12-31 02:32:40 -03:00
xinef1 90a330c910 Core/Items: Fixed problem where item dependent auras are not properly updated (#18592)
-  Introduced in 7e83d7e22a

Closes #18506
2016-12-30 16:38:54 -03:00
ariel- ee6d1d02c0 Core/Spell: kill old charge restoring system. Mods are fully handled by proc system now.
- Fixes an edge case of spell failing due to out of range and re-adding charges to an existing aura.
2016-12-30 15:59:59 -03:00
ariel- 07fb65a6f2 Core/Player: fix some PCT_MOD charge consumption
By xinef1

Closes #18516
2016-12-30 15:38:33 -03:00
xinef1 bf7e95bd57 Core/Items: Fixed empty slots handling in equipment manager (#18613) 2016-12-26 14:25:32 +01:00
Shauren 618cf0e1c2 Core/Units: Cleanup hardcoded magic numbers for byte field offsets
(cherry picked from commit ac1dc758b9)
2016-12-15 08:16:01 -03:00
ariel- 7e83d7e22a Core/Player: prevent early aura removal when swapping weapons
Closes #18428
2016-12-15 07:55:08 -03:00
ariel- 3a52ad8d38 Core/Entities: Replace existing GetAuraEffectsByType + iteration uses with proper helper functions 2016-12-13 02:18:06 -03:00
ariel- 01d272d6cb Core/Spell: improved immunity logic for dispels
- Fixes dispel magic removing immunity spells (Divine Shield for example). Ref issue #18370
2016-12-11 15:08:00 -03:00
ariel- ed5aa40929 Core/Unit: unambiguosly define PLAYER_FIELD_MOD_DAMAGE_DONE_ fields as signed
- They were used both signed and unsignedly
- Bonus: some magic number removal with enums
2016-12-09 14:40:14 -03:00
ariel- 7e3a0cba9d Core/Spells: Fixed one issue with auras having SPELL_ATTR4_CAST_ONLY_IN_OUTLAND and aura zone updates
Defined spell attribute SPELL_ATTR7_IGNORE_COLD_WEATHER_FLYING

Closes #18286
2016-12-01 01:16:31 -03:00
ariel- 858d45885b Core/Player: fix regression with EquippedItemClass requiring spells 2016-11-20 03:48:36 -03:00