mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-21 20:56:23 +00:00
fix(Core/Player): Use SkillLineAbility.dbc to determine player initia… (#6015)
* fix(Core/Player): Use SkillLineAbility.dbc to determine player initial spells - skill assignment done in a new table `playercreateinfo_skills` * Cherry-pick2a3546ca36* Cherry-Pickd28b66bca8* Cherry-Pick193408f335- Closes https://github.com/azerothcore/azerothcore-wotlk/issues/1659 - Closes https://github.com/azerothcore/azerothcore-wotlk/issues/6036 - Closes https://github.com/chromiecraft/chromiecraft/issues/693 Co-Authored-By: Shauren shauren.trinity@gmail.com Co-Authored-By: Rothend 67004168+Rothend@users.noreply.github.com Co-Authored-By: claudiodfc claudio.daniel.f.c@gmail.com
This commit is contained in:
@@ -310,8 +310,8 @@ enum MapFlags
|
||||
|
||||
enum AbilytyLearnType
|
||||
{
|
||||
ABILITY_LEARNED_ON_GET_PROFESSION_SKILL = 1,
|
||||
ABILITY_LEARNED_ON_GET_RACE_OR_CLASS_SKILL = 2
|
||||
SKILL_LINE_ABILITY_LEARNED_ON_SKILL_VALUE = 1, // Spell state will update depending on skill value
|
||||
SKILL_LINE_ABILITY_LEARNED_ON_SKILL_LEARN = 2 // Spell will be learned/removed together with entire skill
|
||||
};
|
||||
|
||||
enum ItemEnchantmentType
|
||||
@@ -333,6 +333,16 @@ enum ItemLimitCategoryMode
|
||||
ITEM_LIMIT_CATEGORY_MODE_EQUIP = 1, // limit applied to amount equipped items (including used gems)
|
||||
};
|
||||
|
||||
enum SkillRaceClassInfoFlags
|
||||
{
|
||||
SKILL_FLAG_NO_SKILLUP_MESSAGE = 0x2,
|
||||
SKILL_FLAG_ALWAYS_MAX_VALUE = 0x10,
|
||||
SKILL_FLAG_UNLEARNABLE = 0x20, // Skill can be unlearned
|
||||
SKILL_FLAG_INCLUDE_IN_SORT = 0x80, // Spells belonging to a skill with this flag will additionally compare skill ids when sorting spellbook in client
|
||||
SKILL_FLAG_NOT_TRAINABLE = 0x100,
|
||||
SKILL_FLAG_MONO_VALUE = 0x400 // Skill always has value 1 - clientside display flag, real value can be different
|
||||
};
|
||||
|
||||
enum SpellCategoryFlags
|
||||
{
|
||||
SPELL_CATEGORY_FLAG_COOLDOWN_SCALES_WITH_WEAPON_SPEED = 0x01, // unused
|
||||
|
||||
@@ -1467,22 +1467,19 @@ struct ScalingStatValuesEntry
|
||||
// uint32 displayOrder; // 19 m_sortIndex
|
||||
//};
|
||||
|
||||
//struct SkillRaceClassInfoEntry{
|
||||
// uint32 id; // 0 m_ID
|
||||
// uint32 skillId; // 1 m_skillID
|
||||
// uint32 raceMask; // 2 m_raceMask
|
||||
// uint32 classMask; // 3 m_classMask
|
||||
// uint32 flags; // 4 m_flags
|
||||
// uint32 reqLevel; // 5 m_minLevel
|
||||
// uint32 skillTierId; // 6 m_skillTierID
|
||||
// uint32 skillCostID; // 7 m_skillCostIndex
|
||||
//};
|
||||
struct SkillRaceClassInfoEntry
|
||||
{
|
||||
//uint32 ID; // 0
|
||||
uint32 SkillID; // 1
|
||||
uint32 RaceMask; // 2
|
||||
uint32 ClassMask; // 3
|
||||
uint32 Flags; // 4
|
||||
//uint32 MinLevel; // 5
|
||||
uint32 SkillTierID; // 6
|
||||
//uint32 SkillCostIndex; // 7
|
||||
};
|
||||
|
||||
//struct SkillTiersEntry{
|
||||
// uint32 id; // 0 m_ID
|
||||
// uint32 skillValue[16]; // 1-17 m_cost
|
||||
// uint32 maxSkillValue[16]; // 18-32 m_valueMax
|
||||
//};
|
||||
#define MAX_SKILL_STEP 16
|
||||
|
||||
struct SkillLineEntry
|
||||
{
|
||||
@@ -1501,19 +1498,26 @@ struct SkillLineEntry
|
||||
|
||||
struct SkillLineAbilityEntry
|
||||
{
|
||||
uint32 id; // 0 m_ID
|
||||
uint32 skillId; // 1 m_skillLine
|
||||
uint32 spellId; // 2 m_spell
|
||||
uint32 racemask; // 3 m_raceMask
|
||||
uint32 classmask; // 4 m_classMask
|
||||
//uint32 racemaskNot; // 5 m_excludeRace
|
||||
//uint32 classmaskNot; // 6 m_excludeClass
|
||||
uint32 req_skill_value; // 7 m_minSkillLineRank
|
||||
uint32 forward_spellid; // 8 m_supercededBySpell
|
||||
uint32 learnOnGetSkill; // 9 m_acquireMethod
|
||||
uint32 max_value; // 10 m_trivialSkillLineRankHigh
|
||||
uint32 min_value; // 11 m_trivialSkillLineRankLow
|
||||
//uint32 characterPoints[2]; // 12-13 m_characterPoints[2]
|
||||
uint32 ID; // 0
|
||||
uint32 SkillLine; // 1
|
||||
uint32 Spell; // 2
|
||||
uint32 RaceMask; // 3
|
||||
uint32 ClassMask; // 4
|
||||
//uint32 ExcludeRace; // 5
|
||||
//uint32 ExcludeClass; // 6
|
||||
uint32 MinSkillLineRank; // 7
|
||||
uint32 SupercededBySpell; // 8
|
||||
uint32 AcquireMethod; // 9
|
||||
uint32 TrivialSkillLineRankHigh; // 10
|
||||
uint32 TrivialSkillLineRankLow; // 11
|
||||
//uint32 CharacterPoints[2]; // 12-13
|
||||
};
|
||||
|
||||
struct SkillTiersEntry
|
||||
{
|
||||
uint32 ID; // 0
|
||||
//uint32 Cost[MAX_SKILL_STEP]; // 1-16
|
||||
uint32 Value[MAX_SKILL_STEP]; // 17-32
|
||||
};
|
||||
|
||||
struct SoundEntriesEntry
|
||||
|
||||
@@ -82,6 +82,8 @@ char constexpr ScalingStatDistributionfmt[] = "niiiiiiiiiiiiiiiiiiiii";
|
||||
char constexpr ScalingStatValuesfmt[] = "iniiiiiiiiiiiiiiiiiiiiii";
|
||||
char constexpr SkillLinefmt[] = "nixssssssssssssssssxxxxxxxxxxxxxxxxxxixxxxxxxxxxxxxxxxxi";
|
||||
char constexpr SkillLineAbilityfmt[] = "niiiixxiiiiixx";
|
||||
char constexpr SkillRaceClassInfofmt[] = "diiiixix";
|
||||
char constexpr SkillTiersfmt[] = "nxxxxxxxxxxxxxxxxiiiiiiiiiiiiiiii";
|
||||
char constexpr SoundEntriesfmt[] = "nxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
char constexpr SpellCastTimefmt[] = "nixx";
|
||||
char constexpr SpellCategoryfmt[] = "ni";
|
||||
|
||||
Reference in New Issue
Block a user