[SVN:3425] Earlier and Later...

Discussions on various DOL development features

Moderator: Support Team

[SVN:3425] Earlier and Later...

Postby Leodagan » Thu Jan 01, 2015 12:10 pm

This time it's a lot of "Core Cleanup" since previous update.

The CharacterCreation Packet Handler is full of hardcoded behavior, to handle startup location, to handle Base Class, Starter Equipment and other.

Most of these are now relocated into GameServerScript, there is a new "Startup" Folder that should contains most of scripts used to behave on character creation and other default scripted behavior on a DOL server (like respec gift at specific levels or starting level/money/bps/rr)

Startup Locations are now totally data object based, if you mess with your entries here some character will not load into your game.

This table use simple mechanisms to work from a "basic match" to get to most specific "match" for a character Class, Race, Realm, Region Requested from Client, Client Version, you should be able to customize pretty finely the startup location depending on your custom rules, and you can always use the given StartupLocation.xml as "safe" values to have a default behavior for connecting current clients.

you can use a new command /startuploctest to enter specific value to mimic an older client connecting or a specific class/race combination and retrieve the expected starting point that would apply to this character, there should be multiple record here if you use a lot of "default" match to secure your player login.

Starter Equipment use the same behavior has before, except that it's now cached in memory on server startup to prevent too much database access, given the new usage of startup parameters I needed some command to refresh cached data.

I build a new CommandHandler Attribute "RefreshCommandAttribute" that should be located on any Static method that allows to refresh a cached data. (returned object is displayed in logs...)

using /refresh command will list all available methods through Assemblies that can reload object from database, or rebuild a cache collection.

This will be way easier than writing a custom Command Handler for every object that needs some trigger for refreshing data when some parameters or database records changed !

There is still more improvements to come strictly targeted to lighten up the Core Code and allow more users customization by editing or removing GameServerScripts ;)
User avatar
Leodagan
Developer
 
Posts: 1350
Joined: Tue May 01, 2012 9:30 am
Website: https://daoc.freyad.net
Location: Lyon

Return to “%s” DOL Development Discussion

Who is online

Users browsing this forum: No registered users and 1 guest