Commit Graph

113 Commits

Author SHA1 Message Date
Liberate 9bd804dece Updates the arena rating system to use Matchmaker Rating.
The arena_team_stats sql in this commit sets all ratings to 0.
You start with 0 Team Rating and 1500 Matchmaker Rating.
Personal rating is moved to character_arena_stats, and will not reset when disbanding an arena team.
This new system is based on all the info I could get, but Blizzard didn't leak much info about the new system.
At least this system is really close to the official system.
Any issues found should be reported in an issue.
Huge thanks go to Aokromes for the intensive testing he has done with me.
Also thanks to Parzival for hearing me out and giving his ideas.
Fixes issue #3189

--HG--
branch : trunk
2010-08-27 18:18:26 +02:00
Shocker 9cf892b8f2 No need to hardcore spellid for arena visibility check
--HG--
branch : trunk
2010-08-27 10:24:20 +03:00
QAston c1ac063ba1 *Remove m_currentBasePoints from spell class, use m_spellValue instead.
--HG--
branch : trunk
2010-08-27 06:40:23 +02:00
Shocker 55b09e7a9c Fix arena visibility (no more seeing opponents before arena starts, also fixes visibility for partners' pets)
--HG--
branch : trunk
2010-08-27 06:48:26 +03:00
azazel e3c2bdb722 Core/Cleanup: move repeating code for locale strings retrieval into separate method. Related code cleanup.
--HG--
branch : trunk
2010-08-27 00:57:49 +06:00
azazel 5fa14f58dc Core/Cleanup:
* move repeating code into separate method for storing locale strings in ObjectMgr (copy/paste sucks, you know)
* fix 'signed/unsigned' warnings (at least in VS)
* fix some other warnings and cleanup relative code

--HG--
branch : trunk
2010-08-26 15:54:56 +06:00
azazel 341e6303ef Core:
* add helping methods for manipulating unit's health and use it where applicable
* fix some conversion warnings and cleanup code (formatting, CRLF, tabs to spaces)

--HG--
branch : trunk
2010-08-26 01:20:57 +06:00
silinoron b940a92415 Fix CRLF.
--HG--
branch : trunk
2010-08-24 17:02:39 -07:00
enjoi 25c8ab63f8 Core/Player: Add new function AddItem. Useful in the scriptsystem for custom scripts.
--HG--
branch : trunk
2010-08-24 18:18:31 -05:00
silinoron aaaeecc916 Add support for vehicle scaling based on item level.
Requires database data.
Fixes issue #2754

--HG--
branch : trunk
2010-08-24 15:04:34 -07:00
Shocker 4a30a2815b Force offhand weapon unequip when player doesn't have Dual Wield anymore
--HG--
branch : trunk
2010-08-24 08:19:17 +03:00
silinoron 8649bee17f Replace World::getConfig with World::getFloatConfig, World::getIntConfig, and World::getBoolConfig.
Also fix a warning from a previous commit.

--HG--
branch : trunk
2010-08-23 19:56:47 -07:00
azazel caa3a58213 Core:
* add Player::HasEnoughMoney methods to check, whether player has specified amount of money and use new methods where applicable
* fix some signed/unsigned warnings and some typos

--HG--
branch : trunk
2010-08-23 22:58:32 +06:00
Spp 16d95d3115 Core: Fix some warnings
--HG--
branch : trunk
2010-08-23 07:51:19 +02:00
silinoron 5cbae843d5 Core/Game: fix all warnings related to converting doubles and floats.
--HG--
branch : trunk
2010-08-22 12:39:39 -07:00
azazel 399e35f8f5 Core:
* fix "warning C4305: 'initializing' : truncation from 'double' to 'float'" warnings
* fix some other warnings here and there

--HG--
branch : trunk
2010-08-22 23:46:40 +06:00
click 670964803f Core: Fix more warnings, add new function sLog.outStaticDebug() that replaces DEBUG_LOG
--HG--
branch : trunk
2010-08-22 01:57:04 +02:00
Spp 572f7bbd1d Core: Remove "may be used uninitialized in this function", "unused parameter ‘xxx’" and "'xxx' defined but not used" warnings
--HG--
branch : trunk
2010-08-21 23:08:54 +02:00
Spp a136403dee Core: Remove "suggest parentheses around ‘&&’ within ‘||’" and "suggest parentheses around assignment used as truth value" warnings
--HG--
branch : trunk
2010-08-21 21:54:41 +02:00
Spp c15c605a11 Core: Remove "unused variable 'xxx'" warnings
--HG--
branch : trunk
2010-08-21 21:14:35 +02:00
Spp e7856a831c Core: Remove "enumeration value 'xxx' not handled in switch" warnings
--HG--
branch : trunk
2010-08-21 20:55:31 +02:00
Machiavelli 994186f267 DB Layer:
- Make SQL Transactions actual objects used in code. (Thanks to Derex for the idea)
* Uncommitted transactions will be automatically rolled back and cleaned up using ACE_Refcounted_Auto_Ptr, so no need to call Rollback() in the code.
* Prevents recursive transactions and makes developers aware of transactions going on.
* Gets rid of unneccesary overhead iterating over a concurrent map.
- Some cleanups in affected code, including better usage of transaction control in AH / mail related code to prevent data loss.

*** Experimental, use at own risk, recommended to backup your DBs. ***

--HG--
branch : trunk
2010-08-21 03:19:25 +02:00
silinoron d89671727b fix r905a640a2d - tabs to spaces, and add a forgetten break.
--HG--
branch : trunk
2010-08-20 15:22:42 -07:00
Liberate 6f605cb0e5 Fixes silly gossip menus of quest givers.
Fixes issue #3484

--HG--
branch : trunk
2010-08-20 22:03:19 +02:00
Machiavelli d845a903b1 DBLayer:
- Use ACE_Future and ACE_Future_Set for async SQL queries with callback
* Callbacks will now be executed from the thread and object that scheduled the request, instead of the world runnable thread (and thus are no longer dependent on the 50ms forced sleep time).
* This design gets rid of a potential DOS loophole in the resultqueue system - unique requests will be cancelled when re-requested.
- Drop now redundant SQLQueryTask, SQLResultQueue, SQLResultQueueTask operations.
- Drop now redundant CharacterHandler class
- Change static callback functions in WorldSession to normal functions.

Thanks to Derex and Zor for advice along the way.

--HG--
branch : trunk
2010-08-18 19:48:51 +02:00
silinoron d6fe4b23e9 Add support for recruit-a-friend XP and reputation multipliers.
More research needs to be done to implement summoning and granting levels.

--HG--
branch : trunk
2010-08-17 19:18:09 -07:00
Machiavelli 87218eadcd * HIGHLY EXPERIMENTAL - USE AT OWN RISK *
Database Layer:
- Implement connection pooling: Instead of 1 delay thread per database, you can configure between 1 and 32 worker threads that have a seperate thread in the core and have a seperate connection to the MySQL server (based on raczman/Albator´s database layer for Trinitycore3)
- Implement a configurable thread bundle for synchroneous requests from seperate core threads (see worldserver.conf.dist for more info)
- Every mapupdate thread now has its seperate MySQL connection to the world and characters database
- Drop inconsistent PExecuteLog function - query logging will be implemented CONSISTENTLY later
- Drop current prepared statement interface - this will be done *properly* later
- You´ll need to update your worldserver.conf and authserver.conf
- You´re recommended to make a backup of your databases before using this.
* HIGHLY EXPERIMENTAL - USE AT OWN RISK *
* HIGHLY EXPERIMENTAL - USE AT OWN RISK *
etc.

--HG--
branch : trunk
2010-08-18 02:25:52 +02:00
click 26386d1e20 Core: Use enum-size for CONFIG_START_ALL_EXPLORED (was hardcoded to 64, not using the proper size of the enum PLAYER_EXPLORED_ZONES_SIZE)
Fixes issue 2726

--HG--
branch : trunk
2010-08-17 11:27:47 +02:00
click d8b2a31f70 Core: Fix minor bug with max skills value not being properly updated in the database when a player has been leveled up while offline - Thanks to Hyriuu
Fixes issue 3374

--HG--
branch : trunk
2010-08-17 00:35:12 +02:00
Brian fe90b1c974 Core/Gossip: stop log spam of unknown gossip option for quest givers.
--HG--
branch : trunk
2010-08-16 14:46:51 -06:00
QAston 8b057babf2 *Fix typo in r7dd45a018254, thanks to Shauren for narrowing the falling issue to that rev.
--HG--
branch : trunk
2010-08-13 20:53:33 +02:00
Spp 3e29ae1ee8 Dungeon Finder: Add vote kick support
--HG--
branch : trunk
2010-08-13 15:38:10 +02:00
azazel ed08bedc6e * Modify PlayerScript::OnChat hook. Now it takes one optional parameter of type void *. Value of this parameter depends on chat type.
* Modify chat and emote hook in PlayerScript to take Player parameter insted on WorldSession (this is player script, isn't it?)
* Move calls of OnChat hooks after validation of parameters and before actual call to chat methods. It's more logical because otherwise it will be necessary to repeat validation inside hooks.
* Make use of new PlayeScript hooks. Move chat logging logic into separate script.
* Add one path to scripts CMakeLists to make ChatLogScript happy.

--HG--
branch : trunk
2010-08-12 22:33:45 +06:00
azazel c6b4309f1e * Unsummon pet if direct control spell expire out of visibility range from owner (base on VladimirMangos changes)
* Move repeating code to separate method

--HG--
branch : trunk
2010-08-12 12:14:32 +06:00
silinoron c7b48c1ca9 Add PlayerScript hooks:
* OnMoneyChanged
* OnGiveXP
* OnReputationChange
* OnChat
* OnEmote
* OnTextEmote

--HG--
branch : trunk
2010-08-11 22:53:31 -07:00
silinoron 0963cb3aea Implement a PlayerScript class with a handful of new hooks:
* OnPVPKill
* OnCreatureKill
* OnPlayerKilledByCreature
* OnPlayerLevelChanged
* OnPlayerFreeTalentPointsChanged
* OnPlayerTalentsReset
* More hooks may be added in the future

--HG--
branch : trunk
2010-08-11 19:52:58 -07:00
Shauren 36d1405b52 Fixed bug allowing players to enter instance even if selected difficulty was disabled
Added map id to log when player tries to enter disabled map

--HG--
branch : trunk
2010-08-10 19:40:35 +02:00
Shauren 88965d9419 Fixed honor points and arena points displaying in currency tab
Currencies lost (spent all in vendor) are not removed from known currencies tab, they now display 0 count

--HG--
branch : trunk
2010-08-10 13:26:07 +02:00
Brian 1f52153410 Backed out changeset f751065ec933
Spell rep rate was already implemented by QAston

--HG--
branch : trunk
2010-08-09 11:33:31 -06:00
azazel f5399618d9 Implement reputation rates and aura effects for Spell::EffectReputation() (thanks Lynx3d)
--HG--
branch : trunk
2010-08-09 23:22:31 +06:00
click 1f80c7b3c0 Sourcefile sleanups -> tabs to spaces, remove whitespace - also update the cleanupscripts very slightly
--HG--
branch : trunk
2010-08-08 19:45:53 +02:00
XTZGZoReX 9083271a2f * Some singleton renames for consistency:
accmgr -> AccountMgr
objmgr -> ObjectMgr
auctionmgr -> sAuctionMgr
spellmgr -> sSpellMgr
CreatureEAI_Mgr -> sEventAIMgr
achievementmgr -> sAchievementMgr
gameeventmgr -> sGameEventMgr
sInstanceSaveManager -> sInstanceSaveMgr
poolhandler -> sPoolMgr

--HG--
branch : trunk
2010-08-08 05:25:45 +02:00
XTZGZoReX e03c873bcf * Move weather management to new WeatherMgr (yes, I care that much about the weather - I really do).
--HG--
branch : trunk
2010-08-08 05:06:13 +02:00
XTZGZoReX 909e332579 * Rename: BattleGround -> Battleground.
--HG--
branch : trunk
2010-08-08 04:37:24 +02:00
silinoron 36fffd9550 Properly fix problems with applying/removing mods on disarmed items.
--HG--
branch : trunk
2010-08-07 16:40:33 -07:00
silinoron 5aa6bb2169 Fix an exploit allowing druids to gain substantial stat increases.
Fixes issue #3316

--HG--
branch : trunk
2010-08-07 16:19:52 -07:00
XTZGZoReX 946adf469c *** New core <-> script library interface - complete rewrite of the old one.
* Removed the misdesigned on_events script/hooks.
* Lots of related cleanups and assertions.
* The interface is now fully object-oriented.
** Scripts no longer use function pointers.
** Scripts no longer use the general-purpose Script struct for everything.
** Script types are split into separate classes which must be inherited depending on what functionality is desired.
* Several script types have been added to allow extending functionality in a code-only manner (some script types require
  assignment in the recently added ScriptName columns in the database, though).
** SpellHandlerScript: Wrapper around spell scripts (returns new SpellScript objects (`spell_script_names`.`ScriptName`)).
** ServerScript: Allows scripting events that occur in the network layer.
** WorldScript: Allows scripting certain world-global events.
** FormulaScript: Allows hooking and interfering with core formulas.
** *MapScript: Allows hooking different map types (including world, instance, and battleground maps (`instance_template`.`ScriptName`)).
** ItemScript: Allows scripting of items (like the old interface (`item_template`.`ScriptName`)).
** CreatureScript: Allows scripting of creatures/AI (like the old interface (`creature_template`.`ScriptName`)).
** GameObjectScript: Allows scripting of gameobjects (like the old interface (`gameobject_template`.`ScriptName`)).
** AreaTriggerScript: Allows scripting triggered area triggers (like the old interface (`areatrigger_scripts`.`ScriptName`)).
** OutdoorPvPScript: Script which should return OutdoorPvP objects for use by OutdoorPvPMgr (`outdoorpvp_template`.`ScriptName`).
** CommandScript: Allows extending the in-core command table.
** WeatherScript: Allows scripting of weather changes (`game_weather`.`ScriptName`).
** AuctionHouseScript: Allows scripting of auction events.
** ConditionScript: Allows scripting of conditions (`conditions`.`ScriptName`).
** DynamicObjectScript: Allows scripting of dynamicobjects.
** TransportScript: Allows scripting of transport events (`transports`.`ScriptName`).
* OutdoorPvP objects are now created through scripts. This effectively means that they'll need to be moved to scripts
  before the they're functional again.
* The whole idea with this new interface is to allow expanding core functionality without touching core code. If further
  hooks are needed to expand functionality of the core, let us know; we'll add them, if we agree that it is appropriate
  to do so.
*** NOTE: The scripts project will _not_ build before it has been adapted to the new interface.
*** Thanks to everyone who helped out with related preparations and suggestions!

--HG--
branch : trunk
2010-08-06 19:23:43 +02:00
Liberate c0df111bb0 Fixes an exploit to get 65k spell power.
Fixes issue #3212

--HG--
branch : trunk
2010-08-06 13:00:16 +02:00
azazel 4fb3098d18 * Add NULL-pointer check to CharmInfo destructor. Closes issue #3287.
* Remove references to AuctionHouseBot files from win project.

--HG--
branch : trunk
2010-08-06 12:28:37 +06:00
silinoron 71ef21de21 Add helper Player::GetAverageItemLevel() function for future use in Dungeon Finder and vehicle scaling.
--HG--
branch : trunk
2010-08-05 14:18:33 -07:00