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.
 

Using static dump/SQL to get hull resistance based on typeID...

Author
Kari Trace
#1 - 2013-01-21 04:51:11 UTC  |  Edited by: Kari Trace
...as stated in the title. For example: EFT shows a Rifter (typeID 587) with 0/20/40/50 armor resis and 60/35/25/10 shield resists. I am attempting to duplicate that in a SQL statement. (10% == 0.10 is completely ok as well).

Prefer MySQL but MsSQL would atleast get me in the proper direction.

Thanks in advance.

KT

Edit: as pointed out, I am looking for the armor / shield resistance. Sorry I stated hull by mistake.

I like making things explode.

Kari Trace

Mikokoel
Mining Industry Exile Foundation
Synergy of Steel
#2 - 2013-01-21 12:46:36 UTC
i think there are no ships with hull resistance other than 0/0/0/0

Mikokoel | Head FC League of Unaligned Master Pilots

Steve Ronuken
Fuzzwork Enterprises
Vote Steve Ronuken for CSM
#3 - 2013-01-21 13:06:52 UTC
I'm assuming you mean the shield and armour resists for a particular hull.

Assuming this is the case, what you want is in dgmTypeAttributes.

To see which attributeids you need to pull back look at:
select * from dgmAttributeTypes where attributeName like '%resonance%';

It's done backwards. a multiplier on the damage, rather than working out a resist to subtract. So a 60% resist is a 0.4 multiplier on the damage.


To see all the attributes:
select typename,attributename,dta.attributeid,coalesce(valueInt,valueFloat) value from invTypes it,dgmAttributeTypes dat,dgmTypeAttributes dta where dat.attributeID=dta.attributeID and it.typeid=dta.typeid and it.typeid=587;

To see just the ones you're wanting:
select typename,attributename,coalesce(valueInt,valueFloat) value from invTypes it,dgmAttributeTypes dat,dgmTypeAttributes dta where dat.attributeID=dta.attributeID and it.typeid=dta.typeid and it.typeid=587 and dat.attributeID in (267,268,269,270,271,272,273,274,974,975,976,977);


and if you really want it as % resists (the round is there as otherwise it goes a trifle wonky. at least on my copy.):
select typename,attributename,round((1-coalesce(valueInt,valueFloat))*100) value from invTypes it,dgmAttributeTypes dat,dgmTypeAttributes dta where dat.attributeID=dta.attributeID and it.typeid=dta.typeid and it.typeid=587 and dat.attributeID in (267,268,269,270,271,272,273,274,974,975,976,977);


+----------+--------------------------------+-------+
| typename | attributename | value |
+----------+--------------------------------+-------+
| Rifter | armorEmDamageResonance | 60 |
| Rifter | armorExplosiveDamageResonance | 10 |
| Rifter | armorKineticDamageResonance | 25 |
| Rifter | armorThermalDamageResonance | 35 |
| Rifter | shieldEmDamageResonance | 0 |
| Rifter | shieldExplosiveDamageResonance | 50 |
| Rifter | shieldKineticDamageResonance | 40 |
| Rifter | shieldThermalDamageResonance | 20 |
| Rifter | hullEmDamageResonance | 0 |
| Rifter | hullExplosiveDamageResonance | 0 |
| Rifter | hullKineticDamageResonance | 0 |
| Rifter | hullThermalDamageResonance | 0 |
+----------+--------------------------------+-------+

Woo! CSM XI!

Fuzzwork Enterprises

Twitter: @fuzzysteve on Twitter

Kari Trace
#4 - 2013-01-21 14:16:52 UTC
Steve Ronuken wrote:
...

It's done backwards. a multiplier on the damage, rather than working out a resist to subtract. So a 60% resist is a 0.4 multiplier on the damage.
...



Now it all makes sense. No idea why I did not see this before. Thanks a ton m8.

I like making things explode.

Kari Trace