Commit graph

115 commits

Author SHA1 Message Date
Ambal
631ce36680 [11045] Rewrite internals of DB layer. Simplify code and use less locking. Spawn and use separate connections for sync and async DB requests. Implement database connection pool for SELECT queries. Up to maximum 16 connections supported. Disable 'autocommit' mode for MySQL.
UPDATE YOUR CONFIGS!

Defaults:
LoginDatabaseConnections = 1
WorldDatabaseConnections = 1
CharacterDatabaseConnections = 1

If you are not using <mtmaps> patch do not change the default settings - this is useless. You can try following option in your MySQL config to squeeze even more performance from your DB:

[mysqld]
transaction-isolation = READ-COMMITTED

Great thanks to Undergarun, kero99 and selector for making tests and providing very useful feedback and DB statistics! Have fun :)

Signed-off-by: Ambal <pogrebniak@gala.net>
2011-01-19 22:05:20 +02:00
XTZGZoReX
2d87d68b4e [10626] CONFIG_BOOL_SAVE_RESPAWN_TIME_IMMEDIATLY -> CONFIG_BOOL_SAVE_RESPAWN_TIME_IMMEDIATELY 2011-01-16 18:47:52 +01:00
VladimirMangos
39e7b19267 [10989] Implement post-3.1 and later fishing changes.
* Fishing now prowide junk loot at fail skill check.
  This can be disabled for old way work using SkillFail.Loot.Fishing option.
  Junk loot expected to be listed in fishing_loot_template entry 0.

* Fishing can gain skill grow at skill fail check case.
  Controlled by SkillFail.Gain.Fishing option.

* Fishing from fishing pool gameobject can't be fail.
  Controlled by SkillFail.Possible.FishingPool
2011-01-09 14:37:56 +03:00
VladimirMangos
d2b3977fee [10988] Propertly note for not loaded script library version.
* Better support localization in case built-in version notes.
* Move script library version functions to ScriptMgr
2011-01-09 06:06:52 +03:00
Pat S
46fdc3af97 [10979] Add extra ghost speed rate for BGs: Death.Ghost.RunSpeed.Battleground
Also recently added option renamed to Death.Ghost.RunSpeed.World

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-01-07 07:46:41 +03:00
Pat S
af50b352b2 [10977] Add ghost speed rate in config: Death.Ghost.RunSpeed.
Also clarify context for remove ghost auras place after set alive state.
This let get more expected results at remove ghost speed aura.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-01-07 06:45:25 +03:00
VladimirMangos
5f2aef756a [10970] Implement mass mail send infrastructure.
It expected to be used in 2 case: some gameevent must send mails at start/end,
and this can be useful in game commands. Both case wil implemented in later commits.

* New MassMailMgr can accept tasks for send mass mails in safe way for map update threads context/etc.
* It work in way:
   - By provided race mask or more generic SQL query string in async query selected affected characters
   - At query result ready at next world tick update in safe common part of tick code some from mails
     from queued mas mail tasks send.
   - Amount mails limited MassMailer.SendPerTick confir option (10 by default). This done for prevent
     high server load/lags at send too many mails in one tick (mail send all existed characters in DB
     who match to seelction criteria)
   - Manager not persistant for server shutdowns so any not send mails in queue lost at shutdown.
     But with default setting 10K mail send in 20 secs (10000/50/10). Adding more safe execution
     for this case will make related code lot more slow and req. many DB tables and code support.
2011-01-06 06:10:15 +03:00
VladimirMangos
bf0ecf6e71 [10947] Update copyright notice for 2011 year. 2011-01-01 20:33:43 +03:00
VladimirMangos
f7eb7a434e [10879] Remove support unused option SocketSelectTime in mangosd.conf 2010-12-15 23:00:34 +03:00
SeTM
1fbc09e1fd [10809] Remove diplicate World::GetQueueSize and rename functions to consistence naming
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-12-02 02:38:44 +03:00
tomrus88
76dfdd336f Backports from 400 branch. 2010-11-15 18:01:45 +03:00
VladimirMangos
c9dacb9940 [10718] Partly revert "[10687] UInt32 timer class copies instead using time_t timers for mstime cases."
This reverts commit 967877fefd91e00895f9790dc006b532b94d41b7
in part MapManager/World timers.

Main reason: unclear source cases wrong mstime diff generation at WorldRunnable level at *nix systems.
So need have existed in past hacks that skip its.
2010-11-10 17:55:20 +03:00
VladimirMangos
3b0e926788 [10717] Revert "[10716][10688] New version of patch for send real diff from last update."
This reverts commit 8398a55fa274471daae115e00c627b299a3fdbbd.
This reverts commit 06e2d6859ba3d7fd47be72c23a64e68ae039701f.
2010-11-10 06:29:49 +03:00
VladimirMangos
e219ee99bb [10688] New version of patch for send real diff from last update.
In new version last update time stopred for specific Cell that store all world objects
placed in it. All objects of Cell updated (or not updated) in same time.

Original version provided by ciphercom.
2010-11-06 22:59:54 +03:00
VladimirMangos
464908f453 [10687] UInt32 timer class copies instead using time_t timers for mstime cases.
Also cleanup weather update code and some random code cleanups.
2010-11-06 22:51:40 +03:00
VladimirMangos
0847d4c8cd [10683] Revert "[10677] Send to creature/etc Update call real diff from last update and use it."
This reverts commit 10784a8c7cc81c468b5411e973d36ecf31de9603.

Main reason: impossibility for me as commiter test problem and fix all corner cases problems.
2010-11-05 19:54:31 +03:00
cipherCOM
555c1a9094 [10677] Send to creature/etc Update call real diff from last update and use it.
Now in case when creature/etc some tices not updates in result stay
in not active (no near players or active objects) cell some important
timers (corpse decay, summon timers, group loot expire, aura durations, etc) will
updates at real diff time from last prev. update call.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>

For some systems added exclude use real diff time because current limitations
like move generators. So its stay use last tick diff and considered freeze and
skip all time while creature in not active map part.
2010-11-03 07:07:13 +03:00
NoFantasy
a38f97f71c [10655] Add support for monthly quests
Quest that can repeated each month are set by quest_template.SpecialFlags |0x04 flag
Quest are reset at midnight the first day of each month.
Note: for the time being, quest must also be set repeatable (SpecialFlags |0x01)

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-10-29 20:39:01 +02:00
DasBlub
fc5dd54f37 [10612] Revert "[10611] Made some values const"
Reason: It makes no sense to make a local variable const.

This reverts commit 49e3184d69056738701bc15d9b7f982bf11d7bbc.
2010-10-15 22:29:10 +02:00
Reve
47d971c7f9 [10611] Made some values const
Signed-off-by: DasBlub <dasblub@gmail.com>
2010-10-15 22:14:42 +02:00
NoFantasy
bc2f2916e9 [10575] Fix world states related to arena season.
Replace the "in progress" option in config (as no such thing exist) with the expected "previous arena season id".

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-10-02 11:29:06 +02:00
VladimirMangos
e3d7b114c6 [10514] New option PetUnsummonAtMount
Make possible disable pet unsummon for non-fly mounts (1.x way work)
2010-09-22 07:40:39 +04:00
NoFantasy
cb877e1281 [10496] Re-work struct ScriptInfo and use union for data fields.
Enumerate SCRIPT_COMMAND_* and move it away from world.h

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-09-17 23:33:22 +02:00
NoFantasy
bb7792940b [10489] Correct some typos in comments for SCRIPT_COMMAND*
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-09-15 21:34:27 +02:00
NoFantasy
8b10ac9474 [10487] Implement SCRIPT_COMMAND_MOVEMENT(20) to start/change movement
datalong can be 0:idle, 2:random, 3:waypoint. In case 3, creature must have a existing creature_movement_template.
Command start movement for source of script. If source is not creature but target is, it will apply to target.
Optionally creature entry can be defined (datalong2) and start movement for this if found nearby (search radius defined in datalong3).

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-09-15 11:48:51 +02:00
Veretos
812383ac8c [10452] Typo in World field.
Signed-off-by: unknown <vladimir@getmangos.com>
2010-09-07 16:52:53 +04:00
Dark
1fd4ff3155 [10389] Typo fixes
Signed-off-by: Dark <dark_rulerz@hotmail.com>

(based on Darkrulerz's repo commit 758f4c7)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-08-20 22:24:58 +04:00
VladimirMangos
59e672f1bc [10331] More basic chat command parsing functions and its uses.
* Commands .debug update and .modify bit removed as redundent
* Command .debug getvalue now can output values in float/int/hex/bitstring formats
* Command .debug setvalue now ca accept values in int/float/hex/bitstring formats
* Command .debug mod32value renamed to modvaue and can add int/float or apply hex mask
  (in 3 modes: |= &= &=~ ) to value in update field
* Command .debug moditemvalue added similar .debug modvalue for item case.
* Command .npc set movetype now propertly update spawned in world creature state.
* Command .modify spell renamed to .debug spellmods and restored to working state.
* Commands .account password and .account set password now allow use quoted strings
  for passwords and then now possible set from chat/console passwords with white spaces.
* Many commands converted to new functions without modify functionality
  except better error detection in some cases at wrong command syntax use.

* Also fixed warnings in reload commands after prev. chat commit. Thanks to SkirnirMaNGOS for reporting.
2010-08-09 03:52:11 +04:00
lasyan3
ad7b628ebf [10317] Rogue's energy rate in mangos.conf
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-08-04 02:46:24 +04:00
fdb_
384915b0d0 [10245] Allow have custom starting area team/personal rating.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-07-22 10:29:59 +04:00
VladimirMangos
ff1259b30f [10169] New config option Quests.IgnoreRaid
It allow if enabled (disbled by default) do non-raids quests in raid.
2010-07-09 17:19:43 +04:00
Lynx3d
5e89098a61 [10165] New collission system (vmap) implementation
Important:
* You have to re-extract and assemble vmaps
* Update your config file, new option 'vmap.enableIndoorCheck' added

New features:
* Include WMO+DBC area information for correct subarea identification and indoor check
* Support for WMO liquid (fishing/swimming in cities, instances and oterh WMO based environments)

Technical changes:
* New Bounding Interval Hierarchy (BIH) data structure for better performance
* Referenced model data for reduced memory usage,
  needs more files, but reduces overall file size from ~1.9GB to ~550MB

Additional Authors:
arrai (DBC handling and indoor detection)
faramir118 (windows support and bug investigation)
And of course thanks Vladimir for a lot of patience and support!
2010-07-08 23:17:26 +02:00
crackm
52e4c0ab17 [10146] Implement SCRIPT_COMMAND_PLAY_MOVIE (19)
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-07-03 23:58:41 +04:00
VladimirMangos
969986a596 [10117] New config option set min size of auction deposit fee. 2010-06-28 21:14:44 +04:00
VladimirMangos
2591a2333a [9947] More skinning fixes.
* Restore work with money loot.
* Old code sometime generate empty loot windows for normal loot and sometime skip its.
  Code changed to be more consistent. Added new option Corpse.EmptyLootShow that control
  show empty normal loot window in some cases enabled by default:
   - if creature expected to be lootable but loot generated empty by some reasons.
   - if creature can be skinnable
  If option disabled thne code attempt avoid empty normal loot windows for empty cases.
* Possible fixed case instant despawn non-skinable creature after normal loot complete.
2010-05-21 11:10:59 +04:00
NoFantasy
31ec245b68 [9889] Extend features available for SCRIPT_COMMAND_TALK
* Allow other than Creature to talk.
* Add "buddy-talk", using creature entry in datalong2 (the npc who will do the talk instead of the original source). Value in datalong3 is how far to look for the buddy.
* Add data_flags making it possible to have conversations between units, controlling who does the talking and to whom, including make player do the talking when player is not already the source.

Notes and details are added in the comments for SCRIPT_COMMAND_TALK

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-05-13 16:39:04 +02:00
NoFantasy
b208effca6 [9883] Change SCRIPT_COMMAND_TALK to support CHAT_TYPE_* using enum ChatType
Making data consistent with other, similar tables like EventAI's text tables.
This convert existing data and also adds support for all chat types.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-05-12 14:09:38 +02:00
hunuza
d1130af777 [9849] Implement character database clean up.
This can be disabled by config option.

Flag for clean up can be set for example on client version change.

Signed-off-by: hunuza <hunuza@gmail.com>
2010-05-07 23:08:24 +02:00
DasBlub
492ce567d2 [9767] Add the posibility to keep deleted characters in the database for a while and also add related commands.
Added commands:
* .character deleted list [$guid|$name]
* .character deleted restore $guid|$name [$newname]
* .character deleted delete $guid|$name
* .character deleted old [$keepdays]

Command .character delete renamed to .character erase

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-04-20 22:12:50 +04:00
VladimirMangos
d78117bbc8 [9687] Add to mangos.conf options for daily/weekly reset time.
* Quests.Daily.ResetHour (0..23) for daily quests
* Quests.Weekly.ResetWeekDay (0..6) and Quests.Weekly.ResetHour (0..23) for weekly quests.
* Drop time from character_queststatus_daily and use same way as weekly quest reset time store.
2010-04-07 05:48:14 +04:00
GriffonHeart
fdddf9188a [9686] Implement support weekly quests cooldowns.
Part code provided by zhenya.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-04-07 04:24:51 +04:00
hunuza
dd2dda62a5 [9681] Add config to decide whether character stats should only be saved on logout.
Signed-off-by: hunuza <hunuza@gmail.com>
2010-04-06 16:29:17 +02:00
hunuza
145182a53d [9680] Create new table character_stats for external tools.
Added new config value to define whether it should be updated.

This table will only be updated on logout, not on periodic save.

Signed-off-by: hunuza <hunuza@gmail.com>
2010-04-06 15:03:43 +02:00
VladimirMangos
068fca0d74 [9678] Some comments for realmd data. 2010-04-06 06:24:51 +04:00
tomrus88
68e73f105e Added some info about realm list and auth response packets.
Added few dbc structs and updated related enums.
2010-04-05 13:48:23 +04:00
Zor
7b180e5fa8 [9631] Fix enum names.
Signed-off-by: AlexDereka <dereka.alex@gmail.com>
2010-03-27 22:12:21 +03:00
NoFantasy
29b2c80449 [9577] Implement SCRIPT_COMMAND_DESPAWN_SELF (self = creature in this context)
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-03-12 17:32:24 +01:00
NoFantasy
dbbc45828a [9576] Implement SCRIPT_COMMAND_CREATE_ITEM to use when no spell exist
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-03-12 16:19:34 +01:00
XTZGZoReX
8f0da43638 [9573] Add config option Network.KickOnBadPacket. If enabled, player will be kicked on badly formatted (wrong structure) packet. 2010-03-11 21:46:10 +01:00
VladimirMangos
7fdbe497e9 [9518] Implement account associated execute for RA commands
* Now at login by RA-connection RA-connection use account id/access level
  for commands execute. So at login with moderator access by RA-connection you
  can execute only moderator level commands. For administrator level accounts
  allowed execute only console level commands if new config option RA.Stricted = 0.
  For security reasons by default RA.Stricted = 1.
* RA-connection executed commands now logged for associalted account id
* Some own account related commands allowed execute in RA-connection

NOTE: config version updated because RA.Stricted = 1 not compatible with old
      way work and this can break tools thta use RA-access if it not disabled.
      Yuo will need update mangosd.conf.
2010-03-05 04:24:32 +03:00