I'm using this string

this.AddObjective(new ApprenticeObjective(SkillName.Wrestling, 100, "Haven", 0, 0));

However, if the player is already at 100 wrestling the quest isn't seeing it. On my test player I had to drop skill to 99.9 and then gain the .1 again. Is this the way it works or am I missing something?
 
Last edited:
All of the Apprentice quests work that way. You need to have lower in that skill than the number it gives you or it will not offer the quest. Which is why if I want to do any of the 50 skill quests, I make sure I don't train past 50 before going to the quest giver.
 
Thanks Lokai, looking around I didn't see any method other than that.

I want to make the quest require 100 wrestling to complete, is that "ApprenticeObjective" the only option?
 
I think the easiest way would be to override the OnTalkTo method in the BaseQuester for that quest. In BaseQuester, it looks like this:

C#:
        public virtual bool CanTalkTo(PlayerMobile to)
        {
            return true;
        }

So in your quester NPC you would maybe have something like this:

C#:
        public override bool CanTalkTo(PlayerMobile to)
        {
            if (to.Skills[SkillName.Wrestling].Base >= 100.0)
                return true;
            
            return base.CanTalkTo(to);
        }

Not 100% sure that would do it, but it's something like that. You might want Value instead of Base.
 
Back