Spells: Difference between revisions
No edit summary |
(Update based on latest DBC changes.) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 75: | Line 75: | ||
Each spell can have multiple effects. | Each spell can have multiple effects. | ||
= Spell | = Spell descriptions = | ||
When hovering over spells in-game or on a fansite, it usually shows a tooltip with some information for the spell in it. One of the things that can be in a tooltip is a description. | |||
This description mainly comes from the Spell DB's Description_lang field. Spell descriptions can contain various identifiers that require you to look up, calculate or otherwise manipulate information in the description. | |||
== Identifiers == | |||
Identifiers are prefixed by a $, indicating that everything afterwards (up to a certain point, different per identifier type) is part of that identifier. | |||
=== Known identifiers === | |||
Some identifiers require different handling based on their casing, others are case insensitive. Below list is missing a lot, still. | |||
{| border="1" cellpadding="2" style="background:#FCFCFC; color:black" | |||
|- | |||
! width="90" | Identifier | |||
! Description | |||
|- | |||
| ? || Conditional | |||
|- | |||
| A || SpellEffect.EffectRadiusIndex[0] pointing to SpellRadius::ID, fallback to EffectRadiusIndex[1] if 0 | |||
|- | |||
| a || SpellEffect.EffectRadiusIndex[1] pointing to SpellRadius::ID, fallback to EffectRadiusIndex[0] if 0 | |||
|- | |||
| b || SpellEffect.EffectPointsPerResource for spell 14161. Broken in all other spells. | |||
|- | |||
| B || See above. | |||
|- | |||
| C || Specialization conditional 1 = 1st spec, etc | |||
|- | |||
| c || TODO: Investigate | |||
|- | |||
| D || SpellMisc.DurationIndex pointing to SpellDuration::ID | |||
|- | |||
| d || SpellMisc.DurationIndex pointing to SpellDuration::ID | |||
|- | |||
| E || SpellEffect.EffectAmplitude | |||
|- | |||
| e || SpellEffect.EffectAmplitude | |||
|- | |||
| f || SpellEffect.EffectChainAmplitude (expression only) | |||
|- | |||
| F || SpellEffect.EffectChainAmplitude (expression only) | |||
|- | |||
| g || Gender conditional | |||
|- | |||
| G || Gender conditional | |||
|- | |||
| h || Proc chance (SpellAuraOptions.ProcChance) | |||
|- | |||
| H || Proc chance (SpellAuraOptions.ProcChance) | |||
|- | |||
| i || Max Targets (SpellTargetRestrictions.MaxTargets) | |||
|- | |||
| I || Max Targets (SpellTargetRestrictions.MaxTargets) | |||
|- | |||
| l || Plurality | |||
|- | |||
| L || Plurality | |||
|- | |||
| m || TODO: Investigate | |||
|- | |||
| M || TODO: Investigate | |||
|- | |||
| n || SpellAuraOptions.ProcCharges | |||
|- | |||
| N || SpellAuraOptions.ProcCharges | |||
|- | |||
| o || TODO: Investigate | |||
|- | |||
| O || TODO: Investigate | |||
|- | |||
| p || SpellEffect.EffectMiscValue | |||
|- | |||
| q || TODO: Investigate, broken in only spell it is used: 39794 | |||
|- | |||
| r || SpellMisc.RangeIndex pointing to SpellRange::ID MaxRange | |||
|- | |||
| R || SpellMisc.RangeIndex pointing to SpellRange::ID MinRange | |||
|- | |||
| s || SpellEffect.EffectBasePointsF/EffectMiscValue depending on various things | |||
|- | |||
| S || SpellEffect.EffectBasePointsF/EffectMiscValue depending on various things | |||
|- | |||
| t || Aura period | |||
|- | |||
| T || Aura period | |||
|- | |||
| u || Max stacks | |||
|- | |||
| U || Max stacks | |||
|- | |||
| v || Max target level (SpellTargetRestrictions.MaxTargetLevel) | |||
|- | |||
| V || Max target level (SpellTargetRestrictions.MaxTargetLevel) | |||
|- | |||
| w || Another EffectBasePoints?? TODO: Investigate 118078 | |||
|- | |||
| x || SpellEffect.EffectChainTargets | |||
|- | |||
| X || SpellEffect.EffectChainTargets | |||
|- | |||
| y || Not parsed in-game? | |||
|- | |||
| z || Hearthstone location | |||
|- | |||
|} | |||
=Calculations= | =Calculations= |
Latest revision as of 02:12, 13 May 2021
Intro
Spells are arguably one of the most intricate systems in WoW, this page will hopefully explain some of the basics as well as going into how to parse tooltips or how to do some of the number crunching.
Relevant DB2s
Many DB2s are used when it comes to spell data, most are listed below with a small explanation on what they're for.
Table | WoW.tools link | Description |
---|---|---|
Spell | Browse | Hopefully exhaustive list of all spells in the game, has partial (aura) descriptions for tooltips |
SpellAuraOptions | Browse | |
SpellAuraRestrictions | Browse | |
SpellCastingRequirements | Browse | Various requirements for being able to cast a spell (e.g. being in a specific area) |
SpellCastTimes | Browse | Casting times for spells in milliseconds, linked to spellIDs from SpellMisc |
SpellCategories | Browse | |
SpellCategory | Browse | |
SpellClassOptions | Browse | |
SpellCooldowns | Browse | |
SpellDescriptionVariables | Browse | |
SpellDuration | Browse | |
SpellEffect | Browse | |
SpellEffectAutoDescription | Browse | |
SpellInterrupts | Browse | |
SpellItemEnchantment | Browse | |
SpellLabel | Browse | |
SpellLearnSpell | Browse | |
SpellMisc | Browse | |
SpellName | Browse | Spell names |
SpellPower | Browse | |
SpellProcsPerMinute | Browse | |
SpellProcsPerMinuteMod | Browse | |
SpellRadius | Browse | |
SpellRange | Browse | |
SpellScaling | Browse | |
SpellShapeShift | Browse | |
SpellTargetRestrictions | Browse | |
SpellXDescriptionVariables | Browse |
Intro
SpellIDs
Spells in WoW are referred to by a ID for that spell throughout various of the above DBs. For some DBs such as SpellName the ID field is the Spell ID.
Spell effects
Each spell can have multiple effects.
Spell descriptions
When hovering over spells in-game or on a fansite, it usually shows a tooltip with some information for the spell in it. One of the things that can be in a tooltip is a description.
This description mainly comes from the Spell DB's Description_lang field. Spell descriptions can contain various identifiers that require you to look up, calculate or otherwise manipulate information in the description.
Identifiers
Identifiers are prefixed by a $, indicating that everything afterwards (up to a certain point, different per identifier type) is part of that identifier.
Known identifiers
Some identifiers require different handling based on their casing, others are case insensitive. Below list is missing a lot, still.
Identifier | Description |
---|---|
? | Conditional |
A | SpellEffect.EffectRadiusIndex[0] pointing to SpellRadius::ID, fallback to EffectRadiusIndex[1] if 0 |
a | SpellEffect.EffectRadiusIndex[1] pointing to SpellRadius::ID, fallback to EffectRadiusIndex[0] if 0 |
b | SpellEffect.EffectPointsPerResource for spell 14161. Broken in all other spells. |
B | See above. |
C | Specialization conditional 1 = 1st spec, etc |
c | TODO: Investigate |
D | SpellMisc.DurationIndex pointing to SpellDuration::ID |
d | SpellMisc.DurationIndex pointing to SpellDuration::ID |
E | SpellEffect.EffectAmplitude |
e | SpellEffect.EffectAmplitude |
f | SpellEffect.EffectChainAmplitude (expression only) |
F | SpellEffect.EffectChainAmplitude (expression only) |
g | Gender conditional |
G | Gender conditional |
h | Proc chance (SpellAuraOptions.ProcChance) |
H | Proc chance (SpellAuraOptions.ProcChance) |
i | Max Targets (SpellTargetRestrictions.MaxTargets) |
I | Max Targets (SpellTargetRestrictions.MaxTargets) |
l | Plurality |
L | Plurality |
m | TODO: Investigate |
M | TODO: Investigate |
n | SpellAuraOptions.ProcCharges |
N | SpellAuraOptions.ProcCharges |
o | TODO: Investigate |
O | TODO: Investigate |
p | SpellEffect.EffectMiscValue |
q | TODO: Investigate, broken in only spell it is used: 39794 |
r | SpellMisc.RangeIndex pointing to SpellRange::ID MaxRange |
R | SpellMisc.RangeIndex pointing to SpellRange::ID MinRange |
s | SpellEffect.EffectBasePointsF/EffectMiscValue depending on various things |
S | SpellEffect.EffectBasePointsF/EffectMiscValue depending on various things |
t | Aura period |
T | Aura period |
u | Max stacks |
U | Max stacks |
v | Max target level (SpellTargetRestrictions.MaxTargetLevel) |
V | Max target level (SpellTargetRestrictions.MaxTargetLevel) |
w | Another EffectBasePoints?? TODO: Investigate 118078 |
x | SpellEffect.EffectChainTargets |
X | SpellEffect.EffectChainTargets |
y | Not parsed in-game? |
z | Hearthstone location |
Calculations
Instance spells
Some spells used in instances can scale differently based on the current difficulty.
TODO
SpellEffect.Effect = SCHOOL_DAMAGE (2) => CreatureSpellDamage ExpectedStat for lvl 120 = CreatureSpellDamage = 76940.51 Ny'alotha => Map::ID 2217 MapDifficulty filter on above Map::ID Take all results for specified mod column and multiple them together Multiply CreatureSpellDamage with the result of above calculation Multiply that by EffectBasePointsF / 100.0
Player spells
TODO
Visuals
TODO
SpellVisual SpellVisualAnim SpellVisualAnimName SpellVisualColorEffect SpellVisualEffectName SpellVisualEvent SpellVisualKit SpellVisualKitAreaModel SpellVisualKitEffect SpellVisualKitModelAttach SpellVisualMissile SpellVisualPrecastTransitions SpellVisualScreenEffect SpellXSpellVisual