Log in

View Full Version : Spawn Data Variety


haggzor
12-30-2013, 02:32 AM
Hi guys,

I set up a new server this week and I was just curious about a couple of NPC spawn related items. I noticed recently while playing in Innothule that I never see any skeletons or frogloks with equipped weapons. I dug in a little bit and this is what I found:


select ld.*, lde.*, i.name
from npc_types nt left join
loottable lt on nt.loottable_id = lt.id left outer join
loottable_entries lte on lt.id = lte.loottable_id left outer join
lootdrop ld on lte.lootdrop_id = ld.id left outer join
lootdrop_entries lde on ld.id = lde.lootdrop_id left outer join
items i on lde.item_id = i.id
where nt.name = 'a_decaying_skeleton'
order by ld.name asc


When I ran this relatively simple query, I discovered that there are 1212 different loot permutations set up for the various decaying skeletons throughout the game (obviously these aren't all used).

I took a little time and figured out how the data structure works for NPC spawn points. Just for fun I took the distinct NPCID's of our above resultset and compared it to the spawn points in Innothule:


select *
from spawnentry se left outer join
spawngroup sg on se.spawngroupID = sg.id left outer join
spawn2 s2 on sg.id = s2.spawngroupID
where se.npcID in (
50002
,50018
,415108
,383015
,383031
,392014
,392006
,392005
,413061
,414016
,414002
,457139
,709066
,2000
,2104
,47074
,47088
,155034
,155317
,56060
,56078
,38009
,38013
,54013
,54026
,78012
,25322
,4010
,9003
,9006
,10003
,10004
,22003
,30000
,30012
,34002
,33106
,85109
,75001
,75004
,46008)
and s2.zone = 'innothule'


It would seem that in innothule, we are only ever spawning skeletons who are NPCID 46008.

When I went back and looked at my first query only restricted to that specific NPCID, I found out why I only ever get skeletons carrying bone chips in Innothule.

I found the frogloks similar, except they are only NPCID 46015, which has a loottableID of 0 (drops nothing).

So, that said, here is my real question:

Is this indicative of the data for most zones (somewhat vanilla) and the developers are assuming that server administrators wish to customize their own loot tables, or is this, perhaps, just an oversight in some select zones? Is anyone else experiencing complaints on their servers of this nature?

If the answer to the above question is "yes, it's pretty vanilla across the board", then is there an effort going on right now to update the spawn data in order to more closely mirror the 'production' game's spawn and loot data? I know that the loot from certain mobs (especially low level) is pretty crucial to a new player's game experience. If you can't get gear from drops, the cash grind gets to be pretty nasty.

Also...

In the event that I wanted to contribute data scripts diversifying some of this (based on Allakhazam's mob drop lists, ie http://everquest.allakhazam.com/db/npc.html?id=28990), would the submissions run through the same channels as code commits or is there a separate oversight for data?

Thanks!

Haggzor

sorvani
12-30-2013, 12:32 PM
The PEQ database is (now) populated from Magelo which used an application to monitor the items looted. ZAM is all user submission and generally quite useless for making detailed loot tables.
This NPC should be usng the data on this page for loot: http://eq.magelo.com/npc/178635

i just attempted to update the NPC on PEQ and it did not do it, so I will drop this on Cavedude to look at the script.

sorvani
12-30-2013, 01:46 PM
ok the reason the mobs in innothule are not updated is because the zone no longer exists on live and magelo only reflects innothuleb (zone 413).

If you look in your database for the loot in innothuleb the mobs you are specifying do have their loot tables. You can simply apply the loot tables from innothuleb to the same mobs in innothule to achieve what you want.

If you want to feed back to the community, you can create a SQL script to update the NPC's in innothule and post it here and we'll update the PEQ DB.

haggzor
12-30-2013, 03:57 PM
Thank you very much. It is much appreciated. I'll just copy the spawn data for innothuleb into innothule for all existing mobs. Also, I'd be happy to post the script back here once I get it written.

Thanks again!

Nick

haggzor
01-02-2014, 01:59 AM
This isn't a perfect fix, but I'm too lazy to write all new loot tables. This query will update *most* of the NPCs in Innothule (Classic, pre-revamp) to spawn with the loot tables (MAGELO-GEN) from their equivalents in InnothuleB (revamped Innothule). From there you can pick and choose individual items from the tables, but this covers most of it.


/* UPDATE LOOT TABLE FOR SKELETONS (was 87917) */

update npc_types
set loottable_id = 93161
where id = 46008;

/* UPDATE LOOT TABLE FOR FROGLOKS (was 0) */

update npc_types
set loottable_id = 93162
where id = 46015;

/* UPDATE LOOT TABLE FOR FROGLOK FISHERMAN (was 120) */

update npc_types
set loottable_id = 93163
where id = 46012;

/* UPDATE LOOT TABLE FOR FROGLOK FORAGER (was 128) */

update npc_types
set loottable_id = 93164
where id = 46013;

/* UPDATE LOOT TABLE FOR FROGLOK GUARD (was 116) */

update npc_types
set loottable_id = 93165
where id = 65031;

/* UPDATE LOOT TABLE FOR FROGLOK TAD (was 108) */

update npc_types
set loottable_id = 93166
where id = 46014;

/* UPDATE LOOT TABLE FOR FUNGUS MAN TRACKER (was 87909) */

update npc_types
set loottable_id = 93182
where id = 46016;

/* UPDATE LOOT TABLE FOR FUNGUS SPORE (was 4880) */

update npc_types
set loottable_id = 93167
where id = 46017;

/* UPDATE LOOT TABLE FOR KOBOLD HUNTER (was 5556) */

update npc_types
set loottable_id = 93169
where id = 46024;

/* UPDATE LOOT TABLE FOR LESSER KOBOLD (was 5555) */

update npc_types
set loottable_id = 93171
where id = 46026;

/* UPDATE LOOT TABLE FOR SWAMP ALLIGATOR (was 5635) */

update npc_types
set loottable_id = 93173
where id = 46037;

/* UPDATE LOOT TABLE FOR WATER MOCASSIN (was 3624) */

update npc_types
set loottable_id = 93175
where id = 46041;

/* UPDATE LOOT TABLE FOR DARK DEATHSINGER (was 0) */

update npc_types
set loottable_id = 93181
where id = 46007;

/* UPDATE LOOT TABLE FOR GIANT WATER MOCASSIN (was 0) */

update npc_types
set loottable_id = 93183
where id = 46019;

sorvani
01-02-2014, 11:27 AM
if cavedude does not pop in and do this before i have time today or tomorrow, then I will get it done by then. thanks for the submission.

sorvani
01-03-2014, 01:14 PM
this is now in on PEQ thank you. I did change one thing. it will be in tomorrow's daily dump, thank you.

/* UPDATE LOOT TABLE FOR FROGLOK GUARD (was 116) */

update npc_types
set loottable_id = 93165
where id = 65031;
That NPC is from guktop. So I copied him to 46107, updated the spawn group to use 46107, and assigned the loot to 46107.
Thus the guard in guktop still uses loot table 116