EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::General Support (https://www.eqemulator.org/forums/forumdisplay.php?f=598)
-   -   Perl and LUA quests working, but not custom Perl ones (https://www.eqemulator.org/forums/showthread.php?t=42251)

ErikSigvard 01-03-2019 11:05 AM

Perl and LUA quests working, but not custom Perl ones
 
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
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 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":

Code:

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

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

Code:

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

Quote:

Originally Posted by ErikSigvard (Post 261101)
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

Quote:

Originally Posted by demonstar55 (Post 261108)
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


All times are GMT -4. The time now is 02:39 PM.

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