DB/Spell: Difference between revisions

From wowdev
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 66: Line 66:
   uint32_t m_startRecoveryTime;
   uint32_t m_startRecoveryTime;
  };
  };
==3.3.5.12340==
{| style="background:#FCFCFC; color:black"
|-
! width="60" | Field
! width="80" | Type
! width="200" | Name
! width="940" | Notes
|-style="background:#E0E0E0;"
| 1||uint32||ID||Unique ID of a spell.
|-
| 2||uint32||[[SpellCategory.dbc|Spell category]]||Category of a spell. Used for category cooldowns.
|-style="background:#E0E0E0;"
| 3||uint32||[[SpellDispelType.dbc|Dispel type]]||For determining which spells are capable of dispelling this.
|-
| 4||uint32||[[SpellMechanic.dbc|Spell mechanic]]||Used by spells granting bonuses/immunities against certain effect types (stun, charm...).
|-style="background:#E0E0E0;"
| 5||uint32||[[Spell.dbc/Attributes|Attributes]]||Attributes are in general miscellanous flags.
|-
| 6||uint32||[[Spell.dbc/AttributesEx|AttributesEx]]||Attributes are in general miscellanous flags.
|-style="background:#E0E0E0;"
| 7||uint32||[[Spell.dbc/AttributesExB|AttributesExB]]||Attributes are in general miscellanous flags.
|-
| 8||uint32||[[Spell.dbc/AttributesExC|AttributesExC]]||Attributes are in general miscellanous flags.
|-style="background:#E0E0E0;"
| 9||uint32||[[Spell.dbc/AttributesExD|AttributesExD]]||Attributes are in general miscellanous flags.
|-
| 10||uint32||[[Spell.dbc/AttributesExE|AttributesExE]]||Attributes are in general miscellanous flags.
|-style="background:#E0E0E0;"
| 11||uint32||[[Spell.dbc/AttributesExF|AttributesExF]]||Attributes are in general miscellanous flags.
|-
| 12||uint32||[[Spell.dbc/AttributesExG|AttributesExG]]||Attributes are in general miscellanous flags.
|-style="background:#E0E0E0;"
| 13||uint32||[[SpellShapeshiftForm.dbc|Stances]]||Mask. Shapeshifts/Stances in which is spell castable.
|-
| 14||uint32||unk_320_2||Removed in 3.2.0.
|-style="background:#E0E0E0;"
| 15||uint32||[[SpellShapeshiftForm.dbc|Excluded stances]]||Mask. Shapeshifts/Stances in which is spell not castable.
|-
| 16||uint32||unk_320_3||Removed in 3.2.0
|-style="background:#E0E0E0;"
| 17||uint32||[[Spell.dbc/Targets|Targets]]||
|-
| 18||uint32||TargetCreatureType||Mask of creature types (creature_template.type), on which is spell usable.
|-style="background:#E0E0E0;"
| 19||uint32||[[SpellFocusObject.dbc|SpellFocusObject]]||Spell focus needed by spell to be casted. Player needs to be within range of apropriate gameobject with type=8.
|-
| 20||uint32||FacingCasterFlags||
|-style="background:#E0E0E0;"
| 21||uint32||CasterAuraState||
|-
| 22||uint32||TargetAuraState||
|-style="background:#E0E0E0;"
| 23||uint32||CasterAuraStateNot||
|-
| 24||uint32||TargetAuraStateNot||
|-style="background:#E0E0E0;"
| 25||uint32||casterAuraSpell||
|-
| 26||uint32||targetAuraSpell||
|-style="background:#E0E0E0;"
| 27||uint32||excludeCasterAuraSpell||
|-
| 28||uint32||excludeTargetAuraSpell||
|-style="background:#E0E0E0;"
| 29||uint32||[[SpellCastTimes.dbc|CastingTimeIndex]]||Casting time of a spell. May differ with caster's level.
|-
| 30||uint32||RecoveryTime||Cooldown of a spell. May differ with caster's level.
|-style="background:#E0E0E0;"
| 31||uint32||CategoryRecoveryTime||Cooldown applied by spell on all spells with the same Category.
|-
| 32||uint32||[[Spell.dbc/InterruptFlags|InterruptFlags]]||Mask of cases which interrupt casting of a spell.
|-style="background:#E0E0E0;"
| 33||uint32||[[Spell.dbc/AuraInterruptFlags|AuraInterruptFlags]]||Mask of cases which interrupt casting of a spell.
|-
| 34||uint32||[[Spell.dbc/ChannelInterruptFlags|ChannelInterruptFlags]]||Mask of cases which interrupt casting of a spell.
|-style="background:#E0E0E0;"
| 35||uint32||[[Spell.dbc/procFlags|procFlags]]||
|-
| 36||uint32||procChance||Most of spells with 100% chance tend to have value 101.
|-style="background:#E0E0E0;"
| 37||uint32||procCharges||
|-
| 38||uint32||maxLevel||Probably maximal level from which spell can gain bonuses (or minuses) which are based on formula caster's level - spell's level.
|-style="background:#E0E0E0;"
| 39||uint32||baseLevel||Base level of a spell.
|-
| 40||uint32||spellLevel||Tends to be exactly same as base level.
|-style="background:#E0E0E0;"
| 41||uint32||[[SpellDuration.dbc|DurationIndex]]||Duration of spell's effects.
|-
| 42||uint32||[[Spell.dbc/powerType|powerType]]||Power type used by spell.
|-style="background:#E0E0E0;"
| 43||uint32||manaCost||Base mana cost of a spell. Its being summed with ManaCostPercentage.
|-
| 44||uint32||manaCostPerlevel||Likely is mana cost increased by ((caster's level) - (spell's level))*(this field).
|-style="background:#E0E0E0;"
| 45||uint32||manaPerSecond||For channels.
|-
| 46||uint32||manaPerSecondPerLevel||For channels. Likely is mana cost per second increased by ((caster's level) - (spell's level))*(this field).
|-style="background:#E0E0E0;"
| 47||uint32||[[SpellRange.dbc|RangeIndex]]||Range of a spell. May differ for friendly and enemy targets.
|-
| 48||float||speed||Maybe something with projectile speed? Not sure.
|-style="background:#E0E0E0;"
| 49||uint32||modalNextSpell||
|-
| 50||uint32||StackAmount||For stackable spells, maximal amount of stacks on target. For non-stackable spells leave 0.
|-style="background:#E0E0E0;"
| 51-52||uint32||Totem[2]||Not sure what is this for, as shaman totem spells don't seem to use this.
|-
| 53-60||int32||[[Item.dbc|Reagent]][8]||Entries of items used by this spell as resources.
|-style="background:#E0E0E0;"
| 61-68||uint32||ReagentCount[8]||Count of according items needed by spell.
|-
| 69||int32||EquippedItemClass||item_template.class value which caster's item held in hand must have. Commonly 2 (weapon).
|-style="background:#E0E0E0;"
| 70||int32||EquippedItemSubClassMask||Mask of item_template.subclass values which caster's item held in hand must have. For example dagger for Backstab.
|-
| 71||int32||EquippedItemInventoryTypeMask||Mask of item_template.InventoryType values which targeted item must have. Used mainly by enchants.
|-style="background:#E0E0E0;"
| 72-74||int32||[[Spell.dbc/Effect|Effect]][3]||Type of effect which spell has. All following effect fields (and some at the end of DBC) reffer to these up to 3 effects.
|-
| 75-77||int32||EffectDieSides[3]||Number of sides of dice which is being rolled for random value of according effect.
|-style="background:#E0E0E0;"
| 78-80||float||EffectRealPointsPerLevel[3]||Base points added to according EffectBasePoints based on caster's level.
|-
| 81-83||int32||EffectBasePoints[3]||Base points added to result of according effect's rolled dice. F.e. EffectDieSides=26 and EffectBasePoints=49 will make 50-75.
|-style="background:#E0E0E0;"
| 84-86||int32||[[SpellMechanic.dbc|EffectMechanic]][3]||Mechanic of according spell's effect. Used by spells granting bonuses/immunities against certain effect types (stun, charm...).
|-
| 87-89||uint32||[[Spell.dbc/EffectImplicitTarget|EffectImplicitTargetA]][3]||Type of implicit target(s) of according effect.
|-style="background:#E0E0E0;"
| 90-92||uint32||[[Spell.dbc/EffectImplicitTarget|EffectImplicitTargetB]][3]||Type of implicit target(s) of according effect. Dunno what is difference between A and B.
|-
| 93-95||uint32||[[SpellRadius.dbc|EffectRadiusIndex]][3]||According spell effect's radius. May differ with caster's level.
|-style="background:#E0E0E0;"
| 96-98||uint32||[[Spell.dbc/EffectApplyAuraName|EffectApplyAuraName]][3]||Type of aura ("effect of effect") which according effect applies.
|-
| 99-101||uint32||EffectAuraPeriod[3]||How often according effect "ticks" in ms.
|-style="background:#E0E0E0;"
| 102-104||uint32||EffectMultipleValue[3]||
|-
| 105-107||uint32||EffectChainTarget[3]||
|-style="background:#E0E0E0;"
| 108-110||uint32||EffectItemType[3]||
|-
| 111-113||int32||EffectMiscValue[3]||Used for according effect's special misc values, commonly entries of called or used creature/item/gameobject.
|-style="background:#E0E0E0;"
| 114-116||int32||EffectMiscValueB[3]||Used for according effect's special misc values, commonly entries of called or used creature/item/gameobject.
|-
| 117-119||uint32||EffectTriggerSpell[3]||Entry of spell triggered on affected target by this according effect.
|-style="background:#E0E0E0;"
| 120-122||float||EffectPointsPerComboPoint[3]||Bonus to effect's base value based on amount of combo points on target.
|-
| 123-125||uint32||EffectSpellClassMaskA[3]||
|-style="background:#E0E0E0;"
| 126-128||uint32||EffectSpellClassMaskB[3]||
|-
| 129-131||uint32||EffectSpellClassMaskC[3]||
|-style="background:#E0E0E0;"
| 132-133||uint32||[[SpellVisual.dbc|SpellVisual]][2]||Visual effects of a spell.
|-
| 134||uint32||[[SpellIcon.dbc|SpellIconID]]||ID of icon used while spell is not active.
|-style="background:#E0E0E0;"
| 135||uint32||[[SpellIcon.dbc|activeIconID]]||ID of icon used while spell is active. Used f.e. by Stealth.
|-
| 136||uint32||spellPriority
|-style="background:#E0E0E0;"
| 137-152||{{Template:Type|langstringref}}||SpellName||Name of a spell.
|-
| 154-169||{{Template:Type|langstringref}}||SpellSubtext||Subname of a spell, commonly used for distinguishing ranks.
|-style="background:#E0E0E0;"
| 170||unk||unk||
|-
| 171-186||{{Template:Type|langstringref}}||Description||Description of a spell shown when spell is mouse-overed in anaction bar or in a spellbook.
|-style="background:#E0E0E0;"
| 188-203||{{Template:Type|langstringref}}||ToolTip||Tooltip shown when spell's aura buff/debuff is mouse-overed.
|-
| 204||unk||unk||
|-style="background:#E0E0E0;"
| 205||uint32||ManaCostPercentage||% of base mana cost, added to flat value in manaCost field. For NPCs is base mana = their max mana.
|-
| 206||uint32||StartRecoveryCategory||The only value which seems to be used here apart of 0 is 133 (spells affected by global CD).
|-style="background:#E0E0E0;"
| 207||uint32||StartRecoveryTime||The only value (in ms) which seems to be used here apart of 0 is 1500 (global CD value).
|-
| 208||uint32||MaxTargetLevel||Seems to be maximal level of target which can be affected by spell.
|-style="background:#E0E0E0;"
| 209||uint32||SpellClassSet||Apparently serves for distinguishing class spells.
|-
| 210-211||uint64||SpellClassMask[2]||
|-style="background:#E0E0E0;"
| 212||uint32||SpellClassMask2||Another addition to SpellClassMask.
|-
| 213||uint32||MaxAffectedTargets||Oddly seems to be used only rarely.
|-style="background:#E0E0E0;"
| 214||uint32||DefenseType||DmgClass?
|-
| 215||uint32||PreventionType||
|-style="background:#E0E0E0;"
| 216||uint32||StanceBarOrder||
|-
| 217-219||float||EffectChainAmplitude[3]||Used for decreasing (or increasing) according effect's value on next chained targets.
|-style="background:#E0E0E0;"
| 220||uint32||MinFactionId||Probably ID of required reputation with a faction.
|-
| 221|uint32||MinReputation||Probably either value or level of required reputation with a faction.
|-style="background:#E0E0E0;"
| 222|uint32||RequiredAuraVision||
|-
| 223-224||uint32||[[TotemCategory.dbc|TotemCategory]][2]||Category of totem (Item with correct item_template.TotemCategory) required for a spell.
|-style="background:#E0E0E0;"
| 225||uint32||[[AreaGroup.dbc|RequiredAreaGroupId]]||Areas in which a spell can be cast.
|-
| 226||uint32||[[Spell.dbc/SchoolMask|SchoolMask]]||Mask of schools in which spell belongs. Used by resistance/armor system.
|-style="background:#E0E0E0;"
| 227||uint32||[[SpellRuneCost.dbc|RuneCostID]]||I'm not sure where this points to. Hopefully linked DBC.
|-
| 228||uint32||SpellMissileID||
|-style="background:#E0E0E0;"
| 229||uint32||[[PowerDisplay.dbc|PowerDisplayId]]||3.1
|-
| 230-232||float||EffectBonusMultiplier[3]||Seems to be used for calculation of one according effect's value of "tick" for DoTs and HoTs.
|-style="background:#E0E0E0;"
| 233||uint32||SpellDescriptionVariableID||3.2.0
|-
| 234||uint32||SpellDifficultyId||3.3.0
|}
==4.0.3.13329==
==4.0.3.13329==


Line 170: Line 400:
|}
|}


==3.3.5.12340==
struct SpellEntry
{
    uint32      Id;                                            // 0        m_ID
    uint32      [[SpellCategory.dbc|Category]];                                      // 1        m_category
    uint32      [[SpellDispelType.dbc|Dispel]];                                        // 2        m_dispelType
    uint32      [[SpellMechanic.dbc|Mechanic]];                                      // 3        m_mechanic
    uint32      [[Spell.dbc/Attributes|Attributes]];                                    // 4        m_attribute
    uint32      [[Spell.dbc/AttributesEx|AttributesEx]];                                  // 5        m_attributesEx
    uint32      [[Spell.dbc/AttributesExB|AttributesEx2]];                                  // 6        m_attributesExB
    uint32      [[Spell.dbc/AttributesExC|AttributesEx3]];                                  // 7        m_attributesExC
    uint32      [[Spell.dbc/AttributesExD|AttributesEx4]];                                  // 8        m_attributesExD
    uint32      [[Spell.dbc/AttributesExE|AttributesEx5]];                                  // 9        m_attributesExE
    uint32      [[Spell.dbc/AttributesExF|AttributesEx6]];                                  // 10      m_attributesExF
    uint32      [[Spell.dbc/AttributesExG|AttributesEx7]];                                  // 11      3.2.0 (0x20 - totems, 0x4 - paladin auras, etc...) --- Even more attributes needed, thanks MrLama for this
    uint32      Stances;                                        // 12      m_shapeshiftMask
    uint32      unk_320_2;                                      // 13      3.2.0
    uint32      StancesNot;                                    // 14      m_shapeshiftExclude
    uint32      unk_320_3;                                      // 15      3.2.0
    uint32      [[Spell.dbc/Targets|Targets]];                                        // 16      m_targets
    uint32      TargetCreatureType;                            // 17      m_targetCreatureType
    uint32      RequiresSpellFocus;                            // 18      m_requiresSpellFocus
    uint32      FacingCasterFlags;                              // 19      m_facingCasterFlags
    uint32      CasterAuraState;                                // 20      m_casterAuraState
    uint32      TargetAuraState;                                // 21      m_targetAuraState
    uint32      CasterAuraStateNot;                            // 22      m_excludeCasterAuraState
    uint32      TargetAuraStateNot;                            // 23      m_excludeTargetAuraState
    uint32      casterAuraSpell;                                // 24      m_casterAuraSpell
    uint32      targetAuraSpell;                                // 25      m_targetAuraSpell
    uint32      excludeCasterAuraSpell;                        // 26      m_excludeCasterAuraSpell
    uint32      excludeTargetAuraSpell;                        // 27      m_excludeTargetAuraSpell
    uint32      [[SpellCastTimes.dbc|CastingTimeIndex]];                              // 28      m_castingTimeIndex
    uint32      RecoveryTime;                                  // 29      m_recoveryTime
    uint32      CategoryRecoveryTime;                          // 30      m_categoryRecoveryTime
    uint32      InterruptFlags;                                // 31      m_interruptFlags
    uint32      AuraInterruptFlags;                            // 32      m_auraInterruptFlags
    uint32      ChannelInterruptFlags;                          // 33      m_channelInterruptFlags
    uint32      [[procFlags]];                                      // 34      m_procTypeMask
    uint32      procChance;                                    // 35      m_procChance
    uint32      procCharges;                                    // 36      m_procCharges
    uint32      maxLevel;                                      // 37      m_maxLevel
    uint32      baseLevel;                                      // 38      m_baseLevel
    uint32      spellLevel;                                    // 39      m_spellLevel
    uint32      [[SpellDuration.dbc|DurationIndex]];                                  // 40      m_durationIndex
    uint32      powerType;                                      // 41      m_powerType
    uint32      manaCost;                                      // 42      m_manaCost
    uint32      manaCostPerlevel;                              // 43      m_manaCostPerLevel
    uint32      manaPerSecond;                                  // 44      m_manaPerSecond
    uint32      manaPerSecondPerLevel;                          // 45      m_manaPerSecondPerLeve
    uint32      [[SpellRange.dbc|rangeIndex]];                                    // 46      m_rangeIndex
    float      speed;                                          // 47      m_speed
    uint32      modalNextSpell;                                // 48      m_modalNextSpell
    uint32      StackAmount;                                    // 49      m_cumulativeAura
    uint32      Totem[2];                                      // 50-51    m_totem
    int32      [[Item.dbc|Reagent]][8];                                    // 52-59    m_reagent
    uint32      ReagentCount[8];                                // 60-67    m_reagentCount
    int32      EquippedItemClass;                              // 68      m_equippedItemClass (value)
    int32      EquippedItemSubClassMask;                      // 69      m_equippedItemSubclass (mask)
    int32      EquippedItemInventoryTypeMask;                  // 70      m_equippedItemInvTypes (mask)
    uint32      [[Spell.dbc/Effect|Effect]][3];                                      // 71-73    m_effect
    int32      EffectDieSides[3];                              // 74-76    m_effectDieSides
    float      EffectRealPointsPerLevel[3];                    // 77-79    m_effectRealPointsPerLevel
    int32      EffectBasePoints[3];                            // 80-82    m_effectBasePoints (don't must be used in spell/auras explicitly, must be used cached Spell::m_currentBasePoints)
    uint32      EffectMechanic[3];                              // 83-85    m_effectMechanic
    uint32      EffectImplicitTargetA[3];                      // 86-88    m_implicitTargetA
    uint32      EffectImplicitTargetB[3];                      // 89-91    m_implicitTargetB
    uint32      EffectRadiusIndex[3];                          // 92-94    m_effectRadiusIndex - spellradius.dbc
    uint32      [[Spell.dbc/EffectApplyAuraName|EffectApplyAuraName]][3];                        // 95-97    m_effectAura
    uint32      EffectAmplitude[3];                            // 98-100  m_effectAuraPeriod
    float      EffectMultipleValue[3];                        // 101-103  m_effectAmplitude
    uint32      EffectChainTarget[3];                          // 104-106  m_effectChainTargets
    uint32      EffectItemType[3];                              // 107-109  m_effectItemType
    int32      EffectMiscValue[3];                            // 110-112  m_effectMiscValue
    int32      EffectMiscValueB[3];                            // 113-115  m_effectMiscValueB
    uint32      EffectTriggerSpell[3];                          // 116-118  m_effectTriggerSpell
    float      EffectPointsPerComboPoint[3];                  // 119-121  m_effectPointsPerCombo
    uint32      EffectSpellClassMaskA[3];                      // 122-124  m_effectSpellClassMaskA, effect 0
    uint32      EffectSpellClassMaskB[3];                      // 125-127  m_effectSpellClassMaskB, effect 1
    uint32      EffectSpellClassMaskC[3];                      // 128-130  m_effectSpellClassMaskC, effect 2
    uint32      [[SpellVisual.dbc|SpellVisual]][2];                                // 131-132  m_spellVisualID
    uint32      [[SpellIcon.dbc|SpellIconID]];                                    // 133      m_spellIconID
    uint32      [[SpellIcon.dbc|activeIconID]];                                  // 134      m_activeIconID
    uint32      spellPriority;                                  // 135      m_spellPriority   
    {{Template:Type|langstringref}}      SpellName;                                  // 136-151  m_name_lang
    {{Template:Type|langstringref}}      Rank;                                      // 153-168  m_nameSubtext_lang
    {{Template:Type|langstringref}}      Description;                                // 170-185  m_description_lang
    {{Template:Type|langstringref}}      ToolTip;                                    // 187-202  m_auraDescription_lang
    uint32      ManaCostPercentage;                            // 204      m_manaCostPct
    uint32      StartRecoveryCategory;                          // 205      m_startRecoveryCategory
    uint32      StartRecoveryTime;                              // 206      m_startRecoveryTime
    uint32      MaxTargetLevel;                                // 207      m_maxTargetLevel
    uint32      SpellFamilyName;                                // 208      m_spellClassSet
    uint64      SpellFamilyFlags;                              // 209-210  m_spellClassMask NOTE: size is 12 bytes!!!
    uint32      SpellFamilyFlags2;                              // 211      addition to m_spellClassMask
    uint32      MaxAffectedTargets;                            // 212      m_maxTargets
    uint32      DmgClass;                                      // 213      m_defenseType
    uint32      PreventionType;                                // 214      m_preventionType
    uint32      StanceBarOrder;                                // 215      m_stanceBarOrder
    float      DmgMultiplier[3];                              // 216-218  m_effectChainAmplitude
    uint32      MinFactionId;                                  // 219      m_minFactionID
    uint32      MinReputation;                                  // 220      m_minReputation
    uint32      RequiredAuraVision;                            // 221      m_requiredAuraVision
    uint32      TotemCategory[2];                              // 222-223  m_requiredTotemCategoryID
    int32      AreaGroupId;                                    // 224      m_requiredAreaGroupId
    uint32      SchoolMask;                                    // 225      m_schoolMask
    uint32      runeCostID;                                    // 226      m_runeCostID
    uint32      spellMissileID;                                // 227      m_spellMissileID
    uint32      PowerDisplayId;                                // 228      PowerDisplay.dbc, new in 3.1
    float      EffectBonusMultiplier[3];                                  // 229-231  3.2.0
    uint32      spellDescriptionVariableID;                    // 232      3.2.0
    uint32      SpellDifficultyId;                              // 233      3.3.0
};
== 3.0.1.8334 ==
== 3.0.1.8334 ==



Revision as of 21:52, 13 June 2016

0.5.3.3368

struct SpellRec {
  uint32_t m_ID;
  uint32_t m_school;
  uint32_t m_category;
  uint32_t m_castUI;
  uint32_t m_attributes;
  uint32_t m_attributesEx;
  uint32_t m_shapeshiftMask;
  uint32_t m_targets;
  uint32_t m_targetCreatureType;
  uint32_t m_requiresSpellFocus;
  uint32_t m_casterAuraState;
  uint32_t m_targetAuraState;
  uint32_t m_castingTimeIndex;
  uint32_t m_recoveryTime;
  uint32_t m_categoryRecoveryTime;
  uint32_t m_interruptFlags;
  uint32_t m_auraInterruptFlags;
  uint32_t m_channelInterruptFlags;
  uint32_t m_procFlags;
  uint32_t m_procChance;
  uint32_t m_procCharges;
  uint32_t m_maxLevel;
  uint32_t m_baseLevel;
  uint32_t m_spellLevel;
  uint32_t m_durationIndex;
  uint32_t m_powerType;
  uint32_t m_manaCost;
  uint32_t m_manaCostPerLevel;
  uint32_t m_manaPerSecond;
  uint32_t m_manaPerSecondPerLevel;
  uint32_t m_rangeIndex;
  float m_speed;
  uint32_t m_modalNextSpell;
  uint32_t m_totem[2];
  uint32_t m_reagent[8];
  uint32_t m_reagentCount[8];
  uint32_t m_equippedItemClass;
  uint32_t m_equippedItemSubclass;
  uint32_t m_effect[3];
  uint32_t m_effectDieSides[3];
  uint32_t m_effectBaseDice[3];
  uint32_t m_effectDicePerLevel[3];
  float m_effectRealPointsPerLevel[3];
  uint32_t m_effectBasePoints[3];
  uint32_t m_implicitTargetA[3];
  uint32_t m_implicitTargetB[3];
  uint32_t m_effectRadiusIndex[3];
  uint32_t m_effectAura[3];
  uint32_t m_effectAuraPeriod[3];
  float m_effectAmplitude[3];
  uint32_t m_effectChainTargets[3];
  uint32_t m_effectItemType[3];
  uint32_t m_effectMiscValue[3];
  uint32_t m_effectTriggerSpell[3];
  uint32_t m_spellVisualID;
  uint32_t m_spellIconID;
  uint32_t m_activeIconID;
  uint32_t m_spellPriority;
  langstringref m_name_lang;
  langstringref m_nameSubtext_lang;
  langstringref m_description_lang;
  uint32_t m_manaCostPct;
  uint32_t m_startRecoveryCategory;
  uint32_t m_startRecoveryTime;
};

3.3.5.12340

Field Type Name Notes
1 uint32 ID Unique ID of a spell.
2 uint32 Spell category Category of a spell. Used for category cooldowns.
3 uint32 Dispel type For determining which spells are capable of dispelling this.
4 uint32 Spell mechanic Used by spells granting bonuses/immunities against certain effect types (stun, charm...).
5 uint32 Attributes Attributes are in general miscellanous flags.
6 uint32 AttributesEx Attributes are in general miscellanous flags.
7 uint32 AttributesExB Attributes are in general miscellanous flags.
8 uint32 AttributesExC Attributes are in general miscellanous flags.
9 uint32 AttributesExD Attributes are in general miscellanous flags.
10 uint32 AttributesExE Attributes are in general miscellanous flags.
11 uint32 AttributesExF Attributes are in general miscellanous flags.
12 uint32 AttributesExG Attributes are in general miscellanous flags.
13 uint32 Stances Mask. Shapeshifts/Stances in which is spell castable.
14 uint32 unk_320_2 Removed in 3.2.0.
15 uint32 Excluded stances Mask. Shapeshifts/Stances in which is spell not castable.
16 uint32 unk_320_3 Removed in 3.2.0
17 uint32 Targets
18 uint32 TargetCreatureType Mask of creature types (creature_template.type), on which is spell usable.
19 uint32 SpellFocusObject Spell focus needed by spell to be casted. Player needs to be within range of apropriate gameobject with type=8.
20 uint32 FacingCasterFlags
21 uint32 CasterAuraState
22 uint32 TargetAuraState
23 uint32 CasterAuraStateNot
24 uint32 TargetAuraStateNot
25 uint32 casterAuraSpell
26 uint32 targetAuraSpell
27 uint32 excludeCasterAuraSpell
28 uint32 excludeTargetAuraSpell
29 uint32 CastingTimeIndex Casting time of a spell. May differ with caster's level.
30 uint32 RecoveryTime Cooldown of a spell. May differ with caster's level.
31 uint32 CategoryRecoveryTime Cooldown applied by spell on all spells with the same Category.
32 uint32 InterruptFlags Mask of cases which interrupt casting of a spell.
33 uint32 AuraInterruptFlags Mask of cases which interrupt casting of a spell.
34 uint32 ChannelInterruptFlags Mask of cases which interrupt casting of a spell.
35 uint32 procFlags
36 uint32 procChance Most of spells with 100% chance tend to have value 101.
37 uint32 procCharges
38 uint32 maxLevel Probably maximal level from which spell can gain bonuses (or minuses) which are based on formula caster's level - spell's level.
39 uint32 baseLevel Base level of a spell.
40 uint32 spellLevel Tends to be exactly same as base level.
41 uint32 DurationIndex Duration of spell's effects.
42 uint32 powerType Power type used by spell.
43 uint32 manaCost Base mana cost of a spell. Its being summed with ManaCostPercentage.
44 uint32 manaCostPerlevel Likely is mana cost increased by ((caster's level) - (spell's level))*(this field).
45 uint32 manaPerSecond For channels.
46 uint32 manaPerSecondPerLevel For channels. Likely is mana cost per second increased by ((caster's level) - (spell's level))*(this field).
47 uint32 RangeIndex Range of a spell. May differ for friendly and enemy targets.
48 float speed Maybe something with projectile speed? Not sure.
49 uint32 modalNextSpell
50 uint32 StackAmount For stackable spells, maximal amount of stacks on target. For non-stackable spells leave 0.
51-52 uint32 Totem[2] Not sure what is this for, as shaman totem spells don't seem to use this.
53-60 int32 Reagent[8] Entries of items used by this spell as resources.
61-68 uint32 ReagentCount[8] Count of according items needed by spell.
69 int32 EquippedItemClass item_template.class value which caster's item held in hand must have. Commonly 2 (weapon).
70 int32 EquippedItemSubClassMask Mask of item_template.subclass values which caster's item held in hand must have. For example dagger for Backstab.
71 int32 EquippedItemInventoryTypeMask Mask of item_template.InventoryType values which targeted item must have. Used mainly by enchants.
72-74 int32 Effect[3] Type of effect which spell has. All following effect fields (and some at the end of DBC) reffer to these up to 3 effects.
75-77 int32 EffectDieSides[3] Number of sides of dice which is being rolled for random value of according effect.
78-80 float EffectRealPointsPerLevel[3] Base points added to according EffectBasePoints based on caster's level.
81-83 int32 EffectBasePoints[3] Base points added to result of according effect's rolled dice. F.e. EffectDieSides=26 and EffectBasePoints=49 will make 50-75.
84-86 int32 EffectMechanic[3] Mechanic of according spell's effect. Used by spells granting bonuses/immunities against certain effect types (stun, charm...).
87-89 uint32 EffectImplicitTargetA[3] Type of implicit target(s) of according effect.
90-92 uint32 EffectImplicitTargetB[3] Type of implicit target(s) of according effect. Dunno what is difference between A and B.
93-95 uint32 EffectRadiusIndex[3] According spell effect's radius. May differ with caster's level.
96-98 uint32 EffectApplyAuraName[3] Type of aura ("effect of effect") which according effect applies.
99-101 uint32 EffectAuraPeriod[3] How often according effect "ticks" in ms.
102-104 uint32 EffectMultipleValue[3]
105-107 uint32 EffectChainTarget[3]
108-110 uint32 EffectItemType[3]
111-113 int32 EffectMiscValue[3] Used for according effect's special misc values, commonly entries of called or used creature/item/gameobject.
114-116 int32 EffectMiscValueB[3] Used for according effect's special misc values, commonly entries of called or used creature/item/gameobject.
117-119 uint32 EffectTriggerSpell[3] Entry of spell triggered on affected target by this according effect.
120-122 float EffectPointsPerComboPoint[3] Bonus to effect's base value based on amount of combo points on target.
123-125 uint32 EffectSpellClassMaskA[3]
126-128 uint32 EffectSpellClassMaskB[3]
129-131 uint32 EffectSpellClassMaskC[3]
132-133 uint32 SpellVisual[2] Visual effects of a spell.
134 uint32 SpellIconID ID of icon used while spell is not active.
135 uint32 activeIconID ID of icon used while spell is active. Used f.e. by Stealth.
136 uint32 spellPriority
137-152 langstringref SpellName Name of a spell.
154-169 langstringref SpellSubtext Subname of a spell, commonly used for distinguishing ranks.
170 unk unk
171-186 langstringref Description Description of a spell shown when spell is mouse-overed in anaction bar or in a spellbook.
188-203 langstringref ToolTip Tooltip shown when spell's aura buff/debuff is mouse-overed.
204 unk unk
205 uint32 ManaCostPercentage % of base mana cost, added to flat value in manaCost field. For NPCs is base mana = their max mana.
206 uint32 StartRecoveryCategory The only value which seems to be used here apart of 0 is 133 (spells affected by global CD).
207 uint32 StartRecoveryTime The only value (in ms) which seems to be used here apart of 0 is 1500 (global CD value).
208 uint32 MaxTargetLevel Seems to be maximal level of target which can be affected by spell.
209 uint32 SpellClassSet Apparently serves for distinguishing class spells.
210-211 uint64 SpellClassMask[2]
212 uint32 SpellClassMask2 Another addition to SpellClassMask.
213 uint32 MaxAffectedTargets Oddly seems to be used only rarely.
214 uint32 DefenseType DmgClass?
215 uint32 PreventionType
216 uint32 StanceBarOrder
217-219 float EffectChainAmplitude[3] Used for decreasing (or increasing) according effect's value on next chained targets.
220 uint32 MinFactionId Probably ID of required reputation with a faction.
uint32 MinReputation Probably either value or level of required reputation with a faction.
uint32 RequiredAuraVision
223-224 uint32 TotemCategory[2] Category of totem (Item with correct item_template.TotemCategory) required for a spell.
225 uint32 RequiredAreaGroupId Areas in which a spell can be cast.
226 uint32 SchoolMask Mask of schools in which spell belongs. Used by resistance/armor system.
227 uint32 RuneCostID I'm not sure where this points to. Hopefully linked DBC.
228 uint32 SpellMissileID
229 uint32 PowerDisplayId 3.1
230-232 float EffectBonusMultiplier[3] Seems to be used for calculation of one according effect's value of "tick" for DoTs and HoTs.
233 uint32 SpellDescriptionVariableID 3.2.0
234 uint32 SpellDifficultyId 3.3.0

4.0.3.13329

Column Field Type Notes
1 ID Integer
2 Attributes Integer
3 AttributesEx Integer
4 AttributesExB Integer
5 AttributesExC Integer
6 AttributesExD Integer
7 AttributesExE Integer
8 AttributesExF Integer
9 AttributesExG Integer
10 AttributesExH Integer
11 unk_400_1 Integer
12 CastTimesID iRefID
13 DurationID iRefID
14 PowerID iRefID
15 RangeID iRefID
16 Speed Float
17 VisualID1 iRefID
18 VisualID2 iRefID
19 IconID1 iRefID
20 IconID2 iRefID active
21 Name String
22 NameSubtext String
23 Description String
24 AuraDescription String
25 SchoolMask Integer
26 RuneCostID iRefID
27 MissileID iRefID
28 DescriptionVariablesID iRefID
29 DifficultyID iRefID
30 unk_400_2 Float
31 ScalingID iRefID
32 AuraOptionsID iRefID
33 AuraRestrictionsID iRefID
34 CastingRequirementsID iRefID
35 CategoriesID iRefID
36 ClassOptionsID iRefID
37 CooldownsID iRefID
38 unk_400_3 Integer
39 EquippedItemsID iRefID
40 InterruptsID iRefID
41 LevelsID iRefID
42 PowerID iRefID
43 ReagentsID iRefID
44 ShapeshiftID iRefID
45 TargetRestrictionsID iRefID
46 TotemsID iRefID
47 unk_400_4 Integer

3.0.1.8334

3 fields have been added after 113 (114, 155, 116 are new, old 114 is now 117 etc)
new field 217 seems to be reference to SpellRuneCost.dbc
new field 218 has something to do with "Tracjectory" / missiles

Old

Column	Field 				Type 		Notes 
1 	ID 				Integer 	
2 	iRefID_Resistances 		Integer 	School Category. Also serves as resistance component. 
3 	iRefID_SpellCategory 		Integer 	
4 	Unknown 			Integer 	
5 	iRefID_SpellDispelType 		Integer 	Dispel type 
6 	iRefID_SpellMechanic 		Integer 	Main mechanic applied to the spell being cast 
7 	Unknown 			BitMask 	Bit 0x10000000 = "Cannot be cast when in combat". 
8 	Unknown 			BitMask 	
9 	targets 			BitMask 	...> Internal arrays? 
10 	Unknown 			BitMask 	Moved from column 168 (Patch 0.12.0) Bit 0x100000 = Persist through death (Flasks, Ghost, Deserter etc) 	
11 	Unknown 			Unknown 	Added with 0.12.0 
12 	Unknown 			Unknown 	Added with Beta 2.0.0.6022 
13 	iRefMask_SpellShapeshiftForm 	BitMask 	BitMask for which shapeshift forms this spell can be used in. 
14 	iRefMask_SpellShapeshiftForm 	BitMask 	BitMask for which shapeshift forms this spell cannot be used in. 
15 	Unknown 			Unknown 	 
16 	iRefMask_CreatureType 		BitMask 	
17 	iRefID_SpellFocusObject 	Integer 	The object that needs to be near, targeted, or on person to cast 
18 	caster_aura_state 		Integer 	Requirements that need to be met, before spell/ability is usable, on caster... 
19 	target_aura_state 		Integer 	...or target. 
20 	Unknown 			Unknown 	(Added in 2.0.0.5894) 
21 	Unknown 			Unknown 	(Added in 2.0.0.5894) 
22 	iRefID_SpellCastTimes 		Integer 	The time in milliseconds to cast 
23 	category_recovery_time 		Integer 	Spell cooldown. If this is set affects whole category, else... 
24 	recovery_time 			Integer 	...if this is set affects only spell/ability being used. Note: Both can be set with different cooldowns. 
25 	interrupt_flags 		BitMask 	What table(s) do these fields point to? <... 
26 	aura_interrupt_flags 		BitMask 	... 
27 	channel_interrupt_flags 	BitMask 	... 
28 	proc_flags 			BitMask 	...> Internal arrays? 
29 	proc_chance 			Integer 	
30 	proc_charges 			Integer 	
31 	level_max 			Integer 	The spell level when additional damage is no longer calculated. 
32 	level_base 			Integer 	
33 	level_spell 			Integer 	
34 	iRefID_SpellDuration 		Integer 	Duration is in milliseconds. ($d)
35 	power_type 			Integer 	
36 	mana_cost 			Integer 	To get rage cost, divide this value by 10. 
37 	mana_cost_per_level 		Integer 	
38 	mana_per_second 		Integer 	
39 	mana_per_second_per_level 	Integer 	
40 	iRefID_SpellRange 		Integer 	Yard increments 
41 	projectile_speed 		Float 		Speed of the "animation bolt" as it travels from caster to target. 
42 	modal_next_spell 		Integer 	
43 	stack_amount 			Integer 	Specifies how many times the spell can be applied to a target
44 	iRefID_Tool_1 			Integer 	Required tool to cast. (eg. Mining Pick, Flint and Tinder)  
45 	iRefID_Tool_2 			Integer 	 direct reference to an item-id
46 	iRefID_Reagent_1 		Integer 	Reagent required to cast. Direct reference to an item-id 
47 	iRefID_Reagent_2 		Integer 	
48 	iRefID_Reagent_3 		Integer 	
49 	iRefID_Reagent_4 		Integer 	
50 	iRefID_Reagent_5 		Integer 	
51 	iRefID_Reagent_6 		Integer 	
52 	iRefID_Reagent_7 		Integer 	
53 	iRefID_Reagent_8 		Integer 	
54 	reagent_count_1 		Integer 	Amount of reagents required to use spell/ability. 
55 	reagent_count_2 		Integer 	
56 	reagent_count_3 		Integer 	
57 	reagent_count_4 		Integer 	
58 	reagent_count_5 		Integer 	
59 	reagent_count_6 		Integer 	
60 	reagent_count_7 		Integer 	
61 	reagent_count_8 		Integer 	
62 	iRefMask_ItemClass		BitMask 	
63 	iRefMask_ItemSubClass 		BitMask 	
64 	iRefMask_Inventory Slots 	BitMask 	for enchanting 
65 	effect_1_id 			Integer 	SpellEffectNames.dbc 
66 	effect_2_id 			Integer 	SpellEffectNames.dbc
67 	effect_3_id 			Integer 	SpellEffectNames.dbc
68 	effect_1_die_sides 		Integer 	Random Damage 
69 	effect_2_die_sides 		Integer 	
70 	effect_3_die_sides 		Integer 	
71 	effect_1_base_dice 		Integer 	
72 	effect_2_base_dice 		Integer 	
73 	effect_3_base_dice 		Integer 	
74 	effect_1_dice_per_level 	Integer 	
75 	effect_2_dice_per_level 	Integer 	
76 	effect_3_dice_per_level 	Integer 	
77 	effect_1_real_points_per_level 	Float 	
78 	effect_2_real_points_per_level 	Float 	
79 	effect_3_real_points_per_level 	Float 	
80 	effect_1_base_points 		Integer 	Base Damage ($s1)
81 	effect_2_base_points 		Integer 	
82 	effect_3_base_points 		Integer 	
83 	effect_1_mechanic_id 		Integer 	SpellMechanic.dbc 
84 	effect_2_mechanic_id 		Integer 	SpellMechanic.dbc 
85 	effect_3_mechanic_id 		Integer 	SpellMechanic.dbc 
86 	effect_1_implicit_target_a 	Integer 	
87 	effect_2_implicit_target_a 	Integer 	
88 	effect_3_implicit_target_a 	Integer 	
89 	effect_1_implicit_target_b 	Integer 	
90 	effect_2_implicit_target_b 	Integer 	
91 	effect_3_implicit_target_b 	Integer 	
92 	effect_1_radius 		Integer 	SpellRadius.dbc 
93 	effect_2_radius 		Integer 	SpellRadius.dbc 
94 	effect_3_radius 		Integer 	SpellRadius.dbc 
95 	effect_1_aura 			Integer 	SpellAuraNames.dbc 
96 	effect_2_aura 			Integer 	SpellAuraNames.dbc 
97 	effect_3_aura 			Integer 	SpellAuraNames.dbc
98 	effect_1_amplitude 		Integer 	Refence ID: $o1 in description/buff desc. 
99 	effect_2_amplitude 		Integer 	$o2 
100 	effect_3_amplitude 		Integer 	$o3 
101 	effect_1_proc_value		Float 		$e1 
102 	effect_2_proc_value		Float 		$e2 
103 	effect_3_proc_value		Float 		$e3 
104 	effect_1_chain_target 		Integer 	
105 	effect_2_chain_target 		Integer 	
106 	effect_3_chain_target 		Integer 	
107 	effect_1_item_type 		Integer 	used when creating items. Q:Does this refer to these Item Types? Reference to ItemCache.wdb 
108 	effect_2_item_type 		Integer 	
109 	effect_3_item_type 		Integer 	
110 	effect_1_misc_value 		Integer 	Reference to SpellItemEnchantment.dbc for enchanting 
111 	effect_2_misc_value 		Integer 	
112 	effect_3_misc_value 		Integer 	
113 	effect_1_trigger_spell 		Integer 	spellid that this spell teaches or triggers 
114 	effect_2_trigger_spell 		Integer 	
115 	effect_3_trigger_spell 		Integer 	
116 	effect_1_proc_chance 		Float 		Seems to be $b1, having something to do with finishing moves... 
117 	effect_2_proc_chance		Float 		$b2 
118 	effect_3_proc_chance		Float 		$b3 
119 	iRefID_SpellVisual 		Integer 	
120 	Unknown 			Integer 	Only on one spell, Sire's Suicide (18184) with a value of 749 
121 	iRefID_SpellIcon 		Integer 	Icon used in spellbook. 
122 	iRefID_SpellIcon 		Integer 	Icon used on target. 
123 	spell_priority 			Integer 	Deciding factor if it overrides other effects. 
124-132	sRefName 			String + Loc	Names different then your clients localization will appear as null terminated strings 	
133-141	rank 				String + Loc 	
142-150	book_description 		String + Loc		DBC String Variables 	
151-159	buff_desciption 		String + Loc 	
160 	mana_cost_percent 		Integer 	
161 	start_recovery_category 	Integer 	
162 	start_recovery_time 		Integer 	Global cooldown. 
163 	affected_target_level 		Integer 	example: "Only affects Humanoid targets level affected_target_level or lower." 	
164 	iRefID_ChrClasses 		Integer 	Column 16 
165 	Unknown 			BitMask 	
166 	spell_targets 			Integer 	How many targets are affected around the currently targeted Mob/Player. 
167 	Unknown 			BitMask 	
168 	dmg_class 			Integer 	0=None, 1=Magic, 2=Melee, 3=Ranged 
169 	Unknown 			Integer 	Vals = 0,1,2 
170 	Unknown 			Integer 	
171 	dmg_multiplier_1 		Float 	
172 	dmg_multiplier_2 		Float 	
173 	dmg_multiplier_3 		Float 	
174 	Unknown 			Unknown 	
175 	Unknown 			Unknown 	
176 	Unknown 			Unknown 	
177 	iRefID_TotemCategory_1 		Integer 	Required tool (BC Alpha 8/26/2006) 
178 	iRefID_TotemCategory_2 		Integer 	Required tool (BC Alpha 8/26/2006) 
179 	Unknown 			Unknown 	(Added build 5965) 

misc

  • procflags 0xa22a8, chance: 101, charges: 1 = break aura on damange received
  • target_mask = 0x40 (DEST_LOC), target = 28 (TARGET_ALL_ENEMY_IN_AREA_CHANNELED, NO_TARGET) or 31 (TARGET_ALL_FRIENDLY_UNITS_IN_AREA): target ground
  • target = 104 TARGET_IN_FRONT_OF_CASTER_30 (or alike): 30° frontal cone (or alike)

6.0.1.18179

struct SpellRec {
  uint32_t m_ID;
  langstringref m_name_lang;
  langstringref m_nameSubtext_lang;
  langstringref m_description_lang;
  langstringref m_auraDescription_lang;
  uint32_t m_runeCostID;
  uint32_t m_spellMissileID;
  uint32_t m_descriptionVariablesID;
  uint32_t m_scalingID;
  uint32_t m_auraOptionsID;
  uint32_t m_auraRestrictionsID;
  uint32_t m_castingRequirementsID;
  uint32_t m_categoriesID;
  uint32_t m_classOptionsID;
  uint32_t m_cooldownsID;
  uint32_t m_equippedItemsID;
  uint32_t m_interruptsID;
  uint32_t m_levelsID;
  uint32_t m_reagentsID;
  uint32_t m_shapeshiftID;
  uint32_t m_targetRestrictionsID;
  uint32_t m_totemsID;
  uint32_t m_requiredProjectID;
  uint32_t m_miscID;
};