zerodowned

Moderator
Not sure if it has to do with the issue but I made a change to Server/Mobile ( doesn't seem like this should cause a problem and hasn't caused any issues on a fresh install but this problem started happening shortly after I made the change )

So, when xml spawner spawns camps (mainly ElfBrigandCamp and OrcCamp ) it seems to cause a crash, almost every time.

If i add it manually, no problem. But if I tell the xmlspawner to Respawn, it crashes.
When the server crashes, it will make me delete all camps before I can get it fully compiled and running....if the server runs long enough for the spawner to spawn a new camp.

Other times it will run but messages like the one below keep popping up in the compiler and eventually the server crashes, (see crash quote below )

Note: I noticed one time that it spawned a staircase instead of a cookpot and campfire.

03:24:37 When spawning 0x4002C7B8 "ElfBrigandCamp", System.NullReferenceExceptio
n: Object reference not set to an instance of an object.
at Server.MultiData.GetComponents(Int32 multiID) in c:\Program Files\ServUO\S
ervUO-master\Server\MultiData.cs:line 31
at Server.Items.BaseMulti.get_Components() in c:\Program Files\ServUO\ServUO-
master\Server\Items\BaseMulti.cs:line 102
at Server.Map.OnEnter(Item item) in c:\Program Files\ServUO\ServUO-master\Ser
ver\Map.cs:line 964
at Server.Item.MoveToWorld(Point3D location, Map map) in c:\Program Files\Ser
vUO\ServUO-master\Server\Item.cs:line 1811
at Server.Mobiles.BaseXmlSpawner.AddSpawnItem(XmlSpawner spawner, Object invo
ker, SpawnObject theSpawn, Item item, Point3D location, Map map, Mobile trigmob,
Boolean requiresurface, List`1 spawnpositioning, String propertyString, Boolean
smartspawn, String& status_str)
at Server.Mobiles.BaseXmlSpawner.AddSpawnItem(XmlSpawner spawner, SpawnObject
theSpawn, Item item, Point3D location, Map map, Mobile trigmob, Boolean require
surface, List`1 spawnpositioning, String propertyString, Boolean smartspawn, Str
ing& status_str)
at Server.Mobiles.XmlSpawner.Spawn(Int32 index, Boolean smartspawn, Int32 pac
krange, Point3D packcoord, Boolean ignoreloopprotection)

crash message
Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.MultiData.GetComponents(Int32 multiID) in c:\Program Files\ServUO\ServUO-master\Server\MultiData.cs:line 31
at Server.Items.BaseMulti.get_Components() in c:\Program Files\ServUO\ServUO-master\Server\Items\BaseMulti.cs:line 102
at Server.Map.OnLeave(Item item) in c:\Program Files\ServUO\ServUO-master\Server\Map.cs:line 997
at Server.Item.Delete() in c:\Program Files\ServUO\ServUO-master\Server\Item.cs:line 4200
at Server.Timer.DelayCallTimer.OnTick() in c:\Program Files\ServUO\ServUO-master\Server\Timer.cs:line 607
at Server.Timer.Slice() in c:\Program Files\ServUO\ServUO-master\Server\Timer.cs:line 386
at Server.Core.Main(String[] args) in c:\Program Files\ServUO\ServUO-master\Server\Main.cs:line 621
 
camp spawn locations
# Bad spawns : 1/27/2015 3:14:36 AM
# Format: X Y Z F Name

830 1206 -70 Ilshenar Magecamp
567 807 -74 Ilshenar Magecamp
1668 1512 -110 Malas elfbrigandcamp
1186 1223 -20 Ilshenar Bankercamp
942 1154 -90 Malas elfbrigandcamp
3700 2699 20 Trammel brigandcamp
3753 2705 40 Trammel brigandcamp
3764 2662 62 Trammel brigandcamp
821 675 0 Trammel Orccamp
821 675 0 Trammel Ratcamp
1042 1394 0 Trammel Orccamp
1042 1394 0 Trammel Ratcamp
2540 130 0 Trammel Orccamp
2540 130 0 Trammel Ratcamp
1590 1281 -90 Malas elfbrigandcamp
2403 630 -90 Malas elfbrigandcamp
1530 999 0 Trammel Orccamp
1530 999 0 Trammel Ratcamp
1519 1019 -6 Ilshenar Healercamp
2349 722 0 Felucca Orccamp
2349 722 0 Felucca Ratcamp
3602 2815 28 Felucca Orccamp
3602 2815 28 Felucca Ratcamp
2085 2664 10 Trammel humanbrigandcamp
1406 422 -90 Malas elfbrigandcamp
1871 1076 0 Trammel Orccamp
1871 1076 0 Trammel Ratcamp
788 1894 0 Trammel Orccamp
788 1894 0 Trammel Ratcamp
1064 2488 0 Trammel Orccamp
1064 2488 0 Trammel Ratcamp
2044 2323 0 Trammel Orccamp
2044 2323 0 Trammel Ratcamp
2103 3371 0 Trammel Orccamp
2103 3371 0 Trammel Ratcamp
1939 1310 0 Trammel Orccamp
1939 1310 0 Trammel Ratcamp
2349 722 0 Trammel Orccamp
2349 722 0 Trammel Ratcamp
961 924 -37 Ilshenar Bankercamp
1358 498 3 Ilshenar Healercamp
1717 606 17 Ilshenar Orccamp
4480 1439 0 Felucca Orccamp
4480 1439 0 Felucca Ratcamp
1152 3471 0 Felucca Orccamp
1152 3471 0 Felucca Ratcamp
1530 999 0 Felucca Orccamp
1530 999 0 Felucca Ratcamp
788 1894 0 Felucca Orccamp
788 1894 0 Felucca Ratcamp
1871 1076 0 Felucca Orccamp
1871 1076 0 Felucca Ratcamp
1064 2488 0 Felucca Orccamp
1064 2488 0 Felucca Ratcamp
2103 3371 0 Felucca Orccamp
2103 3371 0 Felucca Ratcamp
2044 2323 0 Felucca Orccamp
2044 2323 0 Felucca Ratcamp
1939 1310 0 Felucca Orccamp
1939 1310 0 Felucca Ratcamp
2137 2745 20 Trammel humanbrigandcamp
2110 2802 5 Trammel humanbrigandcamp
2063 894 0 Trammel elfbrigandcamp
2548 1173 0 Trammel Orccamp
2548 1173 0 Trammel Ratcamp
3170 672 0 Trammel Orccamp
3170 672 0 Trammel Ratcamp
4480 1439 0 Trammel Orccamp
4480 1439 0 Trammel Ratcamp
1152 3471 0 Trammel Orccamp
1152 3471 0 Trammel Ratcamp
821 675 0 Felucca Orccamp
821 675 0 Felucca Ratcamp
2540 130 0 Felucca Orccamp
2540 130 0 Felucca Ratcamp
1042 1394 0 Felucca Orccamp
1042 1394 0 Felucca Ratcamp
3170 672 0 Felucca Orccamp
3170 672 0 Felucca Ratcamp
2548 1173 0 Felucca Orccamp
2548 1173 0 Felucca Ratcamp
 
camp spawn locations
I had an issue once with the :base(0x10EE) if it not like that it spawns a staircase. not sure if this at all helps though
Code:
public class HumanBrigandCamp : BaseCamp
{
private Mobile m_Prisoner;
[Constructable]
public HumanBrigandCamp()
: base(0x10EE) //garbage at the center
{
}
 
I had an issue once with the :base(0x10EE) if it not like that it spawns a staircase. not sure if this at all helps though
Code:
public class HumanBrigandCamp : BaseCamp
{
private Mobile m_Prisoner;
[Constructable]
public HumanBrigandCamp()
: base(0x10EE) //garbage at the center
{
}

you're right about that in regard to the staircase. hadn't considered that's why it spawned. but that's fixed and the problem is still occurring.
 
okay, so I've done more testing

1. Any spawner that spawns a Camp seems to crash the shard
2. Manually adding camps causes NO problem at all, but
3. If I do [area remove where I spawned the camp, that crashes the shard
 
crash message when i do [area remove

Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.MultiData.GetComponents(Int32 multiID) in c:\Program Files\ServUO\ServUO-master\Server\MultiData.cs:line 31
at Server.Items.BaseMulti.get_Components() in c:\Program Files\ServUO\ServUO-master\Server\Items\BaseMulti.cs:line 102
at Server.Map.OnLeave(Item item) in c:\Program Files\ServUO\ServUO-master\Server\Map.cs:line 997
at Server.Item.Delete() in c:\Program Files\ServUO\ServUO-master\Server\Item.cs:line 4200
at Server.Commands.Generic.DeleteCommand.Execute(CommandEventArgs e, Object obj)
at Server.Commands.Generic.BaseCommand.ExecuteList(CommandEventArgs e, ArrayList list)
at Server.Commands.Generic.DeleteCommand.OnConfirmCallback(Mobile from, Boolean okay, Object state)
at Server.Gumps.WarningGump.OnResponse(NetState sender, RelayInfo info)
at Server.Network.PacketHandlers.DisplayGumpResponse(NetState state, PacketReader pvSrc) in c:\Program Files\ServUO\ServUO-master\Server\Network\PacketHandlers.cs:line 1365
at Server.Network.MessagePump.HandleReceive(NetState ns) in c:\Program Files\ServUO\ServUO-master\Server\Network\MessagePump.cs:line 187
at Server.Network.MessagePump.Slice() in c:\Program Files\ServUO\ServUO-master\Server\Network\MessagePump.cs:line 121
at Server.Core.Main(String[] args) in c:\Program Files\ServUO\ServUO-master\Server\Main.cs:line 622
 
also, noticed that i manually spawn a camp, then run off screen and back, well before i get to the multi it crashes.
one time it did show up but it was sliced in half.

and remembered that a day or so before the crashes happened I accidentally lowered the Z on a house and it caused two house multi's to appear, only one was a real house, the other wasn't.
i tried the [area remove where basemulti to remove the second one and it didn't seem to work until i logged out and back in and then most of it was gone but half of it remained behind.
 
This below won't do what you want, at least not properly, I had similar problems. You could use the multi
0x70 Blue Tent or 0x72 Green Tent to spawn either tent but when spawning statics try this:
Code:
public class HumanBrigandCamp : BaseCamp
    {
        private Mobile m_Prisoner;
        [Constructable]
        public HumanBrigandCamp()
            : base(0x1F6) // was 0x1DE0    This won't work

Instead we can add the tent statics to BaseCamp.cs (see #region Tent Statics)
and make these changes to the HumanBrigandCamp.cs

Code:
public class HumanBrigandCamp : BaseCamp
{
private Mobile m_Prisoner;
[Constructable]
public HumanBrigandCamp()
: base(0x1DE0) //Garbage at the center ~You could use 0x70 Blue Tent or 0x72 Green Tent
                              //But this method allows more versatility within the script and shows how to build more diverse multis.                                      
}

and down further

Code:
public override void AddComponents()
{
#region Spawn Tent
if (Utility.RandomBool())
SpawnGreenTent();
else
SpawnBlueTent();
#endregion
this.AddItem(new Item(0xFAC), 0, 0, 0); // fire pit
this.AddItem(new Item(0xDE3), 0, 0, 0); // camp fire
this.AddItem(new Item(0x974), 0, 0, 1); // cauldron

Try these files see if it's what your wanting to do.
This is how I was shown to handle this issue with statics in multis.
 

Attachments

  • BaseCamp.cs
    13.8 KB · Views: 0
  • HumanBrigandCamp.cs
    5.7 KB · Views: 1
well, this is embarrassing...

did a comparison in Winmerge of my files vs. a fresh copy and noticed that MultiData and the server files had been changed recently.
apparently I thought it was a good idea to block out the MultiTileEntry method ( probably one night while drinking ) and that's been causing the issue all along. It just never became a problem until I recompiled the other day.

ugh.

Thank you for your help RedBeard, and sorry about the trouble.
Thank you for telling me about the garbage pile and spawning tents.
 
Back