Thank you very much! I will test it and let you know!

The main goal for now is avoiding server crashes. The rest, later..

At this point a lot of reasons can justify the backpack missing, like: my servuo not completely configured to allow using the enhanced client. You know, Pub57 :cool:

Thanks again!

**EDIT #1**

Ok I just remarked I have a couple of log files in my folder.. at the time of the daily restart and at 2 others I did..

I updated the code in BoxCore.cs..

Starting the server it is ok, restarting it gives this error..


Code:
Server Crash Report
===================

ServUO Version 0.5, Build 8539.8039
Operating System: Microsoft Windows NT 6.2.9200.0
.NET Framework: 4.0.30319.42000
Time: 2023-05-22 11:24:36 AM
Mobiles: 17203
Items: 161373
Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
   at Server.Services.UOBlackBox.BoxCore.EventSink_Shutdown(ShutdownEventArgs e) in C:\GamingSVR\ServUO\Scripts\Services\UOBlackBox\Box\BoxCore.cs:line 142
   at Server.ShutdownEventHandler.Invoke(ShutdownEventArgs e)
   at Server.EventSink.InvokeShutdown(ShutdownEventArgs e) in C:\GamingSVR\ServUO\Server\EventSink.cs:line 2087
   at Server.Core.HandleClosed() in C:\GamingSVR\ServUO\Server\Main.cs:line 351
   at Server.Core.Kill(Boolean restart) in C:\GamingSVR\ServUO\Server\Main.cs:line 325
   at Server.Misc.ServerConsole.ProcessCommand(String input) in C:\GamingSVR\ServUO\Scripts\Misc\ConsoleCommands.cs:line 199
   at Server.Misc.ServerConsole.ProcessCommand() in C:\GamingSVR\ServUO\Scripts\Misc\ConsoleCommands.cs:line 85
   at Server.Timer.DelayCallTimer.OnTick() in C:\GamingSVR\ServUO\Server\Timer.cs:line 700
   at Server.Timer.Slice() in C:\GamingSVR\ServUO\Server\Timer.cs:line 409
   at Server.Core.Main(String[] args) in C:\GamingSVR\ServUO\Server\Main.cs:line 673

Clients:
- Count: 0

I added a backpack validation at line 42 and it seems it fixed the issue..

C#:
        private static void EventSink_Shutdown(ShutdownEventArgs e)
        {
            var players = World.Mobiles.Values.ToList().FindAll(m => m is PlayerMobile);

            for (int i = 0; i < players?.Count; i++)
            {
                if (players[i].Backpack != null) // check for backpack
                    if (players[i].AccessLevel > StaffAccess && players[i].Backpack.FindItemByType(typeof(BlackBox)) is BlackBox box)
                    {
                        box.Session?.EndBox();
                    }
            }

            ArtCore.SaveStaticArtInfo();
        }

NOTE: I am receiving these errors only since the connection attempts with the EC client

Thinking: why is it done when no client connected

Will keep you informed for the first one!

**EDIT #2**

Fix you sent for login: same error, but at line 91 this time.. EventSink_Login().. for the same reason. EC client is true in my client.cf flie and no error on manual shutdown/restart..

--
 
Last edited:
I'll investigate further from information provided, though I will preface this with that if the enhanced client becomes a hassle, I will more than likely exclude it from the project!
 
that is what I was thinking.. disabling it with a client version check and I can probably investigate more later!

Thanks for your time! :)
 
Hello!

Little update..

The character used to login with the enhanced client still receives black box null reference errors when trying logging in with the regular client. The second character of the same account is good BUT the player did not try EC with this character.
 
The following error cannot be resolved
UO Black Box [Static Art Load Failed : Restart Server as Administrator!]

What I tried

- Import bmp to 65000 or later in UOFiddler and Save
 - mul two files into the folder that ServUO reads, and also into the client's folder.
 - I also tried converting to COP and trying it, since the above method didn't work.
- Start ServUO.exe with administrator privileges
- Delete TheBlackBox from Saves and start again


my mul folder was missing below.
I added these and it worked.
- artLegacyMUL.uop
- artidx.mul
- art.mul

---

I really look forward to this as the next useful plugin!

The button in the upper left hand corner of the screen gives you Tips on what the buttons mean.
My personal thought was that it would be nice if it was just a little more intuitive, as I have to remember it.
 
Last edited:
Any suggestion for running it under Linux?

Getting compilation errors for all the

C#:
foreach (var (x, y) in stuff)
{
    ...
}

Any hint?

-thanks
I can't figure out how to install GumpArt, where to put them?
Still need help?

It's in the gump art files of the client.
You can use a software like UOFiddler to read and edit the files.
This will create a patch for your client you'll need to add to all clients playing on the shard.

Contact me on Discord if you're on it! I'll help! I'll be on my computer in about an hour!

-K-
 
Any suggestion for running it under Linux?

Getting compilation errors for all the

C#:
foreach (var (x, y) in stuff)
{
    ...
}

Any hint?
I didn't get the errors. I use following dotnet.
Code:
$ dotnet --version
7.0.113

I think UOBlackBox contain some win-oriented code. they don't required Linux/macOS.
here is a patch.

But I have a problem. maps don't show correctly. why?

スクリーンショット-2023-10-31-154515.gif
 

Attachments

  • UOBlackBoxVers-LinuxMacOS.txt
    3 KB · Views: 4
If someone could point me in the right direction on this. Where do the BMP in the GumpArt folder go? It really does not say where they go.
 
Any suggestion for running it under Linux?

Getting compilation errors for all the

C#:
foreach (var (x, y) in stuff)
{
    ...
}

Any hint?

-thanks

Still need help?

It's in the gump art files of the client.
You can use a software like UOFiddler to read and edit the files.
This will create a patch for your client you'll need to add to all clients playing on the shard.

Contact me on Discord if you're on it! I'll help! I'll be on my computer in about an hour!

-K-
Korasek, you are right. I got same errors.
Previously, I'm using Pub58.
Pub58-WIP uses dotnet compiler.
So I never get this error.
But Pub57 use MONO compiler. So We got following error:
Errors:
+ Services/UOBlackBox/Tools/MapTool/HeatMapTool.cs:
CS0230: Line 97: Type and identifier are both required in a foreach statement
CS1525: Line 97: Unexpected symbol `in'
CS1525: Line 97: Unexpected symbol `)'
+ Services/UOBlackBox/Tools/Utility/GumpCore.cs:
CS0230: Line 296: Type and identifier are both required in a foreach statement
CS1525: Line 296: Unexpected symbol `in'
CS1525: Line 296: Unexpected symbol `)'
CS0230: Line 315: Type and identifier are both required in a foreach statement
CS1525: Line 315: Unexpected symbol `in'
CS1525: Line 315: Unexpected symbol `)', expecting `;' or `}'
+ Services/UOBlackBox/Box/GameInfo.cs:
CS0230: Line 236: Type and identifier are both required in a foreach statement
CS1525: Line 236: Unexpected symbol `in'
CS1525: Line 236: Unexpected symbol `)'
CS0230: Line 248: Type and identifier are both required in a foreach statement
CS1525: Line 248: Unexpected symbol `in'
CS1525: Line 248: Unexpected symbol `)'
CS0230: Line 260: Type and identifier are both required in a foreach statement
CS1525: Line 260: Unexpected symbol `in'
CS1525: Line 260: Unexpected symbol `)'
CS0230: Line 272: Type and identifier are both required in a foreach statement
CS1525: Line 272: Unexpected symbol `in'
CS1525: Line 272: Unexpected symbol `)'
CS0230: Line 284: Type and identifier are both required in a foreach statement
CS1525: Line 284: Unexpected symbol `in'
CS1525: Line 284: Unexpected symbol `)'
CS0230: Line 296: Type and identifier are both required in a foreach statement
CS1525: Line 296: Unexpected symbol `in'
CS1525: Line 296: Unexpected symbol `)'
CS0230: Line 308: Type and identifier are both required in a foreach statement
CS1525: Line 308: Unexpected symbol `in'
CS1525: Line 308: Unexpected symbol `)'
CS0230: Line 320: Type and identifier are both required in a foreach statement
CS1525: Line 320: Unexpected symbol `in'
CS1525: Line 320: Unexpected symbol `)'
Wilson, We would be very happy if you could fix this issue.
Additionaly, please following modifications:
1. use `/` as file separator, not '\'. There is no adverse effect in Windows environment. but Linux/macOS are require it.
2. In macOS/Linux environments, the method IsUserAdministrator() should always return true.
Even macOS/Linux users want to use this great tool. Thanks.
 
*Made a small update to Version 1.0.0.16 > Updated BoxStatic to not show ObjectProperties!

Re Download if you need this now, or wait until next version!
 
Back