Guest User

Untitled

a guest
Jun 19th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 15.36 KB | None | 0 0
  1. // ***********************************
  2. // Spell Attributes definitions
  3. // attributes with '*' in comment are not implemented
  4. // ***********************************
  5. enum Attributes
  6. {
  7.     SPELL_ATTR_UNK0                           = 0x00000001,       // 0
  8.     SPELL_ATTR_RANGED                         = 0x00000002,       // 1 All ranged abilities have this flag
  9.     SPELL_ATTR_ON_NEXT_SWING_1                = 0x00000004,       // 2 on next swing 1
  10.     SPELL_ATTR_UNK3                           = 0x00000008,       // 3 not set in 2.4.3
  11.     SPELL_ATTR_ABILITY                        = 0x00000010,       // 4 client puts 'ability' instead of 'spell' in game strings for these spells
  12.     SPELL_ATTR_TRADESPELL                     = 0x00000020,       // 5 trade spells (recipes), will be added by client to a sublist of profession spell
  13.     SPELL_ATTR_PASSIVE                        = 0x00000040,       // 6 Passive spell
  14.     SPELL_ATTR_HIDDEN_CLIENTSIDE              = 0x00000080,       // 7 *Spells with this attribute are not visible in spellbook or aura bar
  15.     SPELL_ATTR_HIDE_IN_COMBAT_LOG             = 0x00000100,       // 8 This attribite controls whether spell appears in combat logs
  16.     SPELL_ATTR_TARGET_MAINHAND_ITEM           = 0x00000200,       // 9 Client automatically selects item from mainhand slot as a cast target
  17.     SPELL_ATTR_ON_NEXT_SWING_2                = 0x00000400,       // 10 on next swing 2
  18.     SPELL_ATTR_UNK11                          = 0x00000800,       // 11
  19.     SPELL_ATTR_DAYTIME_ONLY                   = 0x00001000,       // 12 only useable at daytime, not set in 2.4.3
  20.     SPELL_ATTR_NIGHT_ONLY                     = 0x00002000,       // 13 only useable at night, not set in 2.4.3
  21.     SPELL_ATTR_INDOORS_ONLY                   = 0x00004000,       // 14 only useable indoors, not set in 2.4.3
  22.     SPELL_ATTR_OUTDOORS_ONLY                  = 0x00008000,       // 15 Only useable outdoors.
  23.     SPELL_ATTR_NOT_SHAPESHIFT                 = 0x00010000,       // 16 Not while shapeshifted
  24.     SPELL_ATTR_ONLY_STEALTHED                 = 0x00020000,       // 17 Must be in stealth
  25.     SPELL_ATTR_DONT_AFFECT_SHEATH_STATE       = 0x00040000,       // 18 *client won't hide unit weapons in sheath on cast/channel
  26.     SPELL_ATTR_LEVEL_DAMAGE_CALCULATION       = 0x00080000,       // 19 spelldamage depends on caster level
  27.     SPELL_ATTR_STOP_ATTACK_TARGET             = 0x00100000,       // 20 Stop attack after use this spell (and not begin attack if use)
  28.     SPELL_ATTR_IMPOSSIBLE_DODGE_PARRY_BLOCK   = 0x00200000,       // 21 Cannot be dodged/parried/blocked
  29.     SPELL_ATTR_CAST_TRACK_TARGET              = 0x00400000,       // 22 *Client automatically forces player to face target when casting
  30.     SPELL_ATTR_CASTABLE_WHILE_DEAD            = 0x00800000,       // 23 *castable while dead?
  31.     SPELL_ATTR_CASTABLE_WHILE_MOUNTED         = 0x01000000,       // 24 castable while mounted
  32.     SPELL_ATTR_DISABLED_WHILE_ACTIVE          = 0x02000000,       // 25 Activate and start cooldown after aura fade or remove summoned creature or go
  33.     SPELL_ATTR_NEGATIVE_1                     = 0x04000000,       // 26 *Aura ignore immune? - Many negative spells have this attr
  34.     SPELL_ATTR_CASTABLE_WHILE_SITTING         = 0x08000000,       // 27 castable while sitting
  35.     SPELL_ATTR_CANT_USED_IN_COMBAT            = 0x10000000,       // 28 Cannot be used in combat
  36.     SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY  = 0x20000000,       // 29 unaffected by invulnerability (hmm possible not...)
  37.     SPELL_ATTR_BREAKABLE_BY_DAMAGE            = 0x40000000,       // 30 breakable by damage?
  38.     SPELL_ATTR_CANT_CANCEL                    = 0x80000000        // 31 positive aura can't be canceled
  39. };
  40. enum AttributesEx
  41. {
  42.     SPELL_ATTR_EX_DISMISS_PET                 = 0x00000001,       // 0 *for these spells is old pet dismissed before summon new
  43.     SPELL_ATTR_EX_DRAIN_ALL_POWER             = 0x00000002,       // 1 use all power (Only paladin Lay of Hands and Bunyanize)
  44.     SPELL_ATTR_EX_CHANNELED_1                 = 0x00000004,       // 2 channeled 1
  45.     SPELL_ATTR_EX_CANT_BE_REDIRECTED          = 0x00000008,       // 3 cant be redirected
  46.     SPELL_ATTR_EX_UNK4                        = 0x00000010,       // 4 (stealth, prowl, whirlwind, rockbiter)
  47.     SPELL_ATTR_EX_NOT_BREAK_STEALTH           = 0x00000020,       // 5 Not break stealth
  48.     SPELL_ATTR_EX_CHANNELED_2                 = 0x00000040,       // 6 channeled 2
  49.     SPELL_ATTR_EX_CANT_BE_REFLECTED           = 0x00000080,       // 7 cant be reflected
  50.     SPELL_ATTR_EX_NOT_IN_COMBAT_TARGET        = 0x00000100,       // 8 Spell req target not to be in combat state
  51.     SPELL_ATTR_EX_MELEE_COMBAT_SPELL          = 0x00000200,       // 9 *spells with this flag can be cast only if caster is able to melee attack target
  52.     SPELL_ATTR_EX_NO_THREAT                   = 0x00000400,       // 10 *no generates threat?
  53.     SPELL_ATTR_EX_UNK11                       = 0x00000800,       // 11 *aura?
  54.     SPELL_ATTR_EX_PICKPOKET                   = 0x00001000,       // 12 *pickpoket
  55.     SPELL_ATTR_EX_FARSIGHT                    = 0x00002000,       // 13 *Client removes farsight on aura loss
  56.     SPELL_ATTR_EX_CHANNEL_TRACK_TARGET        = 0x00004000,       // 14 *Client automatically forces player to face target when channeling
  57.     SPELL_ATTR_EX_DISPEL_AURAS_ON_IMMUNITY    = 0x00008000,       // 15 remove auras on immunity
  58.     SPELL_ATTR_EX_UNAFFECTED_BY_SCHOOL_IMMUNE = 0x00010000,       // 16 unaffected by school immunity
  59.     SPELL_ATTR_EX_UNAUTOCASTABLE_BY_PET       = 0x00020000,       // 17
  60.     SPELL_ATTR_EX_UNK18                       = 0x00040000,       // 18 stun, polymorph, daze, hex
  61.     SPELL_ATTR_EX_CANT_TARGET_SELF            = 0x00080000,       // 19 *Applies only to unit target - for example Divine Intervention (19752)
  62.     SPELL_ATTR_EX_REQ_COMBO_POINTS1           = 0x00100000,       // 20 Req combo points on target
  63.     SPELL_ATTR_EX_UNK21                       = 0x00200000,       // 21
  64.     SPELL_ATTR_EX_REQ_COMBO_POINTS2           = 0x00400000,       // 22 Req combo points on target
  65.     SPELL_ATTR_EX_UNK23                       = 0x00800000,       // 23
  66.     SPELL_ATTR_EX_FISHING                     = 0x01000000,       // 24 *Req fishing pole?? - only fishing spells
  67.     SPELL_ATTR_EX_UNK25                       = 0x02000000,       // 25 not set in 2.4.3
  68.     SPELL_ATTR_EX_UNK26                       = 0x04000000,       // 26 works correctly with [target=focus] and [target=mouseover] macros?
  69.     SPELL_ATTR_EX_MUST_FACE_TARGET            = 0x08000000,       // 27 *Caster must face its target in order to successfully cast spell
  70.     SPELL_ATTR_EX_HIDDEN_AURA                 = 0x10000000,       // 28 *client doesn't display these spells in aura bar
  71.     SPELL_ATTR_EX_CHANNEL_DISPLAY_SPELL_NAME  = 0x20000000,       // 29 *spell name is displayed in cast bar instead of 'channeling' text
  72.     SPELL_ATTR_EX_ENABLE_AT_DODGE             = 0x40000000,       // 30 *overpower
  73.     SPELL_ATTR_EX_UNK31                       = 0x80000000        // 31
  74. };
  75.  
  76. enum AttributesEx2
  77. {
  78.     SPELL_ATTR_EX2_ALLOW_DEAD_TARGET          = 0x00000001,       // 0 *can target dead target
  79.     SPELL_ATTR_EX2_TRANSPARENT                = 0x00000002,       // 1 *make caster transparent
  80.     SPELL_ATTR_EX2_IGNORE_LOS                 = 0x00000004,       // 2 *these spells ignore line-of-sight
  81.     SPELL_ATTR_EX2_UNK3                       = 0x00000008,       // 3
  82.     SPELL_ATTR_EX2_ALWAYS_APPLY_MODIFIERS     = 0x00000010,       // 4 *spell modifiers are applied dynamically (even if aura is not passive)
  83.     SPELL_ATTR_EX2_AUTOREPEAT_FLAG            = 0x00000020,       // 5
  84.     SPELL_ATTR_EX2_UNK6                       = 0x00000040,       // 6
  85.     SPELL_ATTR_EX2_UNK7                       = 0x00000080,       // 7
  86.     SPELL_ATTR_EX2_UNK8                       = 0x00000100,       // 8 not set in 2.4.3
  87.     SPELL_ATTR_EX2_UNK9                       = 0x00000200,       // 9
  88.     SPELL_ATTR_EX2_TAME_SPELLS                = 0x00000400,       // 10 *tame spells
  89.     SPELL_ATTR_EX2_HEALTH_FUNNEL              = 0x00000800,       // 11
  90.     SPELL_ATTR_EX2_UNK12                      = 0x00001000,       // 12 *(swipe, cleave)
  91.     SPELL_ATTR_EX2_CASTABLE_ON_ITEMS          = 0x00002000,       // 13 *item enchants, poisons, disenchant...
  92.     SPELL_ATTR_EX2_UNK14                      = 0x00004000,       // 14 *(picoviny)
  93.     SPELL_ATTR_EX2_UNK15                      = 0x00008000,       // 15 not set in 2.4.3
  94.     SPELL_ATTR_EX2_TAME_BEAST                 = 0x00010000,       // 16
  95.     SPELL_ATTR_EX2_NOT_RESET_AUTOSHOT         = 0x00020000,       // 17 Hunters Shot and Stings only have this flag
  96.     SPELL_ATTR_EX2_REQ_DEAD_PET               = 0x00040000,       // 18 *Only Revive pet
  97.     SPELL_ATTR_EX2_NOT_NEED_SHAPESHIFT        = 0x00080000,       // 19 does not necessarly need shapeshift
  98.     SPELL_ATTR_EX2_MUST_BEHIND_TARGET         = 0x00100000,       // 20 *Caster need to be behind of his target
  99.     SPELL_ATTR_EX2_DAMAGE_REDUCED_SHIELD      = 0x00200000,       // 21 *for ice blocks, pala immunity buffs, priest absorb shields, but used also for other spells -> not sure!
  100.     SPELL_ATTR_EX2_UNK22                      = 0x00400000,       // 22
  101.     SPELL_ATTR_EX2_UNK23                      = 0x00800000,       // 23 *(Only mage Arcane Concentration have this flag)
  102.     SPELL_ATTR_EX2_UNK24                      = 0x01000000,       // 24
  103.     SPELL_ATTR_EX2_UNK25                      = 0x02000000,       // 25
  104.     SPELL_ATTR_EX2_UNK26                      = 0x04000000,       // 26 unaffected by school immunity
  105.     SPELL_ATTR_EX2_UNK27                      = 0x08000000,       // 27
  106.     SPELL_ATTR_EX2_UNK28                      = 0x10000000,       // 28
  107.     SPELL_ATTR_EX2_CANT_CRIT                  = 0x20000000,       // 29 Spell can't crit
  108.     SPELL_ATTR_EX2_TRIGGERED_CAN_TRIGGER      = 0x40000000,       // 30 spell can trigger even if triggered
  109.     SPELL_ATTR_EX2_FOOD                       = 0x80000000        // 31 food, well-fed, and a few others
  110. };
  111.  
  112. enum AttributesEx3
  113. {
  114.     SPELL_ATTR_EX3_UNK0                       = 0x00000001,       // 0
  115.     SPELL_ATTR_EX3_UNK1                       = 0x00000002,       // 1
  116.     SPELL_ATTR_EX3_UNK2                       = 0x00000004,       // 2
  117.     SPELL_ATTR_EX3_MELEE                      = 0x00000008,       // 3
  118.     SPELL_ATTR_EX3_IGNORE_RESURRECTION_TIMER  = 0x00000010,       // 4 Druid Rebirth only this spell have this flag
  119.     SPELL_ATTR_EX3_UNK5                       = 0x00000020,       // 5
  120.     SPELL_ATTR_EX3_UNK6                       = 0x00000040,       // 6
  121.     SPELL_ATTR_EX3_STACKS_FOR_DIFF_CASTERS    = 0x00000080,       // 7 separate stack for every caster
  122.     SPELL_ATTR_EX3_PLAYERS_ONLY               = 0x00000100,       // 8 Player only?
  123.     SPELL_ATTR_EX3_UNK9                       = 0x00000200,       // 9
  124.     SPELL_ATTR_EX3_MAIN_HAND                  = 0x00000400,       // 10 Main hand weapon required
  125.     SPELL_ATTR_EX3_BATTLEGROUND               = 0x00000800,       // 11 Can casted only on battleground
  126.     SPELL_ATTR_EX3_CAST_ON_DEAD               = 0x00001000,       // 12 *target is a dead player (not every spell has this flag)
  127.     SPELL_ATTR_EX3_UNK13                      = 0x00002000,       // 13 *no triggers effects that trigger on casting a spell??
  128.     SPELL_ATTR_EX3_UNK14                      = 0x00004000,       // 14 "Honorless Target" only this spells have this flag
  129.     SPELL_ATTR_EX3_UNK15                      = 0x00008000,       // 15 Auto Shoot, Shoot, Throw,  - this is autoshot flag
  130.     SPELL_ATTR_EX3_CANT_TRIGGER_PROC          = 0x00010000,       // 16
  131.     SPELL_ATTR_EX3_NO_INITIAL_AGGRO           = 0x00020000,       // 17 no initial aggro
  132.     SPELL_ATTR_EX3_IGNORE_HIT_RESULT          = 0x00040000,       // 18 Spell should always hit its target
  133.     SPELL_ATTR_EX3_DISABLE_PROC               = 0x00080000,       // 19 *during aura proc no spells can trigger (20178, 20375)
  134.     SPELL_ATTR_EX3_DEATH_PERSISTENT           = 0x00100000,       // 20 Death persistent spells
  135.     SPELL_ATTR_EX3_UNK21                      = 0x00200000,       // 21
  136.     SPELL_ATTR_EX3_REQ_WAND                   = 0x00400000,       // 22 Req wand
  137.     SPELL_ATTR_EX3_UNK23                      = 0x00800000,       // 23
  138.     SPELL_ATTR_EX3_REQ_OFFHAND                = 0x01000000,       // 24 Req offhand weapon
  139.     SPELL_ATTR_EX3_UNK25                      = 0x02000000,       // 25
  140.     SPELL_ATTR_EX3_CAN_PROC_TRIGGERED         = 0x04000000,       // 26
  141.     SPELL_ATTR_EX3_UNK27                      = 0x08000000,       // 27
  142.     SPELL_ATTR_EX3_ALWAYS_CAST_OK             = 0x10000000,       // 28 *Flagdrops, captures, enrages - total immunity to caster auras
  143.     SPELL_ATTR_EX3_NO_SPELL_BONUS             = 0x20000000,       // 29 Ignore bonus spell damage?
  144.     SPELL_ATTR_EX3_DONT_DISPLAY_RANGE         = 0x40000000,       // 30 *at these spells is not displayed range in tooltip
  145.     SPELL_ATTR_EX3_UNK31                      = 0x80000000        // 31
  146. };
  147.  
  148. enum AttributesEx4
  149. {
  150.     SPELL_ATTR_EX4_UNK0                       = 0x00000001,        // 0
  151.     SPELL_ATTR_EX4_PROC_ONLY_ON_DUMMY         = 0x00000002,        // 1 * proc only on SPELL_EFFECT_DUMMY?
  152.     SPELL_ATTR_EX4_UNK2                       = 0x00000004,        // 2
  153.     SPELL_ATTR_EX4_CANT_PROC_FROM_SELFCAST    = 0x00000008,        // 3
  154.     SPELL_ATTR_EX4_UNK4                       = 0x00000010,        // 4
  155.     SPELL_ATTR_EX4_UNK5                       = 0x00000020,        // 5
  156.     SPELL_ATTR_EX4_NOT_STEALABLE              = 0x00000040,        // 6
  157.     SPELL_ATTR_EX4_FORCE_TRIGGERED            = 0x00000080,        // 7 spells forced to be triggered
  158.     SPELL_ATTR_EX4_UNK8                       = 0x00000100,        // 8
  159.     SPELL_ATTR_EX4_UNK9                       = 0x00000200,        // 9
  160.     SPELL_ATTR_EX4_SPELL_VS_EXTEND_COST       = 0x00000400,        // 10 Rogue Shiv have this flag
  161.     SPELL_ATTR_EX4_UNK11                      = 0x00000800,        // 11
  162.     SPELL_ATTR_EX4_UNK12                      = 0x00001000,        // 12
  163.     SPELL_ATTR_EX4_UNK13                      = 0x00002000,        // 13
  164.     SPELL_ATTR_EX4_DAMAGE_DOESNT_BREAK_AURAS  = 0x00004000,        // 14
  165.     SPELL_ATTR_EX4_UNK15                      = 0x00008000,        // 15
  166.     SPELL_ATTR_EX4_NOT_USABLE_IN_ARENA        = 0x00010000,        // 16 not usable in arena
  167.     SPELL_ATTR_EX4_USABLE_IN_ARENA            = 0x00020000,        // 17 usable in arena
  168.     SPELL_ATTR_EX4_UNK18                      = 0x00040000,        // 18
  169.     SPELL_ATTR_EX4_UNK19                      = 0x00080000,        // 19
  170.     SPELL_ATTR_EX4_UNK20                      = 0x00100000,        // 20
  171.     SPELL_ATTR_EX4_UNK21                      = 0x00200000,        // 21
  172.     SPELL_ATTR_EX4_UNK22                      = 0x00400000,        // 22
  173.     SPELL_ATTR_EX4_UNK23                      = 0x00800000,        // 23
  174.     SPELL_ATTR_EX4_AUTOSHOT                   = 0x01000000,        // 24
  175.     SPELL_ATTR_EX4_UNK25                      = 0x02000000,        // 25 pet scaling auras
  176.     SPELL_ATTR_EX4_CAST_ONLY_IN_OUTLAND       = 0x04000000,        // 26 Can only be used in Outland.
  177.     SPELL_ATTR_EX4_UNK27                      = 0x08000000,        // 27
  178.     SPELL_ATTR_EX4_UNK28                      = 0x10000000,        // 28
  179.     SPELL_ATTR_EX4_UNK29                      = 0x20000000,        // 29
  180.     SPELL_ATTR_EX4_UNK30                      = 0x40000000,        // 30
  181.     SPELL_ATTR_EX4_UNK31                      = 0x80000000         // 31
  182. };
Add Comment
Please, Sign In to add comment