EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Quest issues (https://www.eqemulator.org/forums/showthread.php?t=25834)

hayward6 08-01-2008 07:46 AM

Quest issues
 
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.

Code:

#
#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:

Code:

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:

Code:

#
#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.


All times are GMT -4. The time now is 01:47 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.