- Modified the quest system to allow non-BaseCreature quest givers, now requires IQuestGiver.

- Added base quest giver items, both timed and untimed.
- Added BatteredBucket and Lost and Found quest.
- Moved quester 'friendly names' to a class attribute. If left unspecified, the type name is used.
- Misc quest corrections.
- The bag of sending will now reject nontransferable items.
- Fixed quest items generating error messages when StackWith was attempted on them. (StackWith is not supposed to produce feedback.)
- Quest items can now be dropped onto the player's backpack.
This commit is contained in:
eos 2013-02-24 00:31:44 +00:00
parent 0fcd5821a5
commit 71a9e054de
36 changed files with 627 additions and 258 deletions

View file

@ -1110,7 +1110,7 @@ namespace Server.Engines.MLQuests.Definitions
InProgressMessage = 1073948; // I will be in your debt if you bring me kilts.
CompletionMessage = 1073974; // I say truly - that is a magnificent garment! You have more than earned a reward.
Objectives.Add( new CollectObjective( 10, typeof( Kilt ), 1015281 ) ); // kilt
Objectives.Add( new CollectObjective( 10, typeof( Kilt ), 1025431 ) ); // kilt
Rewards.Add( ItemReward.TailorSatchel );
}
@ -1128,7 +1128,7 @@ namespace Server.Engines.MLQuests.Definitions
InProgressMessage = 1073949; // I will be in your debt if you bring me fancy shirts.
CompletionMessage = 1073973; // I appreciate your service. Now, see what elven hands can create.
Objectives.Add( new CollectObjective( 10, typeof( FancyShirt ), 1015272 ) ); // fancy shirt
Objectives.Add( new CollectObjective( 10, typeof( FancyShirt ), 1027933 ) ); // fancy shirt
Rewards.Add( ItemReward.TailorSatchel );
}
@ -1146,7 +1146,7 @@ namespace Server.Engines.MLQuests.Definitions
InProgressMessage = 1073951; // I will be in your debt if you bring me studded bustiers.
CompletionMessage = 1073976; // Truly, it is worse than I feared. Still, I appreciate your efforts on my behalf.
Objectives.Add( new CollectObjective( 10, typeof( FemaleStuddedChest ), 1015310 ) ); // studded bustier
Objectives.Add( new CollectObjective( 10, typeof( FemaleStuddedChest ), 1027180 ) ); // studded bustier
Rewards.Add( ItemReward.TailorSatchel );
}
@ -1236,7 +1236,7 @@ namespace Server.Engines.MLQuests.Definitions
InProgressMessage = 1073952; // I will be in your debt if you bring me tinker's tools.
CompletionMessage = 1073977; // Now, I shall see what an elf can invent!
Objectives.Add( new CollectObjective( 10, typeof( TinkerTools ), 1011218 ) ); // tinker's tools
Objectives.Add( new CollectObjective( 10, typeof( TinkerTools ), 1027868 ) ); // tinker's tools
Rewards.Add( ItemReward.TinkerSatchel );
}
@ -1438,7 +1438,7 @@ namespace Server.Engines.MLQuests.Definitions
InProgressMessage = 1073959; // I will be in your debt if you bring me broadswords.
CompletionMessage = 1073978; // Enjoy my thanks for your service.
Objectives.Add( new CollectObjective( 12, typeof( Broadsword ), 1015055 ) ); // broadsword
Objectives.Add( new CollectObjective( 12, typeof( Broadsword ), 1023934 ) ); // broadsword
Rewards.Add( ItemReward.BlacksmithSatchel );
}
@ -1474,7 +1474,7 @@ namespace Server.Engines.MLQuests.Definitions
InProgressMessage = 1073957; // I will be in your debt if you bring me bascinets.
CompletionMessage = 1073978; // Enjoy my thanks for your service.
Objectives.Add( new CollectObjective( 15, typeof( Bascinet ), 1015040 ) ); // bascinet
Objectives.Add( new CollectObjective( 15, typeof( Bascinet ), 1025132 ) ); // bascinet
Rewards.Add( ItemReward.BlacksmithSatchel );
}
@ -1821,6 +1821,7 @@ namespace Server.Engines.MLQuests.Definitions
#region Mobiles
[QuesterName( "Saril (The Heartwood)" )]
public class Saril : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -1881,6 +1882,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Cailla (The Heartwood)" )]
public class Cailla : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -1942,6 +1944,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Tamm (The Heartwood)" )]
public class Tamm : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2001,6 +2004,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Landy (The Heartwood)" )]
public class Landy : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2061,6 +2065,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Elder Alejaha (The Heartwood)" )]
public class Alejaha : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2120,6 +2125,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Mielan (The Heartwood)" )]
public class Mielan : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2177,6 +2183,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Ciala (The Heartwood)" )]
public class Ciala : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2238,6 +2245,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Aniel (The Heartwood)" )]
public class Aniel : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2295,6 +2303,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Aulan (The Heartwood)" )]
public class Aulan : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2366,6 +2375,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Brinnae (The Heartwood)" )]
public class Brinnae : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2420,6 +2430,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Elder Caelas (The Heartwood)" )]
public class Caelas : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2477,6 +2488,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Clehin (The Heartwood)" )]
public class Clehin : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2603,6 +2615,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Salaenih (The Heartwood)" )]
public class Salaenih : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2680,6 +2693,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Vilo (The Heartwood)" )]
public class Vilo : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2741,6 +2755,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Tholef (The Heartwood)" )]
public class Tholef : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2804,6 +2819,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Tillanil (The Heartwood)" )]
public class Tillanil : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2860,6 +2876,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Waelian (The Heartwood)" )]
public class Waelian : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2923,6 +2940,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Sleen (The Heartwood)" )]
public class Sleen : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -2980,6 +2998,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Unoelil (The Heartwood)" )]
public class Unoelil : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -3036,6 +3055,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Anolly (The Heartwood)" )]
public class Anolly : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -3084,6 +3104,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Jusae (The Heartwood)" )]
public class Jusae : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -3150,6 +3171,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Cillitha (The Heartwood)" )]
public class Cillitha : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -3206,6 +3228,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Lohn (The Heartwood)" )]
public class Lohn : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -3269,6 +3292,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Olla (The Heartwood)" )]
public class Olla : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -3328,6 +3352,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Thallary (The Heartwood)" )]
public class Thallary : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -3386,6 +3411,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Ahie (The Heartwood)" )]
public class Ahie : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -4195,6 +4221,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Nillaen (The Heartwood)" )]
public class LorekeeperNillaen : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -4245,6 +4272,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Ryal (The Heartwood)" )]
public class LorekeeperRyal : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -4303,6 +4331,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Braen (The Heartwood)" )]
public class Braen : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }
@ -4356,6 +4385,7 @@ namespace Server.Engines.MLQuests.Definitions
}
}
[QuesterName( "Elder Acob (The Heartwood)" )]
public class ElderAcob : BaseCreature
{
public override bool IsInvulnerable { get { return true; } }