1. I have corrected the e-mail settings so that outgoing e-mails from these forums should be sent now. If you tried to Register or Reset your Password, please try again!
    Dismiss Notice

Spawncamps, Treasureclasses, and Itemtables Oh My

Discussion in 'Census: EverQuest II' started by Administrator, Dec 14, 2016.

  1. Administrator

    Administrator Administrator Staff Member

    it is unclear if this data will ever become available to us, short of the 58 zones which were exported during initial tests a few years ago. Anyway, here's an explanation of the data formats just in case we need them...

    WARNING: The Surgeon General warns that studying EQ2 Zone/Encounter/NPC/Item relationships may cause paralysis and/or brain cancer.

    Seriously, I had a headache for a week when I first started looking at this data.

    EQ2 Zones contain Spawncamps. A Spawncamp can be anything -- an Enemy, a Broker, a Banker, a Vendor, a Quest Giver, a Shiny, a Harvest node, a clickable rock, or other interactive object.

    A Spawncamp can contain NPCs and Encounters (NPC tables) which subsequently contain NPC_Lists. The part that will make your brain hurt is, Spawncamps, Encounters, and NPC_Lists can all be nested to an infinite depth. They also contain spawn coordinates and offsets, which allows game designers to have some random placement of mobs when a camp spawns. NPC Tables also allow for a selection of mobs to spawn at a specific location. For instance, when badgers are killed in the Enchanted Lands zone, they can respawn as deer and vice versa.

    EQ2 loot is stored in Treasureclasses. Treasureclasses are crazy complex because they can contain:
    • item_list -- Bare items with a Count and Percentage chance to drop.
    • itemtable_list -- Itemtables (with each item having a Count and Weight) with a Count and a Percentage chance for that table to drop. Refer to /itemtable/ collection.
    • treasureclass_list -- Yes, treasureclasses can be nested infinitely deep!
    You might have to go 5 or more levels deep, scanning tresureclasses, item_lists, and item_tables to get all the loot for one spawncamp. Then you have to read all the Counts, Percents, and Weights to figure out what the actual chance for all this loot is to drop.

    Wait...Weight?

    In any itemlist, items can be weighted. For instance take an itemtable like this:
    • 20% chance to itemtable 12345 to drop, with a count of 2.
    Itemtable 12345:
    • mage weapon - 3
    • scout weapon - 3
    • priest weapon - 3
    • plate fighter weapon - 2
    • brawler weapon - 1
    When you kill the enemy, let's say we successfully hit the 20% chance. Ok now two weapons will drop. Each of those weapons will roll a number from 1-12. Each roll has a 3 in 12 chance to get a scout weapon, 3 in 12 chance to get mage weapon, 3 in 12 chance to get priest weapon, 2 in 12 chance to get plate fighter weapon, and 1 in 12 chance to get brawler weapon. So there will be two weapons, each independently rolling the dice to see if it's a mage, scout, priest, plate fighter, or brawler weapon.

    Note that it's not actually checking the class of the character present unless Smart Loot is enabled for the Spawncamp. Smart Loot requires loot to be class-limited, such as Fighter-only, Scout-only, etc.

    Here's my data schema based on the data currently in Census based on the work by Zoltaroth two years ago:

    [​IMG]

    Every starred value (*) can have multiple values.

    I have mostly limited the above diagram to the fields that are necessary to link this data together. All the other data found in these records is pretty self-evident. You may be looking at this data and wondering how you find out which NPCs give Questsor which Vendors sell which items. Unfortunately this would be insanely complex data because Quests and Vendors usePredicates to decide whether they are visible/hidden based on your Class, Race, Level, Progress on a Quest, Faction, even if you are under the effect of a spell, etc. Everything sold on a Vendor can be predicated based on any number of things as well.

    NPC Tier/Con

    When looking at an NPC, it has a base_level and then min_addr_level and max_addr_level. Unless I'm mistaken, these are NPC tiers. The secret decoder for that is...​

    Code:
    0 => 'vvv'
    1 => 'vvv'
    2 => 'vvv'
    3 => 'vv'
    4 => 'v'
    5 => ''
    6 => '^'
    7 => '^^ { Heroic }'
    8 => '^^^ { Heroic }'
    9 => ' ^{ Epic x2 }^'
    10 => ' ^{ Epic x3 }^'
    11 => ' ^{ Epic x4 }^'
    I hope one day that we can convince the powers that be that while Loot Data takes away some of the initial mystery of where things drop, that the benefits of this data outweigh the negatives. Note that all we have is itemids until the items are actually discovered.
     
    Last edited by a moderator: Dec 17, 2016

Share This Page