Commit graph

10 commits

Author SHA1 Message Date
gmriggs
678681fbfa Adding methods to QuestManager (#1052)
* Fixing stance shuffling / refactoring moveto chains a bit

* Fixing vendor rotate

* Removing debug message

* Fixing stance change for player activating switches

* Adding methods to QuestManager

* Adding TimeSpanExtensions

* Adjusting walk/run threshold

* Adding quest restrictions for portals, and portal spawning triggered by monster deaths

* Updating function names

* Adding HasQuestCompletes

* Adding support for character titles to emotes

* Added emote hooks for portal use and creature death

* Adding KillTaunt and NewEnemy, updating questName@comment format

* Updating broadcast emotes

* Updating InqQuestSolves

* Adding fixes for Aerfalle

* Fixed rolling balls of death
2018-10-13 03:57:04 -04:00
Mag-nus
b7ca774e53 WeeniePrecaching (#1047)
* Landblock Preloader cleanup

* WorldDatabase spelling fixes

* Added CacheAllWeeniesInParallel

* Add WeeniePrecaching

* Improved WorldDatabase Caching

Null entries are now cached as well to prevent excessive queries to the database to pull records that do not exist.

The callers should raise warnings when a record doesn't exist.

* WorldDatabasePrecaching (~400MB)
2018-10-09 11:52:00 -04:00
kdmxp256
561fd5d4ae
Landblock Preloading PoC (#1038)
* Landblock Preloading PoC

* Add TODO comment

* Reformat RawLandblockId array

* Requested changes

* Third change
2018-10-02 09:53:24 -07:00
Mag-nus
b5df7bb060
Usage of DateTime/PhysicsTimer cleaned up across the board (#1016)
* Remove duplicate Timer from Physics.Common

* Clean up ACE.Common.Time and its usages

* WorldObject: Fix CreationTimestamp

* Remove PhysicsTimer which was just a class wrapping a double

* WorldManager.UpdateWorld Stopwatch Usage change

Before we were calculating the elapsed seconds manually with this:
(double)worldTickTimer.ElapsedTicks / Stopwatch.Frequency

The stopwatch can already do this for us via this:
worldTickTimer.Elapsed.TotalSeconds

* WorldManager UpdateWorld Summary improvement

* DateTime based tick removed from Tick() arguments

* No need to pass DateTime.UtcNow.Ticks to Session.Tick

* LastMovementBroadcastTicks was obsolete

Probably souldn't be referencing WorldManager.PortalYearTicks as well.

If we need this in the future, it's probably better to reference DateTime.UtcNow or Time.GetUnixTime()

* Fix WorldObject.Tick() overhead

* Revert "WorldObject: Fix CreationTimestamp"

This reverts commit 457bebc48e.

* PhysicsTimer stuff

Move the Timer back to the Physics namespace and rename it PhysicsTimer

Change some references from PhysicsTimer to DateTime.UtcNow

* timeBeginPeriod and timeEndPeriod added for Windows to improve timer resolution

* ServerManager Shutdown was using 100% cpu

* Fix the usage of CreationTimestamp

* CharacterHandler should not be setting default values. Player ctor should.

* EmoteManager switched from PhysicsTimer to DateTime.UtcNow

* Use PropertyInt and not PropertyFloat for LoginTimestamp

* Fix Session GetAll() to also include sessions that are at the character selections creen
2018-09-15 15:26:10 -05:00
Mag-nus
70decf7361
Property manager logging tweaks + misc (#981)
* UpdateWorld sleep/tickCalc should be last thing loop does

* Don't show decimal places for debug logs that show time elapsed

* PropertyManager less debug output

Also, Propertymanager should be init after the database is init, and before the rest of the server comes up.

Other items in the server might reference properties from the PropertyManager.
2018-08-29 15:36:49 -05:00
OptimShi
58020a3077 Text Encoding Updates (#838)
* Added CP1252 Text Encoding

* Changelog
2018-07-01 20:47:03 -07:00
Evan Merlock
e406ef4853 Add a configurable property storing database to resolve issue #753 (#820)
* Added the configuration database base script.

This should initialize the config database to hold different values that can be changed during the server operation.

* Added database models and connection.

This should begin to add in the new configuration database and its models so that it can be accessed from the server.

* Added boolean statistic access methods.

Modified the database file so that it was properly casting to a boolean and added the methods into the server configuration database API.

* Added the ability to access/modify integers in the config database.

* Added the ability to access/modify floating point variables in the configuration database

* Added the ability to access/modify string values in the configuration database

* Added the ServerConfigurationDatabase to the DatabaseManager.

* Added in the initial caching layer for configuration

* Added the ability to modify cached items.

* Changed from regular dictionaries to concurrent dictionaries.

* Added in the ability for the ConfigurationManager to self-update from the database.

* Added fallback parameters instead of forcing a default

* Added customizable vitae statistics.

This is the first big stat that can be modified. It is a float, so more floats should now work when they have support added.

* Updated the configuration manager to separate methods and ensure semantics are correct.

* Added command to fetch float value from server

* Add property for XP/Lum multipler.

* Welcome message/MOTD is now configurable from the database.

* Added string modification commands

* Database is no longer required for server configuration.

* Added in all modification/fetch commands and a resync command

* Renamed ConfigurationManager -> PropertyManager as this removes ambiguity

* Changed logging string to be more consistent

* Pass w/ StyleCop

* Added comments to the property manager

* Added the ability to disable caching fallback values.

This can be used for default settings or if a fetch with the default fallback should not cache (ie fetching xp_multipler before xp_multiplier has been fetched from the DB/the default value has been given, and therefore xp_multiplier is fetched as 0 and cached as 0). This functionality should be used for server commands.

* The admin commands now properly obey cacheFallback restrictions

* Added initial default property handling.

* Moved to using constant values as defaults.

* Switched to using a Dictionary for resolution of default properties

* Added warning when the server configuration database is not loaded.

* Corrected MOTD default string

* Renamed some of the database connection objects and changed float -> double and int -> long

* Fixed admin commands not being named correctly

* Fixed spelling error

* Config tables now lie in the shard database

* Added descriptions to properties across the board that can be analyzed through admin commands

* Removed property from PlayerXP file

* Removed vitae properties from EnchantmentManager

* Added null checks to make output nicer

* Added command to modify property descriptions

* Fixed string not being stored properly in the DB and crashing the server

* Wrapped the old ServerPropertyDatabase into SerializedShardDatabase

* Fixed ShardDbContext having a modified OnConfiguring method
2018-06-20 21:58:17 -04:00
Ty Conner
5bddbc4351
Changes to Links and Generators, misc other changes (#755)
* Changes to Links and Generators, misc other changes

* Debug cleanup

* Code Dedup
2018-04-23 13:28:27 -04:00
Mag-nus
07aaaf903a ACE.Diagnostics removed 2018-03-06 04:37:56 -05:00
Mag-nus
a162905b1c WIP: Switch Database system to Entity Framework Core, DB First (#633)
* AuthenticationDatabase switched to Entity Framework Core, DB First

* Adds AsNoTracking() for performance and implements CreateAccount() instead of AddAccount()

* woops

* Auth db no longer needs to be init, or inherit from Database

* test fix hopefully

* Database objects in ACE.Entity would no longer be required

* Major WIP

* more progress

* AuthenticationDatabase switched to Entity Framework Core, DB First

* Adds AsNoTracking() for performance and implements CreateAccount() instead of AddAccount()

* woops

* Auth db no longer needs to be init, or inherit from Database

* test fix hopefully

* Database objects in ACE.Entity would no longer be required

* Major WIP

* more progress

* include missing CharacterCreateInfo

* GetCharacters changes to show how we can use the propertybag for these values

* Lot of progress with the WorldObject code

* comment add

* add biota to CreateWorldObject for loading inv from db
2018-03-06 04:35:48 -05:00
Renamed from Source/ACE.Server/ACE.cs (Browse further)