Commit Graph
111 Commits
Author SHA1 Message Date
Azazel 6fb2bf4224 Core: use enum InventoryResult as return type for functions working with player items.
Original patch by TOM_RUS.
2011-04-29 16:48:15 +06:00
leak c51c817a45 Core/ObjectMgr: Refactor sCreatureStorage 2011-04-28 22:57:08 +02:00
leak a82654debd Core/ObjectMgr: Refactor sItemStorage 2011-04-28 22:42:33 +02:00
Shauren 97f482cd82 Core/Achievements: Removed unused parameter from UpdateAchievementCriteria and unused DoCompleteAchievement from BattlegroundMgr 2011-04-21 23:32:45 +02:00
Shauren 542bc3008d Core/Player: Fixed interaction rules with dead creatures 2011-04-18 12:17:45 +02:00
Shauren ea5dd86f29 Core/PacketIO: Updated SMSG_CHAR_ENUM data content (bag info) 2011-04-15 19:31:21 +02:00
leak 7935c2f5c2 Core/Arena: Move personalRating to arena_team_member 2011-04-08 21:14:30 +02:00
Shauren 0ae5aca55e Core/Spells: Apply only 1.5 second cooldown to DK runes when spell misses its target 2011-04-07 23:13:35 +02:00
pek2011 337b75cafc Core/Cleanup: Drop some unused code and update some unknown player flags (from Mangos).
Closes #1167
2011-04-07 15:10:10 +03:00
Anubisss 1b0843194f Fix gender exploit.
Now check that character has a valid gender (and not an invalid via packet modifications).
This check works when trying to create a character or when building the character list.
If gender is invalid (neither male nor female): can't create the character and can't see in the characters' list (and also can't login with it via packet modding).

Signed-off-by: Anubisss <[email protected]>
2011-04-01 05:05:13 +02:00
laly b9af020e72 Core/Cleanup: Drop some unused code.
Closes #1010, #581, and #248
2011-03-26 03:28:59 +02:00
Azazel e49b5b44d6 Core/Cleanup: remove C-style cast to (Bag*):
* add ToBag() methods for Item class;
* add GetBagByPos() method for Player class.
2011-03-18 15:58:08 +06:00
Azazel ca76e17bd6 Core/Cleanup: refactor honor and arena rating modifying methods:
* simplify wierd logic;
* add const modifiers to several getter methods.

(Idea based on commit [11187] by zergtmn for Mangos)
2011-03-17 11:00:41 +06:00
Azazel 6ad4044f05 Core/Mechanics: refactor XP (and in fact, honor/reputation/kill credit) rewarding routine and get rid of copy/pasted code. 2011-03-13 15:28:45 +06:00
Azazel 7200363835 Core/Loading: refactor inventory loading routine and add more informational error logging to it. 2011-03-12 00:54:37 +06:00
Shauren 9710c41a40 More warning fixes 2011-03-08 19:11:02 +01:00
darkstalker 1646f9d91c Core/Spell Mechanics: introduce global cooldown manager for server-side checks for GCD (ported from mangos) 2011-02-22 17:02:47 +06:00
Shauren 7ac891717c Core/Vehicles: Send proper GUID in SMSG_BREAK_TARGET packet when an unit enters vehicle 2011-02-19 22:50:09 +01:00
leak 6a64c79d2a Core/Groups: Group system cleaning sweep. 2011-02-18 18:35:52 +01:00
Azazel 4dc1eaa47c Core/Misc: improve error log messages by adding more info. Specially for Aokromes. 2011-02-17 19:47:08 +06:00
Machiavelli 17971acddb Core/Players: Implement generic SendClearFocus instead of magic SMSG_BREAK_PACKET randomly in the middle of code. Also preallocate correct size for packed guid. 2011-01-25 08:04:47 +01:00
Shauren 867bc197ef Core/Instances: Made the max amount of instances player can enter within hour configurable and fixed typo in instance packing/cleaning query 2011-01-24 16:12:02 +01:00
Shauren 820f87f365 Core/Instances: Implemented confirmation dialog for players upon entering instance which would permanently bind the player to it, players can now choose to get saved or leave the instance
Also fixes broken build
2011-01-24 11:38:59 +01:00
Shauren 464837077a Core/Instances: Implemented hourly instance limit: players are limited to entering 5 instances per hour (account wide limit) 2011-01-24 11:20:30 +01:00
Machiavelli 957c69de83 Update copyright note for 2011.
Happy new year.
2011-01-01 15:01:13 +01:00
Shauren cf62d7b776 Core/Items: Implemented spell penetration stat on items and use it from enchantments, original patch by zergtmn 2010-12-31 22:59:36 +01:00
silinoron dcb0902e61 Core/Player: Add a helper function in Player to get the number of grantable levels. For future use. Thanks Phazerz for helping me confirm this is the right value. 2010-12-30 21:15:11 -08:00
leak 1c244cced5 Core/Entities: Fixed disarming and related exploits
- Disarm shouldn't deduct stats other than weapon damage
- Ferals shouldn't be affected by disarm
- Fixed meta gem stacking exploit
2010-12-29 17:18:29 +01:00
linencloth efbc73d025 Core/Player: Split RemoveQuest into 2 separate functions
--HG--
branch : trunk
2010-12-26 21:34:08 +01:00
linencloth b150172521 Core/QuestStatus:
- Separate rewarded quests from active quests, and store them in a new table to reduce database size
- Drop the no longer needed `rewarded` column from character_queststatus for smaller table size
- Prevent filling the database with dropped quests
  - Delete useless records
- Implement queststatus save "queues" instead of states
- Minor optimizations

WARNING: Backup your database!

--HG--
branch : trunk
2010-12-26 04:16:18 +01:00
click 088ed9404b Core/Entities: Fix a minor disrepancy in the handling of weapon specializations introduced in revision a83f26ef71 - patch by Dr.Tenma
Fixes issue 5059.
Fixes issue 5265.

--HG--
branch : trunk
2010-12-25 04:03:04 +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
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
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
Shauren 611dc153b0 Core/Units: Corrected PLAYER_FIELD_BYTES2 invisibility/stealth flags, by VladimirMangos
--HG--
branch : trunk
2010-12-08 14:51:50 +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
Spp 25ac835507 Core/Groups: Move all function definition from .h to .cpp
Core/Groups: Remove Group.h dependency from any .h file

--HG--
branch : trunk
2010-11-29 07:50:31 +01:00
Spp d3c9478153 Core/Groups: Add kicker and kick reason to RemoveMember
--HG--
branch : trunk
2010-11-23 20:49:36 +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 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
Spp 959ef0878a Core/Groups: Use the proper RemoveMethod when player leaves a group
--HG--
branch : trunk
2010-10-19 18:32:04 +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
Shocker 8154f7243c Core/Arenas: Remove pet spell cooldowns on arena join too, fixes issue 1868
--HG--
branch : trunk
2010-10-16 17:01:01 +03:00
linencloth ae213dd580 Core: Improve constant channel handling
- Implement area restrictions
  - Disable constant channels in arenas
  - Implement city requirement
- Implement global constant channels
- Fix some packets

--HG--
branch : trunk
2010-10-16 12:59:53 +02:00
click 613b81f36f REALLY fix the CRLF-crap...
--HG--
branch : trunk
2010-10-07 15:54:07 +02:00
click 8ea4b32fab Update copyright headers (following the same standard in all files = good)
--HG--
branch : trunk
2010-10-07 12:41:56 +02:00