I think this should work:
Code:
sub EVENT_SAY {
my $war = quest::saylink("war");
my $willing = quest::saylink("willing");
if (quest::istaskactive(223) || quest::istaskcompleted(223))
{
quest::say("I have already told you all that I can.");
}
else
{
if ($text =~/Hail/i)
{
quest::say("Hail, $name! I am here to warn you, the [$war] has spilled over to crushbone.");
}
if ($text =~/war/i)
{
quest::say("The invador is a Sarnak named Xalgoz who seeks to enslave the orcs. Please I beg of you, help my beloved Emperor Crush.. he has been taken prisoner deep within his castle. There is a scout atop the great pillar, seek him out if you are [$willing]!");
}
if ($text =~/willing/i)
{
quest::say("Excellent! Please hurry up, time is most precious!");
quest::assigntask(223);
}
}
}
Also, if you don't want a task to be repeatable, there is an option to in the DB (or in the Task Master tool) to disable them from being repeatable if you set it.