Commit Graph

21898 Commits

Author SHA1 Message Date
treeston
5b8b8c6530 Merge branch '3.3.5-bossboundary' into 3.3.5-base (PR #16089) 2016-01-13 15:33:17 +01:00
ariel-
fdc8ad7cea Fix build after cherry-pick 2016-01-13 01:47:53 -03:00
Shauren
354c262683 Core/DBLayer: Added compile time validation for prepared statement indexes passed to DatabaseWorkerPool::GetPreparedStatement turning mistakes like the one fixed in 0327927fa6 into compiler errors.
(cherry picked from commit 7c75160f59)

Conflicts:
	src/server/database/Database/Implementation/HotfixDatabase.h
	src/server/database/Database/QueryResult.cpp
	src/server/shared/DataStores/DB2StorageLoader.cpp
	src/server/shared/DataStores/DB2StorageLoader.h
	src/server/shared/DataStores/DB2Store.h
2016-01-13 01:38:29 -03:00
ariel-
569c64625d Fix concurrency issue with command .account set gmlevel 2016-01-13 01:34:49 -03:00
ariel-
931eaff000 Make login process async, hand cherry-picked 2016-01-13 01:14:13 -03:00
Kittnz
09a6516367 Core/Object: Codestyle improvements 2016-01-12 22:43:48 +01:00
Kittnz
eeb72994ba Merge pull request #16248 from elecyb/destroyAnimation
Core/Entities: Show destroy animation for creatures and totems.
2016-01-12 22:38:00 +01:00
treeston
2da458c56d Scripts/Instances: Complete rewrite of the boundary system.
- Migrate boundary logic to Maps/AreaBoundary instead of having it sit in InstanceScript (to possibly allow use for other purposes).
- Implement the first five boundary types in Maps/AreaBoundary.cpp.
- Add boundary checks to Creature's update logic
- Add boundary data for all Northrend raids
- Add boundary initialization structures and methods to InstanceScript
- Modify EnterEvadeMode signature. It now passes a value from the EvadeReason enum as parameter to allow special casing depending on evade reason
- Remove previous (weird) boundary code that had them linked to GO spawns
2016-01-12 22:24:23 +01:00
elecyb
38782deed0 Core/Entities: Show destroy animation for creatures and totems.
Now all pets and totems will have their proper die/destroy animation when killed.

Ported from MaNGOS.
2016-01-12 17:34:34 -03:00
Kittnz
529899675a Merge pull request #16245 from sirikfoll/Turkinator
Core/Spells Implement SpellScript needed for Achievement The Turkinator
2016-01-12 21:04:24 +01:00
Shauren
48940e292f Core/Quests: Fixed party accept quests 2016-01-12 19:41:27 +01:00
treeston
3ea6324507 Merge remote-tracking branch 'tkrokli/npc_myranda_the_hag' into 3.3.5-base 2016-01-12 19:18:13 +01:00
treeston
9091451818 Merge remote-tracking branch 'tkrokli/gossip_accept_duel' into 3.3.5-base 2016-01-12 19:17:39 +01:00
treeston
6710beed75 Merge remote-tracking branch 'tkrokli/npc_shadowfang_prisoner' into 3.3.5-base 2016-01-12 19:17:25 +01:00
Shauren
3c3cde028c Core/Quests: Fixed quest sharing
Closes #12304
Closes #16183
2016-01-12 19:08:37 +01:00
treeston
e203d78d2a Merge remote-tracking branch 'velinath/sai-migrations' into 3.3.5-base 2016-01-12 18:32:51 +01:00
sirikfoll
fc2a570d09 Core/Spells Implement SpellScript needed for Achievement The Turkinator
Closes #3997
2016-01-12 15:24:55 -02:00
tkrokli
76d5dbad4b [3.3.5] Core/Script: move Myranda the Hag's gossip option to DB
Removing hardcoded text from the core script and into the DB:
"I am ready for the illusion, Myranda."

This quest is 3.3.5 *only*. Removed in patch 4.0.3a.

Addendum: enum ILLUSION_GOSSIP = 4773 , instead of "magic number".
2016-01-12 17:37:18 +01:00
tkrokli
22dd523c1f Core/Scripts: move GOSSIP_ACCEPT_DUEL to DB
Another attempt to shorten the list of hardcoded gossip menu options.

This is the gossip menu option of the NPC ID 28406, Death Knight Initiate
in Death's Breach in the Scarlet Enclave, the death knight starting area.
This gossip is tied to the quest "Death's Challenge".

Removing this text in the core script: "I challenge you, death knight!"
(#define GOSSIP_ACCEPT_DUEL) and using `ADD_GOSSIP_ITEM_DB()`
to pull the gossip_menu_option 9765 from the database instead.
2016-01-12 10:18:44 +01:00
tkrokli
95a2eec923 Core/Scripts: move npc_shadowfang_prisoner gossip option to DB
Getting rid of one more incorrect and hardcoded text
which now will be read correct and from the DB instead.

Wrong text: "Thanks, I'll follow you to the door." (core)
Correct text: "Please unlock the courtyard door." (DB)

Thanks to @Aokromes, @r00ty, @velinath, @Nayd, @Treeston, @Zedron
and lots of other regular TrinityCore developers and members for the
inspiration and motivation, as well as helpfulness along the way.
2016-01-12 09:50:04 +01:00
ariel-
471002f233 Partial cherry-pick 653954c14d to fix build
Core/Misc:
- Update LocaleConstant enum
- Update Quest locale system for WoD
- Fix some rnd typo in quest template

Conflicts:
	src/server/game/Chat/ChatLink.cpp
	src/server/game/Entities/Creature/GossipDef.cpp
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Globals/ObjectMgr.cpp
	src/server/game/Globals/ObjectMgr.h
	src/server/game/Quests/QuestDef.cpp
	src/server/game/Quests/QuestDef.h
	src/server/game/Server/Packets/QuestPackets.cpp
	src/server/game/World/World.cpp
	src/server/scripts/Commands/cs_reload.cpp
	src/server/shared/Common.cpp
	src/server/shared/Common.h
2016-01-11 23:27:47 -03:00
ariel-
c47b0c87e4 CMake: Fix bad generation of "revision_data.h" not including MYSQL_EXECUTABLE.
* was caused through invoking "FindMySQL" after using ${MYSQL_EXECUTABLE}.
* better re-run CMake if you are affected by the mysql exe wasn't found issue.

(cherry picked from commit 45a60c2d22)

Conflicts:
	CMakeLists.txt
2016-01-11 23:27:46 -03:00
ariel-
d04d14e34d Update copyright note for 2016 2016-01-11 23:27:45 -03:00
Shauren
6b7c6f4366 Core/Players: Implemented serverside validation of reserved/profane names
Closes #15357

New library dependency: Boost.Regex

(cherry picked from commit b564c10b13)
(cherry picked from commit 1de03cf107)

Conflicts:
	src/server/game/DataStores/DBCStores.cpp
	src/server/game/DataStores/DBCStructure.h
	src/server/game/DataStores/DBCfmt.h
2016-01-11 23:27:43 -03:00
ariel-
70841dfbf2 Core/Spells: corrected Eviscerate AP contribution 2016-01-11 20:03:06 -03:00
ariel-
53294da22b Fixed issue with spells wrongly calculated using ranged AP 2016-01-11 19:16:07 -03:00
ariel-
446cb1e5c5 Port relevant cooldown category handling and Duel Cooldown reset script
Core/Spells: Cooldown updates
Core/Player: implement ResetCoolDownAfterDuel configurable feature
Core/Player rewritten duel CD reset system
Core/Spells: fixed some rare stealth/prowl visual bugs after duel cd reset
Core/Spells: Improved spell category cooldown handling

* Category cooldown is stored with the spell that started the cooldown (and only resetting cooldown on that spell will clear cooldowns on entire category - this fully mirrors client behavior)
* This significantly reduces the amount of data saved to database for cooldowns
* Spell casts from items that have a different category specified than on spell will now check for cooldown during the cast

Core/Misc: Warning fix
Scripts/DuelReset:

- impemented health and mana reset
- do not reset anything when duel is interrupted

Scripts/DuelReset:

- fixed druid mana restoration
- fixed bug when a player accepts duel with a spel on onHold true (like when stealth of rogue/druid is active)

Core/Spells: Fixed Raise Dead cooldown
Core/Spells: Fixed typo in ecbbcc8972
Core/Spell: fixed possible exploit in Duel Reset script

- thanks @Runico for reporting it

Scripts/DuelReset:

- do not reset when duel is fled
- minor improvement to SpellHistory::RestoreCooldonStateAfter duel method
2016-01-11 14:51:30 -03:00
ariel-
faac17657d Fix typo 2016-01-11 02:22:08 -03:00
w1sht0l1v3
a0f4fd0abf Core/Quests: Fix a CMSG injection abuse.
closes #15709

(cherry picked from commit 11f0c85bd4)

Conflicts:
	src/server/game/Handlers/QuestHandler.cpp
2016-01-11 01:52:24 -03:00
Shauren
8624325f23 Core/Conditions: Optimizations part 3 changed ConditionStore to a simple array
(cherry picked from commit db0c48c17f)
2016-01-11 01:52:20 -03:00
Shauren
a83b61b807 Core/Conditions: Optimizations part 3 removed copying condition containers all over the place
(cherry picked from commit b09e63e9de)

Conflicts:
	src/server/game/Conditions/ConditionMgr.cpp
	src/server/game/Conditions/ConditionMgr.h
2016-01-11 01:52:17 -03:00
Shauren
70217b0d84 Core/Conditions: Add const to methods not modifying ConditionMgr
(cherry picked from commit 2cce998e90)

Conflicts:
	src/server/game/Conditions/ConditionMgr.cpp
2016-01-11 01:52:13 -03:00
Shauren
80f909682d Core/Conditions: Optimizations part 2 removed unneeded code
(cherry picked from commit e5c1e7d71c)

Conflicts:
	src/server/game/Conditions/ConditionMgr.h
2016-01-11 01:52:10 -03:00
Shauren
5db2a8f3ee Core/Conditions: Optimizations part 1 - use containers more suited for their role
(cherry picked from commit 9fa938f3e0)

Conflicts:
	src/server/game/Spells/SpellInfo.h
2016-01-11 01:52:06 -03:00
Shauren
315fdd1886 Core/Conditions: Type renaming
(cherry picked from commit 5e0cee85dd)

Conflicts:
	src/common/Common.h
	src/server/game/Conditions/ConditionMgr.cpp
	src/server/game/Conditions/ConditionMgr.h
	src/server/game/Entities/Object/ObjectGuid.h
	src/server/game/Loot/LootMgr.h
	src/server/game/Spells/Spell.cpp
	src/server/game/Spells/SpellInfo.cpp
2016-01-11 01:52:03 -03:00
Shauren
1348b06a96 Core/Misc: Added a few stl header includes to Common.h
(cherry picked from commit 89b902b4e0)
(cherry picked from commit c5d36a3183)

Conflicts:
	src/common/Common.h
2016-01-11 01:51:59 -03:00
Shauren
ed257a4ed4 Core/Auras: Fixed auras limited to a single target not being removed in all cases as expected
* Fixes possible assertion failure in Aura::UnregisterSingleTarget
Closes #15696
Ref #15668

(cherry picked from commit b808910a89)
2016-01-11 01:51:56 -03:00
Shauren
af41a70fe8 Core/Commands: Refactored chat command script hook, fixes a crash when building with gcc 5
Closes #15616
Closes #15740

(cherry picked from commit 2d942ddcc5)

Conflicts:
	src/server/game/Chat/Chat.cpp
	src/server/scripts/Commands/cs_battlenet_account.cpp
	src/server/scripts/Commands/cs_cast.cpp
	src/server/scripts/Commands/cs_debug.cpp
	src/server/scripts/Commands/cs_go.cpp
	src/server/scripts/Commands/cs_misc.cpp
	src/server/scripts/Commands/cs_mmaps.cpp
	src/server/scripts/Commands/cs_npc.cpp
	src/server/scripts/Commands/cs_reload.cpp
	src/server/scripts/Commands/cs_ticket.cpp
2016-01-11 01:51:52 -03:00
jackpoz
1a5b0067a3 Core/Commands: Fix NULL dereference crash
Closes #15833

(cherry picked from commit abd4e2e0f1)

Conflicts:
	src/server/game/Chat/Chat.cpp
2016-01-11 01:51:49 -03:00
jackpoz
5ebfe5a297 Scripts/EyeOfEternity: Fix crash
Fix crash happening when a player would kill a Melee npc on the disks during Malygos fight and mount it before it ended the waypoint path.
Close #15900

(cherry picked from commit 6e296ddaa2)
2016-01-11 01:51:46 -03:00
jackpoz
308d30417c Core/Player: Fix crash related to vehicles
Fix assertion triggered when entering a vehicle while channelling a shared vision spell.
Fix #15953

(cherry picked from commit 2cb54d5606)
2016-01-11 01:51:42 -03:00
Shauren
89928cbdf0 Core/Items: Fixed a possible crash with soulbound tradable items
Closes #15700

(cherry picked from commit 094f505e40)
(cherry picked from commit cc685ac334)
2016-01-11 01:51:35 -03:00
Shauren
7a5a4cb726 Core/Players: Check if player can enter the instance during login before trying to add him to map
* Fixes name displaying as "Unknown"

(cherry picked from commit 45994a177c)
(cherry picked from commit c7bad70e55)

Conflicts:
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Player/Player.h
2016-01-11 01:51:32 -03:00
jackpoz
9fe26765b4 Core/Player: Always allow accounts with RBAC_PERM_COMMAND_GM to enter instances on login
Always allow accounts with RBAC_PERM_COMMAND_GM to enter instances on login even if player had .gm off .
Send an ingame message to notify the user about the avoided kick.

(cherry picked from commit 5f917e2286)

Conflicts:
	src/server/game/Entities/Player/Player.cpp
2016-01-11 01:51:28 -03:00
treeston
27f0edde0f Game/Maps: Instance handling follow-up:
- Fix a bug where a player could maintain a conflicting non-perm solo bind if they were in the instance when invited to group. Closes #16150.
- If a group is created while the leader is in an instance that nobody is bound to, the group will take over the instance and bind to it. This stops the homebind timer when reforming group after disconnects and the like.

(cherry picked from commit 0f0a51b87a)
2016-01-11 01:51:25 -03:00
treeston
94a5629949 Game/Maps: Clean up instance handling.
- Rename Map::CanEnter to Map::CannotEnter. Return value changed from boolean (true means player can enter) to enum Map::EnterState (CAN_ENTER=0 means player can enter, any other value is a reason for deny).
- Move hack-y player error messages from within Map::CanEnter to the function calling CanEnter as appropriate (primarily WorldSession::HandleAreaTriggerOpcode).
- Modify WorldSession::HandleAreaTriggerOpcode to properly revive the player upon touching the portal leading to the instance they died in even if they are currently unable to zone in. Fixes and closes #15758.
- Modify Player::LoadFromDB to properly spawn players in the instance they logged off in if possible. Fixes and closes #15561.
- Modify permanent save behavior to be blizzlike: Players can always enter an instance they are saved to (assuming there are no map constraints against it), but get a homebind timer if the instance is already in use.

(cherry picked from commit 43fa7d48a5)

Conflicts:
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Player/Player.h
	src/server/game/Maps/Map.cpp
	src/server/game/Maps/MapInstanced.cpp
	src/server/game/Miscellaneous/Language.h
2016-01-11 01:51:21 -03:00
Shauren
4a07a95c18 Core/Corpses: Fixed a possible crash adding bones to grid
Closes #15808

(cherry picked from commit ec1583df67)
(cherry picked from commit 910fb00130)
2016-01-11 01:51:14 -03:00
MitchesD
100d847483 Core/PacketIO: fixed instance binding of gamemasters
(cherry picked from commit 231fb1d322)
(cherry picked from commit a968595977)
2016-01-11 01:51:11 -03:00
Shauren
b215184cc0 Core/Corpses: Fixed a crash happening when a corpse is added to a grid that was not yet fully loaded
Closes #15684

(cherry picked from commit 8c9ea7782a)
2016-01-11 01:51:07 -03:00
Shauren
ce7fc03930 Core/World: Store account id in CharacterInfo to reduce the amount of database queries
(cherry picked from commit aaaa1c3441)
(cherry picked from commit 4a36850167)

Conflicts:
	src/server/game/Handlers/CharacterHandler.cpp
	src/server/game/World/World.cpp
2016-01-11 01:51:04 -03:00