Commit Graph
23 Commits
Author SHA1 Message Date
pete318 4d65596f0d Only read and delete from corpse table for current map instance. Not for
all. Prevents assert stop upon entering an instance on second character
after first one is a corpse in the same dungeon on different instance ID.
2017-04-01 19:41:03 +01:00
pete318 657adc270a Update to 62aff401f6 - correct hash for 2016_02_10_00_characters.sql. 2016-02-15 00:31:39 +01: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
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
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
pete318 c9258d436b 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 (manually) from b808910a89822f741d35d4b90e6c4bcf101cd9ef
2015-10-14 18:38:13 +02:00
pete318 3f29ce9e8f Core/Pch - Fix non PCH build.
Issue introduced in https://github.com/TrinityCore/TrinityCore/commit/b1032ed6203a5839906fab7137484b0ef8f0e58f
2015-10-13 09:28:44 +02:00
pete318 b1032ed620 Change many uint32 to ObjectGuid::LowType in line with 6.x changes. 2015-10-12 23:10:41 +02:00
pete318 5edc557a8d Resolve coverity #1023086
Correctly destroy AH pointer and return error to user in unlikely event
auctioneer is invalid
2015-10-11 21:23:02 +02:00
pete318 76eea5c81c And final change to include table hash in updates
Not actually needed for this change, but it upset travis
2015-10-08 00:33:00 +02:00
pete318 258b382520 Also update character base create for pet_aura commit 2015-10-08 00:20:38 +02:00
pete318 996cbafd20 Add caster guid to pet_aura table.
This prevents duplicate key and transaction completion fail on pet save, if pet has same aura from two different casters present.

This closes (already closed) issue https://github.com/TrinityCore/TrinityCore/issues/10529
2015-10-08 00:14:01 +02:00
pete318 cdb16c5181 Rooted vehicle movement (#13342 for example)
Corrects issue where certain combinations of actions would cause vehicles (usually cannons/artillary) that should be rooted, to be fully movable
2015-10-06 22:05:11 +02:00
r00ty e5e2b093d2 DB/Characters: Updated character create for update hash
Updated hash for 2015_08_26_00_characters_335.sql for map local guids commit

Closes https://github.com/TrinityCore/TrinityCore/issues/15601
2015-09-28 23:19:27 +02:00
pete318 01ae5c4bf6 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.
2015-09-28 22:26:23 +02:00
pete318 3c188ac10e Combat with distant creatures
Iterate creatures in combat with players during map update, and also visit
their cells if greater than player visibility distance away.
2015-09-23 22:03:27 +02:00
pete318 dcb7082277 Map local guids 6.x -> 3.3.35:
Implemented:
  https://github.com/TrinityCore/TrinityCore/commit/ca83e14f8b141fab0a13e08f48fca6c1ace0c4c7
  https://github.com/TrinityCore/TrinityCore/commit/ee1c1b97be4492ecabe8b15ea6323fc37e4eaa8c
  https://github.com/TrinityCore/TrinityCore/commit/18e4ab6911468b829b0fc768e532a770263c3717
  https://github.com/TrinityCore/TrinityCore/commit/bf37446b3c2ed73b4d3aa9e227d3eff5c53b378b
  https://github.com/TrinityCore/TrinityCore/commit/cb854a2b7bb7bd96cf9c4d1daf3789f797bf4db8

* This adds separate (per map) guid sequences depending on object type
* Ported map object container from cmangos/mangos-wotlk@a2d396e
* Added type container visitor for TypeUnorderedMapContainer
* Implemented helper function to erase unique pairs from multimap containers
* Moved object storage of all objects except players and transports to map level
* Added containers linking database spawn id with creature/gameobject in world
* Renamed DBTableGuid to spawnId
* Added a separate spawn id sequence generator for creatures and gameobjects - this will be used in db tables
* Moved building SMSG_UPDATE_OBJECT - updatefields changes broadcast to map update
* Added new function to return but not increment guid
* Adjusted .debug loadcells to show low guid in map before/after load
* Added debug messages for creature spawn/destroy, for map guid debugging
* Store all Gameobjects and Creatures added to OutdoorPvP, so the callback script can be removed when OutdoorPvP instance is destroyed.
2015-09-22 21:33:57 +02:00
pete318 9a4ccbaebd Learn death knight runeforging skill, when receving the spell book ability. (#13882) 2015-07-19 00:21:55 +00:00
pete318 1e0213bc57 The following stealth changes are implemented.
- Combat no longer removes stealth, only damage does
 - Creatures will pursue a stealthed unit they cannot see if they're already in combat with them
 - When a player is ~~3 yards~~ 8% + 1.5 yards away from the usual stealth detection distance, the creature will perform the "alerted" effect.
 - When sitting/sleeping creatures are distracted or alerted, they will stand up
 - Idle movement creatures will return to their original (spawn) orientation after distract/alert
 - When entering combat with a distracted/alerted creature, distract state is removed
 - NPC no longer have a limit to stealth visibility (granted by stealth modifier spells/buffs)
 - If alert visibility is greater than aggro range, no alert sent
2015-07-02 23:11:20 +00:00
pete318 f9cba93985 Core/Spells: Support for targetting spells onto in flight units
* This adds support to spell_custom_attr to allow a spell to be cast
  upon a unit on a taxi/in flight.
* This will allow the Issue #11880 with Horde quest Test At Sea (11170) to be corrected.
* closes #14235

Signed-off-by: Naios <naios-dev@live.de>
2015-06-04 13:35:05 +02:00
pete318 17f6dcb762 Core: NPC Interaction change for unfriendly reputation.
For units with unfriendly reputation, check using the normal reaction function, instead of reading faction directly.

This allows specific buffs that alter creature reaction to work on the player, this allowing players to complete quests.

Closes #13629
2014-12-28 19:01:32 +00:00
pete318 f2444eedf9 Scripts/Quests: Fix Quest A Spirit Guide
- Ensures rep adjustment buff is always applied (overrides evade, implements existing evade + re-apply buff)
- Removes un-owned ravagers with incorrect faction from DB (the correct ones are spawned with their masters without the DB entries)
- Create some extra steps in the wolf's waypoints in order to generate some AI events for the Ryga NPC. I think it's a bit of a dirty solution, but it seems to work with minimal changes.
- Created RP series of events with Ryga NPC and Ancestral Wolf Spirit (Ryga Kneels, talks to wolf, then returns to spawn position after around a minute).

Closes #13619
Fix #4028
2014-12-28 18:43:14 +00:00