These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

Skill relationships

Author
Ren Act
Aslon's Rest
#1 - 2017-06-23 07:15:35 UTC
Where can I find the information for how the skills are related. What skills are needed to train other skills.

Also where can I find the skill requirements to use all of the Modules/Ships?


I have looked through the Static Data Dump and didn't find the skill relationships. ESI has what skills you have trained, but again no relationship information.

thanks,
--Ren
Althalus Stenory
Flying Blacksmiths
#2 - 2017-06-23 09:50:49 UTC
this query might be outdated a bit, but gives you a good start (mysql / sde from fuzzwork)

This returns all item_id with their skills required (skills are also included as "skillbooks" are items).

FYI either prerqSkillLevelInt or prerqSkillLevelFloat is always empty, so you need to use the one that's not. Why it's like this, i don't know. We have to deal with it like this, that's all :p

i.typeID NOT IN (19430, 9955) <-- this was to prevent self required skills, like the polaris (which was in the SDE, don't know if it's still in it)

            SELECT 
                i.typeID         as itemID,
                ip.typeID        as prerqSkillID,
                dtal.valueInt    as prerqSkillLevelInt,
                dtal.valueFloat  as prerqSkillLevelFloat
            FROM invGroups g
            LEFT JOIN invTypes i
                ON i.groupID = g.groupID
            LEFT JOIN dgmTypeAttributes dta
                ON dta.typeID = i.typeID AND
                   dta.attributeID IN (182, 183, 184, 1285, 1289, 1290)
            LEFT JOIN dgmTypeAttributes dtal
                ON dtal.typeID = dta.typeID AND
                (
                    (dtal.attributeID = 277 AND dta.attributeID = 182) OR
                    (dtal.attributeID = 278 AND dta.attributeID = 183) OR
                    (dtal.attributeID = 279 AND dta.attributeID = 184) OR
                    (dtal.attributeID = 1286 AND dta.attributeID = 1285) OR
                    (dtal.attributeID = 1287 AND dta.attributeID = 1289) OR
                    (dtal.attributeID = 1288 AND dta.attributeID = 1290)
                )
            JOIN invTypes ip
                ON ip.typeID = dta.valueInt OR
                   ip.typeID = dta.valueFloat
           
            WHERE i.typeID NOT IN (19430, 9955)
                AND i.published = 1
                AND g.categoryID NOT IN (0,1,2,3,25)
            ORDER BY g.groupName DESC

EsiPy - Python 2.7 / 3.3+ Swagger Client based on pyswagger for ESI