DB/SpellItemEnchantment: Difference between revisions

From wowdev
Jump to navigation Jump to search
mNo edit summary
 
(32 intermediate revisions by 8 users not shown)
Line 1: Line 1:
==Header Info ==
==0.5.3.3368==
  Records..................1919
struct SpellItemEnchantmentRec {
  Fields.....................26
  uint32_t m_ID;
  Record Size...............104
  uint32_t m_effect[3];            // ITEM_ENCHANTMENT
  String Block Size.......31981
  uint32_t m_effectPointsMin[3];
  uint32_t m_effectPointsMax[3];
  uint32_t m_effectArg[3];        // if ITEM_ENCHANTMENT_PROC || ITEM_ENCHANTMENT_BUFF_EQUIPPED then {{Template:DBField|table=Spell|column=m_ID}} else 0
  {{Template:Type|langstringref}} m_name_lang;
  {{Template:Type/foreign_key|table=ItemVisuals}} m_itemVisual;
  };
 
==1.12.1.5875==
  struct SpellItemEnchantmentRec {
  uint32_t m_ID;
  uint32_t m_effect[3]; // ITEM_ENCHANTMENT
  uint32_t m_effectPointsMin[3];
  uint32_t m_effectPointsMax[3];
  uint32_t m_effectArg[3];
  {{Template:Type|langstringref}} m_name_lang;
  uint32_t m_itemVisual;
  uint32_t m_flags
  };


==Structure==
==Structure==
  '''Column Field Type Notes'''  
  '''Column Field Type Notes'''  
  1 ID Integer  
  1 ID Integer
  2 type1 Integer Enchantment Type of effect 1  
  2 charges Integer Mostly unused. Added 3.x?
  3 type2 Integer Enchantment Type of effect 2  
3 [[SpellDispelType.dbc]]_1 Integer ITEM_ENCHANTMENT of effect 1
  4 type3 Integer Enchantment Type of effect 3  
  4 [[SpellDispelType.dbc]]_2 Integer ITEM_ENCHANTMENT of effect 2
  5 amount1 Integer Amount of damage/armor/apply/spell for effect 1  
  5 [[SpellDispelType.dbc]]_3 Integer ITEM_ENCHANTMENT of effect 3
  6 amount2 Integer Amount of damage/armor/apply/spell for effect 2  
  6 minAmount1 Integer Amount of damage/armor/apply/spell for effect 1  
  7 amount3 Integer Amount of damage/armor/apply/spell for effect 3  
  7 minAmount2 Integer Amount of damage/armor/apply/spell for effect 2  
  8 dupe1 Integer Unknown, seems to duplicate amount1 (Theory: Perhaps a range, from amount1 to dupe1)
  8 minAmount3 Integer Amount of damage/armor/apply/spell for effect 3  
  9 dupe2 Integer Unknown, seems to duplicate amount2 (Theory: Perhaps a range, from amount2 to dupe2)
  9 maxAmount1 Integer Mostly dupe
  10 dupe3 Integer Unknown, seems to duplicate amount3 (Theory: Perhaps a range, from amount3 to dupe3)
  10 maxAmount2 Integer Mostly dupe
  11 iRefID_[[Spell.dbc|Spell]]_1 or [[Stat Types]]_1 Integer if type1 == 5, then Stat Types, else [[Spell.dbc]]  
  11 maxAmount3 Integer Mostly dupe
  12 iRefID_[[Spell.dbc|Spell]]_2 or [[Stat Types]]_2 Integer if type2 == 5, then Stat Types, else [[Spell.dbc]]  
  12 objectId1 Integer if type1 == 5, then [[Stat Types]], else [[Spell.dbc]]  
  13 iRefID_[[Spell.dbc|Spell]]_3 or [[Stat Types]]_3 Integer if type3 == 5, then Stat Types, else [[Spell.dbc]]  
  13 objectId2 Integer if type2 == 5, then [[Stat Types]], else [[Spell.dbc]]  
  14-22 sRefName String + [[Loc]] The name of the enchantment  
  14 objectId2 Integer if type3 == 5, then [[Stat Types]], else [[Spell.dbc]]  
  23 iRefID_[[ItemVisuals.dbc|ItemVisuals]] Integer The glow to add to the items that has this enchant  
  15-31 sRefName String+[[Loc]] The name of the enchantment  
  24 Unknown Integer
  32 [[ItemVisuals.dbc]] Integer The glow to add to the items that has this enchant  
  25 iRefID_[[ItemCache.wdb|ItemCache]] Integer Reference to the Gem that has this ability (Added in 2.0.0.5610)  
  33 Flags Integer See below
  26 iRefID_[[SpellItemEnchantmentCondition.dbc|SpellItemEnchantmentCondition]] Integer Conditions for the effect to take place (Added in 2.0.0.5610)  
  34 [[ItemCache.wdb]] Integer Reference to the Gem that has this ability (Added in 2.0.0.5610)  
  35 [[SpellItemEnchantmentCondition.dbc]] Integer Conditions for the effect to take place (Added in 2.0.0.5610)  
36 [[SkillLine.dbc]] Integer A required profession.
37 SkillLevel Integer And the level for that profession.
38    requiredLevel Integer Required level to use the enchant
 
enum ITEM_ENCHANTMENT
{
  ITEM_ENCHANTMENT_MISC = 0x0,
  ITEM_ENCHANTMENT_PROC = 0x1,
  ITEM_ENCHANTMENT_DAMAGE = 0x2,
  ITEM_ENCHANTMENT_BUFF_EQUIPPED = 0x3,
  ITEM_ENCHANTMENT_ADD_ARMOR = 0x4,
  #if {{Template:Sandbox/VersionRange|min_expansionlevel=2}}
  ITEM_ENCHANTMENT_TYPE_STAT  = 0x5,
  #end
  #if {{Template:Sandbox/VersionRange|min_expansionlevel=3}}
  ITEM_ENCHANTMENT_TYPE_TOTEM = 0x6,
  ITEM_ENCHANTMENT_TYPE_USE_SPELL = 0x7,
  ITEM_ENCHANTMENT_TYPE_PRISMATIC_SOCKET = 0x8
  #end
};


Retrieved from "http://www.sourcepeek.com/wiki/SpellItemEnchantment.dbc"
==4.3.4.15595==
struct SpellItemEnchantmentEntry // sizeof(0x5C)
{
    m_ID; // +0x0, size 0x4, type 0
    m_charges; // +0x4, size 0x4, type 0
    m_effect; // +0x8, size 0xC, type 0
    m_effectPointsMin; // +0x14, size 0xC, type 0
    m_effectPointsMax; // +0x20, size 0xC, type 0
    m_effectArg; // +0x2C, size 0xC, type 0
    {{Template:Type|langstringref}} m_name_lang; // +0x38, size 0x4, type 2
    m_itemVisual; // +0x3C, size 0x4, type 0
    m_flags; // +0x40, size 0x4, type 0
    m_src_itemID; // +0x44, size 0x4, type 0
    m_condition_id; // +0x48, size 0x4, type 0
    m_requiredSkillID; // +0x4C, size 0x4, type 0
    m_requiredSkillRank; // +0x50, size 0x4, type 0
    m_minLevel; // +0x54, size 0x4, type 0
    m_itemLevel; // +0x58, size 0x4, type 0
};


==6.0.1.18179==
struct SpellItemEnchantmentRec {
  uint32_t m_ID;
  uint32_t m_charges;
  uint32_t m_effect[3];
  uint32_t m_effectPointsMin[3];
  uint32_t m_effectArg[3];
  {{Template:Type|langstringref}} m_name_lang;
  uint32_t m_itemVisual;
  uint32_t m_flags;
  uint32_t m_src_itemID;
  uint32_t m_condition_id;
  uint32_t m_requiredSkillID;
  uint32_t m_requiredSkillRank;
  uint32_t m_minLevel;
  uint32_t m_maxLevel;
  uint32_t m_itemLevel;
  uint32_t m_scalingClass;
  uint32_t m_scalingClassRestricted;
  float m_effectScalingPoints[3];
};
===Flags===
{| style="background:#FCFCFC; color:black"
|-
! width="80" | Value
! width="400" | Description
|-
| 0x001 || causes souldbound whilst applied <code>CGItem_C::IsBound</code>
|-
| 0x002 || suppress enchantment log
|-
| 0x004 || Mainhand Only
|-
| 0x008 || player spell enchantment e.g. [Rockbiter] / TBC classic : Allow Entering Arena
|-
| 0x010 || Do Not Save To DB
|-
| 0x020 || bonus increments by 1 <code>CalculateEnchantmentBonus</code> / TBC classic : Scale As A Gem
|-
| 0x040 || Disable In Challenge Modes
|-
| 0x080 || Disable in Proving Grounds
|-
| 0x100 || collectable / Allow transmog
|-
| 0x200 || hidden if not collected
|}
[[Category:DBC]]
[[Category:DBC]]
[[Category:DBC_Alpha]]
[[Category:DBC_Vanilla]]
[[Category:DBC_WotLK]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]

Latest revision as of 03:52, 9 October 2021

0.5.3.3368

struct SpellItemEnchantmentRec {
  uint32_t m_ID;
  uint32_t m_effect[3];            // ITEM_ENCHANTMENT
  uint32_t m_effectPointsMin[3];
  uint32_t m_effectPointsMax[3];
  uint32_t m_effectArg[3];         // if ITEM_ENCHANTMENT_PROC || ITEM_ENCHANTMENT_BUFF_EQUIPPED then SpellRec::m_ID else 0
  langstringref m_name_lang;
  foreign_key<uint32_t, &ItemVisualsRec::m_ID> m_itemVisual;
};

1.12.1.5875

struct SpellItemEnchantmentRec {
  uint32_t m_ID;
  uint32_t m_effect[3];  // ITEM_ENCHANTMENT
  uint32_t m_effectPointsMin[3];
  uint32_t m_effectPointsMax[3];
  uint32_t m_effectArg[3];
  langstringref m_name_lang;
  uint32_t m_itemVisual;
  uint32_t m_flags
};

Structure

Column	Field 					Type 		Notes 
1 	ID 					Integer  
2 	charges 				Integer 	Mostly unused. Added 3.x?
3 	SpellDispelType.dbc_1 			Integer 	ITEM_ENCHANTMENT of effect 1
4 	SpellDispelType.dbc_2 			Integer 	ITEM_ENCHANTMENT of effect 2
5 	SpellDispelType.dbc_3			Integer 	ITEM_ENCHANTMENT of effect 3
6 	minAmount1 				Integer 	Amount of damage/armor/apply/spell for effect 1 
7 	minAmount2 				Integer 	Amount of damage/armor/apply/spell for effect 2 
8 	minAmount3 				Integer 	Amount of damage/armor/apply/spell for effect 3 
9 	maxAmount1 				Integer 	Mostly dupe
10 	maxAmount2 				Integer 	Mostly dupe
11 	maxAmount3 				Integer 	Mostly dupe
12 	objectId1 				Integer 	if type1 == 5, then Stat Types, else Spell.dbc 
13 	objectId2 				Integer 	if type2 == 5, then Stat Types, else Spell.dbc 
14 	objectId2 				Integer 	if type3 == 5, then Stat Types, else Spell.dbc 
15-31 	sRefName 				String+Loc	The name of the enchantment 
32 	ItemVisuals.dbc 			Integer 	The glow to add to the items that has this enchant 
33 	Flags 					Integer 	See below
34 	ItemCache.wdb 				Integer 	Reference to the Gem that has this ability (Added in 2.0.0.5610) 
35 	SpellItemEnchantmentCondition.dbc 	Integer 	Conditions for the effect to take place (Added in 2.0.0.5610) 
36 	SkillLine.dbc				Integer 	A required profession.
37 	SkillLevel 				Integer 	And the level for that profession.
38     requiredLevel				Integer		Required level to use the enchant
enum ITEM_ENCHANTMENT
{
  ITEM_ENCHANTMENT_MISC = 0x0,
  ITEM_ENCHANTMENT_PROC = 0x1,
  ITEM_ENCHANTMENT_DAMAGE = 0x2,
  ITEM_ENCHANTMENT_BUFF_EQUIPPED = 0x3,
  ITEM_ENCHANTMENT_ADD_ARMOR = 0x4,
 #if ≥ BC
  ITEM_ENCHANTMENT_TYPE_STAT  = 0x5,
 #end
 #if ≥ Wrath
  ITEM_ENCHANTMENT_TYPE_TOTEM = 0x6,
  ITEM_ENCHANTMENT_TYPE_USE_SPELL = 0x7,
  ITEM_ENCHANTMENT_TYPE_PRISMATIC_SOCKET = 0x8
 #end
};

4.3.4.15595

struct SpellItemEnchantmentEntry // sizeof(0x5C)
{
   m_ID; // +0x0, size 0x4, type 0
   m_charges; // +0x4, size 0x4, type 0
   m_effect; // +0x8, size 0xC, type 0
   m_effectPointsMin; // +0x14, size 0xC, type 0
   m_effectPointsMax; // +0x20, size 0xC, type 0
   m_effectArg; // +0x2C, size 0xC, type 0
   langstringref m_name_lang; // +0x38, size 0x4, type 2
   m_itemVisual; // +0x3C, size 0x4, type 0
   m_flags; // +0x40, size 0x4, type 0
   m_src_itemID; // +0x44, size 0x4, type 0
   m_condition_id; // +0x48, size 0x4, type 0
   m_requiredSkillID; // +0x4C, size 0x4, type 0
   m_requiredSkillRank; // +0x50, size 0x4, type 0
   m_minLevel; // +0x54, size 0x4, type 0
   m_itemLevel; // +0x58, size 0x4, type 0
};

6.0.1.18179

struct SpellItemEnchantmentRec {
  uint32_t m_ID;
  uint32_t m_charges;
  uint32_t m_effect[3];
  uint32_t m_effectPointsMin[3];
  uint32_t m_effectArg[3];
  langstringref m_name_lang;
  uint32_t m_itemVisual;
  uint32_t m_flags;
  uint32_t m_src_itemID;
  uint32_t m_condition_id;
  uint32_t m_requiredSkillID;
  uint32_t m_requiredSkillRank;
  uint32_t m_minLevel;
  uint32_t m_maxLevel;
  uint32_t m_itemLevel;
  uint32_t m_scalingClass;
  uint32_t m_scalingClassRestricted;
  float m_effectScalingPoints[3];
};

Flags

Value Description
0x001 causes souldbound whilst applied CGItem_C::IsBound
0x002 suppress enchantment log
0x004 Mainhand Only
0x008 player spell enchantment e.g. [Rockbiter] / TBC classic : Allow Entering Arena
0x010 Do Not Save To DB
0x020 bonus increments by 1 CalculateEnchantmentBonus / TBC classic : Scale As A Gem
0x040 Disable In Challenge Modes
0x080 Disable in Proving Grounds
0x100 collectable / Allow transmog
0x200 hidden if not collected