📄 dbcstores.h
字号:
/* AscentEmu By SOI */
#ifndef __SPELLSTORE_H
#define __SPELLSTORE_H
#include "Common.h"
#include "DataStore.h"
#include "Timer.h"
#pragma pack(push,1)
struct BankSlotPrice
{
uint32 Id;
uint32 Price;
};
struct ItemSetEntry
{
uint32 id; //1
char* name; //2
//uint32 unused_shit[15]; //3 - 9
uint32 flag; //10 constant
uint32 itemid[8]; //11 - 18
//uint32 more_unused_shit[9]; //19 - 27
uint32 SpellID[8]; //28 - 35
uint32 itemscount[8]; //36 - 43
uint32 RequiredSkillID; //44
uint32 RequiredSkillAmt; //45
};
struct Lock
{
uint32 Id;
uint32 locktype[5]; // 0 - no lock, 1 - item needed for lock, 2 - min lockping skill needed
//uint32 unk1[3];
uint32 lockmisc[5]; // if type is 1 here is a item to unlock, else is unknow for now
//uint32 unk2[3];
uint32 minlockskill[5]; // min skill in lockpiking to unlock.
//uint32 unk3[11];
/* Actually it is:
uint32 Id;
uint32 locktype[8];
uint32 lockmisc[8];
uint32 minlockskill[8];
uint32 action[8];
*/
};
struct emoteentry
{
uint32 Id;
//uint32 name;
uint32 textid;
uint32 textid2;
uint32 textid3;
uint32 textid4;
//uint32 unk1;
uint32 textid5;
//uint32 unk2;
uint32 textid6;
//uint32 unk3;
//uint32 unk4;
//uint32 unk5;
//uint32 unk6;
//uint32 unk7;
//uint32 unk8;
//uint32 unk9;
//uint32 unk10;
//uint32 unk11;
};
struct skilllinespell //SkillLineAbility.dbc
{
uint32 Id;
uint32 skilline;
uint32 spell;
//uint32 raceMask;
//uint32 classMask;
//uint32 excludeRace;
//uint32 excludeClass;
//uint32 minSkillLineRank;
uint32 next;
uint32 acquireMethod;
uint32 grey;
uint32 green;
//uint32 unk10;
//uint32 unk11;
uint32 reqTP;
};
struct EnchantEntry
{
uint32 Id;
uint32 type[3];
int32 min[3];//for compat, in practice min==max
int32 max[3];
uint32 spell[3];
char* Name;
//uint32 NameAlt1;
//uint32 NameAlt2;
//uint32 NameAlt3;
//uint32 NameAlt4;
//uint32 NameAlt5;
//uint32 NameAlt6;
//uint32 NameAlt7;
//uint32 NameAlt8;
//uint32 NameAlt9;
//uint32 NameAlt10;
//uint32 NameAlt11;
//uint32 NameAlt12;
//uint32 NameAlt13;
//uint32 NameAlt14;
//uint32 NameAlt15;
//uint32 NameFlags;
uint32 visual;
uint32 EnchantGroups;
uint32 GemEntry;
uint32 unk7;//Gem Related
};
struct GemPropertyEntry{
uint32 Entry;
uint32 EnchantmentID;
uint32 unk1;//bool
uint32 unk2;//bool
uint32 SocketMask;
};
struct skilllineentry //SkillLine.dbc
{
uint32 id;
uint32 type;
uint32 skillCostsID;
char* Name;
//int32 NameAlt1;
//uint32 NameAlt2;
//uint32 NameAlt3;
//uint32 NameAlt4;
//uint32 NameAlt5;
//uint32 NameAlt6;
//uint32 NameAlt7;
//uint32 NameAlt8;
//uint32 NameAlt9;
//uint32 NameAlt10;
//uint32 NameAlt11;
//uint32 NameAlt12;
//uint32 NameAlt13;
//uint32 NameAlt14;
//uint32 NameAlt15;
//uint32 NameFlags;
//uint32 Description;
//uint32 DescriptionAlt1;
//uint32 DescriptionAlt2;
//uint32 DescriptionAlt3;
//uint32 DescriptionAlt4;
//uint32 DescriptionAlt5;
//uint32 DescriptionAlt6;
//uint32 DescriptionAlt7;
//uint32 DescriptionAlt8;
//uint32 DescriptionAlt9;
//uint32 DescriptionAlt10;
//uint32 DescriptionAlt11;
//uint32 DescriptionAlt12;
//uint32 DescriptionAlt13;
//uint32 DescriptionAlt14;
//uint32 DescriptionAlt15;
//uint32 DescriptionFlags;
//uint32 unk2;
};
// Struct for the entry in Spell.dbc
struct SpellEntry
{
uint32 Id; //1
uint32 Category; //2
uint32 castUI; //3 something like spelltype 0: general spells 1: Pet spells 2: Disguise / transormation spells 3: enchantment spells
uint32 DispelType; //4
uint32 MechanicsType; //5
uint32 Attributes; //6
uint32 AttributesEx; //7
uint32 AttributesExB; //8
uint32 AttributesExC; //9 // Flags to
uint32 AttributesExD; //10 // Flags....
uint32 AttributesExE; //11 // Flags 2.0.1 unknown one
uint32 AttributesExF; //12
uint32 RequiredShapeShift; //13 // Flags BitMask for shapeshift spells
uint32 ShapeshiftExclude; //14-> this is wrong // Flags BitMask for which shapeshift forms this spell can NOT be used in.
uint32 Targets; //15 - N / M
uint32 TargetCreatureType; //16
uint32 RequiresSpellFocus; //17
uint32 FacingCasterFlags; //18
uint32 CasterAuraState; //19
uint32 TargetAuraState; //20
uint32 ExcludeCasterAuraState; //21 2.0.1 unknown two
uint32 ExcludeTargetAuraState; //22 2.0.1 unknown three
uint32 CastingTimeIndex; //23
uint32 RecoveryTime; //24
uint32 CategoryRecoveryTime; //25 recoverytime
uint32 InterruptFlags; //26
uint32 AuraInterruptFlags; //27
uint32 ChannelInterruptFlags; //28
uint32 procFlags; //29
uint32 procChance; //30
int32 procCharges; //31
uint32 maxLevel; //32
uint32 baseLevel; //33
uint32 spellLevel; //34
uint32 DurationIndex; //35
uint32 powerType; //36
uint32 manaCost; //37
uint32 manaCostPerlevel; //38
uint32 manaPerSecond; //39
uint32 manaPerSecondPerLevel; //40
uint32 rangeIndex; //41
float speed; //42
uint32 modalNextSpell; //43
uint32 maxstack; //44
uint32 Totem[2]; //45 - 46
uint32 Reagent[8]; //47 - 54
uint32 ReagentCount[8]; //55 - 62
int32 EquippedItemClass; //63
uint32 EquippedItemSubClass; //64
uint32 RequiredItemFlags; //65
uint32 Effect[3]; //66 - 68
uint32 EffectDieSides[3]; //69 - 71
uint32 EffectBaseDice[3]; //72 - 74
float EffectDicePerLevel[3]; //75 - 77
float EffectRealPointsPerLevel[3]; //78 - 80
int32 EffectBasePoints[3]; //81 - 83
int32 EffectMechanic[3]; //84 - 86 Related to SpellMechanic.dbc
uint32 EffectImplicitTargetA[3]; //87 - 89
uint32 EffectImplicitTargetB[3]; //90 - 92
uint32 EffectRadiusIndex[3]; //93 - 95
uint32 EffectApplyAuraName[3]; //96 - 98
uint32 EffectAmplitude[3]; //99 - 101
float Effectunknown[3]; //102 - 104 This value is the $ value from description
uint32 EffectChainTarget[3]; //105 - 107
uint32 EffectSpellGroupRelation[3]; //108 - 110 Not sure maybe we should rename it. its the relation to field: SpellGroupType
uint32 EffectMiscValue[3]; //111 - 113
uint32 EffectMiscValueB[3]; //114 - 116 2.4.3
uint32 EffectTriggerSpell[3]; //117 - 119
float EffectPointsPerComboPoint[3]; //120 - 122
uint32 SpellVisual; //123
uint32 field114; //124
uint32 spellIconID; //125
uint32 activeIconID; //126 activeIconID;
uint32 spellPriority; //127
char* Name; //128
//uint32 NameAlt1; //129
//uint32 NameAlt2; //130
//uint32 NameAlt3; //131
//uint32 NameAlt4; //132
//uint32 NameAlt5; //133
//uint32 NameAlt6; //134
//uint32 NameAlt7; //135
//uint32 NameAlt8; //136
//uint32 NameAlt9; //137
//uint32 NameAlt10; //138
//uint32 NameAlt11; //139
//uint32 NameAlt12; //140
//uint32 NameAlt13; //141
//uint32 NameAlt14; //142
//uint32 NameAlt15; //143
//uint32 NameFlags; //144
char * Rank; //145
//uint32 RankAlt1; //146
//uint32 RankAlt2; //147
//uint32 RankAlt3; //148
//uint32 RankAlt4; //149
//uint32 RankAlt5; //150
//uint32 RankAlt6; //151
//uint32 RankAlt7; //152
//uint32 RankAlt8; //153
//uint32 RankAlt9; //154
//uint32 RankAlt10; //155
//uint32 RankAlt11; //156
//uint32 RankAlt12; //157
//uint32 RankAlt13; //158
//uint32 RankAlt14; //159
//uint32 RankAlt15; //160
//uint32 RankFlags; //161
char * Description; //162
//uint32 DescriptionAlt1; //163
//uint32 DescriptionAlt2; //164
//uint32 DescriptionAlt3; //165
//uint32 DescriptionAlt4; //166
//uint32 DescriptionAlt5; //167
//uint32 DescriptionAlt6; //168
//uint32 DescriptionAlt7; //169
//uint32 DescriptionAlt8; //170
//uint32 DescriptionAlt9; //171
//uint32 DescriptionAlt10; //172
//uint32 DescriptionAlt11; //173
//uint32 DescriptionAlt12; //174
//uint32 DescriptionAlt13; //175
//uint32 DescriptionAlt14; //176
//uint32 DescriptionAlt15; //177
//uint32 DescriptionFlags; //178
char * BuffDescription; //179
//uint32 BuffDescriptionAlt1; //180
//uint32 BuffDescriptionAlt2; //181
//uint32 BuffDescriptionAlt3; //182
//uint32 BuffDescriptionAlt4; //183
//uint32 BuffDescriptionAlt5; //184
//uint32 BuffDescriptionAlt6; //185
//uint32 BuffDescriptionAlt7; //186
//uint32 BuffDescriptionAlt8; //187
//uint32 BuffDescriptionAlt9; //188
//uint32 BuffDescriptionAlt10; //189
//uint32 BuffDescriptionAlt11; //190
//uint32 BuffDescriptionAlt12; //191
//uint32 BuffDescriptionAlt13; //192
//uint32 BuffDescriptionAlt14; //193
//uint32 BuffDescriptionAlt15; //194
//uint32 buffdescflags; //195
uint32 ManaCostPercentage; //196
uint32 unkflags; //197
uint32 StartRecoveryTime; //198
uint32 StartRecoveryCategory; //199
// uint32 MaxTargetLevel from 3.0.1
uint32 SpellFamilyName; //200
uint64 SpellGroupType; //201+202
uint32 MaxTargets; //203
uint32 Spell_Dmg_Type; //204 dmg_class Integer 0=None, 1=Magic, 2=Melee, 3=Ranged
uint32 PreventionType; //205 0,1,2 related to Spell_Dmg_Type I think
int32 StanceBarOrder; //206 related to paladin aura's
float dmg_multiplier[3]; //207 - 208 if the name is correct I dono
uint32 MinFactionID; //209 only one spellid:6994 has this value = 369 UNUSED
uint32 MinReputation; //210 only one spellid:6994 has this value = 4 UNUSED
uint32 RequiredAuraVision; //211 3 spells 1 or 2
uint32 TotemCategory[2]; //212-213
uint32 RequiresAreaId; //214
uint32 School; //215
// uint32 RuneCostID; //216 from 3.0.1
// uint32 SpellMissileID; //217 from 3.0.1
/// CUSTOM: these fields are used for the modifications made in the world.cpp
uint32 DiminishStatus; //
uint32 proc_interval; //!!! CUSTOM, <Fill description for variable>
//Buff Groupin Rule -> caster can cast this spell only on 1 target. Value represents the group spell is part of. Can be part of only 1 group
//caster can only cast on 1 target these spells
uint32 BGR_one_buff_from_caster_on_1target; //!!! CUSTOM, <Fill description for variable>
//target can have only buff of this type on self. Value represents the group spell is part of. Can be part of only 1 group
uint32 BGR_one_buff_on_target; //!!! CUSTOM, these are related to creating a item through a spell
//caster can have only 1 Aura per spell group, ex pal auras
uint32 BGR_one_buff_from_caster_on_self; //!!! CUSTOM, these are related to creating a item through a spell
// uint32 buffIndexType; //!!! CUSTOM, <Fill description for variable>
uint32 c_is_flags; //!!! CUSTOM, store spell checks in a static way : isdamageind,ishealing
// uint32 buffType; //!!! CUSTOM, these are related to creating a item through a spell
uint32 RankNumber; //!!! CUSTOM, this protects players from having >1 rank of a spell
uint32 NameHash; //!!! CUSTOM, related to custom spells, summon spell quest related spells
uint32 talent_tree; //!!! CUSTOM,
uint32 in_front_status; //!!! CUSTOM,
uint32 EffectSpellGroupRelation_high[3]; //!!! this is not contained in client dbc but server must have it
uint32 ThreatForSpell;
uint32 ProcOnNameHash[3];
uint32 spell_coef_flags; //!!! CUSTOM, store flags for spell coefficient calculations
float base_range_or_radius_sqr; //!!! CUSTOM, needed for aoe spells most of the time
// love me or hate me, all "In a cone in front of the caster" spells don't necessarily mean "in front"
float cone_width;
//Spell Coefficient
float casttime_coef; //!!! CUSTOM, faster spell bonus calculation
float fixed_dddhcoef; //!!! CUSTOM, fixed DD-DH coefficient for some spells
float fixed_hotdotcoef; //!!! CUSTOM, fixed HOT-DOT coefficient for some spells
float Dspell_coef_override; //!!! CUSTOM, overrides any spell coefficient calculation and use this value in DD&DH
float OTspell_coef_override; //!!! CUSTOM, overrides any spell coefficient calculation and use this value in HOT&DOT
int ai_target_type;
bool self_cast_only;
bool apply_on_shapeshift_change;
bool always_apply;
bool is_melee_spell; //!!! CUSTOM,
bool is_ranged_spell; //!!! CUSTOM,
bool spell_can_crit; //!!! CUSTOM,
/*
//3.0.1 client column namings
m_id
m_category
m_castUI
m_dispelType
m_mechanic
m_attributes
m_attributesEx
m_attributesExB
m_attributesExC
m_attributesExD
m_attributesExE
m_attributesExF
m_shapeshiftMask
m_shapeshiftExclude
m_targets
m_targetCreatureType
m_requiresSpellFocus
m_facingCasterFlags
m_casterAuraState
m_targetAuraState
m_excludeCasterAuraState
m_excludeTargetAuraState
m_castingTimeIndex
m_recoveryTime
m_categoryRecoveryTime
m_interruptFlags
m_auraInterruptFlags
m_channelInterruptFlags
m_procTypeMask
m_procChance
m_procCharges
m_maxLevel
m_baseLevel
m_spellLevel
m_durationIndex
m_powerType
m_manaCost
m_manaCostPerLevel
m_manaPerSecond
m_manaPerSecondPerLevel
m_rangeIndex
m_speed
m_modalNextSpell
m_cumulativeAura
m_totem
m_reagent
m_reagentCount
m_equippedItemClass
m_equippedItemSubclass
m_equippedItemInvTypes
m_effect
m_effectDieSides
m_effectBaseDice
m_effectDicePerLevel
m_effectRealPointsPerLevel
m_effectBasePoints
m_effectMechanic
m_implicitTargetA
m_implicitTargetB
m_effectRadiusIndex
m_effectAura
m_effectAuraPeriod
m_effectAmplitude
m_effectChainTargets
m_effectItemType
m_effectMiscValue
m_effectMiscValueB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -