Log in

View Full Version : Quest issues


hayward6
08-01-2008, 07:46 AM
I'm having some issues with an npc i'm working on. I have a basic understanding of how it all work's and I've created a few basic responces on different npc's just to add some life, but this one is more involved.

I want to add an npc to POK that can scribe spells, level you to 65, etc. I was hoping to have him do those things just once and if you're 65 he'll just say something about how well you're doing... I am hoping to have each class guild master teleport you directly to this npc in POK, that part I can do. I'm having trouble with this new npc... he looks at you when hailed, but I can't get any of the triggers to fire, and I know it's because i'm doing it wrong. I'll post what I have so far.

#
#Quest Name: Enlightenment
#Author: Sayin of Freedom
#

sub EVENT_SAY
{
if(($text=~/hail/i)&&($ulevel<= 65))
{
quest::say ("Hey there, $name. Looks like your trainer sent you to see me, but didn't prepare you very well... no matter, I can [help]");
}
if ($text =~/Help/i)
{
quest::say ("My power in this world is unlimited! Simply ask me to [touch] you, and you will be enlightened.");
}
if ($text =~/Touch/i)
$client->Message(6, "Your body begins to glow with energy as you are lifted from the ground.");
quest::level(65);
quest::setallskill(252);
quest::scribespells();
quest::say ("There, it's done. You might check the merchant behind me for armor and weapons. I have asked them to waive the charges.");
}

Derision
08-01-2008, 07:55 AM
Easiest way to find syntax errors in your perl scripts is to run it through perl from a command prompt. For this script, I got:


Scalar found where operator expected at test.pl line 17, near ")
$client"
(Missing semicolon on previous line?)
syntax error at test.pl line 17, near ")
$client"
Execution of test.pl aborted due to compilation errors.


You have some missing braces for the last if statement. This is the script with missing braces put in:


#
#Quest Name: Enlightenment
#Author: Sayin of Freedom
#

sub EVENT_SAY
{
if(($text=~/hail/i)&&($ulevel<= 65))
{
quest::say ("Hey there, $name. Looks like your trainer sent you to see me, but didn't prepare you very well... no matter, I can [help]");
}
if ($text =~/Help/i)
{
quest::say ("My power in this world is unlimited! Simply ask me to [touch] you, and you will be enlightened.");
}
if ($text =~/Touch/i) {
$client->Message(6, "Your body begins to glow with energy as you are lifted from the ground.");
quest::level(65);
quest::setallskill(252);
quest::scribespells();
quest::say ("There, it's done. You might check the merchant behind me for armor and weapons. I have asked them to waive the charges.");
}

}

hayward6
08-01-2008, 09:00 AM
I'll give that a try, thanks a lot!

hayward6
08-02-2008, 07:58 AM
Worked like a charm, thanks so much!
Now that I see what I was doing wrong i've also added functionality so he talks to people that are allready level 65. I'll use that later on to add special quests. I really want PoK to be the centerpoit to the server population. Now to come up with a way to get people there and then add a translocator so I can remove #zone :)

trevius
08-03-2008, 03:49 AM
If you run GeorgeS' quest editor tool, it has a simple syntax check that will check to make sure you have the right amount of opening and closing brackets. Comes in handy for a quick check.