PDA

View Full Version : Quests


99er
10-03-2007, 06:32 AM
Hello Everyone. Hope all is well.

I am on day 3 of trying to make my quests and Hail work.

Searching the forums has produced a couple solutions all of which I have verified but still no luck.

Here are my variables.

Log file shows a ton of these:

Perl runtime error: Undefined subroutine &main::eval_file called

At first I thought it was my perl installation. Here is what testing shows:

C:\>perl --version

This is perl, v5.8.8 built for MSWin32-x86-multi-thread
(with 18 registered patches, see perl -V for more detail)

Copyright 1987-2007, Larry Wall

Binary build 822 [280952] provided by ActiveState http://www.ActiveState.com
Built Jul 31 2007 19:34:48

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

So at this point I am guessing perl is installed correctly and in the path.

If I manually run a script:

C:\>perl hello.pl
Hello World
C:\>

It also works. However, nothing will respond in game.

Other than this the server runs normally.

Any help would be appreciated. If this is posted in the wrong section I apologize.

Thanks.

99er
10-04-2007, 10:05 AM
So it appears I posted this in the wrong section....sorry about that but I thought I would post the solution anyway.

After much trial and error and with some help from the guys on the IRC it came down to the binary I was using.

I was using 1043 but when I reverted back to 992 everything started working again.

Hope this helps anyone else that might experience the same problem.

SiliconeClone
10-04-2007, 02:56 PM
I had this same problem with 1043 but then I decided to check out the .pdf manual and try something that I have never done in previous versions.

That was to change my mysql instance to support UTF8 instead of latin1. I have never had an issue with this and as my mysql is used for other things I never had to install it just for eqemu use.

However having changed the language option to UTF8, my quest started working. So i suggest this as a route to check if you have installed perl and everything checks out just fine with it. Just and fyi (older versions had worked fine without the mysql change but I needed it apparently for 1043)

99er
10-05-2007, 02:56 AM
That is good information Silicone. I will give that a try.

wwazman
11-05-2007, 04:13 PM
Some of my hails work, but almost none of the quests do. Some of the beginning cities (notably, Surefall Glade, Hagar Sureshot) do accept the initial quests, but not much else. Everything else works fine, except the quests. Mysql is configured (as far as I know) correctly, utf8 is set, and I ahve the latest eqemu and db. still looking through other answers as well, but I could sure use some more help!

wwazman
11-13-2007, 10:56 AM
let me clarify... the quests work fine, meaning I am able to trigger the texts, but as far as handing stuff in, that does not work at all.

Theeper
11-13-2007, 12:25 PM
Quests are by no means complete. In fact, some zones have almost no quests written up. If some quests are working, then PERL is functioning properly. It's likely you're just talking to quest mobs that don't have working quests written for them yet.

Look at the .pl files for the mob you're talking to and see what code is in-place.

sithkar
11-13-2007, 01:54 PM
This is a problem and it seems to be simmilar to the guys before.

I have my own server I'm setting up. Using MySql 5.0.45, ActivePerl-5.8.8.822-MSWin32-x86, and PEQ Database and PEQ Quests. The Hail part of the turning in Monk Velium Armor (Velious Thurgina Quest) works no problem. My faction is warmly with him (only needs to be kindly). I have the correct items for tunic turn in 25814 (3), 24942. When I do the turn-in the zone logs show a GetVar('item number'), but the quest turn-in dosen't work. The items are eatten and Lorekeeper Einar will do nothing.

If the fix is this binary set-up how do I do this. And if its not what else are my options. All help welcomed and appreciated.

This is one quest in question but all quest set-up similar to this are not working as well. I'm using this as my example.

----------------------------Quest in Question-----------------------

# Quest for Lorekeeper Einar in Thurgadin - Monk Velium Armor (Grand Master's)

# Kiladiveus - copied text from website. created Sub EVENT_SAY and Sub EVENT_ITEM for quest. Used Faction requirement method.

# kiladiveus - created my own ending statments.

# Kiladiveus - NPC ID:115118 Lorekeeper_Einar, need to change his primary faction to "coldain"

# kiladiveus - correct grammar per Sarepean's advice.





sub EVENT_SAY {

if ($faction <= 3) { # Require greater and kindly faction

if ($text=~/hail/i) {

quest::say("Greetings to you. I seek one that has chosen the path of monkhood. What do you call yourself?");

}

if ($text=~/i am a monk/i) {

quest::say("Good. I had hoped you were one. I have heard that as seeker of the way you are in constant training to push yourself to your physical and mental limits. It is an admirable quality and I wish to aid you. I will provide you with a cap, a tunic, sleeves, bracers, gloves, leggings and boots.");

}

if ($text=~/cap/i) {

quest::say("To create a piece of armor to protect your sensitive skull I will require three pieces of crushed coral as well as a eroded leather cap.");

}

if ($text=~/tunic/i) {

quest::say("To create a spectacular tunic fit for your kind I will require three flawless diamonds and an eroded leather tunic. With the gems and my skills I may be able to draw out some of its magical powers.");

}

if ($text=~/sleeves/i) {

quest::say("Protection for your arms will come at the price of three flawed emeralds and a set of eroded leather sleeves.");

}

if ($text=~/leggings/i) {

quest::say("I may be able to craft a set of wondrous leggings from a set of old eroded leather leggings and three flawed sea sapphires. It is amazing what you can do with a bit of magic.");

}

if ($text=~/gloves/i) {

quest::say("Protecting your hands is very important. I can create some excellent protection for your hands if you bring me three crushed topaz and a pair of eroded leather gloves.");

}

if ($text=~/bracers/i) {

quest::say("For the bracers, I will require a eroded leather bracelet as well as three crushed flame emeralds. Return to me when you find such things.");

}

if ($text=~/boots/i) {

quest::say("We use our feet so often, should not they be protected as well as any other portion of our bodies? If you seek fine protection for your feet return to me with three pieces of crushed black marble and a pair of eroded leather boots.");

}

}

else {

quest::say("I do not know you well enough to entrust you with such a quest, yet.");

}

}



sub EVENT_ITEM {

if ($faction <= 3) { # Require greater and kindly faction

if (plugin::check_handin(\%itemcount, 25814 => 3, 24942 => 1)) { # tunic

quest::summonitem(31092);

quest::exp(100000);

quest::faction(49,20); # coldain

quest::faction(67,20); # Dain Frostreaver IV

quest::faction(188,-60); # Kromrif

quest::faction(198,-60); # Kromzek

quest::emote("smiles warmly as he hands you your reward.");

quest::say("You have done well.");

}

elsif (plugin::check_handin(\%itemcount, 25821 => 3, 24944 => 1)) { # sleeves

quest::summonitem(31093);

quest::exp(100000);

quest::faction(49,20); # coldain

quest::faction(67,20); # Dain Frostreaver IV

quest::faction(188,-60); # Kromrif

quest::faction(198,-60); # Kromzek

quest::emote("smiles warmly as he hands you your reward.");

quest::say("You have done well.");

}

elsif (plugin::check_handin(\%itemcount, 25825 => 3, 24943 => 1)) { # leggings

quest::summonitem(31096);

quest::exp(100000);

quest::faction(49,20); # coldain

quest::faction(67,20); # Dain Frostreaver IV

quest::faction(188,-60); # Kromrif

quest::faction(198,-60); # Kromzek

quest::emote("smiles warmly as he hands you your reward.");

quest::say("You have done well.");

}

elsif (plugin::check_handin(\%itemcount, 25832 => 3, 24948 => 1)) { # gloves

quest::summonitem(31095);

quest::exp(100000);

quest::faction(49,20); # coldain

quest::faction(67,20); # Dain Frostreaver IV

quest::faction(188,-60); # Kromrif

quest::faction(198,-60); # Kromzek

quest::emote("smiles warmly as he hands you your reward.");

quest::say("You have done well.");

}

elsif (plugin::check_handin(\%itemcount, 25831 => 3, 24947 => 1)) { # cap

quest::summonitem(31091);

quest::exp(100000);

quest::faction(49,20); # coldain

quest::faction(67,20); # Dain Frostreaver IV

quest::faction(188,-60); # Kromrif

quest::faction(198,-60); # Kromzek

quest::emote("smiles warmly as he hands you your reward.");

quest::say("You have done well.");

}

elsif (plugin::check_handin(\%itemcount, 25838 => 3, 24946 => 1)) { # bracer

quest::summonitem(31094);

quest::exp(100000);

quest::faction(49,20); # coldain

quest::faction(67,20); # Dain Frostreaver IV

quest::faction(188,-60); # Kromrif

quest::faction(198,-60); # Kromzek

quest::emote("smiles warmly as he hands you your reward.");

quest::say("You have done well.");

}

elsif (plugin::check_handin(\%itemcount, 25833 => 3, 24945 => 1)) { # boots

quest::summonitem(31097);

quest::exp(100000);

quest::faction(49,20); # coldain

quest::faction(67,20); # Dain Frostreaver IV

quest::faction(188,-60); # Kromrif

quest::faction(198,-60); # Kromzek

quest::emote("smiles warmly as he hands you your reward.");

quest::say("You have done well.");

}

else {

plugin::return_items(\%itemcount);

quest::say("These are not the pieces I need.");

}

}

else {

quest::say("I do not know you well enough to entrust you with such an item, yet.");

}

}
#END of FILE Zone:thurgadina ID:115118 -- Lorekeeper_Einar

Dargon
11-13-2007, 04:24 PM
Make sure you have the plugins folder properly setup. I think the check_handin.pl not functioning properly (if at all) is why items are being eaten.

sithkar
11-13-2007, 05:19 PM
Since I really don't know what you mean by plugins (never read about them for set-up of a server) I bet that its. If you are still here could you give me a little info. If you are not I will just google it anyway.

sithkar
11-13-2007, 06:30 PM
Got it up and running. Thanks for your help. That was so easy.

FirestormXL
01-14-2008, 08:18 PM
What did you do to get it up?

FirestormXL
02-13-2008, 03:09 PM
Ha, got it up awhile ago long long while ago forgot I posted this now I feel silly > <.

Anywho, the quests that is DL'd with the PEQ had a folder named plugins, take the 4 items in that folder and move them into the EQEMU folder C:/eqemu/plugins , just sayin in case anyone else has similar problems and misses this.

loglos
02-17-2008, 10:26 AM
Don't feel silly. You just solved my problem too!

classiceq
02-22-2008, 07:41 AM
Why is it some quests work and some dont? The ones that dont usually have this error attached to it...

use of uninitialized value in numeric eq (==)

I searched those terms and only one post came up without any relevenance to the problem. I am using the latest CVS quest as of 2/20/08.

Congdar
02-22-2008, 10:30 AM
I've seen a few of those errors. In some cases there was a line like this:

quest:exp(400);

The problem was only a single : when it should be ::

Specifically in freportw the two dueling monks should be $timer not $timername

classiceq
02-22-2008, 02:05 PM
Specifically, I have two problems. The first is player.pl. What is it and where can I get a copy (if I even need)? It keeps showing up in my logs.

And second, when I try to initate a quest I get a ton of errors.

Example: Therin Poxbourne

When I hail him (preflag exists) I get not one but maybe 50 of these errors:

use of uninitialized value in numeric eq (==) at /quest/ponightmare/#Therin_poxbourne.pl line 26.

This just started not to long ago and exists in many of the scripts lately. I am using the scripts I downloaded from CVS. I have no idea what to do at this point and cant find anything in the forums that address this.

AndMetal
02-22-2008, 04:38 PM
And second, when I try to initate a quest I get a ton of errors.

Example: Therin Poxbourne

When I hail him (preflag exists) I get not one but maybe 50 of these errors:

use of uninitialized value in numeric eq (==) at /quest/ponightmare/#Therin_poxbourne.pl line 26.


Looking at the quest (http://eqemuquests.cvs.sourceforge.net/eqemuquests/peq_quests/ponightmare/%23Thelin_Poxbourne.pl?view=markup#l_26), this is what line 26 says:
26 if($text=~/Hail/i && ($entry == 1 || $entry == 2 || $entry == 3 || $entry == 4 || $entry == 5 || $entry == 6 || $entry == 7 || $entry == 8 || $entry == 9 || $entry == 10 || $entry == 11|| $entry == 12 || $entry == 13 || $entry == 14 || $entry == 15 || $entry == 16 || $entry == 17 || $entry == 18) && $pop_pon_hedge_jezith == 1)

So, one of those variables (probably $entry) isn't defined, which is causing the error. I think there's a way to disable the error messages in the logs (pretty sure I remember a thread about it), but I can't remember what it is off the top of my head.

cavedude
02-23-2008, 01:21 AM
AndMetal is 100% correct. A lot of variables aren't getting defined causing this spam in our logs. The quests still work (or seem to anyway) but I am slowly trying to clean it all up. As I see them in TGC's log, I'll correct the perl scripts. Hang tight I have a lot to get through (PEQ's quest log is nearly 800MB!)

player.pl is optional and is used in the new player script system. I don't know why it was coded to write to the log if it isn't found, as that just seems silly to me since not every zone is going to need it or use it. To get it to shutup, though just place a blank player.pl file in each of the zone's folders in your quest directory. Be sure not to overwrite ones that already exist ;)

classiceq
02-23-2008, 06:29 AM
Thanks Guys. I appreciate the info.