Commit Graph

12648 Commits

Author SHA1 Message Date
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
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
Shauren
b7d37daa74 Core/Corpses: Fixed map crash happening during map unload when there are corpses inside
(cherry picked from commit 1d17475791)
2016-01-11 01:51:00 -03:00
Shauren
fc9c587604 Core/Corpses: Fixed leaking bones
Ref #15765

(cherry picked from commit bd16520ecc)

Conflicts:
	src/server/game/Entities/Corpse/Corpse.cpp
2016-01-11 01:50:56 -03:00
pete318
6664a3acc3 Change many uint32 to ObjectGuid::LowType in line with 6.x changes.
(cherry picked from commit b1032ed620)

Conflicts:
	src/server/game/AuctionHouse/AuctionHouseMgr.h
	src/server/game/Entities/Corpse/Corpse.cpp
	src/server/game/Entities/Creature/Creature.cpp
	src/server/game/Entities/DynamicObject/DynamicObject.cpp
	src/server/game/Entities/DynamicObject/DynamicObject.h
	src/server/game/Entities/GameObject/GameObject.cpp
	src/server/game/Entities/GameObject/GameObject.h
	src/server/game/Entities/Object/ObjectGuid.h
	src/server/game/Entities/Pet/Pet.cpp
	src/server/game/Entities/Pet/Pet.h
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Transport/Transport.h
	src/server/game/Globals/ObjectMgr.cpp
	src/server/game/Guilds/Guild.h
	src/server/game/Guilds/GuildMgr.cpp
	src/server/game/Guilds/GuildMgr.h
	src/server/game/Mails/Mail.h
	src/server/game/Maps/Map.cpp
	src/server/game/Maps/TransportMgr.cpp
	src/server/game/Maps/TransportMgr.h
	src/server/game/OutdoorPvP/OutdoorPvP.h
2016-01-11 01:50:53 -03:00
ariel-
b20c9ae283 Corpses update: cd27fd38b9 2016-01-11 01:50:49 -03:00
ariel-
b3ea9fbbe5 Map local guids 6.x -> 4.3.4
Ported the following commits:
ca83e14f8b
ee1c1b97be
18e4ab6911
bf37446b3c
cb854a2b7b
2016-01-11 01:50:45 -03:00
pete318
6d04b6ecc6 Improved Auction house deposit handling.
Including the weird quirks.

Changes:
* Deposit caculated according to same rule as client. (detailed below). Should always match client deposit now
* Deposit for multiple auctions now only collected once. Deferred calculation of deposit until all auctions listed.

Deposit calculation is as follows:

Base deposit calculation = MSV x 15/75% (depending on AH). However this is not rounded. Case to int is used (so always round down)
The remainder is held in a float.
The base is then multiplied by number of items, and the time multiplier (x2 for 24 hour, x4 for 48 hour)
The nearest (no of items or lower) no of items when multiplied by the remainder that creates a whole number is then multiplied by the time multiplier (x1/x2/x4) and then added to deposit.

Example:

Item sell price 1s25. Deposit 18.75c (15% of 1s25). So base deposit = 18, remainder 0.75. Time 24h (x2) Item count 1 = 36c. Remainder = 0.75 (n) Min = 1s. Deposit 1s
Item sell price 1s25. Deposit 18.75c (15% of 1s25). So base deposit = 18, remainder 0.75. Time 24h (x2) Item count 2 = 72c. Remainder = 1.50 (n)  Min = 1s. Deposit 1s
Item sell price 1s25. Deposit 18.75c (15% of 1s25). So base deposit = 18, remainder 0.75. Time 24h (x2) Item count 3 = 108c. Remainder = 2.25 (n) Min = 1s. Deposit 1s08c
Item sell price 1s25. Deposit 18.75c (15% of 1s25). So base deposit = 18, remainder 0.75. Time 24h (x2) Item count 4 = 144c. Remainder = 3.00 (n) Min = 1s. Deposit 1s50c (144c + (3c * 2))

Horrible kludge, to re-create a very weird deposit method.

Closes #15674 (PR)
Closes #15643 (Issue)

(cherry picked from commit 0ac442f19f)

Conflicts:
	src/server/game/AuctionHouse/AuctionHouseMgr.h
2016-01-11 01:50:38 -03:00
pete318
c29fc4cbd9 Auction house changes:
- Stop storing guid for auctioneer.
 - Store instead house ID
 - No separate ID for various houses. Only Horde, Alliance and Neutral.
 - Removed non-needed faction checks.
 - Use enum for auction house IDs

NOTE: This will expire all current auctions and return item to player (or
award to high bidder) in order to prepare database for the changes.

(cherry-picked from commit 01ae5c4bf6)

Conflicts:
	sql/base/characters_database.sql
	src/server/game/AuctionHouseBot/AuctionHouseBotSeller.cpp
	src/server/game/Handlers/AuctionHouseHandler.cpp
2016-01-11 01:50:35 -03:00
Aokromes
03dc96b4c4 Core/Misc: Fix build 2015-11-01 20:02:41 +01:00
Aokromes
c58f540348 Core/Conditions: Phase condition changes
* SourceGroup defines which phase should the condition affect

* SourceEntry limits the area of the phase (alternatively 0 means all areas)
2015-11-01 19:11:52 +01:00
Carbenium
dc577ab1e6 BNet/Build: Fix build after lastest merge 2015-09-20 22:51:55 +02:00
Aokromes
a6077b31ec Core/Gameobject: Fix a crash when enter Hor 2015-09-15 21:20:17 +02:00
Carbenium
221f1405b6 Merge branch '3.3.5' into 4.3.4
Conflicts:
	sql/base/auth_database.sql
	sql/updates/world/2015_08_29_00_world.sql
	sql/updates/world/2015_08_29_01_world.sql
	sql/updates/world/2015_08_30_00_world.sql
	sql/updates/world/2015_08_31_01_world.sql
	sql/updates/world/2015_09_02_00_world.sql
	sql/updates/world/2015_09_02_01_world.sql
	sql/updates/world/2015_09_02_04_world.sql
	sql/updates/world/2015_09_03_00_world.sql
	sql/updates/world/2015_09_03_01_world.sql
	sql/updates/world/2015_09_03_02_world.sql
	sql/updates/world/2015_09_03_03_world.sql
	sql/updates/world/2015_09_03_04_world.sql
	sql/updates/world/2015_09_03_06_world.sql
	sql/updates/world/2015_09_03_07_world.sql
	sql/updates/world/2015_09_03_08_world.sql
	sql/updates/world/2015_09_03_09_world.sql
	sql/updates/world/2015_09_03_10_world.sql
	sql/updates/world/2015_09_03_11_world.sql
	sql/updates/world/2015_09_04_00_world.sql
	sql/updates/world/2015_09_04_01_world.sql
	sql/updates/world/2015_09_04_02_world.sql
	sql/updates/world/2015_09_04_03_world.sql
	sql/updates/world/2015_09_07_00_world.sql
	sql/updates/world/2015_09_07_01_world.sql
	sql/updates/world/2015_09_07_02_world.sql
	sql/updates/world/2015_09_07_03_world.sql
	sql/updates/world/2015_09_07_04_world.sql
	sql/updates/world/2015_09_07_05_world.sql
	sql/updates/world/2015_09_08_00_world.sql
	src/common/Collision/Management/MMapManager.cpp
	src/common/Cryptography/Authentication/AuthCrypt.cpp
	src/common/Cryptography/Authentication/AuthCrypt.h
	src/common/Cryptography/HMACSHA1.cpp
	src/common/Cryptography/HMACSHA1.h
	src/server/CMakeLists.txt
	src/server/collision/CMakeLists.txt
	src/server/game/CMakeLists.txt
	src/server/game/Entities/Object/ObjectGuid.h
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Player/Player.h
	src/server/game/Entities/Unit/Unit.cpp
	src/server/game/Globals/ObjectMgr.cpp
	src/server/game/Quests/QuestDef.cpp
	src/server/game/Spells/Auras/SpellAuraEffects.cpp
	src/server/game/Spells/Auras/SpellAuras.cpp
	src/server/game/World/World.cpp
	src/server/scripts/CMakeLists.txt
	src/server/scripts/Commands/cs_cheat.cpp
	src/server/scripts/Commands/cs_debug.cpp
	src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
	src/server/scripts/EasternKingdoms/zone_hinterlands.cpp
	src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
	src/server/scripts/Spells/spell_mage.cpp
	src/server/worldserver/CMakeLists.txt
	src/server/worldserver/Main.cpp
2015-09-15 20:42:34 +02:00
ShinDarth
38cbefd3c4 DB/World schema backport: updated quest_template table 2015-09-10 15:54:56 +02:00
MitchesD
8abbb54ad0 Merge pull request #15459 from ShinDarth/quest_template_backport
DB/World schema backport: updated quest_template table
2015-09-10 13:17:13 +02:00
ShinDarth
33892e0f9d DB/World schema backport: updated quest_template table 2015-09-10 13:16:05 +02:00
Duarte Duarte
6cdfe9dc09 Merge pull request #15452 from Treeston/3.3.5
Core/Unit: Allow mounting for certain transformations
2015-09-09 08:37:03 -07:00
m_pan
1503be010b Config: Minor Typo
#    Updates.SourcePath   >   #    Updates.MySqlCLIPath
2015-09-08 13:49:14 -05:00
Aokromes
1709282c2c Core/AHbot: fix seller guids
closes ##18
2015-09-08 05:16:08 +02:00
treeston
d42a498063 Allow mounting while under transformations that can be cast while mounted.
Closes #12042.

Credit to @SeTM for base code used.
2015-09-07 19:04:44 +02:00
jackpoz
166e66cc06 Core/Spells: Fix crash happening when using items to cast spells
Fix a crash happening when using items casting spells like Item ID 37198
Fix #14900
2015-09-05 22:45:15 +02:00
jackpoz
42a71133fa Core/Dungeon Finder: Fix groups queuing broken by 1e71aba2ee
Fix queuing in LFG with 5-men groups leaving the party in queue forever, caused by group GUID being added to list of party members.
2015-09-05 21:18:52 +02:00
jackpoz
16e9882aa8 Core/Dungeon Finder: Improve ".lfg queue debug" command
Log roles of every combinations in ".lfg queue debug" output
2015-09-05 17:08:37 +02:00