Commit Graph

221 Commits

Author SHA1 Message Date
Shauren
928443d899 Core: Removed more operator workarounds for ACE_Singleton (missed previously because of inconsistent naming)
--HG--
branch : trunk
2010-12-23 23:25:44 +01:00
Machiavelli
392a312c6b Core/Spells: Fix SPELL_AURA_MOD_DAMAGE_PERCENT_DONE(79) to affect proper spellschools based on EffectMiscValue.
Author: Dr.Tenma
Fixes issue #4019
Fixes issue #5059

--HG--
branch : trunk
2010-12-23 16:22:30 +01:00
Spp
0c8b07d3e5 Core/ScriptMgr: Add OnBindToInstance Player hook
--HG--
branch : trunk
2010-12-23 06:06:21 +01:00
Shauren
0f3b9019a8 Core: Get rid of dirty operator workaround for ACE_Singleton class implementation
--HG--
branch : trunk
2010-12-22 21:25:23 +01:00
Shauren
7b4e1c6387 Core/ObjectMgr: Static members are no longer accessed through singleton
--HG--
branch : trunk
2010-12-22 20:23:47 +01:00
Shocker
42304c0b25 Core/Spells: Implement SPELL_EFFECT_UNTRAIN_TALENTS, thanks to Heisenberg, closes issue #5238
--HG--
branch : trunk
2010-12-22 20:14:30 +02:00
leak
68ed96989a Core/Entities: Include prismatic sockets in gem equipment limitation checking. (Stops equipping more than 3 JC gems)
--HG--
branch : trunk
2010-12-21 23:14:38 +01:00
Shauren
89f2870b97 Core/Auras: Save cast item guids for auras to db
--HG--
branch : trunk
2010-12-20 14:55:36 +01:00
Machiavelli
f71c97f6c5 Core/Items: Fix ITEM_SPELLTRIGGER_ON_NO_DELAY_USE (5). This trigger should (only) trigger the respective spell when the item is added to the inventory. Aura´s created by this spell will be properly removed when the item is destroyed as well.
--HG--
branch : trunk
2010-12-20 00:46:00 +01:00
Shauren
14a480cb13 Core/Players: Fixed recently introduced crashes in Player::ApplyEnchantment
Closes issue #5193.

--HG--
branch : trunk
2010-12-19 15:22:19 +01:00
linencloth
59da698189 Core: Rename spell attributes, use more general names
--HG--
branch : trunk
2010-12-19 05:15:47 +01:00
Shauren
43377b4daf Core/Players: Remove player from transport before teleporting to graveyard, will fix infinite recursion when trying to access unavailable map
Core/Auras: Removed unneeded typecasting

Closes issue #4862.

--HG--
branch : trunk
2010-12-19 00:01:22 +01:00
Machiavelli
a093408360 Core/Player: Convert _SaveAuras to prepared statement format
--HG--
branch : trunk
2010-12-18 23:25:03 +01:00
silinoron
41a9d3216c Core/Auras: Fix Cold Blood handling on misses and parries.
Patch by dr.tenma.
Fixes issue #2291

--HG--
branch : trunk
2010-12-18 13:06:38 -08:00
leak
525a1e0ff0 Core/Entities: Remove gem bonuses if requirements of prismatic sockets are not met
Closes issue 4949.

--HG--
branch : trunk
2010-12-18 15:56:55 +01:00
Shauren
b11e5bbf81 Core/Achievements: Prevent ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL updates at login
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL_AT_AREA
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_TEAM_RATING
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_REACH_TEAM_RATING
Core/Achievements: Implemented map id requirement for achievement criterias

Closes issue #4479.
Closes issue #4478.
Closes issue #4473.
Closes issue #4472.
Closes issue #4471.
Closes issue #4480.
Closes issue #2284.
Closes issue #4481.

--HG--
branch : trunk
2010-12-17 18:12:46 +01:00
Machiavelli
1cdeb4d057 Core/Player: Change equipmentset saving to use prepared statements.
Update issue #4550
Please try to re-reproduce

--HG--
branch : trunk
2010-12-17 17:29:16 +01:00
Shauren
82f45966fc Core/Unit: Renamed addUnitState/hasUnitState/clearUnitState to AddUnitState/HasUnitState/ClearUnitState
Core/Vehicles: Allow the vehicle to always damage the passenger (removed unneded dbc hacks from scripts)

--HG--
branch : trunk
2010-12-17 13:43:24 +01:00
Spp
4671500172 Core/Dungeon Finder: Move all LFG data from Player and Group classes to internal LFG data classes.
--HG--
branch : trunk
2010-12-16 10:53:21 +01:00
Spp
382fef1958 Core: Some warning fixes
--HG--
branch : trunk
2010-12-15 10:44:06 +01:00
azazel
ddf06c086e Core/Social: properly remove deleted character from social list of online players (by Emtec)
--HG--
branch : trunk
2010-12-15 14:44:41 +06:00
azazel
b39b8fdd0d DB Schema/Characters: removed columns auctionhouse.item_template, character_inventory.item_template, guild_bank_item.item_entry and mail_items.item_template and created item_instance.itemEntry column instead of them.
As a side effect moved related queries to prepared statements.
As one more side effect fixed not shown and lost mail items in returned expired mail (patch by Quriq14).

--HG--
branch : trunk
2010-12-15 14:08:12 +06:00
Shauren
f4581f67b8 Core: Fixed uninitialized variable warnings
--HG--
branch : trunk
2010-12-14 15:58:45 +01:00
Liberate
6be8446053 Core/Gameobjects: Fix fishing and looting specific chests which were bugged because of revision 044e466d75.
Fixes issue #5116.

--HG--
branch : trunk
2010-12-14 15:02:42 +01:00
Liberate
09f4eb9e1c Core/Gameobjects: Make a chest not lootable when it still has a respawn time, to avoid cheating using third-party software.
--HG--
branch : trunk
2010-12-14 03:58:59 +01:00
click
2642894342 Core: Add new system for parallelizing client packet processing. Handle WorldSession updates in Map::Update() where we are safe to proceed. Patch by Ambal.
(And clean up tabs and whitespace while rummaging around in there)
Closes issue 5084.

--HG--
branch : trunk
2010-12-13 22:37:56 +01:00
azazel
d2d62eab50 Cleanup: implemented helper methods for manipulating percentage calculation and used it where appropriate (plus fixed some other warnings).
NOTE: Initially I just wanted to fix some warnings, but noticed that there is no common method for percentage calculation and various formulas are used many time in the code making it difficult to read and understand what the code actually does. So, I introduced several template methods for calculating percent values and adding those values to the original base. I replaced all the raw calculations throughout the code where found, but I could have missed something or could have made a mistake. So, please report any strange behaviour after this commit.
If you ask me why I did it: for the sake of consistency and exact understanding what code means. If you see CalculatePct method, you clearly understand, that it find the value of x percent of y. And you can easily express, for example, spell behviour "reduces smth by x%" by the means of a method instead of recalling school maths.

--HG--
branch : trunk
2010-12-11 20:37:38 +06:00
azazel
e7eb4e22e2 Core/Mechanics: cleanup shapeshift form code (by VladimirMangos)
--HG--
branch : trunk
2010-12-09 17:03:42 +06:00
Spp
408fce1de6 Core: Some optimizations
- Declare some functions const
- Fix some mem leak
- Fix some resource leak
- Remove unused variables and functions
- Remove duplicate functions
- Reduce the scope of some variables
- Remove unused file

--HG--
branch : trunk
2010-12-06 02:07:53 +01:00
Spp
e621f5fe98 Core/Dungeon Finder: Code cleanup and minor optimizations
- Extend LfgState to keep control of the state of group and players using LFG
- Move scripts to its own class and initialize only if Dungeon finder is enabled
- Updated comments to doxygen format
- Use constructor initialization list
- All variables are declared in the inner most scope
- Fix some mem leaks
- Remove no longer needed code (Cleaner)
- Normalize handler function names

--HG--
branch : trunk
2010-12-05 17:50:26 +01:00
click
28c2e270db Core/Battlegrounds: Implement power resets on arena-fight preparations (first 60 seconds before arena-fight kicks off) (Thanks to Kaelima)
Restores all player powers every 5 seconds untill arena starts (fixes possible exploit with entering arena battle with full rage or runic power)
(The 5 second timer is not 100% confirmed, as official pages only states that the power is reset after prep-time - needs feedback)
Closes issue 4805

--HG--
branch : trunk
2010-12-02 22:50:30 +01:00
click
0fde30f185 Core: Adjust packetsize for SMSG_RESYNC_RUNES - thanks to False.Genesis ( and to Svetilo12 for the heads up )
Closes issue 4943.

--HG--
branch : trunk
2010-11-28 00:40:20 +01:00
Shauren
3fa97ad538 Core/Spells: Phaseshift auras can now be stacked
--HG--
branch : trunk
2010-11-24 16:58:57 +01:00
Spp
d3c9478153 Core/Groups: Add kicker and kick reason to RemoveMember
--HG--
branch : trunk
2010-11-23 20:49:36 +01:00
Machiavelli
92a7d02184 Core/Player: Invoke global cooldown when equipping relic slot items during combat.
Please report any issues you find regarding this changeset.

--HG--
branch : trunk
2010-11-21 16:48:08 +01:00
azazel
87d723405e Core/Scripts: return const modifier to Player methods back (should restore compilation for those with custom scripts).
NOTE: The main idea of original change is to allow scripts change content of message so that calling method sends modified message to client.
For example, moderating script which cuts illegal words from message.

--HG--
branch : trunk
2010-11-18 10:26:34 +06:00
azazel
4fb572015a Core/Scripts: pass message parameter by reference in OnChat methods to make it possible to be modified inside the script.
--HG--
branch : trunk
2010-11-17 18:14:35 +06:00
linencloth
8fae0c176d Core/Units: Rename and change Get/SetVisibility to use a bool value instead of an unnecessary enum
Also replace some SetVisibility hacks to directly call UpdateObjectVisibility

--HG--
branch : trunk
2010-11-16 01:13:04 +01:00
linencloth
57c76407b0 Core/Players: Update object visibility right after adding the player to a map
--HG--
branch : trunk
2010-11-15 23:10:48 +01:00
linencloth
8f96f37c2e Core/Players: Cleanup the visibility updater
--HG--
branch : trunk
2010-11-15 23:08:02 +01:00
Shocker
48d90fab32 Misc: Some engrish fixes, thanks to ZxBiohazardZx, closes issue 4740
--HG--
branch : trunk
2010-11-14 23:46:34 +02:00
linencloth
7beb14b177 Core/Player: Delay the visibility update when setting the group to prevent crashing when a player enters the world in a group/raid.
Closes issue 4762

--HG--
branch : trunk
2010-11-13 23:27:54 +01:00
linencloth
bf888285aa Core:
- Redesigned stealth and invisibility handling
  - Implemented the handling of multiple stealth types
- Implemented fake inebriation
- The message deliverer no longer sends packets from a non-visible source
  - The server won't send that much garbage which just takes bandwith
  - It won't be possible to use cheats to detect invisible objects
- Removed a lot of checks for the Z-coord
  - Fixes visibility problems happening while flying
- Limited the grid activation range of creatures to use less resources
- Implemented Shroud of Death
- Implemented increased visibility range for active objects
- Removed visibility check at spellhit (only sanctuary effects should prevent it)
(And a lot of other changes...)

Closes issue 4208
Closes issue 3049
Closes issue 2097
Closes issue 2198
Closes issue 2384
Closes issue 2197
Closes issue 2319

--HG--
branch : trunk
2010-11-13 17:18:09 +01:00
click
44850aab07 Core: Disallow moving currency tokens out of their hidden bag - fix by leak
--HG--
branch : trunk
2010-11-07 22:28:03 +01:00
click
7853a06912 Fix "typo" in previous commit (codingstyle)
--HG--
branch : trunk
2010-11-07 20:12:36 +01:00
click
5d4f009a87 Core/Entities: Fix exploit/crash in inventory-handling (CMSG_OPEN_ITEM) -thanks to leak
(Adds a scrutiny-based check to baghandling: don't allow placing items in bags that are not "usable" as regular bags)

--HG--
branch : trunk
2010-11-07 20:08:52 +01:00
Shauren
88ae092744 Core/Quests: Use honor multiplier as base for calculating honor rewards, not the amount of kills (fix by Nay)
--HG--
branch : trunk
2010-10-24 21:32:26 +02:00
Rat
e67f04d362 Core/ConditionMgr: added CONDITION_SOURCE_TYPE_VEHICLE_SPELL, sourceGroup=creatureTemplate.entry, sourceEntry=spellEntry
--HG--
branch : trunk
2010-10-22 22:45:11 +02:00
linencloth
d9d1ec3670 Core: optimize string splitting
- Mainly affects item loading performance
  - Reduces guild loading time a lot

--HG--
branch : trunk
2010-10-21 16:56:51 +02:00
azazel
c0faed2251 Core/Guilds: guild code was completely refactored and rewritten.
* OOP desing and implementation;
* all the queries are moved to prepared statements;
* guild loading is optimized;
* all the possible interaction with guild's data is done inside the guild class;
* added more hooks to GuildScript class;

WARNING: Make sure you backup your characters database before applying this change (just in case).

Known problems with guilds:
* when new member is added to the guild, MOTD is not displayed for him in guild tab of social window;
* if you add item with random property to guild bank visual representation of item below it becomes wrong (it displays wrong stack number);
* packets order differs from official: currently guild bank packet traffic is twice as more than on offy.

--HG--
branch : trunk
2010-10-17 19:54:13 +06:00