Hi all,

I'm working on a pre-aos uor style server hosted in europe. And i have a question regarding objectpropertylists (opl) which are disabled by default because of the characterflags that are set when using ExpansionInfo.Uor. I found out that when setting objectpropertylist.enabled = true; will give me some sort of opl but just no information as a side effect a lot of information disappears. I figured that setting the characterflag on expansioninfo to AOS would solve this but this will also add necromancy skills and other to the skill sheet some books in your paperdoll etc.

Is there a way around this or is it simply not possible to use opl but keep the old paperdoll and skills list?
 
In the core under Expansion.cs there are ways to edit that around to force the property list to show but still be old school.

For vanquishing and stuff to show you will need to code that yourself but I can help along the way.
 
Would this solve the spellbooks not being filled and not showing how many spells inside or is this also custom work?
 
It will show all that stuff
[doublepost=1481645443][/doublepost]Just not weapon power, accuracy, using the old system
 
Are you familiar with compiling the core? Ill post a work around. This may not be the best method but it worked for me.

In expansion.cs FIND

Code:
new ExpansionInfo(
                    1,
                    "The Second Age",
                    ClientFlags.Felucca,
                    FeatureFlags.ExpansionT2A,
                    CharacterListFlags.ExpansionT2A,
HousingFlags.None),

Replace it with

Code:
new ExpansionInfo(
                    1,
                    "The Second Age",
                    ClientFlags.Felucca,
                    FeatureFlags.ExpansionT2A,
                    CharacterListFlags.ExpansionAOS,
HousingFlags.None),

After you do this RECOMPILE the core.

Make sure in the config file you have your expansion set to T2A

you will also need to find CurrentExpansion.cs in Misc

find

Code:
ObjectPropertyList.Enabled = Core.AOS;

replace with

Code:
ObjectPropertyList.Enabled = true;
 
Are you familiar with compiling the core? Ill post a work around. This may not be the best method but it worked for me.

In expansion.cs FIND

Code:
new ExpansionInfo(
                    1,
                    "The Second Age",
                    ClientFlags.Felucca,
                    FeatureFlags.ExpansionT2A,
                    CharacterListFlags.ExpansionT2A,
HousingFlags.None),

Replace it with

Code:
new ExpansionInfo(
                    1,
                    "The Second Age",
                    ClientFlags.Felucca,
                    FeatureFlags.ExpansionT2A,
                    CharacterListFlags.ExpansionAOS,
HousingFlags.None),

After you do this RECOMPILE the core.

Make sure in the config file you have your expansion set to T2A

you will also need to find CurrentExpansion.cs in Misc

find

Code:
ObjectPropertyList.Enabled = Core.AOS;

replace with

Code:
ObjectPropertyList.Enabled = true;


Oh yes i tried this. And that works alright but this will give your client several aos options enabled. Like book of power in paperdoll and aos skills on the skills gump.
 
But it wont let you pick those skills on creation. This is as close as I got without actually editing the client. (Not recommended)
 
Alright i will do this then, because having opl on is something i would want because it seems new conten (magincia bazaar for instance) is somewhat relying on it. Or the maginciaplotstones will show (a grave stone).
I'm using justuo sadly as i found that repo first before i stumbled on servuo and found out it is much better supported atm.

But porting new features that i want from servuo to justuo is not too much work so its easier for me to stick with justuo i guess.
 
In the core under Expansion.cs there are ways to edit that around to force the property list to show but still be old school.

For vanquishing and stuff to show you will need to code that yourself but I can help along the way.

Could you give me some guidance in adding the weapon stuff to the opl?
 
usually you'll use the GetProperties method, and it likely already has the method in the script.

you can use:

list.Add( " Hello "); // simple string
list.Add( "Hello {0}", playername ); // the 0 is replaced by the player's name, but this isn't functional code

Alright i will do this then, because having opl on is something i would want because it seems new conten (magincia bazaar for instance) is somewhat relying on it. Or the maginciaplotstones will show (a grave stone).
I'm using justuo sadly as i found that repo first before i stumbled on servuo and found out it is much better supported atm.

But porting new features that i want from servuo to justuo is not too much work so its easier for me to stick with justuo i guess.
Myself and a few others put in work to try and keep justuo up to date with servuo but it became obvious that there was no point to do so and in the end I gave up.

if you can, I would strongly suggest starting over with servuo as it's had a lot of updates and new features implemented that would take a lot of work to add to justuo at this point
 
Would that argument on switching to servuo still stand for a pre-aos server. It seems a lot of tweaks still have to be made also when you using servuo as a base. And my shard is starting to populate so i would hate to start over just now
 
What kind of changes do you mean by moving to .net 4.6 because even the current version will build just fine with .net 4.6. Using new functionality for core tasks?
 
What kind of changes do you mean by moving to .net 4.6 because even the current version will build just fine with .net 4.6. Using new functionality for core tasks?

In the coming weeks, with your feedback we will be upgrading ServUO to .net 4.6.1

What does this mean? Well it means we will have access to a plethora of newer framework features that are not available to us right now such as c#6, roslyn, async etc. This will make it easier for us to develop cleaner code and faster too.

We have been using .net 4.0 for far too long, it is almost a decade old now. It is time we join others in the future!

Now since it is newer will it be more resource intensive? I am just wondering.

Nope, theoretically it should run lighter and faster. I already see gains when the server is compiling the scripts assembly, it is assembled about 50% faster.

sorry for all the quotes, just easier that way
 
Would that argument on switching to servuo still stand for a pre-aos server. It seems a lot of tweaks still have to be made also when you using servuo as a base. And my shard is starting to populate so i would hate to start over just now
I would yes, especially if you want to keep up to date with changes that will keep your shard working with the newest clients
 
What kind of changes do you mean by moving to .net 4.6 because even the current version will build just fine with .net 4.6. Using new functionality for core tasks?

Yes, you can build the server using .net 4.6 simply by changing a setting in visual studio, however, the scripts assembly would not be built using 4.6 when you start up the server. That required the script compiler to be changed to using a newer codedom.

So previously, if you tried doing something like null propagation or auto property initialization in a script the server would not boot. Now all of those niceties in c#6 is available to use. It will also mean faster development in the future.
 
Alright sounds like something i should do, if i prepare a servuo shard so that it has the same functionality as my current justuo shard.
Is there a way to migrate accounts an characters or do i reallyhave to start over?

I think i might get away with compensating existing beta testers but it would be cool if they could at least keep there existing accounts and characters.
 
Serialization between the two projects is the same in the core, thep roblem is when you need to load your Scripts - there is a huge chance that your versions are slightly different to ServUO's stock, so you'll have to delete some things, but not all.

If it asks you to delete all PlayerMobiles, that's when you have a problem, but if not, you should be able to transfer.

Accounts files should transfer fine between any fork of RunUO as they have been largely unchanged and rely on XML format, which doesn't require byte-accuracy when writing or reading the data.
 
Serialization between the two projects is the same in the core, thep roblem is when you need to load your Scripts - there is a huge chance that your versions are slightly different to ServUO's stock, so you'll have to delete some things, but not all.

If it asks you to delete all PlayerMobiles, that's when you have a problem, but if not, you should be able to transfer.

Accounts files should transfer fine between any fork of RunUO as they have been largely unchanged and rely on XML format, which doesn't require byte-accuracy when writing or reading the data.

So i should see what kind of differences i have in playermobile.cs?
Another question: Which files do i need to copy. The scripts i will go through by hands but i'm not very familiar with justuo/servuo so i do not know what files are used to store character and item information. Is this the saves folder?
 
Back