Commit Graph
93 Commits
Author SHA1 Message Date
click 8ea4b32fab Update copyright headers (following the same standard in all files = good)
--HG--
branch : trunk
2010-10-07 12:41:56 +02:00
Shocker b269a3db97 Core: auth.uptime.maxplayers should hold max players count, not max active sessions, closes issue 2219
--HG--
branch : trunk
2010-10-06 21:52:55 +03:00
Machiavelli c4710bde76 Core/DBLayer: Fix MySQL timeout issue. World runnable will now call KeepAlive on each database after a specified number of seconds (MaxPingTime in worldserver.conf)
Based on patch by kingarus81
Fixes issue #4062

Also remove explicit numbering from WorldTimers enum

--HG--
branch : trunk
2010-10-02 14:26:58 +02:00
Shauren 665e7a06ce Core/Commands: Remove all active bans before adding new one, prevents multiple active bans for one character/account
Core/DBLayer: Converted most of ban related queries into prepared statement (might have missed some)

Closes issue #4218.

--HG--
branch : trunk
2010-09-28 21:30:05 +02:00
Shocker 78803c9f09 Magic numbers cleanup:
- Replace many magic numbers with constants
- Use enum for vehicle flags/seat flags
- Correct structure for ItemRandomSuffixEntry

--HG--
branch : trunk
2010-09-28 08:21:51 +03:00
silinoron ededb13915 Core/World: Move some packet code out of World.cpp
--HG--
branch : trunk
2010-09-26 12:23:29 -07:00
silinoron 0722348240 Core: Coding style cleanup.
--HG--
branch : trunk
2010-09-26 12:04:47 -07:00
Rat 28e90bbb60 Core/Scripts/SmartAI: added SmartAI files
Core/DBLayer/Texts: added CreatureTextMgr files
BuildSystem: added cmake for above files
Note: these are still under development and NOT USABLE
should not effect anything now

--HG--
branch : trunk
2010-09-25 18:47:03 +02:00
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
azazel eae0e5c822 Scripts/DB_Scripts: massive cleanup of SCRIPT_COMMAND_* related staff
* add union into ScriptInfo structure (thanks NoFantasy for the idea);
* move scripts methods from Map.cpp to new file MapScripts.cpp;
* remove magic numbers and introduce eScriptFlags enumeration.

It's just a beginning and more changes to come. Stay tuned!

--HG--
branch : trunk
2010-09-22 18:13:57 +06:00
Spp 7a3fd2e9bf Core/: Fix warnings
--HG--
branch : trunk
2010-09-21 10:11:25 +02: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
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
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
Shauren 9d9f18f9d2 Core/Loot: Add new config option "Rate.Drop.Item.ReferencedAmount" which allows multiplication of referenced loot count
Closes issue #814.

--HG--
branch : trunk
2010-09-15 10:44:38 +02:00
Shauren 48786f2996 Core/Pools: Fixed a possible infinite loop in quest pools
Core/Pools: Fixed loading of quest pools
Core/Pools: Fixed possible startup crash

Closes issue #4015.

--HG--
branch : trunk
2010-09-15 10:35:54 +02:00
Shauren 102e51d620 Core/Pools: Implemented quest pooling
Core/DBLayer: Added GetNumRows() method to PreparedResultSet

--HG--
branch : trunk
2010-09-14 13:56:27 +02:00
click bf664b7a44 Cleanup/Core: Remove whitespace and tabs
--HG--
branch : trunk
2010-09-12 01:40:27 +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
Liberate 50a90522f9 Core/Arena: Fixes the Config option for the start rating of personal rating.
Add a Config option for the start rating of matchmaker rating.
Personal rating now resets when joining a new team.
Fixes the strange behaviour Personal rating gain/loss can have opposing to team rating,
by using a better way of calculating the personal rating gain.
Fixes issue #3871
Fixes issue #3847
Fixes issue #3843
Fixes issue #3839

--HG--
branch : trunk
2010-09-10 23:08:49 +02:00
Shocker 0126590c54 Core/Arena/Logging:
* Implement option for extended arena match info for each player (guid, name, team, IP, healing/damage done, killing blows) [disabled by default]
* Fix logging for rating change, winner and loser get different ratings with the new arena system

--HG--
branch : trunk
2010-09-09 15:27:27 +03:00
Shocker f9ecc36fb0 Core/Commands: Implement config for setting the maximum number of results a .lookup command can return, closes issue 3875
--HG--
branch : trunk
2010-09-08 09:28:21 +03:00
azazel 7afc640ef4 Core: add possibility to disable creating of characters of specified races/classes.
--HG--
branch : trunk
2010-09-06 23:34:16 +06:00
Spp 9e4dd760ba Code/Dungeon Finder: Move some packets from Mgr to Handler
--HG--
branch : trunk
2010-09-04 18:20:10 +02:00
silinoron be7d94f24e Add support for character race and faction transfers.
Based (loosely) on patch by Ner'zhul, DarkXuan, and darkshines@sakha.net.
Fixes issue #3429.

--HG--
branch : trunk
2010-09-05 13:12:24 -07:00
Machiavelli f19d7c2ec7 Core/WorldRunnable: Convert the last part of autobroadcast (interval config) to Trinity standards (proper caching) as well. Patch by 41782992@qq.com.
Closes issue #3796

--HG--
branch : trunk
2010-09-04 17:27:28 +02:00
silinoron 5179d3149a Core/Game: Fix remaining warnings on windows (and most likely almost all of the ones on *nix)
--HG--
branch : trunk
2010-09-03 21:55:57 -07:00
click d4e2fdad78 Core/Worldpacket: Correct size of SMSG_AUTH_RESPONSE (thanks to Ramus for orig patch, and svetilo for notification)
--HG--
branch : trunk
2010-09-03 22:14:42 +02:00
Shauren d5115ca687 Core/Dungeon Finder: Added support for rewards for random dungeons
Core/Quests: Simplified rewarding money from quests, now ModifyMoney and UpdateAchievementCriteria are called only once per quest
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS

--HG--
branch : trunk
2010-09-03 20:11:14 +02:00
Machiavelli d7f9cea305 Core/WorldRunnable: Convert autobroadcast to trinity standards (properly cache configs, change function name to better reflect purpose)
--HG--
branch : trunk
2010-09-03 18:29:35 +02:00
Machiavelli 273679c5ba Core/DBLayer
- Store threadbundlemask internally per database pool and prevent direct access to config file post startup
- Fix threadbundlemask flag checking for ReactorRunnable, WorldRunnable
- Remove CLI threadbundlemask flag, CLI doesn´t need a seperate mysql connection nor thread
- Remove unused Character Database connection from WorldSocketMgr / ReactorRunnable
- Add proper LoginDatabase connection to RA Runnable (soon to be overhauled)

Note: still experimental and not tested for live use

--HG--
branch : trunk
2010-09-03 10:52:32 +02:00
Spp 405f312918 Core: Fix more warnings
--HG--
branch : trunk
2010-08-30 15:25:15 +02:00
silinoron 08205afcc9 Rewrite much of the GM ticket system
* Extract storage and manipulation of tickets to TicketMgr (from ObjectMgr)
* Extract ticket commands to TicketCommands.cpp
* Adds support for sending GM responses and GM surveys.
* Fix structure of several ticket-related packets.
* Add support for understanding lag reports.
* Thanks Zor for some of the packet structures, and Cyrax for some sniffs
* Please report any issues encountered via the tracker.

--HG--
branch : trunk
2010-08-29 20:28:14 -07:00
Shauren 5fbc8f1de4 Scripts/Icecrown Citadel: Added hacky workaround for teleporting spells because their default target is not supported by current grid system
Scripts/Icecrown Citadel: Mark Gunship event as complete on Lady Deathwhisper's death (temporary, until transport system will fully allow scripting the event)

--HG--
branch : trunk
2010-08-27 18:11:21 +02:00
Brian de858a4c33 Core/CLI: actualy respect the config value for displaying the update time
diff. No more spam of low update time diff.

--HG--
branch : trunk
2010-08-24 23:17:43 -06:00
Shocker a43b0b9fd1 * Change default config value for group visibility mode, allow visibility of stealthed/invisible players ride-wide, closes issue 3532
* Also make sure default values are set in World.cpp too, thanks svetilo12

--HG--
branch : trunk
2010-08-25 19:00:40 +03: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
Spp 89d87339d5 Core: Update Player Limit and Player Security Level variables
- Allowed Security Level will be set at server load or with 'server plimit reset' command (before it was read each time someone tried to join)
- If Security Level is updated to a more restrictive value all people under that level will be autokicked

--HG--
branch : trunk
2010-08-24 19:09:41 +02:00
silinoron c2286fc70d Fix a typo in World.cpp.
Thanks Paradox for pointing it out.

--HG--
branch : trunk
2010-08-23 21:36:52 -07: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
silinoron 5cbae843d5 Core/Game: fix all warnings related to converting doubles and floats.
--HG--
branch : trunk
2010-08-22 12:39:39 -07: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 a40cb46e61 Core: fix "comparison of unsigned expression < 0 is always false" warnings
--HG--
branch : trunk
2010-08-21 23:40:53 +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
click a7498d2f56 Core/Includes: Include ACE as an external dependency, not local (#include "ace/something.h" -> #include <ace/something.h>)
--HG--
branch : trunk
2010-08-21 02:27:12 +02:00
azazel a200de3b5f Core
* Cleanup in LoadScripts method and related stuff (use enum instead of string to differentiate between script maps)
* Fix creation of id and sanity checks for spell_scripts. Should fix warnings about missing spells with id > 65535

--HG--
branch : trunk
2010-08-20 12:19:14 +06: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 b4bef54b7a Fix Windows-build (YES, IT COMPILES!) - partial revert of revision a9386a2655
- Use minihack on ACE to avoid using config.h on Windows platforms
- Put include-locations for ACE in AFTER everything else (for later use)
An insane thanks to paradox for being patient with testing changes and swapouts

--HG--
branch : trunk
2010-08-16 09:51:37 +02:00