From -
http://www.eqemulator.org/forums/sho...ight=extractor
Quote:
Originally Posted by cavedude
Found a problem, spawngroup is using the npcid for its id instead of the one you specify. The funny thing is, spawnentry is using the proper spawngroupID (meaning, the one you specify, and not the npcid.) In my testing, all other IDs look to be OK.
Just a friendly word of warning, if you are building zones against the PEQ database, the program defaults often conflict with existing data, which is destroyed when you source in the output.
Nevertheless, this is the most exciting thing to come out in a long time for EQEmu in my mind.
|
There are also several continuing pages talking about default ID conflicts with the database. As this starts to work fine with the higher zone ID's without confliction, it conflicts with the lower zone ID's quite frequently.
Depending on what you are trying to submit to, your own or the PEQ database, you may want Cavedude's input on how some zones are inserted. But to insert against your own database cleanly with free ID's you can use something similar to this:
Code:
set @zone = "moors";
SELECT MAX(id) + 1 AS npc_types FROM npc_types;
SELECT MAX(doorid) + 1 AS Doors FROM doors WHERE zone = @zone;
SELECT MAX(id) + 1 AS Spawngroup FROM spawngroup;
SELECT MAX(spawngroupID) + 1 AS Spawnentry FROM spawnentry;
SELECT MAX(id) + 1 as Spawn2 FROM spawn2;
SELECT MAX(id) + 1 As Objects FROM object;
SELECT MAX(merchantid) + 1 as merchantlists FROM merchantlist;
SELECT MAX(id) + 1 as Grid FROM grid;
Just define your zone at the top and it will grab the max free ID's from your database to inject upon. Derision should have a check-box option for this but that would include implementing a Mysql connection option of sorts (Tool is still very awesome regardless, thank you Derision

).
Still not understanding completely what you are trying to achieve even though you should know by now that ID's aren't completely consistent across the board. Maybe this query will help you figure out ID ranges of a particular zone:
*This includes all fields of all tables besides the npc_types table, npc_types select only pulls id and name for reference
*Just put the zone shortname at the bottom of the query:
Code:
SELECT
npc_types.id,
npc_types.`name`,
spawnentry.spawngroupID,
spawnentry.npcID,
spawnentry.chance,
spawn2.id,
spawn2.spawngroupID,
spawn2.zone,
spawn2.version,
spawn2.x,
spawn2.y,
spawn2.z,
spawn2.heading,
spawn2.respawntime,
spawn2.variance,
spawn2.pathgrid,
spawn2._condition,
spawn2.cond_value,
spawn2.enabled,
spawn2.animation,
spawngroup.id,
spawngroup.`name`,
spawngroup.spawn_limit,
spawngroup.dist,
spawngroup.max_x,
spawngroup.min_x,
spawngroup.max_y,
spawngroup.min_y,
spawngroup.delay
FROM
npc_types
INNER JOIN spawnentry ON npc_types.id = spawnentry.npcID
INNER JOIN spawngroup ON spawnentry.spawngroupID = spawngroup.id
INNER JOIN spawn2 ON spawnentry.spawngroupID = spawn2.spawngroupID
WHERE
spawn2.zone = 'crushbone'