Commit Graph
39 Commits
Author SHA1 Message Date
Spp d1677b2db0 Core/Logging: Performance-related tweaks to logging system
All sLog->out* functions (except outCommand atm) are replaced with TC_LOG_* macros.
    Memleak fix
2013-05-13 15:07:36 +02:00
Naios 6191642e59 Core/SmartScripts: Check Conditions also for timed Events
* some cleanup work in SmartScripts.cpp

Core/SmartScripts: Some Corrections to last commit
2013-01-17 20:25:29 +01:00
Vincent_Michael cc65aba789 Update copyright note for 2013.
Happy new year.
2013-01-01 00:41:01 +01:00
Spp b5c9ab8802 Core/Misc: Reduction of header dependencies - Step II 2012-11-20 12:30:30 +01:00
Spp 55ce180f28 Core/Logging: Add Asyncronous logging with Loggers ("What to log") and Appenders ("Where to log") system. Will allow to select to full log some parts of core while others are not even logged.
- Logging System is asyncronous to improve performance.
- Each msg and Logger has a Log Type and Log Level assigned. Each msg is assigned the Logger of same Log Type or "root" Logger is selected if there is no Logger configured for the given Log Type
- Loggers have a list of Appenders to send the msg to. The Msg in the Logger is not sent to Appenders if the msg LogLevel is lower than Logger LogLevel.
- There are three (at the moment) types of Appenders: Console, File or DB (this is WIP, not working ATM). Msg is not written to the resource if msg LogLevel is lower than Appender LogLevel.
- Appender and Console Log levels can be changed while server is active with command '.set loglevel (a/l) name level'

Explanation of use with Sample config:

Appender.Console.Type=1       (1 = Console)
Appender.Console.Level=2      (2 = Debug)

Appender.Server.Type=2        (2 = File)
Appender.Server.Level=3       (3 = Info)
Appender.Server.File=Server.log

Appender.SQL.Type=2           (2 = File)
Appender.SQL.Level=1          (1 = Trace)
Appender.SQL.File=sql.log

Appenders=Console Server      (NOTE: SQL has not been included here... that will make core ignore the config for "SQL" as it's not in this list)

Logger.root.Type=0            (0 = Default - if it's not created by config, server will create it with LogLevel = DISABLED)
Logger.root.Level=5           (5 = Error)
Logger.root.Appenders=Console

Logger.SQL.Type=26            (26 = SQL)
Logger.SQL.Level=3            (2 = Debug)
Logger.SQL.Appenders=Console Server SQL

Logger.SomeRandomName.Type=24 (24 = Guild)
Logger.SomeRandomName.Level=5 (5 = Error)
Loggers=root SQL SomeRandomName

* At loading Appender SQL will be ignored, as it's not present on "Appenders"

* sLog->outDebug(LOG_FILTER_GUILD, "Some log msg related to Guilds")
  - Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomName is found but it's LogLevel = 5 and Msg LogLevel=2... Msg is not logged

* sLog->outError(LOG_FILTER_GUILD, "Some error log msg related to Guilds")
  - Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomeName is found with proper LogLevel but Logger does not have any Appenders assigned to that logger... Msg is not logged

* sLog->outDebug(LOG_FILTER_SQL, "Some msg related to SQLs")
  - Msg is sent to Logger SQL (matches type), as it matches LogLevel the msg is sent to Appenders Console, Server and SQL
    - Appender Console has lower Log Level: Msg is logged to Console
    - Appender Server has higher Log Level: Msg is not logged to file
    - Appender SQL has lower Log Level: Msg is logged to file sql.log

* sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Some msg related to Battelgrounds")
  - Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). As Logger has higher LogLevel msg is not sent to any appender

* sLog->outError(LOG_FILTER_BATTLEGROUND, "Some error msg related to Battelgrounds")
  - Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). Msg has lower LogLevel and is sent to Appender Console
    - Appender Console has lower LogLevel: Msg is logged to Console
2012-08-03 14:20:18 +02:00
Nay 53b561f550 Core/SAI: Remove some unused conditions related code
SAI conditions were implemented in a different way than initially planned

Signed-off-by: Nay <[email protected]>
2012-06-18 00:42:37 +01:00
Shauren 90cacb9ab9 Core/SmartScript: Fixed possible crashes when attempting to use StoreTargetList with a the same list already stored on the same id 2012-03-19 11:43:50 +01:00
Shauren 254256668b Core: Fixed compile without PCH 2012-03-01 23:45:07 +01:00
QAston ce4a4ffe50 Core/Db/Conditions: Add ContidionTarget column which allows selection of objects which will be checked by condition, depending on SourceTypeOrReferenceId.
So far usable only with CONDITION_SOURCE_TYPE_SPELL:
ContidionTarget = 0 - check caster
ContidionTarget = 1 - check explicit target
2012-02-10 23:42:08 +01:00
Subv2112 229d4119e8 Core/SAI: Fixed SMART_ACTION_SET_INVINCIBILITY_HP_LEVEL
Signed-off-by: Subv <[email protected]>
2012-02-02 14:35:45 -05:00
Subv2112 3c4678085c Core/SAI: Removed unused variable: mResumeActionList
Signed-off-by: Subv2112 <[email protected]>
2012-01-06 22:31:38 -05:00
kiper 8299627ed9 Update headers for 2012. HAPPY NEW YEAR!!! 2012-01-01 00:32:13 +01:00
Nay fec3db6e5d Core/SAI: Fix event phases when phase > 2
Again, phase ids != phase masks
2011-10-23 17:50:31 +01:00
kaelima be0b2fcf97 Core/Grid:
- Simplified CellArea calculation (Original author: SilverIce)

- Removed unused code in Cell class (Original author: SilverIce)

- Improve some Visit functions.
2011-10-19 17:40:44 +01:00
megamage c29ff41001 Rename some classes in grid system.
Note: The naming of classes is still confusing. "cell" usually refers to class "Grid", and "grid" usually refers to class "NGrid". But it requires a lot of changes to clean this up.
2011-10-18 10:53:34 -04:00
megamage c9a4efdf8f Fix crash caused by invalid talker in SmartScript. Solve #3082. 2011-09-19 09:24:59 -04:00
Fredi Machado 78e10e9cd0 Core/AI: Cleaning up hungarian notation 2011-08-20 20:31:31 -03:00
QAston b0fe236265 Core: Use new SpellInfo class in core. Sadly, this commit is not compatibile with some of the custom code. To make your code work again you may need to change:
*SpellEntry is now SpellInfo
*GetSpellProto is now GetSpellInfo
*SpellEntry::Effect*[effIndex] is now avalible under SpellInfo.Effects[effIndex].*
*sSpellStore.LookupEntry is no longer valid, use sSpellMgr->GetSpellInfo()
*SpellFunctions from SpellMgr.h like DoSpellStuff(spellId) are now: spellInfo->DoStuff()
*SpellMgr::CalculateEffectValue and similar functions are now avalible in SpellEffectInfo class.
*GET_SPELL macro is removed, code which used it is moved to SpellMgr::LoadDbcDataCorrections
*code which affected dbc data in SpellMgr::LoadSpellCustomAttr is now moved to LoadDbcDataCorrections
2011-07-26 23:09:28 +02:00
Shauren a6708fd595 Core/SAI: Fixed possible crashes in many SAI actions
Closes #1144
2011-06-15 17:33:06 +02:00
kaelima b9e8694540 Core: Continued cleanup
If and for whitespaces.
2011-06-12 02:30:32 +02:00
Shauren 169e4bfa2b Core/SAI: Added missed changes 2011-05-12 10:42:25 +02:00
Shauren 0fbde67824 Core/AI: Some code style cleanup 2011-03-27 12:54:42 +02:00
Shauren 9fea7d9a85 Core/SAI: Fixed another memory leak 2011-03-27 12:54:11 +02:00
Shauren cbb552ead7 Core/SAI: Fixed memory leaks in targeting (lists were not being deleted) 2011-03-26 23:45:23 +01:00
Rat 8b37ac4688 Core/SAI: Fix invoker logic and possible crashes
Signed-off-by: Rat <[email protected]>
2011-02-21 22:23:43 +01:00
Machiavelli 957c69de83 Update copyright note for 2011.
Happy new year.
2011-01-01 15:01:13 +01:00
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
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
Rat cebf8590e3 Core/SmartAI: some error checks for actionlists, and enabled lists for GOs
--HG--
branch : trunk
2010-12-07 20:25:45 +01:00
Rat bb09a4a50f Core/SmartAI: all actions regarding to TIMED_ACTIONLIST will now use targeting:
you can now 'send' a list of timed actions to any targeted creature if it has SmartAI

NOTE: already made script with timed actions should be remade to use self as target

--HG--
branch : trunk
2010-12-07 18:31:34 +01: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 addd762c4d Core: Fix warnings
--HG--
branch : trunk
2010-11-16 14:08:12 +01:00
Rat 2ee0fda94e Core/SmartAI:
added ACTION_CALL_RANDOM_RANGE_TIMED_ACTIONLIST
added ACTION_CALL_RANDOM_TIMED_ACTIONLIST
you can now call in random timed action lists (script type 9 aka Script9)

--HG--
branch : trunk
2010-11-07 22:10:11 +01:00
Rat 54b11cce01 Core/SmartAI: store event invoker when available, and use it for Invoker target
note: dont forget to call script_reset when script is over!

--HG--
branch : trunk
2010-11-04 19:56:39 +01:00
Rat 9df4af80f4 Core/SmartAI: added script type 9 (TimedActionList)
- interrupt spells when entering combat
- fixed reset of timers
- added npc flag modify actions
- added action to call a TimedActionList, default options are: process only OOC and resume after combat

--HG--
branch : trunk
2010-11-03 14:10:16 +01:00
Rat 7ed5f93aed Core/SmartAI: use Target types where possible, instead of simple self target
- removed some obsolete comments
- added errorlog if a special action uses a non-smart scripted creature

--HG--
branch : trunk
2010-11-02 13:13:54 +01:00
Rat d568fcf273 Core/SmartAI: remade 'Say' handler, more simple, more usable, you can now script multiple npc conversations from one script
-also added 'entry' to text_over event

--HG--
branch : trunk
2010-11-01 11:00:53 +01:00
Rat afe683aff4 Core/AI: fix debug / nix build
--HG--
branch : trunk
2010-10-27 23:19:35 +02:00
Rat 5cb119e617 Core/AI: implemented SmartScripts System (still beta) not 100% complete
WARNING: Use scripts at own risk. You were warned.
NOTE0: creature, gameobject, areatrigger type scripts should be fully functional
NOTE1: has no effect on any core related stuff if not using any SmartScript
NOTE2: all event/action/etc descriptions can be found in SmartScriptMgr.h

SmartScripts is a reloadable DB-Sript system, with full control for special scripting,
like escorting, following, complex combat handling, pre-stored AI templates(caster, turret, etc) and much more
with a total of 66 events, 78 actions, 22 target types, and can be easily extended

--HG--
branch : trunk
2010-10-27 21:01:47 +02:00