Here is your quest, I redid it a little to make it all work together properly.
Code:
sub EVENT_SAY
{
if ($text =~/Hail/i)
{
quest::say("Hello! Would you like me to set all your [Discs]?");
quest::say ("Good day to you, $name. Would you like me to teach you all of your [spells]? Or maybe you are a [bard] in need of music lessons?"); #A conversation to Scribe ALL spells For Player (up to curr. level)
}
elsif($text=~/Discs/i)
{
quest::traindiscs($ulevel); #Trainsdiscs to the users CURRENT Level
}
elsif ($text =~/bard/i)
{
quest::say ("Yes, normally you would think of a bard as being an adept student of music. For some reason, these lands slow the music learning ability to such an extent that I am willing to use my magic to train their abilities. Are you [ready] to learn?");
}
elsif ($text =~/ready/i)
{
quest::say ("Listen closely as the essence of music fills your soul!");
quest::addskill(12,255);
quest::addskill(41,255);
quest::addskill(49,255);
quest::addskill(54,255);
quest::addskill(70,255);
}
elsif ($text =~/spells/i)
{
quest::say ("Good, stand where you are while I begin your lessons");
quest::scribespells($ulevel);
}
}
Maybe this will help a little. I am not too sure of the double sub EVENT_SAY, but I know you can make it do what you want with only one.
I tested the script on my server and it works the way it should.
A side note for $ulevel, if someone already knows the spells UP to that level, and they go up and accidentally tells him "Spells" again, it will not relearn all the spells. Should there be an error with spells not working properly, you can add another line that will unscribe their spells, and then they can rescribe them should a spell or two not be in the book.
Code:
quest::unscribespells()