Have you ever wanted to look at raw spell info, but the search function in lucy is failing you and we haven't exposed enough information in the spell datatype? With a little SQL knowledge, this utility will give you that ability! Just run this little script and it will produce a sqlite3 database file with all that information. The command help is as follows:
Before running any commands, check the requirements!
So for example, if you wanted to parse the base spell info, and any character files that you have generated (through
Then, say you go and buy some spells and rerun your outputfiles, you can then regenerate just the character portions by running:
Then, a new patch drops! Get that shiny new spell info into your sqlite3 db (without removing your character information) by running this:
After you run these, enjoy the fruits of your labor by opening your favorite sqlite3 client, pointing it to your output file, and running some juicy SQL commands. Here's a taster:
and another little taste:
The possibilities are endless!!!
command help:
usage: spell_converter.py [-h] [-b] [-c] [-o OUTPUT] eq_dir
positional arguments:
eq_dir everquest directory where files necessary for parsing
live
options:
-h, --help show this help message and exit
-b, --base-tables recreate the base spells and spas tables in the db
-c, --character-tables
parse character spellbook outputs and add tables in
the result
-o, --output OUTPUT sqlite db file to write results to (default spells.db)
Before running any commands, check the requirements!
So for example, if you wanted to parse the base spell info, and any character files that you have generated (through
/outputfile missingspells
or /outputfile spellbook
) then you would run this command:python.py spell_converter.py -bc /path/to/EQ
Then, say you go and buy some spells and rerun your outputfiles, you can then regenerate just the character portions by running:
python.py spell_converter.py -c /path/to/EQ
Then, a new patch drops! Get that shiny new spell info into your sqlite3 db (without removing your character information) by running this:
python.py spell_converter.py -b /path/to/EQ
After you run these, enjoy the fruits of your labor by opening your favorite sqlite3 client, pointing it to your output file, and running some juicy SQL commands. Here's a taster:
get highest spell stacker for a character:
SELECT name, stacking_name, stacking_rank FROM spells
JOIN (
SELECT id, MAX(stacking_rank) AS stacking_rank
FROM spells
JOIN spellbooks USING (name)
WHERE character = 'Charname' AND server = 'shortname'
AND stacking_group IS NOT NULL
GROUP BY stacking_group
) maxed
USING (id, stacking_rank);
and another little taste:
get nuke damage information (simplifed):
SELECT name, -base1 AS damage, mana, (-base1/mana) AS dpm, casting_time, wiz_level, description
FROM spells
JOIN spas USING (id)
JOIN spellbooks USING (name)
WHERE character = 'Charname' AND server = 'shortname'
AND spa_name = 'HP'
AND primary_category_name = 'DIRECT DAMAGE'
AND resist_type_name = 'Fire'
AND target_type_name = 'Single'
ORDER BY damage DESC;
The possibilities are endless!!!
- Source Repository
- https://github.com/dannuic/spell_converter
- [git] Automation options?
- Yes