Commit Graph

1105 Commits

Author SHA1 Message Date
Shauren
25cdc5d980 Core/Maps: Parse MFBO adt chunk to properly handle height where player counts as falling under the map
* This fixes the height at which player is instantly killed when falling from The Frozen Throne
* Set PLAYER_FLAGS_IS_OUT_OF_BOUNDS on players under the map to enable release spirit button while still falling

Note: Extracting new maps is required
(cherry picked from commit 4f78efd463)

# Conflicts:
#	dep/PackageList.txt
#	src/server/game/DataStores/DBCStructure.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Handlers/MovementHandler.cpp
#	src/tools/map_extractor/CMakeLists.txt
#	src/tools/map_extractor/System.cpp
#	src/tools/map_extractor/adt.h
#	src/tools/map_extractor/loadlib.cpp
2016-02-09 18:44:19 +01:00
Shauren
aa432db36d Core/Maps: Changed the way area data is stored in maps, it now uses ID field from AreaTable.dbc instead AreaBit used for exploration marker (and is not unique anymore on top of simply being stupidly confusing)
Note: Extracting maps is required
(cherry picked from commit db0b8bf24e)

# Conflicts:
#	src/server/game/Achievements/AchievementMgr.cpp
#	src/server/game/Chat/Chat.cpp
#	src/server/game/Conditions/ConditionMgr.cpp
#	src/server/game/DataStores/DBCStores.cpp
#	src/server/game/DataStores/DBCStores.h
#	src/server/game/DataStores/DBCfmt.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Globals/ObjectMgr.cpp
#	src/server/game/Handlers/BattleGroundHandler.cpp
#	src/server/game/Handlers/MiscHandler.cpp
#	src/server/game/Maps/Map.cpp
#	src/server/game/Spells/Spell.cpp
#	src/server/game/Spells/SpellEffects.cpp
#	src/server/scripts/Commands/cs_go.cpp
#	src/server/scripts/Commands/cs_group.cpp
#	src/server/scripts/Commands/cs_lookup.cpp
#	src/server/scripts/Commands/cs_misc.cpp
#	src/tools/map_extractor/System.cpp
#	src/tools/mmaps_generator/TerrainBuilder.cpp
2016-02-09 18:19:28 +01:00
joschiwald
8b6954e81b Core/Gossips: added some sanity checks to prevent duplicate interaction 2016-02-04 20:43:28 +01:00
Shauren
3c3cde028c Core/Quests: Fixed quest sharing
Closes #12304
Closes #16183
2016-01-12 19:08:37 +01:00
ccrs
e5d4005cc6 Core/Spells: Fixed Raise Ally
thx @Nayd for sniffs :)
thx @Shauren for helping to find all spell involved

* There is no implementation for stats update on Puppet class (only on Guardian) so same SummonProperty as Raise Dead Ghoul (non pet) is used.
(Default SummonProperties set category to SUMMON_CATEGORY_PUPPET)
* Override the Summon Effect to enable charm and stats scaling.
* PlayerAI is used to handle unaura on ghoul despawn or dead.
It's necessary due to the fact that all script hooks on ScriptedCreature are called on an unactive CreatureAI, resulting in creature being unable to handle unaura calls.
* Create UpdateAI call for Player class
* Stats scaling is based on forum and wowhead comments, they recall this ghoul as a copy of the other one (same stats).
* Spellscript for Ghoul spell Thrash

Closes #82
Closes #14830
2016-01-08 00:10:15 +01:00
elecyb
d27b0ea8a8 Core/Player Drop deprecated code and fix bug where a player can have more than one profession specialization. 2016-01-04 22:42:11 -02:00
treeston
0f0a51b87a 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.
2016-01-04 15:48:53 +01:00
Rushor
923a368ac7 Update copyright note for 2016 2016-01-01 12:02:33 +01:00
treeston
43fa7d48a5 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.
2015-12-31 01:02:07 +01:00
rockz1152
60311e0aae Core/Player: Fixed Weapon Skillup on low level mobs
Closes #15998

Removed block for skill up on grey level mobs.
2015-12-15 14:47:59 -05:00
pete318
0ac442f19f 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)
2015-12-14 19:54:58 +01:00
jackpoz
80ed03a84d Merge pull request #15402 from chaodhib/taunt_player 2015-12-09 22:08:43 +01:00
Shauren
cc685ac334 Core/Items: Fixed a possible crash with soulbound tradable items
Closes #15700

(cherry picked from commit 094f505e40)
2015-12-08 18:02:43 +01:00
jackpoz
2cb54d5606 Core/Player: Fix crash related to vehicles
Fix assertion triggered when entering a vehicle while channelling a shared vision spell.
Fix #15953
2015-12-07 23:34:00 +01:00
jackpoz
a67f378f10 Merge pull request #15904 from 'ForesterDev/instance_login_cleanup' 2015-11-28 21:45:41 +01:00
Vincent-Michael
e266278f7d Core/Players: Fixed warning 2015-11-27 22:10:21 +01:00
Shauren
ba1e00399d Core/Players: Use constant gender from PLAYER_BYTES_3 where appropriate.
Closes #15895
2015-11-27 18:30:01 +01:00
ForesterDev
9573ec52f0 Core/Player: cleanup function CheckInstanceLoginValid 2015-11-27 12:53:48 +04:00
jackpoz
5f917e2286 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.
2015-11-26 21:54:22 +01:00
jackpoz
fbaed38b5e Core/Quest: Fix issues reported by static analysis
Coverity defect IDs: 1339309, 1339310
2015-11-15 16:17:12 +01:00
jackpoz
63f2675076 Core/Player: Fix issue reported by static analysis
Coverity defect IDs: 1010154
2015-11-15 16:01:14 +01:00
Carbenium
b292321798 Core/Player: Move KillRewarder to its own file
(cherry picked from commit 4e76974ce5)

Conflicts:
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Player/Player.h
2015-11-14 15:06:47 +01:00
Carbenium
1438c841ed Core/Player: Move TradeData to its own file
(cherry picked from commit 2d7d6f505c)

Conflicts:
	src/server/game/Entities/Item/Item.cpp
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Player/Player.h
	src/server/game/Handlers/TradeHandler.cpp
	src/server/game/Spells/Spell.cpp
2015-11-14 13:40:32 +01:00
Carbenium
2a36b00907 Core/Player: Improve a log message
(cherry picked from commit 7eb314fcd1)
2015-11-10 00:50:15 +01:00
Carbenium
12ae32a9b6 Merge pull request #15720 from Tonghost/3.3.5
Core/Items: Fix a trading spoof exploit.
2015-11-03 17:48:01 +01:00
ShinDarth
7ab1d1b7d0 Core/Ticket improved ticket system
- Safely close ticket before character deletion
- Allow to keep trace of delete characters tickets (configurable)
- Closes #15655

Closes #15699
2015-11-03 16:07:30 +01:00
Shauren
965d29484b Core/Items: Corrected all spellid checks from item_template to also check -1
Closes #15797
2015-11-01 16:29:29 +01:00
Shauren
cba122ad94 Core/Conditions: Optimizations part 3 removed copying condition containers all over the place
(cherry picked from commit b09e63e9de)
2015-10-31 20:26:40 +01:00
Shauren
dc74454356 Core/Conditions: Type renaming
(cherry picked from commit 5e0cee85dd)
2015-10-31 20:26:40 +01:00
joschiwald
df88c7f278 Core/Misc: removed some useless map checks
(cherry picked from commit cf1e80e3d0)
2015-10-31 19:11:41 +01:00
Shauren
635dc9c02a Core/Players: Fixed automatic learning skills gained from learning spells when leveling
Closes #15391

(cherry picked from commit 3fceabfa11)
2015-10-31 18:57:59 +01:00
Shauren
f56bb2e0a6 Core/Spells: Extended spell required shapeshift masks to 64 bits and defined a new spell attribute
(cherry picked from commit 191d2c7262)
2015-10-31 18:14:36 +01:00
MitchesD
a968595977 Core/PacketIO: fixed instance binding of gamemasters
(cherry picked from commit 231fb1d322)
2015-10-31 17:39:17 +01:00
Shauren
1de03cf107 Core/Players: Implemented serverside validation of reserved/profane names
Closes #15357

New library dependency: Boost.Regex

(cherry picked from commit b564c10b13)
2015-10-31 17:27:45 +01:00
Shauren
6c53f820ae Core/Players: Fixed saving players with incorrect gender 2015-10-31 12:30:22 +01:00
Shauren
4a36850167 Core/World: Store account id in CharacterInfo to reduce the amount of database queries
(cherry picked from commit aaaa1c3441)
2015-10-29 21:08:00 +01:00
Shauren
c7bad70e55 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)
2015-10-29 18:59:06 +01:00
Shauren
7dcddd90be 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

(cherry picked from commit 1efb3f08e2)

Closes #15766
Closes #15137
Closes #14837
2015-10-29 17:56:18 +01:00
Shauren
20b4e6f03a Core/Corpses: Fixed leaking corpses
Closes  #15765

(cherry picked from commit bd16520ecc)
2015-10-28 21:56:40 +01:00
MitchesD
8e7012f076 Merge pull request #15736 from ShinDarth/deserters
BG Deserters tracking system
2015-10-28 20:40:25 +01:00
ShinDarth
d380c12c56 Core/Battleground: implement deserters tracker feature 2015-10-28 20:39:04 +01:00
w1sht0l1v3
56b27711a4 Core/Player: Fix copy/paste mistake in 1ef1d42d14 2015-10-26 20:15:18 +02:00
w1sht0l1v3
1ef1d42d14 Core/Player: Fix not being able to do seasonal quests(if already done in the past) 2015-10-25 18:22:57 +02:00
ShinDarth
c6c3e72b55 Core/Scripts: convert the Duel Cooldown Reset feature to scripts 2015-10-18 18:41:58 +02:00
MitchesD
4204805d47 Merge pull request #15697 from ShinDarth/cd
Core/Player rewritten duel CD reset system
2015-10-17 18:38:31 +02:00
ShinDarth
1e52dd4797 Core/Player rewritten duel CD reset system 2015-10-17 18:37:34 +02:00
Incorrect
a120053de7 Core/Items: Fix a trading spoof exploit. 2015-10-17 14:37:02 +03:00
ShinDarth
2185165e84 Core/Misc split Rate.XP.Kill and Rate.XP.BattlegroundKill settings 2015-10-16 00:04:40 +02:00
pete318
b1032ed620 Change many uint32 to ObjectGuid::LowType in line with 6.x changes. 2015-10-12 23:10:41 +02:00
ShinDarth
24b41a5211 Core/Player: implement ResetCoolDownAfterDuel configurable feature 2015-10-05 15:57:53 +02:00