RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Doom's Dark Guardian Room System, Vers. 1.0.

What the hell is going on?

I was using the script and it worked fine but then i went to doom today working on stuff i ran in the room and the second i hit the guardian pad my server restarted itself. it just rebooted all on its own it didnt do this the first time i tried it and all i can think of that changed was i added the doom rares system. I need help with this i cant just leave it like that and i have no idea what to do about it :(
 

Waverian

Wanderer
What cward said.

Did you get a "Your server has crashed" message in the lower left hand corner of your screen?

That's the most plausible answer. If you've got the crash log, please post it here so I can see if the issues with this script.
 
Here is the crash log

Ok here is what i got from the crash log:

Server Crash Report
===================

Operating System: Microsoft Windows 98 4.10.67766446.0
.NET Framework: 1.1.4322.573
Time: 7/26/2004 8:19:37 PM
Mobiles: 3574
Items: 178341
Clients:
- Count: 1
+ 127.0.0.1: (account = xxxxxxxx) (mobile = 0xA2E 'xxxxxxxx xxxxxx')

Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.Items.GuardianPad.OnMoveOver(Mobile m)
at Server.Mobile.Move(Direction d)
at Server.Mobiles.PlayerMobile.Move(Direction d)
at Server.Network.PacketHandlers.MovementReq(NetState state, PacketReader pvSrc)
at Server.Network.MessagePump.HandleReceive(NetState ns)
at Server.Network.MessagePump.Slice()
at Server.Core.Main(String[] args)
 

Waverian

Wanderer
I'll look at the code, but I can't think of why that would occur.. Was there anything unusual about what would normally happen when you moved over it, that was different than the times it did work?

In the meantime I'll try to recreate it, but any information you've got would be helpful.
 
Here is what i know

I took another run across it and i crashed again exactly the same way. here is what happens step by step.

1.I run down open all the doors right up to the ones going into the room i can open them fine but then...
2.I run across the guardian pad and it acts like the guardians are about to spawn then says "lost connection" there is a 2 second delay after crossing the pad then my server crashes.

I dont know how to read code or any of that so all i can do is test it and tell you what it does. I wish i could be more helpful though.

I forgot to mention that the first version never crashed me and also this version worked the first time i tried it but this is the first time i have tried it after rebooting the server it may have something to do with server resets i have seen other scripts have problems after a reboot or it could be something you changed with this version.
 

Icon

Wanderer
Well here is your crash log.


Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.Items.GuardianPad.OnMoveOver(Mobile m)
at Server.Mobile.Move(Direction d)
at Server.Mobiles.PlayerMobile.Move(Direction d)
at Server.Network.PacketHandlers.MovementReq(NetState state, PacketReader pvSrc)
at Server.Network.MessagePump.HandleReceive(NetState ns)
at Server.Network.MessagePump.Slice()
at Server.Core.Main(String[] args)



Hk
 

Waverian

Wanderer
How could I have missed that. I never serialize my variables that held the door link. Meaning when you restart the server, it doesn't have a value for the door it's messing with. Thus the object reference not set to an instance of an object. It's referencing the door that it doesn't know exists.

I'll fix this in a moment.

*EDIT: Sorry for the wait, I've run into some issues. Had to call the variables under broader classes and then cast them to allow for the serialization and deserialization and ran into snags. I've ironed most of them out, but I'm stuck on one variable that I havent yet found a way to properly deserialize. I'm troubleshooting now, hopefully this will go over smoothly. :/
 
Excellent!

Great im glad i could help in some way you might want to add a note so ppl will know its fixed. I love this script im still waiting for the poison it will be perfectly osi like then :D
 

Tru

Knight
Someone should look at how Will did it for the puzzle room (in Doom) maybe work off that
 

Waverian

Wanderer
Crash should be fixed.

If the console doesnt prompt you to delete the guardianpads, you'll want to do that ingame and then respawn the entire system.

Sorry for the inconvenience.


Also, tru: I've been studying that for a bit. It'll be my first experience with using regions, so I'm moving slowly and carefully. :p
 

x-ray

Wanderer
I have some suggestions to you, hope you dont mind. I analyzed your script a little.

As i see the guardian pads not "linked", so, if player step on one of them and after step on another they both will spawn guardians, both will lock the doors, etc. I think this is not right and this may cause some unpredictable (for me, because i dont dig deep in the code :)) paradoxes.

One way to resolve this problem is to make member variables what will share among all instances of the class. Just add a word 'static' for example:

public(or private) static bool m_InUse

and this variable will share among two instances of the pads. Same way with any types (mobs,items etc). Also this helps you rid away from duplicate reference in each of pad serialization - look at the your serialize code - both your pads items save same objects.

Also i think the best way to resolve all problems i described above is to make ONE control item. This item should care about serialization/deserialization, both pads managment etc. This will resolve all issues i described above.

This is not critical notes - i just want to help you make this thing better, feel free to contact me.
 

Waverian

Wanderer
I appreciate the fact that you've taken the time to look at the script and thus help me to improve it, firstly.

And actually, if I remember correctly, they are linked. I believe I threw in a linkedpad property that stores another pad.. They're assigned to each others link through the generation command.

However I understand what you're saying to a certain extent. A single player can get multiple spawns in a single entrance due to the fact that the current InUse property doesn't activate until the OnTick method of the spawntimer. I had to do it this way so it would spawn for each person entering the room and not just the first person.

I've currently got 2 solutions to this which I'm looking into. Either handling it via a region or a central control as you suggested. I'll probably give both a try and test 'em a bit.

Again, thanks for the input, it's appreciated. :)
 

Roseanne

Wanderer
Hi. I tried loading your script and I came up w/2 error msg. Can anyone explain how to fix plz?

- Error: Scripts\Custom Scripts\Doom Dark Guardian Room - Vers 2.0\GenGuardian.
cs: CS0246: (line 45, column 22) The type or namespace name 'ChestLevel5' could
not be found (are you missing a using directive or an assembly reference?)
- Error: Scripts\Custom Scripts\Doom Dark Guardian Room - Vers 2.0\GenGuardian.
cs: CS0246: (line 48, column 23) The type or namespace name 'ChestLevel5' could
not be found (are you missing a using directive or an assembly reference?)
 

Waverian

Wanderer
Please read the first post under one of the update headlines.

There's another script you'll need to download if you want to use the chests, and the link is posted in the afformentioned spot. If you don't want to download the extraneous scripts, just remove the chest references from GenGuardian.cs

You'll see some lines like this:

Code:
ChestLevel5 chest1 = new ChestLevel5();
ChestLevel5 chest2 = new ChestLevel5();

...

chest1.MoveToWorld( new Point3D( #, #, # ), Map.Malas );
chest2.MoveToWorld( new Point3D( #, #, # ), Map.Malas );

Those are what you'll have to remove if, as stated above, you don't want to download the extra package.
 

Roseanne

Wanderer
Well all is well :) Well sorta, kinda, not raelly lololol I too have the server crashing problem. Have I missed how to fix this (or maybe didn't understand)? Or is this an issue still being workded on?

Ok... I went back in and i removed the guardian spawner... respawned it... I guess I don't quite understand what this room is all about... The darkguardians seem to be spawning just fine on their own... I use my Admin & I can open the doors no problem. However, my "tester" can't manage to unlock the doors...

I have never really "done" doom b4 so I hope you'll bare w/me :) This is the last part to completing the doom dungoen (I think llolololol)
 

Waverian

Wanderer
You should read about it on uo.stratics.com.

You open the door, and enter. After about.. 15-ish seconds as it currently stands, the door closes and locks. It will stay locked until all of the guardians in the room are dead.

Once they're all dead and someone moves over the 'porters (Placed right in front of the door), the door will unlock allowing them to exit, and restart the process if desired.


The afformentioned bug has been fixed in the last update. If you're not running the most recent version you'll have to in order to get the fix. If you are running the most recent update, post the crash report.
 

Roseanne

Wanderer
ok I reloaded the scripts so that I could make sure I had the proper one. I then went in and removed all the doors, the spawner, & monsters. I added back the guardianspawner. Brought in my tester guy. He got thru the doors nicely, waited for the guardians to spawn, 2 came up he ev'd them 2 death, clicked on the doors to leave, went to walk out and whammo server crashed, same crash report as b4 (and I did take your advise & read about doom on stratics tks, looks like this is the finally phase :) woohoot! yeah... and it almost is working lolololol

Server Crash Report
===================

Operating System: Microsoft Windows NT 5.1.2600.0
.NET Framework: 1.1.4322.573
Time: 7/31/2004 10:21:04 PM
Mobiles: 3028
Items: 91723
Clients:
- Count: 2
+ 127.0.0.1: (account = xxxxx1) (mobile = 0x16 'xxxxx')
+ 127.0.0.1: (account = tester) (mobile = 0x993 'tester')

Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.Items.GuardianPad.OnMoveOver(Mobile m)
at Server.Mobile.Move(Direction d)
at Server.Mobiles.PlayerMobile.Move(Direction d)
at Server.Network.PacketHandlers.MovementReq(NetState state, PacketReader pvSrc)
at Server.Network.MessagePump.HandleReceive(NetState ns)
at Server.Network.MessagePump.Slice()
at Server.Core.Main(String[] args)
 

Jarrod

Sorceror
Confirmed using the package downloaded today (1 August 2004). everything works right until the guardians were killed and you attempt to leave the room. the instance you step on a pad:

Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.Items.GuardianPad.OnMoveOver(Mobile m)
at Server.Mobile.Move(Direction d)
at Server.Mobiles.PlayerMobile.Move(Direction d)
at Server.Network.PacketHandlers.MovementReq(NetState state, PacketReader pvSrc)
at Server.Network.MessagePump.HandleReceive(NetState ns)
at Server.Network.MessagePump.Slice()
at Server.Core.Main(String[] args)
 
Top