DB/Spell: Difference between revisions

From wowdev
Jump to navigation Jump to search
No edit summary
No edit summary
Line 140: Line 140:
     uint32      AuraInterruptFlags;                            // 32      m_auraInterruptFlags
     uint32      AuraInterruptFlags;                            // 32      m_auraInterruptFlags
     uint32      ChannelInterruptFlags;                          // 33      m_channelInterruptFlags
     uint32      ChannelInterruptFlags;                          // 33      m_channelInterruptFlags
     uint32      [[procFlags]];                                 // 34      m_procTypeMask
     uint32      [[procFlags]];                                     // 34      m_procTypeMask
     uint32      procChance;                                    // 35      m_procChance
     uint32      procChance;                                    // 35      m_procChance
     uint32      procCharges;                                    // 36      m_procCharges
     uint32      procCharges;                                    // 36      m_procCharges

Revision as of 22:16, 26 May 2016

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.3.5.12340

struct SpellEntry
{
   uint32      Id;                                             // 0        m_ID
   uint32      Category;                                       // 1        m_category
   uint32      Dispel;                                         // 2        m_dispelType
   uint32      Mechanic;                                       // 3        m_mechanic
   uint32      Attributes;                                     // 4        m_attribute
   uint32      AttributesEx;                                   // 5        m_attributesEx
   uint32      AttributesEx2;                                  // 6        m_attributesExB
   uint32      AttributesEx3;                                  // 7        m_attributesExC
   uint32      AttributesEx4;                                  // 8        m_attributesExD
   uint32      AttributesEx5;                                  // 9        m_attributesExE
   uint32      AttributesEx6;                                  // 10       m_attributesExF
   uint32      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      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      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      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      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       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      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      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[2];                                 // 131-132  m_spellVisualID
   uint32      SpellIconID;                                    // 133      m_spellIconID
   uint32      activeIconID;                                   // 134      m_activeIconID
   uint32      spellPriority;                                  // 135      m_spellPriority     
   char*       SpellName[16];                                  // 136-151  m_name_lang
   uint32      SpellNameFlag;                                  // 152 
   char*       Rank[16];                                       // 153-168  m_nameSubtext_lang
   uint32      RankFlags;                                      // 169 
   char*       Description[16];                                // 170-185  m_description_lang 
   uint32      DescriptionFlags;                               // 186 
   char*       ToolTip[16];                                    // 187-202  m_auraDescription_lang 
   uint32      ToolTipFlags;                                   // 203 
   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 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;
  stringref m_name_lang;
  stringref m_nameSubtext_lang;
  stringref m_description_lang;
  stringref 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;
};