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!

[RunUO 2.0 RC1] Virtue Quest

Axle

Wanderer
Virtue Quest

Description:

This is an old quest I downloaded a long time ago. It creates a virtue quest in which players must travel to the eight virtue shrines and kill the virtue vortex that have taken over each shrine. After a vortex is slain, it drops a vortex vase which can be returned to Nystul for various rewards. The quest is completed after all 8 vases have been returned. It's hard difficulty for an individual (medium for a party of 2 or more). I am not the original author, however I have made major fixes/modifications to the scripts.

Fixes:

1. When the quest is completed, the cleanup methods now work to clean up the spawners.
2. Nystul now gets deleted after receiving the 8 vortex vases.

Update (12/25/06):

3. Fixed an object reference exception by adding a timespan and reinitializating of the timer in the serialization/deserialization process.

Update (12/26/06):

4. Moved this.Delete() method to the appropriate FinishQuest() method.

5. Updated Hair and Beard per Deiscianna's Nystul.cs fix.

Modifications:

1. AccessLevel has to be higher than a seer to activate the quest (this can be edited of course).

2. Added a low priority timer to restart the quest 12 hours after completion. This means that once the quest is initially activated, it is fully automated from there on out. The timer can be overridden and the quest started prematurely by the appropriate accesslevel staff member(s). The timer does not run while the quest is active, only upon completion.

Installation:

Unzip into your custom scripts folder.

Implementation:

[add queststonevirtuevortex

Activation:

Double click the stone.
 

Attachments

  • QuestKeeper.zip
    6.6 KB · Views: 466

Axle

Wanderer
qwerty84 said:
exist version for the 1.0?

There are two simple steps to making it compatible with RunUO RC1:

1. Open Nystul.cs and find this line:

Code:
public Nystul() : base( AIType.AI_Mage, FightMode.Aggressor, 22, 1, 0.2, 1.0 )

and replace it with this line:

Code:
public Nystul() : base( AIType.AI_Mage, FightMode.Agressor, 22, 1, 0.2, 1.0 )

Open Vortex.cs and find this line:

Code:
public Vortex() : base( AIType.AI_Melee, FightMode.Aggressor, 22, 1, 0.2, 1.0 )

and replace it with this line:

Code:
public Vortex() : base( AIType.AI_Melee, FightMode.Agressor, 22, 1, 0.2, 1.0 )

and you're good to go.
 

Deiscianna

Wanderer
Server Crash

recieved this crash on quest end

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

RunUO Version 2.0, Build 2549.8815
Operating System: Microsoft Windows NT 5.1.2600 Service Pack 2
.NET Framework: 2.0.50727.42
Time: 12/25/2006 1:57:00 PM
Mobiles: 1913
Items: 148161
Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.Items.QuestStoneVirtueVortex.CleanUp()
at Server.Mobiles.Nystul.FinishQuest()
at Server.Mobiles.Nystul.OnDragDrop(Mobile from, Item dropped)
at Server.Item.DropToMobile(Mobile from, Mobile target, Point3D p)
at Server.Mobile.Drop(Mobile to, Point3D loc)
at Server.Network.PacketHandlers.DropReq(NetState state, PacketReader pvSrc)
at Server.Network.MessagePump.HandleReceive(NetState ns)
at Server.Network.MessagePump.Slice()
at Server.Core.Main(String[] args)

seems something is not cool in the clean up method, Will try and find what it is
 

Axle

Wanderer
I'm pretty sure I know what is causing the crash, I should have a fix posted by tonight. My apologies for the inconvenience.
 

nitesmoker

Wanderer
scripts work fine on my system. Only thing i can think of is that once you started the quest you deleted the quest stone before the quest was complete. I have even made 2 stones and started 2 quests at the same time with no bad results. Other than having 2 vortex to kill at each shrine. Nystul will complete HIS part of the quest after recieving 8 vases.
 

Axle

Wanderer
The object reference exception has been fixed. It was being caused due to the lack of serialization of the timespan and reinitialization of the timer after server restart. It "should" be completely stable now. I've attached The fixed QuestStoneVirtueVortex.cs and updated the zip file with the new version. If you're running this already, [remove the stone and overwrite your queststonevirtuevortex.cs with the one attached here. You may have to clean up the spawns manually (my apologies). If you haven't restarted the server since you installed it, you can drop 8 vortexvases on nystul and it will clean up automatically, then you can remove the stone, shutdown and overwrite the file.
 

Attachments

  • QuestStoneVirtueVortex.cs
    3.9 KB · Views: 66

Deiscianna

Wanderer
Axle;625391 said:
The object reference exception has been fixed. It was being caused due to the lack of serialization of the timespan and reinitialization of the timer after server restart. It "should" be completely stable now. I've attached The fixed QuestStoneVirtueVortex.cs and updated the zip file with the new version. If you're running this already, [remove the stone and overwrite your queststonevirtuevortex.cs with the one attached here. You may have to clean up the spawns manually (my apologies). If you haven't restarted the server since you installed it, you can drop 8 vortexvases on nystul and it will clean up automatically, then you can remove the stone, shutdown and overwrite the file.

Thank You very much, that worked just fine :) , Nice quest script. I noticed Nystul was missing hair, so I modifed Nystul.cs to fix the hair, You may want to update yours
Code:
		[Constructable] 
		public Nystul() : base( AIType.AI_Mage, FightMode.Aggressor, 22, 1, 0.2, 1.0 )
		{ 
			InitStats( 100, 100, 25 ); 

			Name = "Nystul";
			Title = "the mage"; 
			Hue = 1010; 
			Blessed = true;
			CantWalk = true;
			NameHue = 0x35; 
			SpeechHue = Utility.RandomList( 0x57, 0x67, 0x77, 0x87, 0x117 );
			Body = 0x190; 
	  		AddItem( new FancyShirt() );
	    	AddItem( new Sandals( 1 ) );
			AddItem( new Robe( 355 ) );
			//AddItem( new PonyTail( 1110 ) );
			//AddItem( new MediumShortBeard( 1110 ) );
			AddItem( new GnarledStaff() );

			Item hair = new Item( Utility.RandomList( 0x203D ) );
			hair.Hue = 1110;
			hair.Layer = Layer.Hair;
			hair.Movable = false;
			AddItem( hair );

			Item beard = new Item( Utility.RandomList( 0x204B ) );
			beard.Hue = hair.Hue;
			beard.Layer = Layer.FacialHair;
			beard.Movable = false;
			AddItem( beard ); 
      		}
 

Axle

Wanderer
Sweet, thanks. I thought at one time he had hair. Wasn't sure what happened to it, I'll update the script package. Thanks again.

Also, it's nothing major, but I just noticed this.Delete() method is in the wrong location, move from here:

Code:
if ( Vases == 8 )
{
	SayTo( from, true, "Excellent! This is the last one. Here are your rewards." );
             FinishQuest();
             this.Delete(); [COLOR="SeaGreen"]// cut this statement[/COLOR]
}

to here:

Code:
public virtual void FinishQuest()
{
						
	ArrayList stones = new ArrayList( World.Items.Values );
	foreach( Item item in stones  )
	{
		if( item is QuestStoneVirtueVortex )
		{
			((QuestStoneVirtueVortex)item).CleanUp();
			((QuestStoneVirtueVortex)item).Active = false;
                    
		}
	}
			
	Say( true, "Well done citizens! This is truly a glorious victory! I hope that I can call on your services again." );
          this.Delete(); [COLOR="seagreen"]// and paste here[/COLOR]
}

I've updated both the original zip file and attached the updated Nystul.cs script to reflect the changes.

Some of you may remember that there was also a meteor quest that was originally packaged with the virtue quest. You may also remember that it was never completed. I will be working on a completed version of the meteor quest and will add it to this quest package upon completion. I will also add automation features as I did for the virtue quest.
 

Attachments

  • Nystul.cs
    4 KB · Views: 61

Axle

Wanderer
qwerty84;625533 said:
for hour nn I have met problems hour the cargo on the serveur and I make it to try you have player

Please Download the newest and latest version if you have not already. The newest version should work flawlessly (Thanks to everyone's feedback).
 
I have downloaded this script. Everything loads up just fine. Added the stone and double clicked it. It shows active. Now here is my question...is there something else i need to do to get the spawn and questgiver going?
 

Axle

Wanderer
Nevaeh the Genie;625893 said:
I have downloaded this script. Everything loads up just fine. Added the stone and double clicked it. It shows active. Now here is my question...is there something else i need to do to get the spawn and questgiver going?


Nope, it is activated. Nystul will spawn at the Brit bank in fel, and the vortex will spawn at the 8 virtue shrines, all on fel map.
 

nadious

Sorceror
Sorry to 'An Corp' an old thread here, but I had a question. I really want to put this quest into place... but we don't have Fel enabled (access wise) on our map. I would assume that I could just change all the 'Fel' references to Trammel to make it work on our map, right?

If so, which files do I need to edit. I can manually edit them on my own.. but I just want to make sure I don't miss any of the Fel references.

EDIT: I did a search on all of the files for 'Fel' and only came up with three instances in QuestStoneVirtueVortex.cs. When I replaced those with Trammel, I got the following error:

Code:
Errors:
 + Custom/Quests/VirtueQuest/QuestControlStones/QuestStoneVirtueVortex.cs:
    CS0103: Line 99: The name 'Trammel' does not exist in the current context
 

Tru

Knight
nadious;707645 said:
Sorry to 'An Corp' an old thread here, but I had a question. I really want to put this quest into place... but we don't have Fel enabled (access wise) on our map. I would assume that I could just change all the 'Fel' references to Trammel to make it work on our map, right?

If so, which files do I need to edit. I can manually edit them on my own.. but I just want to make sure I don't miss any of the Fel references.

Yes just change Felucca to Trammel and to find all occurences use the windows search and just search the folder its in.
 
Top