Resource icon

How to chain together Mondain Quests and get it to work:

First of all, we all probably have those moments where we just 'don't' want to build a quest, let alone have no idea how to build a quest chain.

My suggestion would be, if you want a quest that shows up in the quest menu:
UODevPro by Gizmo is a great tool to utilize.

But how do I chain them together? Well that is both simple and a pain in the @$$.

Scripts you have to Edit:

Under Services/MondainsLegacyQuests

Find the script QuestChains

As always keep in mind anything 32 or under are likely used. (I don't know if it is or not, but I'd rather NOT test that theory)


Now for this example I am going to show how I added my custom quest chain to servUO.

find in Quest Chains:

Code:
public class BaseChain    {        public static Type[][] Chains { get; set; }        static BaseChain()        {            Chains = new Type[30][];

Code:
public class BaseChain    {        public static Type[][] Chains { get; set; }        static BaseChain()        {            Chains = new Type[100][];
Find These:
PaladinsOfTrinsic = 27,
        RightingWrong = 28,
        Ritual = 29,

Add To This:
PaladinsOfTrinsic = 27,
        RightingWrong = 28,
        Ritual = 29,

YourQuestHere = 33,

Example:
PaladinsOfTrinsic = 27,
        RightingWrong = 28,
        Ritual = 29,

TheDepthsofTheCosmos = 33,

To add the chains, be sure to figure out what the chain name you're going for is and each quest for it.

Find This:
Chains[(int)QuestChain.RightingWrong] = new Type[] { typeof(RightingWrongQuest2), typeof(RightingWrongQuest3), typeof(RightingWrongQuest4) };
            Chains[(int)QuestChain.Ritual] = new Type[] { typeof(Server.Engines.Quests.RitualQuest.ScalesOfADreamSerpentQuest), typeof(Server.Engines.Quests.RitualQuest.TearsOfASoulbinderQuest), typeof(Server.Engines.Quests.RitualQuest.PristineCrystalLotusQuest) };

Add This:
Chains[(int)QuestChain.YourQuestChain] = new Type[] { typeof(YourQuest1), typeof(YourQuest2), typeof(YourQuest3) /*and so on*/ };


PyrO suggested I look to Unfading Memories to get an idea of how it works, my suggestion would be the same. It makes it easier to understand where it's going.


Here is an Example of My quest chain from the first quest using UODevPro, the edit I had to make.

Example:
public class TheDepthsofTheCosmosQuest : BaseQuest
    {
        public TheDepthsofTheCosmosQuest() : base()
        {
            //The player must collect 20 of LitopiteOre
            this.AddObjective(new ObtainObjective(typeof(LitopiteOre), "Litopite Ore", 20));
            //Reward the Player Magic Item(s)
            this.AddReward(new BaseReward("1 Magic Item"));
            this.AddReward(new BaseReward("1 Million Gold"));
        }
//You will want to find the place above the public overrided bool DoneOnce (or multiple times)
        public override QuestChain ChainID
        {
            get
            {
                return QuestChain.TheDepthsofTheCosmos;
            }
        }
        public override Type NextQuest
        {
            get
            {
                return typeof(TheDepthsofTheCosmosTwoQuest);
            }
        }

Basically, you need to define that it's part of a quest chain. And depending on how many quests you have, you will want to make sure to define each and every quest in the questchains script.

I want to make a note - UODevPro doesn't have the option to chain quests from within the program, but what it does do is make building a quest a lot easier. From there, changing things within your script should make it a lot easier.
  • Like
Reactions: kfritz411
Author
TheArt
Views
124
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from TheArt