PDA

View Full Version : Empty Vendors, Empty Loot, No Quests


suprphrk
04-04-2008, 10:34 AM
I just set up a 0.7.0.1103 server with PEQ. Everything ran fine, and I can pick my server in the list, log on, and create a character. Whenever I do that, there are no starting items. When I look on a vendor, there are no starting items. When I hail someone, anyone, i get no response. When I go out and kill about 10 things, none of them had any loot.

I looked at the database, and everything is in the tables as it should be, the starting_items table has everything in it, the lootdrop, lootdrop_entries, loottable, loottable_entries are all full, the merchantlist has items in it...

It seems that for some reason, it's storing my character info but not pulling records for all of the other stuff. Is there something I'm doing wrong?

I tried searching, but when I searched for "empty vendor", "vendor & no items", "empty loot", "loot items", and "starting items" I got either posts that were too old or posts that didn't relate. If I'm just searching for the wrong thing, or anyone knows of a fix out there, let me know what it is. Otherwise, I can give the info for my server if PM'd.

Thanks in advance.

cavedude
04-04-2008, 10:47 AM
http://eqemulator.net/forums/showthread.php?t=24731 will give you the answer. Look for my first post, 4 posts down.

suprphrk
04-04-2008, 11:33 AM
Thanks for the quick reply, CaveDude.

I ran the sql command to change the mode, but I'm pretty sure I set it up non-strict (have a WIMP config that also runs WoW server). When I dropped and re-pop'd the db after running that, and after I restarted my server, I'm still having the same issues. Anything else it could be?

suprphrk
04-04-2008, 11:55 AM
I just tried to do an #itemsearch with my gm character on the account, and any item id i put in doesn't work, at least with the ID from the item database. For instance, he's a pally, I'm trying to give him a Soulfire. I look in the db, find the soulfire as item 5504. I then go in and do #itemsearch 5504, and it gives me "Item #5504 not found".

Theeper
04-04-2008, 12:03 PM
itemsearch looks for items by name and gives you the ID. Do #itemsearch soulfire and then do #si itemID. Or just do #si 5504 since you already know the ID.

suprphrk
04-04-2008, 12:11 PM
I did #itemsearch soulfire and it gave back "0 items found". I did #si 5504, and it said "No such item: 5504". I think that the issue is that SOME tables are hitting ok, ie. the mobs are showing up, they have coin on them, but no items. Yet some tables, like loot, vendors, startitems, items aren't hitting.

Theeper
04-04-2008, 12:39 PM
You should be able to see on the console when the server boots how many items get loaded right before it tells you to hit enter to continue loading. It will say something like "62,555 items loaded".

There are no tables called loot or vendors though.

suprphrk
04-04-2008, 01:08 PM
Theeper-

Thanks for the point in the right direction. I saw it say that it loaded items from db 62256, but I didn't pay attention to what was right after it:

[Status] Loading items from database: count=62256
[Error] Starting Log: logs/eqemu_error_world_5128.log
[Error] DBLoadItems query 'select source,itemclass,name,lore,idfile,id,weight,no
rent,nodrop,size,slots,price,icon,UNK012,UNK013,be nefitflag,tradeskills,cr,dr,pr
,mr,fr,astr,asta,aagi,adex,acha,aint,awis,hp,mana, ac,deity,skillmodvalue,UNK033,
skillmodtype,banedmgrace,banedmgamt,banedmgbody,ma gic,casttime_,reqlevel,bardtyp
e,bardvalue,light,delay,reclevel,recskill,elemdmgt ype,elemdmgamt,range,damage,co
lor,classes,races,UNK054,maxcharges,itemtype,mater ial,sellrate,UNK059,casttime,U
NK061,procrate,combateffects,shielding,stunresist, strikethrough,extradmgskill,ex
tradmgamt,spellshield,avoidance,accuracy,charmfile id,factionmod1,factionmod2,fac
tionmod3,factionmod4,factionamt1,factionamt2,facti onamt3,factionamt4,charmfile,a
ugtype,augslot1type,augslot1unk,augslot2type,augsl ot2unk,augslot3type,augslot3un
k,augslot4type,augslot4unk,augslot5type,augslot5un k,ldontheme,ldonprice,ldonsold
,bagtype,bagslots,bagsize,bagwr,book,booktype,file name,banedmgraceamt,augrestric
t,loregroup,pendingloreflag,artifactflag,summonedf lag,favor,fvnodrop,endur,dotsh
ielding,attack,regen,manaregen,enduranceregen,hast e,damageshield,recastdelay,rec
asttype,guildfavor,augdistiller,UNK123,UNK124,attu neable,nopet,UNK127,pointtype,
potionbelt,potionbeltslots,stacksize,notransfer,st ackable,UNK134,clickeffect,cli
cktype,clicklevel,clicklevel2,proceffect,proctype, proclevel,proclevel2,worneffec
t,worntype,wornlevel,wornlevel2,focuseffect,focust ype,focuslevel,focuslevel2,scr
olleffect,scrolltype,scrolllevel,scrolllevel2,upda ted from items order by id', #
1064: You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'range,damage,color,
classes,races,UNK054,maxcharges,itemtype,material, sellrate,UN' at line 1
[Error] If you got boat loads of errors, make sure you sourced: utils/items-0.6.
0-DR2-0.6.1-DR1-convert.sql

I don't have utils/items-06.0-DR2-0.6.1-DR1-convert.sql. I haven't searched the net for it yet, but further searching for the problem that it mentions in the error shows that "range" is a reserved word in SQL 5.1+. Will running this .sql script fix my problem if I find it? Or am I barking up the wrong tree with it?

cavedude
04-04-2008, 01:23 PM
Try using MySQL 5.0. I'm not sure if 5.1 works with EQEmu or not. utils/items-0.6.0-DR2-0.6.1-DR1-convert.sql is very old, and no longer needed.

suprphrk
04-04-2008, 01:58 PM
That worked, but I'm seeing the soulbinder not binding me, and my paladin guild master just ate my note :)

That's stuff I can deal with if nobody has a quick fix for me. But I'm good to go now on the items!

Thanks for all of your help.

Andrew80k
04-04-2008, 02:24 PM
Try using MySQL 5.0. I'm not sure if 5.1 works with EQEmu or not. utils/items-0.6.0-DR2-0.6.1-DR1-convert.sql is very old, and no longer needed.

Just FYI, CD, I use 5.1 on XP without issue.

suprphrk
04-04-2008, 02:31 PM
Are you using PEQ as your db?

trevius
04-05-2008, 05:22 AM
Make sure you copied the PEQ quests into your eqemu/quests folder or they won't work.

suprphrk
04-05-2008, 01:39 PM
I'm banging my head on the wall with this one. I now need help with the quests. Let's use this for instance. I made a new WE Ranger, and want to talk to Maesyn Trueshot to start out his career. I hailed Maesyn Trueshot and nothing happened. He didn't say anything. After looking in the Perl script, I even said (in the exact case listed in the .pl file) "What trueshot longbows".

I look in my C:\EQEmu\quests\gfaydark folder, in the file Maesyn_Trueshot.pl, and see that it starts with this:
sub EVENT_SAY {
if($text=~/Hail/i){
quest::say("Welcome to Kelethin. $name! I am Maesyn Trueshot. commander of Faydark's Champions. We are the finest marksmen in all of Norrath. With our trusty [Trueshot longbows] we can miss no target regardless of the distance or the conditions.");
}
if($text=~/What trueshot longbows/i){
quest::say("The Trueshot Longbow was created by my famed father. Eldin Trueshot. It is quite accurate and takes a ranger's skill to wield. We use our new recruits to [gather materials] needed by my father. We shall soon begin to release the formula to good elves so all may fletch such a bow.");
}
if($text=~/I will gather materials/i && $class eq "Ranger"){
quest::say('Take this pack. Go to Kaladim, find Trantor Everhot and ask for dwarven wire. Then go to Freeport to meet Jyle Windshot. Search the inns for him and ask him for treant wood. Then, collect some spiderling silk from spiderlings and finally, in Steamfont, we have the permission of the gnomes to use any micro servos we find while destroying rogue spiders. Combine them all and return the pack to me.');
quest::summonitem(17367);
} else {
quest::say("Faydark's Champions cannot call you foe. but you have yet to earn our trust.");
}
if($text =~ /correct components/i) {
quest::say('Now that I have crafted the Treant Bow Staff, you shall need one Planing Tool, one Treant Bow Staff, one Micro Servo and one spool of Dwarven Wire. These items will be used with your Fletching Kit as all other bows. Be forewarned, only a Master Fletcher can create such a bow and even a master fails from time to time. Good Luck.');
}
if($text =~ /next incarnation/i) {
quest::say("The Trueshot Longbow was once enchanted by the Koada'Dal enchanters. Once it was enchanted now it is no more. I am sure if you were ask the Koada'Dal [where the enchanted bows] are you will get an answer.");
}
}
So I know the Perl script is in the right place, I know Perl's installed on my machine correctly, and the Perl script appears to have no errors. When I execute the .pl file, it runs. It doesn't do anything because there's no main procedure in the file, but there's no error. My PATH includes C:\Perl\site\bin and C:\Perl\bin.

Again, searching for this was difficult; all I found were articles that proved to be too old or unrelated. Does anyone out there have any insight as to what I may be missing?

suprphrk
04-05-2008, 06:54 PM
Looking through my logs, it doesn't have anything about quests or perl in the server startup. Should it?

I don't know how this works. I thought that during any SAY command, it would look in the folder for the name of the mob being hailed and execute the perl script with what was said. So as long as my script is in the right folder, everything should work.

Everything is being executed as Administrator, so I don't think that permissions are the problem either. I'm at a loss, been working with this for two days now, installing/uninstalling, etc.

suprphrk
04-05-2008, 07:38 PM
I also do not see any perl processes in the processes list on the server. Should I?

suprphrk
04-07-2008, 09:13 AM
Last thing that I did was to copy my c:\perl\bin folder contents into EQEmu, saw an old post out there that said that it fixed someone else's problem. Still, when I hail Maesyn Trueshot, nothing. When I say "What trueshot longbows", nothing.

Anyone else having this problem, or have any suggestions for me?

Andrew80k
04-07-2008, 05:13 PM
You shouldn't see any perl processes running. Are you logs telling you anything helpful?

suprphrk
04-07-2008, 05:59 PM
Andrew-

Thanks for the point in that direction. I'd looked at the logs before, but hadn't noticed the "eqemu_quest_zone_####.log file before. In my log, I get this:


[04.07. - 08:09:55] WARNING: error compiling quest file
quests/gfaydark/Maesyn_Trueshot.pl: Perl runtime error: Undefined
subroutine &main::eval_file called.
(reverting to default questfile)


Any idea what that means? I see no main function or eval_file function in my perl scripts... In my example, I have EVENT_SAY and EVENT_ITEM inside my Maesyn_Trueshot.pl file. I see that for every mob in the zone, just using Trueshot as an example.

trevius
04-07-2008, 07:00 PM
Try downloading GeorgeS quest tools from his website. You can find his site link in his signature. He posts in the tools section ALOT so check for it there.

I see the reason why that particular quest you are using to test is failing. There is a typo in it. Here is the text and I highlighted the typo in red. GeorgeS tools would make it easier to find errors like this as it is color coded.

if($text =~ /correct components/i) {
quest::say('Now that I have crafted the Treant Bow Staff, you shall need one Planing Tool, one Treant Bow Staff, one Micro Servo and one spool of Dwarven Wire. These items will be used with your Fletching Kit as all other bows. Be forewarned, only a Master Fletcher can create such a bow and even a master fails from time to time. Good Luck.'); }
if($text=~/I will gather materials/i && $class eq "Ranger"){
quest::say('Take this pack. Go to Kaladim, find Trantor Everhot and ask for dwarven wire. Then go to Freeport to meet Jyle Windshot. Search the inns for him and ask him for treant wood. Then, collect some spiderling silk from spiderlings and finally, in Steamfont, we have the permission of the gnomes to use any micro servos we find while destroying rogue spiders. Combine them all and return the pack to me.');
quest::summonitem(17367); }



You have single quotes ( ' ) where you NEED to have double quotes ( " ). It won't work like that. Syntax errors are easy ways to break quests completely so the NPC will not respond.

trevius
04-07-2008, 07:06 PM
Also, I think the code you have for the following won't have the effect you want.

if($text=~/I will gather materials/i && $class eq "Ranger"){
quest::say('Take this pack. Go to Kaladim, find Trantor Everhot and ask for dwarven wire. Then go to Freeport to meet Jyle Windshot. Search the inns for him and ask him for treant wood. Then, collect some spiderling silk from spiderlings and finally, in Steamfont, we have the permission of the gnomes to use any micro servos we find while destroying rogue spiders. Combine them all and return the pack to me.');
quest::summonitem(17367);
} else {
quest::say("Faydark's Champions cannot call you foe. but you have yet to earn our trust.");
}

I believe you need to encase the else in with the first part like this:

if($text=~/I will gather materials/i && $class eq "Ranger") {{
quest::say("Take this pack. Go to Kaladim, find Trantor Everhot and ask for dwarven wire. Then go to Freeport to meet Jyle Windshot. Search the inns for him and ask him for treant wood. Then, collect some spiderling silk from spiderlings and finally, in Steamfont, we have the permission of the gnomes to use any micro servos we find while destroying rogue spiders. Combine them all and return the pack to me.");
quest::summonitem(17367);
} else {
quest::say("Faydark's Champions cannot call you foe, but you have yet to earn our trust.");
}}

I don't know for sure if that will even work as you want, so you might have to mess around with it. But I am pretty sure that the way you have it is wrong.

suprphrk
04-07-2008, 09:26 PM
Thanks for the reply, Trevius.

I ran GeorgeS's quest tool on that file, and then stopped/restarted my server. I can see how the double quotes/single quotes issues can hinder quests, especially if there's a contraction or subquote in the quest. However, after changing those, and trying the different way of doing the begin/end, still no go. In my log, it still shows the same error as before:

[04.07. - 08:09:55] WARNING: error compiling quest file
quests/gfaydark/Maesyn_Trueshot.pl: Perl runtime error: Undefined
subroutine &main::eval_file called.
(reverting to default questfile)

It seems like it's trying to call eval_file and not opening the file right. I've checked permissions, and set all of the quest/ folder, all of its subfolders, and files to give Everyone read and execute. Still didn't work. I'm still working with it, but any more insight would be helpful. Keep the ideas coming!

trevius
04-07-2008, 10:53 PM
Try changing the double quotes in:

$class eq "Ranger"

to single quotes:

$class eq 'Ranger'

and see what happens.

Make sure you are using #questreload after making any changes so it loads your updates to the quest.

trevius
04-07-2008, 10:58 PM
I just read pretty thoroughly through the section of your quest that you posted and it looks ok now. If you have more in that quest that you didn't post yet, please post it. Maybe there are other mistakes. Make sure to hit the "check syntax" button on GeorgeS tool. It can help find missing bracket issues.

suprphrk
04-07-2008, 11:58 PM
Wow. I fixed it. It's dirty, and others have come across it before. I'd copied my perl\bin folder to my EQEmu folder, but not the other way around. What I did was set my EQEmu root to the perl\bin folder as per http://www.eqemulator.net/forums/archive/index.php/t-22891.html. This is definitely a bug, but it sounds like it only happens every once in a while.

I'm in Windows 2003 Server, ActivePerl-5.8.8.822-MSWin32-x86-280952, EQEmu-0.7.0-1103 configuration. Anyone else with the same problem that kedra/I have, maybe with the same config? To help out debugging?

Thanks to everyone for their help and ideas.

Aramid
04-08-2008, 05:46 AM
Was the path set on your server to check the perl/bin folders?

suprphrk
04-08-2008, 06:48 AM
Ya, my path starts with:


PATH=C:\Perl\site\bin;C:\Perl\bin;


You think the order matters? I've seen some cases where it does matter when I worked on the helpdesk, I want to say with Chameleon installs... Maybe it should look in c:\perl\bin first, then site\bin? Can someone that has a working server in its own directory share the order of their perl-related path variable?

Aramid
04-08-2008, 01:16 PM
Mine only has C:\Perl\bin as far as perl goes and it is first.

Andrew80k
04-08-2008, 02:13 PM
Ya, my path starts with:


PATH=C:\Perl\site\bin;C:\Perl\bin;


You think the order matters? I've seen some cases where it does matter when I worked on the helpdesk, I want to say with Chameleon installs... Maybe it should look in c:\perl\bin first, then site\bin? Can someone that has a working server in its own directory share the order of their perl-related path variable?

Order only matters if you have 2 executables in your path with the same name. It will pick the one that turns up in your path first.

I wonder if this is a difference in the environment that the server is running in and the environment that the client is running in? Maybe not, but it is something to check.

suprphrk
04-12-2008, 12:49 AM
Well, the server is W2k3 server, client is Vista. I tried switching the paths and rebooting, that didn't do it. I dunno, it's werid. I haven't tried messing more with it though, I have a stable EQ :).

fault
04-12-2008, 03:37 AM
if you have 5.8.8.822 perl try downgrading, the 822 build seems to be a bit crappy when it comes to eqemu. 5.8.5 and 5.8.7 have been reported as working by cavedude.

http://www.projecteq.net/phpBB2/viewtopic.php?t=4508

cavedude
04-12-2008, 06:13 AM
Just for the hell of it, uninstall Perl 5.8.8 and install 5.8.7 instead. 5.10 without a doubt breaks EQEmu, and I've seen evidence that supports 5.8.8 may do so as well.