Commit Graph

1326 Commits

Author SHA1 Message Date
Shauren e947fcedee Core/Taxi: Apply reputation discount to all points in multi-segment paths
(cherry picked from commit 99f5d06149)
2017-10-29 19:13:32 +01:00
Treeston bf81a7b207 Core/Map: Fix a crash bug when teleporting out of map before being fully added to that map. Closes #20289. 2017-10-26 11:35:21 +02:00
Shauren b763242665 Core/Taxi: Fixed applying reputation discount to first taxi segment
Closes #20713

(cherry picked from commit d7e463dd9f)
2017-10-25 18:37:45 +02:00
Keader 9f943e284f Core/Player: Fixed Battleground double kill exploit (#20618)
Fixed by: Sirikfoll
Close: #20616
2017-10-20 09:36:22 -02:00
Wyreth ca024f104c Core/Quests: don't send "Received item" chat message for quest rewards. (#20465) 2017-10-09 21:14:09 +02:00
Treeston 47af704f63 Core/Player: More cleanups to Player::UpdateZone, including correcting an oversight that was causing the last known zone id to not update when leaving map. Closes #20289 for real this time. 2017-09-10 01:10:40 +02:00
Treeston 0f7015012b Core/Player: Resequence Player::UpdateZone some more to hopefully prevent future edge cases like #20289 from occurring. 2017-09-09 21:36:57 +02:00
Treeston dbabcfbe24 Core/Player: Update map zone stats BEFORE invoking scripts. Fixes a crash with zone change scripts that invoke another zone change. Closes #20289. 2017-09-09 21:32:34 +02:00
Treeston a1a12ec755 Core/Player: Prevent changing equipment while charmed. Closes #20209. 2017-09-05 15:33:44 +02:00
Aokromes fe2db07313 Core/Conditions: Rename CONDITION_SOURCE_TYPE_QUEST_ACCEPT to CONDITION_SOURCE_TYPE_QUEST_AVAILABLE
By Malcrom
2017-08-20 12:59:02 +02:00
sirikfoll e2565c2597 Core/Misc: Remove Whitespaces 2017-08-11 23:06:37 -03:00
r00ty-tc 59db2eeea0 Dynamic Creature/Go spawning:
- True blizzlike creature spawn/respawn behavior - new creature = new object
 - Toggleable spawn groups (with C++/SAI/command options to use them)
 - Custom feature: dynamic spawn rate scaling. Accelerates respawn rate based on players in the zone.
 - Backward compatibility mode (set via group and for summons)
   to support creatures/gos that currently don't work well with this
   (this should be removed once the exceptions are fixed)

Fixes and closes #2858
Tags #8661 as fixable.
Fixes and closes #13787
Fixes #15222.
2017-07-31 21:21:04 +02:00
Treeston 98aa7806c4 Core/Player: Always set flight state change packets for players, even if their latest MovementInfo doesn't indicate it's needed (the MI might be outdated). Fixes a player flight exploit and closes #20079. 2017-07-25 20:00:13 +02:00
Treeston 28b3469e89 Core/WorldObject: Properly initialize position data for all types when initially creating them. Fixes some issues with PvP objectives not having the correct area ID set on initialization. Closes #20028. 2017-07-23 00:01:11 +02:00
treeston 24ec3ad340 Core/Taxi: Properly send taxi node status on login, as well as if the taxi master is out of range. Closes #20035. 2017-07-18 15:55:31 +02:00
jackpoz 832a114196 Core/Misc: Fix static analysis issues 2017-07-17 18:48:07 +02:00
Treeston f44956b051 Core/Quest: Prevent an issue causing quests to become invisible upon relog. (#20030)
Closes #20012
2017-07-16 14:36:42 +02:00
Weyrath 8b2bd9a5f2 Core/Quests: Fixed order of RewardChoiceItems and reputation reward. (#19904) 2017-07-13 17:52:26 +02:00
Treeston e2a1ccd118 [3.3.5] Combat/Threat rewrite - prep & refactor (#19966)
* Combat/Threat rewrite (PR #19930) prep work. Mostly refactors, and a compatibility layer on ThreatManager/HostileReference that allows scripts to be changed already.
2017-07-01 20:18:02 +02:00
Treeston 489478b74d Core/Entities: Extend combo point system to all Units and fix numerous quirks with rogue CP and vehicles (Malygos P3) (#19914)
- Implement Wolverine Bite (fixes #752)
- General combo point system cleanup
2017-06-24 22:41:16 -03:00
ariel- 85a7d5ce9a Core: ported headers cleanup from master branch 2017-06-19 23:20:06 -03:00
Shauren d6201e5dbb Core/Grids: Ported cmangos/mangos-wotlk@ea99457e50
(cherry picked from commit 9299e9bde0)
2017-06-19 13:16:13 -03:00
joschiwald 46cb32c99f Core/Misc: Added Creature::CanGiveExperience helper function
(cherry picked from commit c1cc0e9949)
2017-06-19 02:35:22 -03:00
treeston 4b9b1d485d Revert "Cross-check client-submitted fall time with server-measured time. When excessive difference is detected, punish player. (#19895)" due to really random edge case client behavior causing false positives.
Going to need to find a different approach for dealing with the underlying issue.

This reverts commit 27cbfc3a93.
2017-06-18 01:25:36 +02:00
Treeston 27cbfc3a93 Cross-check client-submitted fall time with server-measured time. When excessive difference is detected, punish player. (#19895)
Fixes an exploit that could trivialize the Lich King encounter.
2017-06-17 03:31:53 +02:00
treeston 250e8d998b Group creation again (follow-up to 132538d). Groups now only disband if all members reject the invitation (as opposed to if any member rejects the invitation). 2017-06-15 13:08:26 +02:00
treeston 4b6351e6a5 Fixes to all-reputation and all-skill custom option handling:
- Move on-create customs (all explored, all reputations) to CharacterHandler::HandlePlayerLogin for first login. Fixes #19839.
- Add Wrath factions to all reputations custom (it only had BC factions).
- Remove unused ReputationMgr::SendStates. Add ReputationMgr::SendState handling for sending all updated states in arbitrary order if nullptr is passed (used in point #1).
- Fix all weapon skills max custom to properly apply on learning new weapon skills.
2017-06-15 04:19:28 +02:00
Cannix c14b448d63 Core/Player: Keep shared quests through map changes instead of getting stuck in busy state (#19821) 2017-06-15 01:27:37 +02:00
kelno f5fd0b5ef3 Core/Misc: Fix typo in UNDERWARER_INDARKWATER (#19864) 2017-06-08 18:07:01 +02:00
Treeston f6c849729b [3.3.5] Get zone/area IDs from vmap data in the liquid update (#19840)
* Add new method Map::getFullVMapDataForPosition to get area info and liquid info in a single vmap lookup
* Use this lookup in Map:: relocation methods to update m_areaId and m_zoneId fields on WorldObject
* Adjust GetZoneId/GetAreaId on WorldObject to always return these cached fields
* Clean up liquid state handling on Unit and Player
* Hand floor's Z coord up through GetFullTerrainStatusForPosition, use it to update a new field in WorldObject, and use that to feed a new GetFloorZ call on WorldObject.

Closes #16489
2017-06-08 00:25:06 +02:00
Shauren 47d54bf5e2 Core/Movement: Fixed fall damage when teleporting together with transport
Closes #14672
2017-06-06 22:30:04 +02:00
ariel- d03e97d53f Core/Player: update interaction checks, some info taken from client 2017-05-23 20:18:45 -03:00
ForesterDev abea8bf4cb Core/Defines: define faction templates and replace magic numbers from scripts 2017-05-23 12:30:27 +02:00
Rochet2 6e3a48c873 Core/Gossip: Fix gossip bug on modify money (#19551) 2017-05-14 11:27:42 +02:00
xinef1 538f60a880 Core/Quests: Display quest objective explore completion message
- Game client should show an on-screen message for explored quest objectives
  (AreaExploredOrEventHappens) when the objective has been completed.

Closes #19543
2017-05-07 20:15:19 +02:00
ariel- c3176a8143 Core/Players: fix null dereference crash 2017-05-06 15:49:56 -03:00
Chazy Chaz 5ff8601d36 Core/Misc: Update locales_gossip_menu_option to simple system 2017-05-04 17:35:43 +02:00
Shauren 011b8847d1 Core/Movement: Ported teleport packet fixes from master branch to get rid of ugly relocations 2017-05-03 17:48:42 +02:00
ccrs b6274578b1 Core/Unit: revert recent changes
master cherry pick incomming :D
2017-05-03 15:14:41 +02:00
ccrs d92132f1dc Core/Unit: 6fe4d37f8d followup 2017-05-03 14:14:37 +02:00
ccrs 6fe4d37f8d Core/Unit: SendTeleportPacket corrections 2017-05-02 14:57:10 +02:00
ariel- f913f3bb89 Core/Scripts: unified scripted gossip/quest api
- Changed self-accessor on GameObjectAI to "me", like UnitAI
- Moved all related functions to AI, now Unit and GameObject have the same function names with identical behaviour
- Remove "OnUpdate" from CreatureScript/GameObjectScript, was never used and we already have AI Update method
- Quest methods no longer return a bool, the return value was used to call the AI version if the ScriptMgr one returned false
- Implemented GameObjectAI::Destroyed hook (was never called), implemented Damaged method
- Rename OnStateChanged to OnLootStateChanged to reflect when it's really called, and created a new hook OnStateChanged that only gets called on GOState change
- Since the functions are now only getting called from AI, made GetAI methods full virtual. (CanSpawn method is anyways going to be used on creatures with AI)
2017-05-01 18:19:36 -03:00
ariel- 231ec8331b Core/Entities: moved PetAura handling to Player where it belongs 2017-04-28 19:12:48 -03:00
ariel- 4c4dca6d69 Core/Misc: camelize GetFaction/SetFaction properly 2017-04-28 18:37:38 -03:00
xinef1 a4aa95a5a3 Core/Misc: implemented petition manager (#19010)
- Implemented manager for petitions to perform all petition related tasks and synchronize data with database.
- This kills ugly synchronous querys on packet handlers
2017-04-27 02:02:33 -03:00
ariel- a82a12b5ef Core/Player: don't check quest requirements against RewardNextQuest
- This field is only used to propose a new quest to player after completion, shouldn't be used to condition current quest

Closes #19515
2017-04-27 00:23:32 -03:00
jackpoz 486b032343 Core/Misc: Fix static analysis issues 2017-04-25 17:33:53 +02:00
ariel- 157e9311c4 Core/Quests: implemented MSG_QUEST_PUSH_RESULT notifications
- Allow to share already completed (but not rewarded) quests, restriction was unblizzlike

thanks Cannix for the heads up
2017-04-24 16:34:50 -03:00
xinef1 cbbb745246 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
2017-04-24 00:46:06 -03:00
ariel- 7ffe056366 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
2017-04-22 06:33:05 -03:00