I've been trying, for a few days to get some multi's added into the game... Had no problem with adding them to the HousePlacementTool.cs, no problem adding the multis to the Multi.mul, and edited the Cliloc files to reflect their titles... But I have some odd things going on...

I used 0x147C and 0x147D for the house plots. They don't get stairs generated (less than 0x1D00) and when I try to edit the houses, I can, but I can't clear them... Sometimes it actually locks up the client totally when I place them.

I keep thinking there is a buffering issue or something. Like the HouseFoundations.cs doesn't allocate enough to keep up with the size of the plots. When I changed those from 17 to 29, I didn't see much improvement.

Has anyone tried to tackle this before? I would like to have bigger plots and also be able to replace keeps and castles (yes, I am aware that keeps aren't perfectly rectangular).

Thanks!
 
well you see this in HousePlacement.cs
Code:
if (multiID >= 0x13EC && multiID < 0x1D00)
    HouseFoundation.AddStairsTo(ref mcl); // this is a AOS house, add the stairs
so you can just add onto that.
Code:
if ((multiID >= 0x13EC && multiID < 0x1D00) || (multiID >= 0x147C && multiID <= 0x147D ))
    HouseFoundation.AddStairsTo(ref mcl); // this is a AOS house, add the stairs

About the locking up part, not sure
 
Thanks! That should take care of the stairs in front!
I'll make sure to keep the logs the next time I fire it up and post them here.
Time to go help my daughter make dinner for my wife though! (Being mothers day and all!)
 
I rebuilt everything using current ServUO Master (from yesterday) and the 7.0.50.0 Client and installed it all to a 2012R2 server running on ESXI 6.5. I've allocated 8GB RAM, 4 CPUs and the data is on an SSD. (I hate long pauses while world is saving)
System is running same client with same Multi.mul / idx and Cliloc.enu files with my new multi's injected today.
When I place the one of the custom plots (24x24 or 30x30) or swap a castle or keep for one of them I get the following error:

System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Server.Multis.DesignStateDetailed..ctor(Int32 serial, Int32 revision, Int32 xMin, Int32 yMin, Int32 xMax, Int32 yMax, MultiTileEntry[] tiles)
at Server.Multis.DesignStateDetailed.CompressionThread()


The other issue seems to be that they don't preview while trying to place like the other houses do. That didn't start till I got 7.0.50 running though.
 
Sorry it took so long. Life has been a little hectic since I had to go get a new cert for my job.
Here is the dsd exceptions log from when the server is run in debug. This is right as I place the house. It keeps going once you try to edit, clear, save, etc. I don't think the script is set up to handle anything bigger than an 18x18...

System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Server.Multis.DesignStateDetailed..ctor(Int32 serial, Int32 revision, Int32 xMin, Int32 yMin, Int32 xMax, Int32 yMax, MultiTileEntry[] tiles) in c:\SERVUO\Scripts\Multis\HouseFoundation.cs:line 2687
at Server.Multis.DesignStateDetailed.CompressionThread() in c:\SERVUO\Scripts\Multis\HouseFoundation.cs:line 2853
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Server.Multis.DesignStateDetailed.Clear(Byte[] buffer, Int32 size) in c:\SERVUO\Scripts\Multis\HouseFoundation.cs:line 2554
at Server.Multis.DesignStateDetailed..ctor(Int32 serial, Int32 revision, Int32 xMin, Int32 yMin, Int32 xMax, Int32 yMax, MultiTileEntry[] tiles) in c:\SERVUO\Scripts\Multis\HouseFoundation.cs:line 2593
at Server.Multis.DesignStateDetailed.CompressionThread() in c:\SERVUO\Scripts\Multis\HouseFoundation.cs:line 2853
 
Well you will need to check the line 2687 in the HouseFoundation.cs
it should be this line
Code:
m_PlaneBuffers[plane][index] = (byte)(mte.m_ItemID >> 8);

you should check wich of the 2 is out of range
 
How would you know which one (assuming your talking about Plane vs Index) is out of range, and where would I find the actual values? Is it something that gets coded into the multi.mul when you import your creation?
If not, both of the houses get the same error when placing.
[doublepost=1527546572][/doublepost]I think I may have found the issue.

I changed the following and everything seems to work!

Ln. 2581 to: m_PlaneBuffers =newbyte[0x1156];

The math... It was 0x400, which makes sense for 18x18 (324) plus edges (76)… I gave it a little bit extra, just in case.
, so, 30x30 (900) + edges, (124) = 1024.

It appears now, that there are no errors when I place or edit the house!!!
 
Back