DB/SpellItemEnchantment: Difference between revisions

From wowdev
Jump to navigation Jump to search
 
(11 intermediate revisions by 2 users not shown)
Line 2: Line 2:
  struct SpellItemEnchantmentRec {
  struct SpellItemEnchantmentRec {
   uint32_t m_ID;
   uint32_t m_ID;
   uint32_t m_effect[3]; // ITEM_ENCHANTMENT
   uint32_t m_effect[3];           // ITEM_ENCHANTMENT
   uint32_t m_effectPointsMin[3];
   uint32_t m_effectPointsMin[3];
   uint32_t m_effectPointsMax[3];
   uint32_t m_effectPointsMax[3];
   uint32_t m_effectArg[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|langstringref}} m_name_lang;
   {{Template:Type/foreign_key|table=ItemVisuals}} m_itemVisual;
   {{Template:Type/foreign_key|table=ItemVisuals}} m_itemVisual;
};
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
  };
  };


Line 22: Line 13:
  struct SpellItemEnchantmentRec {
  struct SpellItemEnchantmentRec {
   uint32_t m_ID;
   uint32_t m_ID;
   uint32_t m_effect[3];
   uint32_t m_effect[3]; // ITEM_ENCHANTMENT
   uint32_t m_effectPointsMin[3];
   uint32_t m_effectPointsMin[3];
   uint32_t m_effectPointsMax[3];
   uint32_t m_effectPointsMax[3];
Line 30: Line 21:
   uint32_t m_flags
   uint32_t m_flags
  };
  };
==Structure==
==Structure==
  '''Column Field Type Notes'''  
  '''Column Field Type Notes'''  
  1 ID Integer   
  1 ID Integer   
  2 charges Integer Mostly unused. Added 3.x?
  2 charges Integer Mostly unused. Added 3.x?
  3 [[SpellDispelType.dbc]]_1 Integer Enchantment Type of effect 1  
  3 [[SpellDispelType.dbc]]_1 Integer ITEM_ENCHANTMENT of effect 1
  4 [[SpellDispelType.dbc]]_2 Integer Enchantment Type of effect 2  
  4 [[SpellDispelType.dbc]]_2 Integer ITEM_ENCHANTMENT of effect 2
  5 [[SpellDispelType.dbc]]_3 Integer Enchantment Type of effect 3  
  5 [[SpellDispelType.dbc]]_3 Integer ITEM_ENCHANTMENT of effect 3
  6 minAmount1 Integer Amount of damage/armor/apply/spell for effect 1  
  6 minAmount1 Integer Amount of damage/armor/apply/spell for effect 1  
  7 minAmount2 Integer Amount of damage/armor/apply/spell for effect 2  
  7 minAmount2 Integer Amount of damage/armor/apply/spell for effect 2  
Line 48: Line 40:
  15-31 sRefName String+[[Loc]] The name of the enchantment  
  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  
  32 [[ItemVisuals.dbc]] Integer The glow to add to the items that has this enchant  
  33 Flags Integer
  33 Flags Integer See below
  34 [[ItemCache.wdb]] Integer Reference to the Gem that has this ability (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)  
  35 [[SpellItemEnchantmentCondition.dbc]] Integer Conditions for the effect to take place (Added in 2.0.0.5610)  
Line 55: Line 47:
  38    requiredLevel Integer Required level to use the enchant
  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
};
==4.3.4.15595==
  struct SpellItemEnchantmentEntry // sizeof(0x5C)
  struct SpellItemEnchantmentEntry // sizeof(0x5C)
  {
  {
Line 95: Line 105:
   float m_effectScalingPoints[3];
   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_Alpha]]

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