Commit Graph
660 Commits
Author SHA1 Message Date
Machiavelli 3c6dc32030 Core/DBLayer:
- Rewrite Field class to be able to store both binary prepared statement data and data from adhoc query resultsets
- Buffer the data of prepared statements using ResultSet and Field classes and let go of mysql c api structures after PreparedResultSet constructor. Fixes a race condition and thus a possible crash/data corruption (issue pointed out to Derex, basic suggestion by raczman)
- Conform PreparedResultSet and ResultSet to the same design standards, and using Field class as data buffer class for both
* NOTE: This means the fetching methods are uniform again, using ¨Field* fields = result->Fetch();¨ and access to elements trough fields[x].
* NOTE: for access to the correct row in prepared statements, ¨Field* fields = result->Fetch();¨ must ALWAYS be called inside the do { }while(result->NextRow()) loop.
* NOTE: This means that Field::GetString() returns std::string object and Field::GetCString() returns const char* pointer.

Still experimental and all that jazz, not recommended for production servers until feedback is given.

--HG--
branch : trunk
2010-09-24 22:16:21 +02:00
Shauren 562a8c272d Core/Items: Corrected logic in Item::CanBeTraded, fixes mailing and guild banks
--HG--
branch : trunk
2010-09-22 11:19:34 +02:00
silinoron 9ca1efa1e2 Core/Item: This ought to fix the crashes introduced in r2969543fa5
--HG--
branch : trunk
2010-09-21 19:56:33 -07:00
silinoron b21490357b Core/Object: Add an assert in Object::RemoveFlag to help explain the crash introduced in r2969543fa565b71242cb471e0e85f39203f2bce9
The crash is NOT fixed yet.

--HG--
branch : trunk
2010-09-21 19:26:59 -07:00
Shauren d8ddf38453 Core/Items: Implemented trading soulbound loot items
Core/DBLayer: Converted more more player-related queries into prepared statements
Core/Items: Fixed loading of enchantments

Closes issue #4130.

--HG--
branch : trunk
2010-09-21 21:55:16 +02:00
Spp 7a3fd2e9bf Core/: Fix warnings
--HG--
branch : trunk
2010-09-21 10:11:25 +02:00
Shocker 5ffaf0d84b Core/Commands: Implement command for adding (completing) achievements
--HG--
branch : trunk
2010-09-21 03:51:14 +03:00
Shauren a509976369 Core/DBLayer: Converted player login queries into prepared statements
Core/DBLayer: Added missing implementation for SQLQueryHolder::SetPreparedQuery

--HG--
branch : trunk
2010-09-20 18:20:40 +02:00
silinoron 76e47fd795 Core/Unit: Cleanup; mostly purging a ton of dead code.
TODO: Move packet stuff out of Unit into packet handlers...

--HG--
branch : trunk
2010-09-19 17:08:14 -07:00
silinoron 171fcfa963 Core/Unit: Do not allow game masters to be damaged.
--HG--
branch : trunk
2010-09-19 16:48:15 -07:00
Rat 5de3183180 Core/ConditionMgr: You can now add conditions to QuestAccept (at CanTakeQuest check)
--HG--
branch : trunk
2010-09-19 19:49:23 +02:00
_manuel_ c4ed3430cf Core/Players: Better check for weekly quests in RewardQuest function.
--HG--
branch : trunk
2010-09-19 13:24:21 -03:00
Shauren 97aeb251b8 Core/Players: Added support for single character bans
Core/Commands: Renamed .ban character to .ban playeraccount (.ban character will ban only the player, not account)

This revision reaches 10000, congratulations and thanks to everyone who contributed!

--HG--
branch : trunk
2010-09-19 17:02:14 +02:00
Shauren 2983dab1cb Core/Spells: Spell's damage should not interrupt auras applied by the same spell (fixes Frost Nova and water elemental Freeze), patch by dr.tenma
Closes issue #3052.

--HG--
branch : trunk
2010-09-19 17:02:05 +02:00
Shocker d297d8d637 Core/Spells: Force of Nature should scale with spell power, fixes issue 2618
--HG--
branch : trunk
2010-09-19 04:04:28 +03:00
linencloth 0c9aa48d91 Core/PetAI: Fix an infinite loop
--HG--
branch : trunk
2010-09-18 14:20:08 +02:00
Liberate d036f7726e Core/PetAI: Implement a more correct way of findng if your pet's target has Crowd Control on it. Stuns like Hammer of Justice will not make your pet stop attacking anymore.
Pet's will only stop attacking if the Crowd Control is casted by the owner of the pet.
Fixes issue #4037

--HG--
branch : trunk
2010-09-18 12:33:16 +02:00
linencloth 8622446ab9 Core/Creature: Despawn skinned creatures.
Fixes issue 4047.

--HG--
branch : trunk
2010-09-17 15:16:26 +02:00
linencloth 7708e2ea06 Core/Creature: Reset loot recipient group on respawn.
Fixes issue 4051.

--HG--
branch : trunk
2010-09-17 15:10:10 +02:00
linencloth d8a854d6e0 Core: Cleanup locale handling.
It also fixes the recent problem of strange strings.

--HG--
branch : trunk
2010-09-17 07:04:29 +02:00
click 4d88ce57d2 Core/: Set correct sizes of SMSG_ATTACKSTOP packets
--HG--
branch : trunk
2010-09-16 18:05:50 +02:00
azazel a034ac9937 Scripts: enhance SCRIPT_COMMAND_TALK command to make Players talk (add 0x1 bit to datalong2 and command will expect Player instead of Creature for talking).
--HG--
branch : trunk
2010-09-16 13:28:16 +06:00
linencloth 9739bea487 Core/Loot: Reimplement the proper check for loot recipient to prevent rewarding loot without tagging the creature by the player.
Also fix the related skinning problem, and do not set the skinnable flag for creatures without any loot recipient.

--HG--
branch : trunk
2010-09-15 17:44:56 +02:00
linencloth 52bc2478c9 Core/Creature: Do not reward XP for creatures without any loot recipient. (XP fix part for the "pet-only"-kills)
--HG--
branch : trunk
2010-09-15 17:37:03 +02:00
linencloth 91d2c1d64c Core/Creature: Initialize the recipient group for creatures.
It fixes creatures appearing as tagged units, and may also prevent crashing which could happen by using the bad pointer.

--HG--
branch : trunk
2010-09-15 17:30:42 +02:00
Liberate 23a49147cd Fix a typo in previous rev. I thought renaming a function shouldn't be too hard. I guess I was wrong...
--HG--
branch : trunk
2010-09-15 14:38:22 +02:00
Liberate 97a93573cb Core/PetAI: When commanding your pet to attack while being Passive, it will actually start attacking.
Fixes the PetAI so that your pet stops attacking when the target is Crowd Controlled (including Frost Nova, Fear, etc) unless you specifically ask it to.
Tested extensively with click.

--HG--
branch : trunk
2010-09-15 14:16:10 +02:00
Shauren a72fc44f9a Core/Loot: Reverted part of revision fe39cb058b75, fixes skinning loot
Core/Loot: Some logic fixes for group looting
Buildsystem/MSVC: Fixed compile warning
Config: Added missing description for Rate.Drop.Item.ReferencedAmount

Closes issue #4004.

--HG--
branch : trunk
2010-09-15 13:44:40 +02:00
Spp e550494338 Core: Fix warnings added in recent commits
--HG--
branch : trunk
2010-09-15 13:23:36 +02:00
linencloth a582ab9d9d Core/Spells: Allow AoE spells to target dead units.
Also removes some unneeded checks from ally targeting.

--HG--
branch : trunk
2010-09-15 06:33:38 +02:00
linencloth ec5edaf6bf Core/Creature: Initialize the creature's default movement generator on respawn.
Fixes creatures which are moving by default, but not continuing it after respawning.

--HG--
branch : trunk
2010-09-15 06:23:25 +02:00
linencloth 356a263059 Core/Creature: Fix creature respawn time in unloaded/inactive grid cells.
Fixes issue 1865.

--HG--
branch : trunk
2010-09-15 06:22:54 +02:00
Spp cce61839f8 Core/Player: after removing player from group, if group is deleted assign pointer to NULL to make sure no garbage pointer is used later in code
--HG--
branch : trunk
2010-09-14 20:14:10 +02:00
Spp 61bbd284de Core/Player: Add default remove Method to RemoveFromGroup
--HG--
branch : trunk
2010-09-14 16:38:08 +02:00
Shauren c2c3302d2f Core/Vehicles: Removed hacky setting entry for multi-passenger mounts
Core/Pools: Fixed compile

--HG--
branch : trunk
2010-09-14 16:14:43 +02:00
linencloth 6bdfc77b42 Core/Player: allow dead players to see dead creatures near their corpses
--HG--
branch : trunk
2010-09-14 02:57:53 +02:00
click a6efc4dad5 Core/Loothandling: Make sure "pet-only"-kills doesn't drop loot (when pet is killing a creature on its own without any assistance from player)
(Also fix unintended typo from r701f212a00)

--HG--
branch : trunk
2010-09-13 22:49:20 +02:00
Shocker 6528a82b61 Core/Spells: Remove duplicate healing bonus calculation for Prayer of Mending, closes issue 3879, thanks dr.tenma
--HG--
branch : trunk
2010-09-13 22:54:04 +03:00
click a48923ee8c Core: Properly handle pet killing critters and also remove some old code - fixes a few issues:
- make pets return home after killing a critter (they refused to return to player on critter death)
- kills of an OLD bug : make critters lootable if they have loot (for quests). Fixes issue #1950.
Thanks to linencloth for the help on finding this bugger.

--HG--
branch : trunk
2010-09-13 18:22:16 +02:00
Shauren 6d0a031a77 Core/Quests: Some cleanup in quest relation accessing
--HG--
branch : trunk
2010-09-13 13:18:27 +02:00
Shocker 4908187578 Core/ScriptMgr: Add hooks for duel phases: OnDuelRequest, OnDuelStart, OnDuelEnd
--HG--
branch : trunk
2010-09-13 01:42:14 +03:00
Shocker cbe95da41a Core/Spells: Correct meaning & usage of SPELL_ATTR_EX2_NOT_RESET_AUTOSHOOT (now SPELL_ATTR_EX2_NOT_RESET_AUTO_ACTIONS) to ignore timer reset for both melee swings and ranged autoshoots, fixes issue 2639
--HG--
branch : trunk
2010-09-12 23:52:37 +03:00
click c4028111bd Core: Remove some more warnings (initialization sequence in Unit.cpp and a non-initalized variable in worldserver)
--HG--
branch : trunk
2010-09-12 21:19:43 +02:00
Shauren e0ffae436c Core/Quests: Fixed remaining issues with quest crediting (note: previous commits did not introduce issues, only revealed them)
Core/DBLayer: Fixed more compile warnings
Core/Spells: Corrected code style from revision 634af79146

Closes issue #3956.

--HG--
branch : trunk
2010-09-12 19:17:58 +02:00
click 855ec1cd01 Core/Unit: Make sure pets respect unit damage resilience and the other way around (patch by Dr. Tenma)
Fixes issue #3918

--HG--
branch : trunk
2010-09-12 14:29:09 +02:00
Shauren 1f7064efee Core/Items: Use proper method for returning item max stack size
--HG--
branch : trunk
2010-09-12 10:43:40 +02:00
click bf664b7a44 Cleanup/Core: Remove whitespace and tabs
--HG--
branch : trunk
2010-09-12 01:40:27 +02:00
Shauren d714d0eb20 Core/Loot: Reverted revision 44a1f284dd3e
Core/Loot: Implemented automatic currency distribution in better way, applying all conditions and updating achievements

Closes issue #3912.

--HG--
branch : trunk
extra : rebase_source : 35c2a59d213793ee29dfd0fc1acb7c15b375b049
2010-09-11 21:28:55 +02:00
Machiavelli a41e99223e Core/DBLayer:
* Rename QueryResult class to ResultSet
* Rename QueryResult_AutoPtr to QueryResult
* Declare ACE refcounted auto pointer for PreparedResultSet class

--HG--
branch : trunk
2010-09-11 21:10:54 +02:00
Spp 9e9c39244b Code/Groups: use enum as parameter in Group::RemoveMember
--HG--
branch : trunk
2010-09-10 13:37:55 +02:00