PDA

View Full Version : Perl and LUA quests working, but not custom Perl ones


ErikSigvard
01-03-2019, 11:05 AM
First, thanks to everyone who has worked on this project and all the posters who have brought up problems and solutions. Just...wow!

Second, pretty sure I've read every post with the search terms "quests not working" but I have yet to find a solution.

My setup:

Windows 10 Home
Underfoot client
Server install from GitHub (https://github.com/EQEmu)
Perl 5.12.3 (verified via command line 'perl -v')

Went through the instructions to the "t" and everything works beautifully. Built-in quests are working, mobs give exp and loot, game is fast, life is great.

I wanted to create a buff bot in POK that buffs with simple things like SOW, Clarity, etc. So I started off basic, and created a NPC, following the instructions (http://www.eqemulator.org/forums/showthread.php?t=33005) on this forum. I have a cool looking human in a white robe who looks like someone that would buff newbies. I named him Scion_of_Knowledge.

In the eqemu\quests\poknowledge folder, I created a Scion_of_Knowledge.pl file and included the following code to test just a simple "hail":

sub EVENT_SAY{
if($text=~/Hail/i)
{quest::say("Hello.");}
}

Saved the file. Did #reloadquest in game. NPC does not respond to me.
However, when I create the LUA version of the script, my NPC responds.

When I'm testing the Perl version, I make sure to rename my LUA version with a .bak extension because I remember reading that LUA takes precedence when a quest file of the same name exists. How do I get custom Perl quests working?

Thanks in advance.

phate8908
01-03-2019, 12:29 PM
whitespace matters

sub EVENT_SAY {
if ($text=~/Hail/i) {
quest::say("Hello.");
}
}

side note: #questerrors is a useful command when writing quest scripts

ErikSigvard
01-03-2019, 12:37 PM
sub EVENT_SAY{if($text=~/Hail/i){quest::say("Hello");}}

Also does not work.

ErikSigvard
01-03-2019, 12:39 PM
I ran #questerrors, and here is what I get:

Error compiling quest file quests/poknowledge/default.pl: Perl runtime error: Undefined subroutine &main::eval_file called.

Looks like all of the .pl files are getting that error.

ErikSigvard
01-03-2019, 12:56 PM
So when I googled that error, I followed the workaround that others have done and copied all of the content from EQEmu into C:\Perl\bin\ and now my custom Perl script is working.

TYVM for pointing me to the #questerrors command - that's what led me to this solution!

demonstar55
01-03-2019, 03:11 PM
So when I googled that error, I followed the workaround that others have done and copied all of the content from EQEmu into C:\Perl\bin\ and now my custom Perl script is working.

TYVM for pointing me to the #questerrors command - that's what led me to this solution!

There is something wrong with your set up. You shouldn't have to do that :P

ErikSigvard
01-03-2019, 03:13 PM
There is something wrong with your set up. You shouldn't have to do that :P

I totally agree! But it's funner to work on quests than the server setup, so I'm okay with this workaround :D