- Enabled quests that were locked due to issues.

- Added a CompletionNotice setting to MLQuest to replace the OnComplete overrides.
- MLQuest.CanOffer now recursively checks NextQuest for OneTimeOnly/HasRestartDelay as well.
- Implemented quest restart delays and enabled them on the crafting quests.
- Questers offering multiple quests will no longer randomly offer quests for which CanOffer is false, as long as there are other quests for which CanOffer is true.
- Added a manual Register method to MLQuestSystem for registering quests without using MLQuests.cfg (to be used in Configure).
- Misc quest tweaks.
- Corrected typo in cove.cfg deco file.
This commit is contained in:
eos 2013-02-08 16:54:36 +00:00
parent 741e8a3301
commit 3b94a24a9a
24 changed files with 320 additions and 409 deletions

View file

@ -16,7 +16,7 @@ namespace Server.Engines.MLQuests.Objectives
{
}
public virtual bool CanOffer( BaseCreature quester, PlayerMobile pm )
public virtual bool CanOffer( BaseCreature quester, PlayerMobile pm, bool message )
{
return true;
}

View file

@ -67,7 +67,7 @@ namespace Server.Engines.MLQuests.Objectives
else
result = ( label - 1078872 );
if ( MLQuestSystem.Debug && result > 0x4000 )
if ( MLQuestSystem.Debug && ( result <= 0 || result > 0x4000 ) )
Console.WriteLine( "Warning: cliloc {0} is likely giving the wrong item ID", label );
return result;

View file

@ -29,7 +29,7 @@ namespace Server.Engines.MLQuests.Objectives
m_Destination = destination;
}
public override bool CanOffer( BaseCreature quester, PlayerMobile pm )
public override bool CanOffer( BaseCreature quester, PlayerMobile pm, bool message )
{
BaseEscortable escortable = quester as BaseEscortable;
@ -44,7 +44,9 @@ namespace Server.Engines.MLQuests.Objectives
{
if ( instance.Quest.IsEscort )
{
MLQuestSystem.Tell( quester, pm, 500896 ); // I see you already have an escort.
if ( message )
MLQuestSystem.Tell( quester, pm, 500896 ); // I see you already have an escort.
return false;
}
}
@ -55,12 +57,15 @@ namespace Server.Engines.MLQuests.Objectives
// Note: On OSI Bravehorn doesn't check the time limit, but it does SET the last escort time... bug!
if ( nextEscort > DateTime.Now )
{
int minutes = (int)Math.Ceiling( ( nextEscort - DateTime.Now ).TotalMinutes );
if ( message )
{
int minutes = (int)Math.Ceiling( ( nextEscort - DateTime.Now ).TotalMinutes );
if ( minutes == 1 )
MLQuestSystem.Tell( quester, pm, "You must rest 1 minute before we set out on this journey." );
else
MLQuestSystem.Tell( quester, pm, 1071195, minutes.ToString() ); // You must rest ~1_minsleft~ minutes before we set out on this journey.
if ( minutes == 1 )
MLQuestSystem.Tell( quester, pm, "You must rest 1 minute before we set out on this journey." );
else
MLQuestSystem.Tell( quester, pm, 1071195, minutes.ToString() ); // You must rest ~1_minsleft~ minutes before we set out on this journey.
}
return false;
}

View file

@ -66,15 +66,15 @@ namespace Server.Engines.MLQuests.Objectives
m_Flags |= GainSkillObjectiveFlags.Accelerate;
}
public override bool CanOffer( BaseCreature quester, PlayerMobile pm )
public override bool CanOffer( BaseCreature quester, PlayerMobile pm, bool message )
{
Skill skill = pm.Skills[m_Skill];
if ( ( UseReal ? skill.Fixed : skill.BaseFixedPoint ) >= m_ThresholdFixed )
{
// On OSI both 1077772 and 1080107 are sent.
MLQuestSystem.Tell( quester, pm, 1077772 ); // I cannot teach you, for you know all I can teach!
//MLQuestSystem.Tell( quester, pm, 1080107 ); // I'm sorry, I have nothing for you at this time.
if ( message )
MLQuestSystem.Tell( quester, pm, 1077772 ); // I cannot teach you, for you know all I can teach!
return false;
}