Commit Graph

1130 Commits

Author SHA1 Message Date
r00ty-tc 87b4533046 [Core/Maps] Activate creatures and objects during opening cinematics and other flyby
cameras (sunwell etc).

Requires re-running map extractor to extract camera m2 files from data
files. These are very small.

Closes #4755
Closes #16772
2016-04-14 01:34:17 +02:00
Vlad fcbbc60b93 Core/Players: Fix flight form & fall damage (#16955) 2016-04-13 12:33:49 +02:00
Shauren e2687b31ed Core/Entities: Ported byte field offset naming from 6.x 2016-04-12 20:06:04 +02:00
Shauren 836788ed3c Core/Misc: MSVC /W4 warning fixes
(cherry picked from commit 08c27d3205)
2016-04-09 18:25:53 +02:00
Shauren e52878b6b5 Core/Spells: Renamed EnsureSpellInfo to AssertSpellInfo to minimize differences between branches 2016-04-02 17:05:46 +02:00
r00ty-tc c136af8463 Adjustments to spell facing - Adjusted HaveAtClient to accept Object* (still accepts all subordinates) - Use grid searcher to find players in visibility range for unit - Use client cache instead of "See or Detect" to decide who to send updates to - Adjusted SendUpdateToPlayer to send createobject packet only if not known to client
(cherry picked from commit c0693a6ee52d31840ab2ee878c4881884b857638)
2016-03-27 00:35:28 +01:00
DDuarte a463a704f2 Core/Player: Remove a TC_LOG_ERROR copy paste mistake... 2016-03-23 19:14:06 +00:00
joschiwald e6afebd150 fixed warning 2016-03-20 21:01:25 +01:00
joschiwald c498966d23 Core/Spells: cleanup raise ally code
(partial cherry picked from commit 312e8509dd)
2016-03-20 19:50:11 +01:00
Shauren 9a01b47d48 Core/Players: Removed pointless log - this is not an error
Closes #16781
2016-03-14 17:24:21 +01:00
Shauren 1925778e44 Core/Players: Split playerBytes fields in characters table
(cherry picked from commit 2a6f65fddc)
2016-03-13 20:18:05 +01:00
r00ty-tc 7d092567f9 Another build fix 2016-03-13 03:32:19 +01:00
Vincent-Michael 7f1cef3fa7 Core: Fixed build 2016-03-13 00:57:23 +01:00
Carbenium bff45bbb14 Core/Player: Improve log messages 2016-03-12 23:22:10 +01:00
Carbenium f29e380797 Core/Player:
* sprinkle some consts
* replace some C-style casts by static_cast
* replace NULL by nullptr

(cherry picked from commit b705ebeb7f)

# Conflicts:
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Entities/Player/Player.h
2016-03-12 22:36:45 +01:00
treeston 59d02322a7 Unit/AI: Making Nayd happy. 2016-02-28 03:45:21 +01:00
treeston 5354b585e3 Unit/AI: Move CharmedPlayerAI logic from the SetCharmedBy/RemoveCharmedBy hooks to Player::Update -> Unit::UpdateCharmAI to guarantee thread safety and prevent race condition crashes. 2016-02-27 23:48:10 +01:00
joschiwald 75511d0e0a Core/Gossips: fixed long time not seen typo in c81d6e9b4b 2016-02-27 17:32:06 +01:00
Treeston 4e4b2b9a13 Merge pull request #16644 from Treeston/3.3.5-customcharmai
Core/UnitAI: Rework creature-controlled player behavior.
2016-02-24 13:39:31 +01:00
treeston 2f14664340 Core/UnitAI: Rework creature-controlled player behavior.
- Removed hacked control mechanism, use proper PlayerAI instead
- Port old hacky code to new SimpleCharmedPlayerAI class
- Make adjustments to aforementioned code to fix bugs:
    - Properly clean up movement after charm ends
    - Only try to attack a target if charmer is engaged in combat
2016-02-23 13:41:56 +01:00
Aokromes 4cd937140b Merge pull request #16038 from tkrokli/grammar_and_spelling_corrections_335
[3.3.5] Core/Logs: English text corrections
2016-02-20 13:23:35 +01:00
Shauren e60f575ac8 Core/Misc: Fixed a crash happening when a db string array was NULL
Closes #15670
2016-02-20 13:13:29 +01:00
tkrokli 9e4cc26312 [3.3.5] Core/Logs: English text corrections
This is an attempt to proofread standard error messages and system messages
from both core and DB. The corrections span typos, grammar and punctuation.

Because some of these messages can have multiple meanings depending on context,
this PR will stay in "WIP" status until the corrections have been validated and approved.

You are welcome to suggest improvements and files not yet included in this list.

Thanks to @Kinzcool for suggesting this line of work. :)
2016-02-20 10:05:04 +01:00
Kito 97e0d1bbdf Core/Player: Fix dungeonfinder quests not rewarding 2016-02-17 22:39:14 +01:00
treeston 6102a7937d Maps/Instances: Implement handling of CMSG_SET_SAVED_INSTANCE_EXTEND 2016-02-10 19:35:11 +01:00
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