diff options
Diffstat (limited to 'src/game/SharedDefines.h')
-rw-r--r-- | src/game/SharedDefines.h | 908 |
1 files changed, 674 insertions, 234 deletions
diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 15009304c70..e958f911440 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -1,7 +1,7 @@ /* - * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/> + * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/> * - * Copyright (C) 2008 Trinity <http://www.trinitycore.org/> + * Copyright (C) 2008-2009 Trinity <http://www.trinitycore.org/> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -88,7 +88,10 @@ enum Classes #define CLASSMASK_ALL_PLAYABLE \ ((1<<(CLASS_WARRIOR-1))|(1<<(CLASS_PALADIN-1))|(1<<(CLASS_HUNTER-1))| \ (1<<(CLASS_ROGUE-1)) |(1<<(CLASS_PRIEST-1)) |(1<<(CLASS_SHAMAN-1))| \ - (1<<(CLASS_MAGE-1)) |(1<<(CLASS_WARLOCK-1))|(1<<(CLASS_DRUID-1)) ) + (1<<(CLASS_MAGE-1)) |(1<<(CLASS_WARLOCK-1))|(1<<(CLASS_DRUID-1)) | \ + (1<<(CLASS_DEATH_KNIGHT-1)) ) + +#define CLASSMASK_ALL_CREATURES ((1<<(CLASS_WARRIOR-1)) | (1<<(CLASS_PALADIN-1)) | (1<<(CLASS_ROGUE-1)) | (1<<(CLASS_MAGE-1)) ) #define CLASSMASK_WAND_USERS ((1<<(CLASS_PRIEST-1))|(1<<(CLASS_MAGE-1))|(1<<(CLASS_WARLOCK-1))) @@ -134,12 +137,13 @@ enum Powers POWER_FOCUS = 2, POWER_ENERGY = 3, POWER_HAPPINESS = 4, - POWER_RUNES = 5, + POWER_RUNE = 5, + POWER_RUNIC_POWER = 6, + MAX_POWERS = 7, + POWER_ALL = 127, // default for class? POWER_HEALTH = 0xFFFFFFFE // (-2 as signed value) }; -#define MAX_POWERS 5 // not count POWER_RUNES for now - enum SpellSchools { SPELL_SCHOOL_NORMAL = 0, @@ -199,10 +203,11 @@ enum ItemQualities ITEM_QUALITY_RARE = 3, //BLUE ITEM_QUALITY_EPIC = 4, //PURPLE ITEM_QUALITY_LEGENDARY = 5, //ORANGE - ITEM_QUALITY_ARTIFACT = 6 //LIGHT YELLOW + ITEM_QUALITY_ARTIFACT = 6, //LIGHT YELLOW + ITEM_QUALITY_HEIRLOOM = 7 }; -#define MAX_ITEM_QUALITY 7 +#define MAX_ITEM_QUALITY 8 enum SpellCategory { @@ -215,16 +220,16 @@ enum SpellCategory // *********************************** #define SPELL_ATTR_UNK0 0x00000001 // 0 -#define SPELL_ATTR_RANGED 0x00000002 // 1 All ranged abilities have this flag -#define SPELL_ATTR_ON_NEXT_SWING_1 0x00000004 // 2 on next swing -#define SPELL_ATTR_UNK3 0x00000008 // 3 not set in 2.4.2 +#define SPELL_ATTR_REQ_AMMO 0x00000002 // 1 +#define SPELL_ATTR_ON_NEXT_SWING 0x00000004 // 2 on next swing +#define SPELL_ATTR_UNK3 0x00000008 // 3 not set in 3.0.3 #define SPELL_ATTR_UNK4 0x00000010 // 4 #define SPELL_ATTR_UNK5 0x00000020 // 5 trade spells? #define SPELL_ATTR_PASSIVE 0x00000040 // 6 Passive spell #define SPELL_ATTR_UNK7 0x00000080 // 7 visible? #define SPELL_ATTR_UNK8 0x00000100 // 8 #define SPELL_ATTR_UNK9 0x00000200 // 9 -#define SPELL_ATTR_ON_NEXT_SWING_2 0x00000400 // 10 on next swing 2 +#define SPELL_ATTR_UNK10 0x00000400 // 10 on next swing 2 #define SPELL_ATTR_UNK11 0x00000800 // 11 #define SPELL_ATTR_DAYTIME_ONLY 0x00001000 // 12 only useable at daytime, not set in 2.4.2 #define SPELL_ATTR_NIGHT_ONLY 0x00002000 // 13 only useable at night, not set in 2.4.2 @@ -237,33 +242,32 @@ enum SpellCategory #define SPELL_ATTR_STOP_ATTACK_TARGET 0x00100000 // 20 Stop attack after use this spell (and not begin attack if use) #define SPELL_ATTR_IMPOSSIBLE_DODGE_PARRY_BLOCK 0x00200000 // 21 Cannot be dodged/parried/blocked #define SPELL_ATTR_UNK22 0x00400000 // 22 shoot spells -#define SPELL_ATTR_UNK23 0x00800000 // 23 castable while dead? +#define SPELL_ATTR_CASTABLE_WHILE_DEAD 0x00800000 // 23 castable while dead? #define SPELL_ATTR_CASTABLE_WHILE_MOUNTED 0x01000000 // 24 castable while mounted #define SPELL_ATTR_DISABLED_WHILE_ACTIVE 0x02000000 // 25 Activate and start cooldown after aura fade or remove summoned creature or go -#define SPELL_ATTR_UNK26 0x04000000 // 26 Aura ignore immune? +#define SPELL_ATTR_UNK26 0x04000000 // 26 Aura #define SPELL_ATTR_CASTABLE_WHILE_SITTING 0x08000000 // 27 castable while sitting #define SPELL_ATTR_CANT_USED_IN_COMBAT 0x10000000 // 28 Cannot be used in combat #define SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY 0x20000000 // 29 unaffected by invulnerability (hmm possible not...) #define SPELL_ATTR_BREAKABLE_BY_DAMAGE 0x40000000 // 30 breakable by damage? #define SPELL_ATTR_CANT_CANCEL 0x80000000 // 31 positive aura can't be canceled - -#define SPELL_ATTR_EX_UNK0 0x00000001 // 0 +#define SPELL_ATTR_EX_DISMISS_PET 0x00000001 // 0 dismiss pet and not allow to summon new one? #define SPELL_ATTR_EX_DRAIN_ALL_POWER 0x00000002 // 1 use all power (Only paladin Lay of Hands and Bunyanize) -#define SPELL_ATTR_EX_CHANNELED_1 0x00000004 // 2 channeled 1 +#define SPELL_ATTR_EX_CHANNELED_1 0x00000004 // 2 channeled target #define SPELL_ATTR_EX_UNK3 0x00000008 // 3 -#define SPELL_ATTR_EX_UNK4 0x00000010 // 4 +#define SPELL_ATTR_EX_UNK4 0x00000010 // 4 stealth and whirlwind #define SPELL_ATTR_EX_NOT_BREAK_STEALTH 0x00000020 // 5 Not break stealth -#define SPELL_ATTR_EX_CHANNELED_2 0x00000040 // 6 channeled 2 +#define SPELL_ATTR_EX_CHANNELED_2 0x00000040 // 6 channeled self #define SPELL_ATTR_EX_NEGATIVE 0x00000080 // 7 #define SPELL_ATTR_EX_NOT_IN_COMBAT_TARGET 0x00000100 // 8 Spell req target not to be in combat state -#define SPELL_ATTR_EX_UNK9 0x00000200 // 9 -#define SPELL_ATTR_EX_UNK10 0x00000400 // 10 -#define SPELL_ATTR_EX_UNK11 0x00000800 // 11 +#define SPELL_ATTR_EX_UNK9 0x00000200 // 9 melee spells +#define SPELL_ATTR_EX_UNK10 0x00000400 // 10 no generates threat on cast 100%? ( old NO_INITIAL_AGGRO) +#define SPELL_ATTR_EX_UNK11 0x00000800 // 11 aura #define SPELL_ATTR_EX_UNK12 0x00001000 // 12 #define SPELL_ATTR_EX_UNK13 0x00002000 // 13 #define SPELL_ATTR_EX_UNK14 0x00004000 // 14 #define SPELL_ATTR_EX_DISPEL_AURAS_ON_IMMUNITY 0x00008000 // 15 remove auras on immunity -#define SPELL_ATTR_EX_UNAFFECTED_BY_SCHOOL_IMMUNE 0x00010000 // 16 unaffected by school immunity +#define SPELL_ATTR_EX_UNK16 0x00010000 // 16 on immuniy #define SPELL_ATTR_EX_UNAUTOCASTABLE_BY_PET 0x00020000 // 17 #define SPELL_ATTR_EX_UNK18 0x00040000 // 18 #define SPELL_ATTR_EX_UNK19 0x00080000 // 19 @@ -272,7 +276,7 @@ enum SpellCategory #define SPELL_ATTR_EX_REQ_COMBO_POINTS2 0x00400000 // 22 Req combo points on target #define SPELL_ATTR_EX_UNK23 0x00800000 // 23 #define SPELL_ATTR_EX_UNK24 0x01000000 // 24 Req fishing pole?? -#define SPELL_ATTR_EX_UNK25 0x02000000 // 25 not set in 2.4.2 +#define SPELL_ATTR_EX_UNK25 0x02000000 // 25 #define SPELL_ATTR_EX_UNK26 0x04000000 // 26 #define SPELL_ATTR_EX_UNK27 0x08000000 // 27 #define SPELL_ATTR_EX_UNK28 0x10000000 // 28 @@ -281,36 +285,36 @@ enum SpellCategory #define SPELL_ATTR_EX_UNK31 0x80000000 // 31 #define SPELL_ATTR_EX2_UNK0 0x00000001 // 0 -#define SPELL_ATTR_EX2_UNK1 0x00000002 // 1 -#define SPELL_ATTR_EX2_UNK2 0x00000004 // 2 boss spells? +#define SPELL_ATTR_EX2_UNK1 0x00000002 // 1 ? many triggered spells have this flag +#define SPELL_ATTR_EX2_CANT_REFLECTED 0x00000004 // 2 ? used for detect can or not spell reflected #define SPELL_ATTR_EX2_UNK3 0x00000008 // 3 #define SPELL_ATTR_EX2_UNK4 0x00000010 // 4 -#define SPELL_ATTR_EX2_UNK5 0x00000020 // 5 +#define SPELL_ATTR_EX2_AUTOREPEAT_FLAG 0x00000020 // 5 #define SPELL_ATTR_EX2_UNK6 0x00000040 // 6 #define SPELL_ATTR_EX2_UNK7 0x00000080 // 7 -#define SPELL_ATTR_EX2_UNK8 0x00000100 // 8 not set in 2.4.2 +#define SPELL_ATTR_EX2_UNK8 0x00000100 // 8 not set in 3.0.3 #define SPELL_ATTR_EX2_UNK9 0x00000200 // 9 #define SPELL_ATTR_EX2_UNK10 0x00000400 // 10 #define SPELL_ATTR_EX2_HEALTH_FUNNEL 0x00000800 // 11 #define SPELL_ATTR_EX2_UNK12 0x00001000 // 12 -#define SPELL_ATTR_EX2_UNK13 0x00002000 // 13 +#define SPELL_ATTR_EX2_UNK13 0x00002000 // 13 Items enchanted by spells with this flag preserve the enchant to arenas #define SPELL_ATTR_EX2_UNK14 0x00004000 // 14 -#define SPELL_ATTR_EX2_UNK15 0x00008000 // 15 not set in 2.4.2 +#define SPELL_ATTR_EX2_UNK15 0x00008000 // 15 not set in 3.0.3 #define SPELL_ATTR_EX2_TAME_BEAST 0x00010000 // 16 #define SPELL_ATTR_EX2_NOT_RESET_AUTOSHOT 0x00020000 // 17 Hunters Shot and Stings only have this flag #define SPELL_ATTR_EX2_UNK18 0x00040000 // 18 Only Revive pet - possible req dead pet #define SPELL_ATTR_EX2_NOT_NEED_SHAPESHIFT 0x00080000 // 19 does not necessarly need shapeshift #define SPELL_ATTR_EX2_UNK20 0x00100000 // 20 -#define SPELL_ATTR_EX2_UNK21 0x00200000 // 21 +#define 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! #define SPELL_ATTR_EX2_UNK22 0x00400000 // 22 #define SPELL_ATTR_EX2_UNK23 0x00800000 // 23 Only mage Arcane Concentration have this flag #define SPELL_ATTR_EX2_UNK24 0x01000000 // 24 #define SPELL_ATTR_EX2_UNK25 0x02000000 // 25 #define SPELL_ATTR_EX2_UNK26 0x04000000 // 26 unaffected by school immunity #define SPELL_ATTR_EX2_UNK27 0x08000000 // 27 -#define SPELL_ATTR_EX2_UNK28 0x10000000 // 28 +#define SPELL_ATTR_EX2_UNK28 0x10000000 // 28 no breaks stealth if it fails?? #define SPELL_ATTR_EX2_CANT_CRIT 0x20000000 // 29 Spell can't crit -#define SPELL_ATTR_EX2_UNK30 0x40000000 // 30 +#define SPELL_ATTR_EX2_TRIGGERED_CAN_TRIGGER 0x40000000 // 30 spell can trigger even if triggered #define SPELL_ATTR_EX2_FOOD 0x80000000 // 31 food, well-fed, and a few others #define SPELL_ATTR_EX3_UNK0 0x00000001 // 0 @@ -320,27 +324,27 @@ enum SpellCategory #define SPELL_ATTR_EX3_UNK4 0x00000010 // 4 Druid Rebirth only this spell have this flag #define SPELL_ATTR_EX3_UNK5 0x00000020 // 5 #define SPELL_ATTR_EX3_UNK6 0x00000040 // 6 -#define SPELL_ATTR_EX3_UNK7 0x00000080 // 7 +#define SPELL_ATTR_EX3_UNK7 0x00000080 // 7 separate stack for every caster #define SPELL_ATTR_EX3_PLAYERS_ONLY 0x00000100 // 8 Player only? -#define SPELL_ATTR_EX3_UNK9 0x00000200 // 9 +#define SPELL_ATTR_EX3_TRIGGERED_CAN_TRIGGER_2 0x00000200 // 9 triggered from effect? #define SPELL_ATTR_EX3_MAIN_HAND 0x00000400 // 10 Main hand weapon required #define SPELL_ATTR_EX3_BATTLEGROUND 0x00000800 // 11 Can casted only on battleground #define SPELL_ATTR_EX3_UNK12 0x00001000 // 12 #define SPELL_ATTR_EX3_UNK13 0x00002000 // 13 #define SPELL_ATTR_EX3_UNK14 0x00004000 // 14 "Honorless Target" only this spells have this flag #define SPELL_ATTR_EX3_UNK15 0x00008000 // 15 Auto Shoot, Shoot, Throw, - this is autoshot flag -#define SPELL_ATTR_EX3_UNK16 0x00010000 // 16 -#define SPELL_ATTR_EX3_NO_INITIAL_AGGRO 0x00020000 // 17 no initial aggro +#define SPELL_ATTR_EX3_UNK16 0x00010000 // 16 no triggers effects that trigger on casting a spell?? +#define SPELL_ATTR_EX3_NO_INITIAL_AGGRO 0x00020000 // 17 Soothe Animal, 39758, Mind Soothe #define SPELL_ATTR_EX3_UNK18 0x00040000 // 18 -#define SPELL_ATTR_EX3_UNK19 0x00080000 // 19 +#define SPELL_ATTR_EX3_UNK19 0x00080000 // 19 spells triggered by spell with this flag can't proc caster auras and can proc from triggered (swings too - 20178) #define SPELL_ATTR_EX3_DEATH_PERSISTENT 0x00100000 // 20 Death persistent spells #define SPELL_ATTR_EX3_UNK21 0x00200000 // 21 #define SPELL_ATTR_EX3_REQ_WAND 0x00400000 // 22 Req wand #define SPELL_ATTR_EX3_UNK23 0x00800000 // 23 #define SPELL_ATTR_EX3_REQ_OFFHAND 0x01000000 // 24 Req offhand weapon -#define SPELL_ATTR_EX3_UNK25 0x02000000 // 25 -#define SPELL_ATTR_EX3_UNK26 0x04000000 // 26 -#define SPELL_ATTR_EX3_UNK27 0x08000000 // 27 +#define SPELL_ATTR_EX3_UNK25 0x02000000 // 25 no cause spell pushback ? +#define SPELL_ATTR_EX3_CAN_PROC_TRIGGERED 0x04000000 // 26 +#define SPELL_ATTR_EX3_DRAIN_SOUL 0x08000000 // 27 only drain soul has this flag #define SPELL_ATTR_EX3_UNK28 0x10000000 // 28 #define SPELL_ATTR_EX3_UNK29 0x20000000 // 29 #define SPELL_ATTR_EX3_UNK30 0x40000000 // 30 @@ -350,9 +354,9 @@ enum SpellCategory #define SPELL_ATTR_EX4_UNK1 0x00000002 // 1 proc on finishing move? #define SPELL_ATTR_EX4_UNK2 0x00000004 // 2 #define SPELL_ATTR_EX4_CANT_PROC_FROM_SELFCAST 0x00000008 // 3 -#define SPELL_ATTR_EX4_UNK4 0x00000010 // 4 +#define SPELL_ATTR_EX4_UNK4 0x00000010 // 4 This will no longer cause guards to attack on use?? #define SPELL_ATTR_EX4_UNK5 0x00000020 // 5 -#define SPELL_ATTR_EX4_UNK6 0x00000040 // 6 +#define SPELL_ATTR_EX4_NOT_STEALABLE 0x00000040 // 6 although such auras might be dispellable, they cannot be stolen #define SPELL_ATTR_EX4_UNK7 0x00000080 // 7 #define SPELL_ATTR_EX4_UNK8 0x00000100 // 8 #define SPELL_ATTR_EX4_UNK9 0x00000200 // 9 @@ -388,7 +392,7 @@ enum SpellCategory #define SPELL_ATTR_EX5_UNK6 0x00000040 // 6 #define SPELL_ATTR_EX5_UNK7 0x00000080 // 7 #define SPELL_ATTR_EX5_UNK8 0x00000100 // 8 -#define SPELL_ATTR_EX5_UNK9 0x00000200 // 9 +#define SPELL_ATTR_EX5_START_PERIODIC_AT_APPLY 0x00000200 // 9 begin periodic tick at aura apply #define SPELL_ATTR_EX5_UNK10 0x00000400 // 10 #define SPELL_ATTR_EX5_UNK11 0x00000800 // 11 #define SPELL_ATTR_EX5_UNK12 0x00001000 // 12 @@ -413,37 +417,39 @@ enum SpellCategory #define SPELL_ATTR_EX5_UNK31 0x80000000 // 31 Forces all nearby enemies to focus attacks caster #define SPELL_ATTR_EX6_UNK0 0x00000001 // 0 Only Move spell have this flag -#define SPELL_ATTR_EX6_UNK1 0x00000002 // 1 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK2 0x00000004 // 2 +#define SPELL_ATTR_EX6_UNK1 0x00000002 // 1 not set in 3.0.3 +#define SPELL_ATTR_EX6_IGNORE_CASTER_AURAS 0x00000004 // 2 #define SPELL_ATTR_EX6_UNK3 0x00000008 // 3 -#define SPELL_ATTR_EX6_UNK4 0x00000010 // 4 not set in 2.4.2 +#define SPELL_ATTR_EX6_UNK4 0x00000010 // 4 #define SPELL_ATTR_EX6_UNK5 0x00000020 // 5 #define SPELL_ATTR_EX6_UNK6 0x00000040 // 6 #define SPELL_ATTR_EX6_UNK7 0x00000080 // 7 #define SPELL_ATTR_EX6_UNK8 0x00000100 // 8 -#define SPELL_ATTR_EX6_UNK9 0x00000200 // 9 not set in 2.4.2 +#define SPELL_ATTR_EX6_UNK9 0x00000200 // 9 #define SPELL_ATTR_EX6_UNK10 0x00000400 // 10 #define SPELL_ATTR_EX6_UNK11 0x00000800 // 11 -#define SPELL_ATTR_EX6_UNK12 0x00001000 // 12 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK13 0x00002000 // 13 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK14 0x00004000 // 14 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK15 0x00008000 // 15 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK16 0x00010000 // 16 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK17 0x00020000 // 17 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK18 0x00040000 // 18 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK19 0x00080000 // 19 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK20 0x00100000 // 20 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK21 0x00200000 // 21 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK22 0x00400000 // 22 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK23 0x00800000 // 23 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK24 0x01000000 // 24 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK25 0x02000000 // 25 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK26 0x04000000 // 26 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK27 0x08000000 // 27 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK28 0x10000000 // 28 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK29 0x20000000 // 29 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK30 0x40000000 // 30 not set in 2.4.2 -#define SPELL_ATTR_EX6_UNK31 0x80000000 // 31 not set in 2.4.2 +#define SPELL_ATTR_EX6_UNK12 0x00001000 // 12 +#define SPELL_ATTR_EX6_UNK13 0x00002000 // 13 +#define SPELL_ATTR_EX6_UNK14 0x00004000 // 14 +#define SPELL_ATTR_EX6_UNK15 0x00008000 // 15 not set in 3.0.3 +#define SPELL_ATTR_EX6_UNK16 0x00010000 // 16 +#define SPELL_ATTR_EX6_UNK17 0x00020000 // 17 +#define SPELL_ATTR_EX6_UNK18 0x00040000 // 18 +#define SPELL_ATTR_EX6_UNK19 0x00080000 // 19 +#define SPELL_ATTR_EX6_UNK20 0x00100000 // 20 +#define SPELL_ATTR_EX6_UNK21 0x00200000 // 21 +#define SPELL_ATTR_EX6_UNK22 0x00400000 // 22 +#define SPELL_ATTR_EX6_UNK23 0x00800000 // 23 not set in 3.0.3 +#define SPELL_ATTR_EX6_UNK24 0x01000000 // 24 not set in 3.0.3 +#define SPELL_ATTR_EX6_UNK25 0x02000000 // 25 not set in 3.0.3 +#define SPELL_ATTR_EX6_UNK26 0x04000000 // 26 not set in 3.0.3 +#define SPELL_ATTR_EX6_UNK27 0x08000000 // 27 not set in 3.0.3 +#define SPELL_ATTR_EX6_UNK28 0x10000000 // 28 not set in 3.0.3 +#define SPELL_ATTR_EX6_UNK29 0x20000000 // 29 not set in 3.0.3 +#define SPELL_ATTR_EX6_UNK30 0x40000000 // 30 not set in 3.0.3 +#define SPELL_ATTR_EX6_UNK31 0x80000000 // 31 not set in 3.0.3 + +#define MAX_GLYPH_SLOT_INDEX 6 enum SheathTypes { @@ -508,6 +514,13 @@ enum Language #define LANGUAGES_COUNT 19 +enum TeamId +{ + TEAM_ALLIANCE = 0, + TEAM_HORDE, + TEAM_NEUTRAL, +}; + enum Team { HORDE = 67, @@ -562,11 +575,11 @@ enum SpellEffects SPELL_EFFECT_DISPEL = 38, SPELL_EFFECT_LANGUAGE = 39, SPELL_EFFECT_DUAL_WIELD = 40, - SPELL_EFFECT_SUMMON_WILD = 41, - SPELL_EFFECT_SUMMON_GUARDIAN = 42, + SPELL_EFFECT_JUMP = 41, + SPELL_EFFECT_JUMP2 = 42, SPELL_EFFECT_TELEPORT_UNITS_FACE_CASTER= 43, SPELL_EFFECT_SKILL_STEP = 44, - SPELL_EFFECT_UNDEFINED_45 = 45, + SPELL_EFFECT_ADD_HONOR = 45, SPELL_EFFECT_SPAWN = 46, SPELL_EFFECT_TRADE_SKILL = 47, SPELL_EFFECT_STEALTH = 48, @@ -586,16 +599,16 @@ enum SpellEffects SPELL_EFFECT_POWER_BURN = 62, SPELL_EFFECT_THREAT = 63, SPELL_EFFECT_TRIGGER_SPELL = 64, - SPELL_EFFECT_HEALTH_FUNNEL = 65, - SPELL_EFFECT_POWER_FUNNEL = 66, + SPELL_EFFECT_APPLY_AREA_AURA_RAID = 65, + SPELL_EFFECT_CREATE_MANA_GEM = 66, SPELL_EFFECT_HEAL_MAX_HEALTH = 67, SPELL_EFFECT_INTERRUPT_CAST = 68, SPELL_EFFECT_DISTRACT = 69, SPELL_EFFECT_PULL = 70, SPELL_EFFECT_PICKPOCKET = 71, SPELL_EFFECT_ADD_FARSIGHT = 72, - SPELL_EFFECT_SUMMON_POSSESSED = 73, - SPELL_EFFECT_SUMMON_TOTEM = 74, + SPELL_EFFECT_UNTRAIN_TALENTS = 73, + SPELL_EFFECT_APPLY_GLYPH = 74, SPELL_EFFECT_HEAL_MECHANICAL = 75, SPELL_EFFECT_SUMMON_OBJECT_WILD = 76, SPELL_EFFECT_SCRIPT_EFFECT = 77, @@ -608,17 +621,17 @@ enum SpellEffects SPELL_EFFECT_STUCK = 84, SPELL_EFFECT_SUMMON_PLAYER = 85, SPELL_EFFECT_ACTIVATE_OBJECT = 86, - SPELL_EFFECT_SUMMON_TOTEM_SLOT1 = 87, - SPELL_EFFECT_SUMMON_TOTEM_SLOT2 = 88, - SPELL_EFFECT_SUMMON_TOTEM_SLOT3 = 89, - SPELL_EFFECT_SUMMON_TOTEM_SLOT4 = 90, + SPELL_EFFECT_WMO_DAMAGE = 87, + SPELL_EFFECT_WMO_REPAIR = 88, + SPELL_EFFECT_WMO_CHANGE = 89, + SPELL_EFFECT_KILL_CREDIT = 90, SPELL_EFFECT_THREAT_ALL = 91, SPELL_EFFECT_ENCHANT_HELD_ITEM = 92, SPELL_EFFECT_SUMMON_PHANTASM = 93, //unused SPELL_EFFECT_SELF_RESURRECT = 94, SPELL_EFFECT_SKINNING = 95, SPELL_EFFECT_CHARGE = 96, - SPELL_EFFECT_SUMMON_CRITTER = 97, + SPELL_EFFECT_97 = 97, SPELL_EFFECT_KNOCK_BACK = 98, SPELL_EFFECT_DISENCHANT = 99, SPELL_EFFECT_INEBRIATE = 100, @@ -633,7 +646,7 @@ enum SpellEffects SPELL_EFFECT_SUMMON_DEAD_PET = 109, SPELL_EFFECT_DESTROY_ALL_TOTEMS = 110, SPELL_EFFECT_DURABILITY_DAMAGE = 111, - SPELL_EFFECT_SUMMON_DEMON = 112, + SPELL_EFFECT_112 = 112, SPELL_EFFECT_RESURRECT_NEW = 113, SPELL_EFFECT_ATTACK_ME = 114, SPELL_EFFECT_DURABILITY_DAMAGE_PCT = 115, @@ -655,19 +668,19 @@ enum SpellEffects SPELL_EFFECT_131 = 131, SPELL_EFFECT_132 = 132, SPELL_EFFECT_UNLEARN_SPECIALIZATION = 133, - SPELL_EFFECT_KILL_CREDIT = 134, + SPELL_EFFECT_KILL_CREDIT2 = 134, SPELL_EFFECT_135 = 135, SPELL_EFFECT_HEAL_PCT = 136, SPELL_EFFECT_ENERGIZE_PCT = 137, SPELL_EFFECT_138 = 138, - SPELL_EFFECT_139 = 139, + SPELL_EFFECT_CLEAR_QUEST = 139, SPELL_EFFECT_FORCE_CAST = 140, SPELL_EFFECT_141 = 141, SPELL_EFFECT_TRIGGER_SPELL_WITH_VALUE = 142, SPELL_EFFECT_APPLY_AREA_AURA_OWNER = 143, SPELL_EFFECT_KNOCK_BACK_2 = 144, SPELL_EFFECT_145 = 145, - SPELL_EFFECT_146 = 146, + SPELL_EFFECT_ACTIVATE_RUNE = 146, SPELL_EFFECT_QUEST_FAIL = 147, SPELL_EFFECT_148 = 148, SPELL_EFFECT_149 = 149, @@ -675,7 +688,204 @@ enum SpellEffects SPELL_EFFECT_TRIGGER_SPELL_2 = 151, SPELL_EFFECT_152 = 152, SPELL_EFFECT_153 = 153, - TOTAL_SPELL_EFFECTS = 154 + SPELL_EFFECT_154 = 154, + SPELL_EFFECT_TITAN_GRIP = 155, + SPELL_EFFECT_ENCHANT_ITEM_PRISMATIC = 156, + SPELL_EFFECT_CREATE_ITEM_2 = 157, + SPELL_EFFECT_MILLING = 158, + SPELL_EFFECT_ALLOW_RENAME_PET = 159, + SPELL_EFFECT_160 = 160, + SPELL_EFFECT_TALENT_SPEC_COUNT = 161, + SPELL_EFFECT_TALENT_SPEC_SELECT = 162, + TOTAL_SPELL_EFFECTS = 163 +}; + +enum SpellCastResult +{ + SPELL_FAILED_AFFECTING_COMBAT = 0, + SPELL_FAILED_ALREADY_AT_FULL_HEALTH = 1, + SPELL_FAILED_ALREADY_AT_FULL_MANA = 2, + SPELL_FAILED_ALREADY_AT_FULL_POWER = 3, + SPELL_FAILED_ALREADY_BEING_TAMED = 4, + SPELL_FAILED_ALREADY_HAVE_CHARM = 5, + SPELL_FAILED_ALREADY_HAVE_SUMMON = 6, + SPELL_FAILED_ALREADY_OPEN = 7, + SPELL_FAILED_AURA_BOUNCED = 8, + SPELL_FAILED_AUTOTRACK_INTERRUPTED = 9, + SPELL_FAILED_BAD_IMPLICIT_TARGETS = 10, + SPELL_FAILED_BAD_TARGETS = 11, + SPELL_FAILED_CANT_BE_CHARMED = 12, + SPELL_FAILED_CANT_BE_DISENCHANTED = 13, + SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL = 14, + SPELL_FAILED_CANT_BE_MILLED = 15, + SPELL_FAILED_CANT_BE_PROSPECTED = 16, + SPELL_FAILED_CANT_CAST_ON_TAPPED = 17, + SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE = 18, + SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED = 19, + SPELL_FAILED_CANT_STEALTH = 20, + SPELL_FAILED_CASTER_AURASTATE = 21, + SPELL_FAILED_CASTER_DEAD = 22, + SPELL_FAILED_CHARMED = 23, + SPELL_FAILED_CHEST_IN_USE = 24, + SPELL_FAILED_CONFUSED = 25, + SPELL_FAILED_DONT_REPORT = 26, + SPELL_FAILED_EQUIPPED_ITEM = 27, + SPELL_FAILED_EQUIPPED_ITEM_CLASS = 28, + SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND = 29, + SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND = 30, + SPELL_FAILED_ERROR = 31, + SPELL_FAILED_FIZZLE = 32, + SPELL_FAILED_FLEEING = 33, + SPELL_FAILED_FOOD_LOWLEVEL = 34, + SPELL_FAILED_HIGHLEVEL = 35, + SPELL_FAILED_HUNGER_SATIATED = 36, + SPELL_FAILED_IMMUNE = 37, + SPELL_FAILED_INCORRECT_AREA = 38, + SPELL_FAILED_INTERRUPTED = 39, + SPELL_FAILED_INTERRUPTED_COMBAT = 40, + SPELL_FAILED_ITEM_ALREADY_ENCHANTED = 41, + SPELL_FAILED_ITEM_GONE = 42, + SPELL_FAILED_ITEM_NOT_FOUND = 43, + SPELL_FAILED_ITEM_NOT_READY = 44, + SPELL_FAILED_LEVEL_REQUIREMENT = 45, + SPELL_FAILED_LINE_OF_SIGHT = 46, + SPELL_FAILED_LOWLEVEL = 47, + SPELL_FAILED_LOW_CASTLEVEL = 48, + SPELL_FAILED_MAINHAND_EMPTY = 49, + SPELL_FAILED_MOVING = 50, + SPELL_FAILED_NEED_AMMO = 51, + SPELL_FAILED_NEED_AMMO_POUCH = 52, + SPELL_FAILED_NEED_EXOTIC_AMMO = 53, + SPELL_FAILED_NEED_MORE_ITEMS = 54, + SPELL_FAILED_NOPATH = 55, + SPELL_FAILED_NOT_BEHIND = 56, + SPELL_FAILED_NOT_FISHABLE = 57, + SPELL_FAILED_NOT_FLYING = 58, + SPELL_FAILED_NOT_HERE = 59, + SPELL_FAILED_NOT_INFRONT = 60, + SPELL_FAILED_NOT_IN_CONTROL = 61, + SPELL_FAILED_NOT_KNOWN = 62, + SPELL_FAILED_NOT_MOUNTED = 63, + SPELL_FAILED_NOT_ON_TAXI = 64, + SPELL_FAILED_NOT_ON_TRANSPORT = 65, + SPELL_FAILED_NOT_READY = 66, + SPELL_FAILED_NOT_SHAPESHIFT = 67, + SPELL_FAILED_NOT_STANDING = 68, + SPELL_FAILED_NOT_TRADEABLE = 69, + SPELL_FAILED_NOT_TRADING = 70, + SPELL_FAILED_NOT_UNSHEATHED = 71, + SPELL_FAILED_NOT_WHILE_GHOST = 72, + SPELL_FAILED_NOT_WHILE_LOOTING = 73, + SPELL_FAILED_NO_AMMO = 74, + SPELL_FAILED_NO_CHARGES_REMAIN = 75, + SPELL_FAILED_NO_CHAMPION = 76, + SPELL_FAILED_NO_COMBO_POINTS = 77, + SPELL_FAILED_NO_DUELING = 78, + SPELL_FAILED_NO_ENDURANCE = 79, + SPELL_FAILED_NO_FISH = 80, + SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED = 81, + SPELL_FAILED_NO_MOUNTS_ALLOWED = 82, + SPELL_FAILED_NO_PET = 83, + SPELL_FAILED_NO_POWER = 84, + SPELL_FAILED_NOTHING_TO_DISPEL = 85, + SPELL_FAILED_NOTHING_TO_STEAL = 86, + SPELL_FAILED_ONLY_ABOVEWATER = 87, + SPELL_FAILED_ONLY_DAYTIME = 88, + SPELL_FAILED_ONLY_INDOORS = 89, + SPELL_FAILED_ONLY_MOUNTED = 90, + SPELL_FAILED_ONLY_NIGHTTIME = 91, + SPELL_FAILED_ONLY_OUTDOORS = 92, + SPELL_FAILED_ONLY_SHAPESHIFT = 93, + SPELL_FAILED_ONLY_STEALTHED = 94, + SPELL_FAILED_ONLY_UNDERWATER = 95, + SPELL_FAILED_OUT_OF_RANGE = 96, + SPELL_FAILED_PACIFIED = 97, + SPELL_FAILED_POSSESSED = 98, + SPELL_FAILED_REAGENTS = 99, + SPELL_FAILED_REQUIRES_AREA = 100, + SPELL_FAILED_REQUIRES_SPELL_FOCUS = 101, + SPELL_FAILED_ROOTED = 102, + SPELL_FAILED_SILENCED = 103, + SPELL_FAILED_SPELL_IN_PROGRESS = 104, + SPELL_FAILED_SPELL_LEARNED = 105, + SPELL_FAILED_SPELL_UNAVAILABLE = 106, + SPELL_FAILED_STUNNED = 107, + SPELL_FAILED_TARGETS_DEAD = 108, + SPELL_FAILED_TARGET_AFFECTING_COMBAT = 109, + SPELL_FAILED_TARGET_AURASTATE = 110, + SPELL_FAILED_TARGET_DUELING = 111, + SPELL_FAILED_TARGET_ENEMY = 112, + SPELL_FAILED_TARGET_ENRAGED = 113, + SPELL_FAILED_TARGET_FRIENDLY = 114, + SPELL_FAILED_TARGET_IN_COMBAT = 115, + SPELL_FAILED_TARGET_IS_PLAYER = 116, + SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED = 117, + SPELL_FAILED_TARGET_NOT_DEAD = 118, + SPELL_FAILED_TARGET_NOT_IN_PARTY = 119, + SPELL_FAILED_TARGET_NOT_LOOTED = 120, + SPELL_FAILED_TARGET_NOT_PLAYER = 121, + SPELL_FAILED_TARGET_NO_POCKETS = 122, + SPELL_FAILED_TARGET_NO_WEAPONS = 123, + SPELL_FAILED_TARGET_NO_RANGED_WEAPONS = 124, + SPELL_FAILED_TARGET_UNSKINNABLE = 125, + SPELL_FAILED_THIRST_SATIATED = 126, + SPELL_FAILED_TOO_CLOSE = 127, + SPELL_FAILED_TOO_MANY_OF_ITEM = 128, + SPELL_FAILED_TOTEM_CATEGORY = 129, + SPELL_FAILED_TOTEMS = 130, + SPELL_FAILED_TRY_AGAIN = 131, + SPELL_FAILED_UNIT_NOT_BEHIND = 132, + SPELL_FAILED_UNIT_NOT_INFRONT = 133, + SPELL_FAILED_WRONG_PET_FOOD = 134, + SPELL_FAILED_NOT_WHILE_FATIGUED = 135, + SPELL_FAILED_TARGET_NOT_IN_INSTANCE = 136, + SPELL_FAILED_NOT_WHILE_TRADING = 137, + SPELL_FAILED_TARGET_NOT_IN_RAID = 138, + SPELL_FAILED_TARGET_FREEFORALL = 139, + SPELL_FAILED_NO_EDIBLE_CORPSES = 140, + SPELL_FAILED_ONLY_BATTLEGROUNDS = 141, + SPELL_FAILED_TARGET_NOT_GHOST = 142, + SPELL_FAILED_TRANSFORM_UNUSABLE = 143, + SPELL_FAILED_WRONG_WEATHER = 144, + SPELL_FAILED_DAMAGE_IMMUNE = 145, + SPELL_FAILED_PREVENTED_BY_MECHANIC = 146, + SPELL_FAILED_PLAY_TIME = 147, + SPELL_FAILED_REPUTATION = 148, + SPELL_FAILED_MIN_SKILL = 149, + SPELL_FAILED_NOT_IN_ARENA = 150, + SPELL_FAILED_NOT_ON_SHAPESHIFT = 151, + SPELL_FAILED_NOT_ON_STEALTHED = 152, + SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE = 153, + SPELL_FAILED_NOT_ON_MOUNTED = 154, + SPELL_FAILED_TOO_SHALLOW = 155, + SPELL_FAILED_TARGET_NOT_IN_SANCTUARY = 156, + SPELL_FAILED_TARGET_IS_TRIVIAL = 157, + SPELL_FAILED_BM_OR_INVISGOD = 158, + SPELL_FAILED_EXPERT_RIDING_REQUIREMENT = 159, + SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT = 160, + SPELL_FAILED_NOT_IDLE = 161, + SPELL_FAILED_NOT_INACTIVE = 162, + SPELL_FAILED_PARTIAL_PLAYTIME = 163, + SPELL_FAILED_NO_PLAYTIME = 164, + SPELL_FAILED_NOT_IN_BATTLEGROUND = 165, + SPELL_FAILED_NOT_IN_RAID_INSTANCE = 166, + SPELL_FAILED_ONLY_IN_ARENA = 167, + SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE = 168, + SPELL_FAILED_ON_USE_ENCHANT = 169, + SPELL_FAILED_NOT_ON_GROUND = 170, + SPELL_FAILED_CUSTOM_ERROR = 171, + SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW = 172, + SPELL_FAILED_TOO_MANY_SOCKETS = 173, + SPELL_FAILED_INVALID_GLYPH = 174, + SPELL_FAILED_UNIQUE_GLYPH = 175, + SPELL_FAILED_GLYPH_SOCKET_LOCKED = 176, + SPELL_FAILED_NO_VALID_TARGETS = 177, + SPELL_FAILED_ITEM_AT_MAX_CHARGES = 178, + SPELL_FAILED_NOT_IN_BARBERSHOP = 179, + SPELL_FAILED_FISHING_TOO_LOW = 180, + SPELL_FAILED_UNKNOWN = 181, + + SPELL_CAST_OK = 255 //custom value, don't must be send to client }; // Spell aura states @@ -685,25 +895,28 @@ enum AuraState AURA_STATE_DEFENSE = 1, // C | AURA_STATE_HEALTHLESS_20_PERCENT = 2, // CcT | AURA_STATE_BERSERKING = 3, // C T | - //AURA_STATE_UNKNOWN4 = 4, // c t| some limitation to charge spells (?) and target test spells + AURA_STATE_FROZEN = 4, // c t| frozen target AURA_STATE_JUDGEMENT = 5, // C | //AURA_STATE_UNKNOWN6 = 6, // | not used AURA_STATE_HUNTER_PARRY = 7, // C | AURA_STATE_ROGUE_ATTACK_FROM_STEALTH = 7, // C | FIX ME: not implemented yet! - //AURA_STATE_UNKNOWN7c = 7, // c | random/focused bursts spells (?) + //AURA_STATE_UNKNOWN7 = 7, // c | random/focused bursts spells (?) //AURA_STATE_UNKNOWN8 = 8, // | not used //AURA_STATE_UNKNOWN9 = 9, // | not used AURA_STATE_WARRIOR_VICTORY_RUSH = 10, // C | warrior victory rush - AURA_STATE_HUNTER_CRIT_STRIKE = 10, // C | hunter crit strike - AURA_STATE_CRIT = 11, // C | + //AURA_STATE_UNKNOWN11 = 11, // t| AURA_STATE_FAERIE_FIRE = 12, // c t| AURA_STATE_HEALTHLESS_35_PERCENT = 13, // C T | AURA_STATE_IMMOLATE = 14, // T | AURA_STATE_SWIFTMEND = 15, // T | AURA_STATE_DEADLY_POISON = 16, // T | - AURA_STATE_FORBEARANCE = 17, // c t| - AURA_STATE_WEAKENED_SOUL = 18, // t| - AURA_STATE_HYPOTHERMIA = 19 // c | + AURA_STATE_ENRAGE = 17, // C | + AURA_STATE_BLEEDING = 18, // T| + //AURA_STATE_UNKNOWN19 = 19, // | not used + //AURA_STATE_UNKNOWN20 = 20, // c | only (45317 Suicide) + //AURA_STATE_UNKNOWN21 = 21, // | not used + //AURA_STATE_UNKNOWN22 = 22, // C | not implemented yet (Requires Evasive Charges to use) + AURA_STATE_HEALTH_ABOVE_75_PERCENT = 23, // C | }; // Spell mechanics @@ -711,11 +924,11 @@ enum Mechanics { MECHANIC_NONE = 0, MECHANIC_CHARM = 1, - MECHANIC_CONFUSED = 2, + MECHANIC_DISORIENTED = 2, MECHANIC_DISARM = 3, MECHANIC_DISTRACT = 4, MECHANIC_FEAR = 5, - MECHANIC_FUMBLE = 6, + MECHANIC_GRIP = 6, MECHANIC_ROOT = 7, MECHANIC_PACIFY = 8, //0 spells use this mechanic MECHANIC_SILENCE = 9, @@ -731,7 +944,7 @@ enum Mechanics MECHANIC_SHIELD = 19, MECHANIC_SHACKLE = 20, MECHANIC_MOUNT = 21, - MECHANIC_PERSUADE = 22, //0 spells use this mechanic + MECHANIC_INFECTED = 22, MECHANIC_TURN = 23, MECHANIC_HORROR = 24, MECHANIC_INVULNERABILITY = 25, @@ -739,12 +952,13 @@ enum Mechanics MECHANIC_DAZE = 27, MECHANIC_DISCOVERY = 28, MECHANIC_IMMUNE_SHIELD = 29, // Divine (Blessing) Shield/Protection and Ice Block - MECHANIC_SAPPED = 30 + MECHANIC_SAPPED = 30, + MECHANIC_ENRAGED = 31 }; // Used for spell 42292 Immune Movement Impairment and Loss of Control (0x49967da6) #define IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK ( \ - (1<<MECHANIC_CHARM )|(1<<MECHANIC_CONFUSED )|(1<<MECHANIC_FEAR )| \ + (1<<MECHANIC_CHARM )|(1<<MECHANIC_DISORIENTED )|(1<<MECHANIC_FEAR )| \ (1<<MECHANIC_ROOT )|(1<<MECHANIC_PACIFY )|(1<<MECHANIC_SLEEP )| \ (1<<MECHANIC_SNARE )|(1<<MECHANIC_STUN )|(1<<MECHANIC_FREEZE)| \ (1<<MECHANIC_KNOCKOUT)|(1<<MECHANIC_POLYMORPH)|(1<<MECHANIC_BANISH)| \ @@ -764,7 +978,8 @@ enum DispelType DISPEL_ALL = 7, DISPEL_SPE_NPC_ONLY = 8, DISPEL_ENRAGE = 9, - DISPEL_ZG_TICKET = 10 + DISPEL_ZG_TICKET = 10, + DESPEL_OLD_UNUSED = 11 }; #define DISPEL_ALL_MASK ( (1<<DISPEL_MAGIC) | (1<<DISPEL_CURSE) | (1<<DISPEL_DISEASE) | (1<<DISPEL_POISON) ) @@ -802,6 +1017,7 @@ enum Targets TARGET_UNIT_AREA_ENEMY_DST = 16, TARGET_DST_DB = 17, // uses in teleport spells and some other TARGET_DST_CASTER = 18, + TARGET_PREV_EFFECT_SUMMON = 18, TARGET_UNIT_PARTY_CASTER = 20, TARGET_UNIT_TARGET_ALLY = 21, TARGET_SRC_CASTER = 22, @@ -841,7 +1057,7 @@ enum Targets TARGET_DST_TARGET_ENEMY = 53, // set unit coordinates as dest, only 16 target B imlemented TARGET_UNIT_CONE_ENEMY_UNKNOWN = 54, // 180 degree, or different angle TARGET_DEST_CASTER_FRONT_LEAP = 55, // for a leap spell - TARGET_UNIT_RAID_CASTER = 56, + TARGET_UNIT_RAID_CASTER = 56, TARGET_UNIT_TARGET_RAID = 57, TARGET_UNIT_NEARBY_RAID = 58, TARGET_UNIT_CONE_ALLY = 59, @@ -876,10 +1092,16 @@ enum Targets TARGET_DEST_DYNOBJ_NONE = 88, TARGET_DEST_TRAJ = 89, TARGET_UNIT_MINIPET = 90, + TARGET_UNK_91 = 91, + TARGET_UNK_92 = 92, TARGET_CORPSE_AREA_ENEMY_PLAYER = 93, + TARGET_UNIT_VEHICLE = 94, + TARGET_UNIT_DRIVER = 95, //? + TARGET_UNIT_PASSENGER = 97, + TARGET_UNIT_AREA_PATH = 104, }; -#define TOTAL_SPELL_TARGETS 94 +#define TOTAL_SPELL_TARGETS 105 enum SpellMissInfo { @@ -901,9 +1123,10 @@ enum SpellHitType { SPELL_HIT_TYPE_UNK1 = 0x00001, SPELL_HIT_TYPE_CRIT = 0x00002, - SPELL_HIT_TYPE_UNK2 = 0x00004, - SPELL_HIT_TYPE_UNK3 = 0x00008, - SPELL_HIT_TYPE_UNK4 = 0x00020 + SPELL_HIT_TYPE_UNK3 = 0x00004, + SPELL_HIT_TYPE_UNK4 = 0x00008, + SPELL_HIT_TYPE_UNK5 = 0x00010, // replace caster? + SPELL_HIT_TYPE_UNK6 = 0x00020 }; enum SpellDmgClass @@ -943,7 +1166,7 @@ enum GameobjectTypes GAMEOBJECT_TYPE_FISHINGNODE = 17, GAMEOBJECT_TYPE_SUMMONING_RITUAL = 18, GAMEOBJECT_TYPE_MAILBOX = 19, - GAMEOBJECT_TYPE_AUCTIONHOUSE = 20, + GAMEOBJECT_TYPE_DO_NOT_USE = 20, GAMEOBJECT_TYPE_GUARDPOST = 21, GAMEOBJECT_TYPE_SPELLCASTER = 22, GAMEOBJECT_TYPE_MEETINGSTONE = 23, @@ -951,16 +1174,17 @@ enum GameobjectTypes GAMEOBJECT_TYPE_FISHINGHOLE = 25, GAMEOBJECT_TYPE_FLAGDROP = 26, GAMEOBJECT_TYPE_MINI_GAME = 27, - GAMEOBJECT_TYPE_LOTTERY_KIOSK = 28, + GAMEOBJECT_TYPE_DO_NOT_USE_2 = 28, GAMEOBJECT_TYPE_CAPTURE_POINT = 29, GAMEOBJECT_TYPE_AURA_GENERATOR = 30, GAMEOBJECT_TYPE_DUNGEON_DIFFICULTY = 31, GAMEOBJECT_TYPE_BARBER_CHAIR = 32, GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING = 33, GAMEOBJECT_TYPE_GUILD_BANK = 34, + GAMEOBJECT_TYPE_TRAPDOOR = 35 }; -#define MAX_GAMEOBJECT_TYPE 35 // sending to client this or greater value can crash client. +#define MAX_GAMEOBJECT_TYPE 36 // sending to client this or greater value can crash client. #define GAMEOBJECT_FISHINGNODE_ENTRY 35591 // Better to define it somewhere instead of hardcoding everywhere @@ -972,7 +1196,9 @@ enum GameObjectFlags GO_FLAG_TRANSPORT = 0x00000008, //any kind of transport? Object can transport (elevator, boat, car) GO_FLAG_UNK1 = 0x00000010, // GO_FLAG_NODESPAWN = 0x00000020, //never despawn, typically for doors, they just change state - GO_FLAG_TRIGGERED = 0x00000040 //typically, summoned objects. Triggered by spell or other events + GO_FLAG_TRIGGERED = 0x00000040, //typically, summoned objects. Triggered by spell or other events + GO_FLAG_DAMAGED = 0x00000200, + GO_FLAG_DESTROYED = 0x00000400, }; enum TextEmotes @@ -1179,7 +1405,7 @@ enum Emote EMOTE_ONESHOT_POINT = 25, EMOTE_STATE_STAND = 26, EMOTE_STATE_READYUNARMED = 27, - EMOTE_STATE_WORK = 28, + EMOTE_STATE_WORK_SHEATHED = 28, EMOTE_STATE_POINT = 29, EMOTE_STATE_NONE = 30, EMOTE_ONESHOT_WOUND = 33, @@ -1212,13 +1438,13 @@ enum Emote EMOTE_ONESHOT_SALUTE_NOSHEATH = 113, EMOTE_STATE_USESTANDING_NOSHEATHE = 133, EMOTE_ONESHOT_LAUGH_NOSHEATHE = 153, - EMOTE_STATE_WORK_NOSHEATHE = 173, + EMOTE_STATE_WORK = 173, EMOTE_STATE_SPELLPRECAST = 193, EMOTE_ONESHOT_READYRIFLE = 213, EMOTE_STATE_READYRIFLE = 214, - EMOTE_STATE_WORK_NOSHEATHE_MINING = 233, - EMOTE_STATE_WORK_NOSHEATHE_CHOPWOOD= 234, - EMOTE_zzOLDONESHOT_LIFTOFF = 253, + EMOTE_STATE_WORK_MINING = 233, + EMOTE_STATE_WORK_CHOPWOOD = 234, + EMOTE_STATE_APPLAUD = 253, EMOTE_ONESHOT_LIFTOFF = 254, EMOTE_ONESHOT_YES = 273, EMOTE_ONESHOT_NO = 274, @@ -1267,8 +1493,57 @@ enum Emote EMOTE_ONESHOT_CUSTOMSPELL09 = 410, EMOTE_ONESHOT_CUSTOMSPELL10 = 411, EMOTE_STATE_EXCLAIM = 412, + EMOTE_STATE_DANCE_CUSTOM = 413, EMOTE_STATE_SIT_CHAIR_MED = 415, - EMOTE_STATE_SPELLEFFECT_HOLD = 422 + EMOTE_STATE_CUSTOM_SPELL_01 = 416, + EMOTE_STATE_CUSTOM_SPELL_02 = 417, + EMOTE_STATE_EAT = 418, + EMOTE_STATE_CUSTOM_SPELL_04 = 419, + EMOTE_STATE_CUSTOM_SPELL_03 = 420, + EMOTE_STATE_CUSTOM_SPELL_05 = 421, + EMOTE_STATE_SPELLEFFECT_HOLD = 422, + EMOTE_STATE_EAT_NO_SHEATHE = 423, + EMOTE_STATE_MOUNT = 424, + EMOTE_STATE_READY2HL = 425, + EMOTE_STATE_SIT_CHAIR_HIGH = 426, + EMOTE_STATE_FALL = 427, + EMOTE_STATE_LOOT = 428, + EMOTE_STATE_SUBMERGED_NEW = 429, + EMOTE_ONESHOT_COWER = 430, + EMOTE_STATE_COWER = 431, + EMOTE_ONESHOT_USESTANDING = 432, + EMOTE_STATE_STEALTH_STAND = 433, + EMOTE_ONESHOT_OMNICAST_GHOUL = 434, + EMOTE_ONESHOT_ATTACKBOW = 435, + EMOTE_ONESHOT_ATTACKRIFLE = 436, + EMOTE_STATE_SWIM_IDLE = 437, + EMOTE_STATE_ATTACK_UNARMED = 438, + EMOTE_ONESHOT_SPELLCAST_W_SOUND = 439, + EMOTE_ONESHOT_DODGE = 440, + EMOTE_ONESHOT_PARRY1H = 441, + EMOTE_ONESHOT_PARRY2H = 442, + EMOTE_ONESHOT_PARRY2HL = 443, + EMOTE_STATE_FLYFALL = 444, + EMOTE_ONESHOT_FLYDEATH = 445, + EMOTE_STATE_FLY_FALL = 446, + EMOTE_ONESHOT_FLY_SIT_GROUND_DOWN = 447, + EMOTE_ONESHOT_FLY_SIT_GROUND_UP = 448, + EMOTE_ONESHOT_EMERGE = 449, + EMOTE_ONESHOT_DRAGONSPIT = 450, + EMOTE_STATE_SPECIALUNARMED = 451, + EMOTE_ONESHOT_FLYGRAB = 452, + EMOTE_STATE_FLYGRABCLOSED = 453, + EMOTE_ONESHOT_FLYGRABTHROWN = 454, + EMOTE_STATE_FLY_SIT_GROUND = 455, + EMOTE_STATE_WALKBACKWARDS = 456, + EMOTE_ONESHOT_FLYTALK = 457, + EMOTE_ONESHOT_FLYATTACK1H = 458, + EMOTE_STATE_CUSTOMSPELL08 = 459, + EMOTE_ONESHOT_FLY_DRAGONSPIT = 460, + EMOTE_STATE_SIT_CHAIR_LOW = 461, + EMOTE_ONE_SHOT_STUN = 462, + EMOTE_ONESHOT_SPELLCAST_OMNI = 463, + EMOTE_STATE_READYTHROWN = 464 }; enum Anim @@ -1527,7 +1802,9 @@ enum LockType LOCKTYPE_BLASTING = 16, LOCKTYPE_SLOW_OPEN = 17, LOCKTYPE_SLOW_CLOSE = 18, - LOCKTYPE_FISHING = 19 + LOCKTYPE_FISHING = 19, + LOCKTYPE_INSCRIPTION = 20, + LOCKTYPE_OPEN_FROM_VEHICLE = 21 }; enum TrainerType // this is important type for npcs! @@ -1540,6 +1817,7 @@ enum TrainerType // this is important #define MAX_TRAINER_TYPE 4 +// CreatureType.dbc enum CreatureType { CREATURE_TYPE_BEAST = 1, @@ -1558,7 +1836,9 @@ enum CreatureType }; uint32 const CREATURE_TYPEMASK_HUMANOID_OR_UNDEAD = (1 << (CREATURE_TYPE_HUMANOID-1)) | (1 << (CREATURE_TYPE_UNDEAD-1)); +uint32 const CREATURE_TYPEMASK_MECHANICAL_OR_ELEMENTAL = (1 << (CREATURE_TYPE_MECHANICAL-1)) | (1 << (CREATURE_TYPE_ELEMENTAL-1)); +// CreatureFamily.dbc enum CreatureFamily { CREATURE_FAMILY_WOLF = 1, @@ -1570,6 +1850,7 @@ enum CreatureFamily CREATURE_FAMILY_CARRION_BIRD = 7, CREATURE_FAMILY_CRAB = 8, CREATURE_FAMILY_GORILLA = 9, + CREATURE_FAMILY_HORSE_CUSTOM = 10, // not exist in DBC but used for horse like beasts in DB CREATURE_FAMILY_RAPTOR = 11, CREATURE_FAMILY_TALLSTRIDER = 12, CREATURE_FAMILY_FELHUNTER = 15, @@ -1581,7 +1862,7 @@ enum CreatureFamily CREATURE_FAMILY_IMP = 23, CREATURE_FAMILY_BAT = 24, CREATURE_FAMILY_HYENA = 25, - CREATURE_FAMILY_OWL = 26, + CREATURE_FAMILY_BIRD_OF_PREY = 26, CREATURE_FAMILY_WIND_SERPENT = 27, CREATURE_FAMILY_REMOTE_CONTROL = 28, CREATURE_FAMILY_FELGUARD = 29, @@ -1591,14 +1872,25 @@ enum CreatureFamily CREATURE_FAMILY_SPOREBAT = 33, CREATURE_FAMILY_NETHER_RAY = 34, CREATURE_FAMILY_SERPENT = 35, - CREATURE_FAMILY_SEA_LION = 36 + CREATURE_FAMILY_MOTH = 37, + CREATURE_FAMILY_CHIMAERA = 38, + CREATURE_FAMILY_DEVILSAUR = 39, + CREATURE_FAMILY_GHOUL = 40, + CREATURE_FAMILY_SILITHID = 41, + CREATURE_FAMILY_WORM = 42, + CREATURE_FAMILY_RHINO = 43, + CREATURE_FAMILY_WASP = 44, + CREATURE_FAMILY_CORE_HOUND = 45, + CREATURE_FAMILY_SPIRIT_BEAST = 46 }; enum CreatureTypeFlags { - CREATURE_TYPEFLAGS_TAMEABLE = 0x0001, - CREATURE_TYPEFLAGS_HERBLOOT = 0x0100, - CREATURE_TYPEFLAGS_MININGLOOT = 0x0200 + CREATURE_TYPEFLAGS_TAMEABLE = 0x00001, + CREATURE_TYPEFLAGS_HERBLOOT = 0x00100, + CREATURE_TYPEFLAGS_MININGLOOT = 0x00200, + CREATURE_TYPEFLAGS_ENGINEERLOOT = 0x08000, + CREATURE_TYPEFLAGS_EXOTIC = 0x10000 }; enum CreatureEliteType @@ -1611,6 +1903,31 @@ enum CreatureEliteType CREATURE_UNKNOWN = 5 // found in 2.2.3 for 2 mobs }; +// values based at Holidays.dbc +enum HolidayIds +{ + HOLIDAY_FIREWORKS_SPECTACULAR = 62, + HOLIDAY_FEAST_OF_WINTER_VEIL = 141, + HOLIDAY_NOBLEGARDEN = 181, + HOLIDAY_CHILDRENS_WEEK = 201, + HOLIDAY_CALL_TO_ARMS_AV = 283, + HOLIDAY_CALL_TO_ARMS_WG = 284, + HOLIDAY_CALL_TO_ARMS_AB = 285, + HOLIDAY_FISHING_EXTRAVAGANZA = 301, + HOLIDAY_HARVEST_FESTIVAL = 321, + HOLIDAY_HALLOWS_END = 324, + HOLIDAY_LUNAR_FESTIVAL = 327, + HOLIDAY_LOVE_IS_IN_THE_AIR = 335, + HOLIDAY_FIRE_FESTIVAL = 341, + HOLIDAY_CALL_TO_ARMS_ES = 353, + HOLIDAY_BREWFEST = 372, + HOLIDAY_DARKMOON_FAIRE_ELWYNN = 374, + HOLIDAY_DARKMOON_FAIRE_THUNDER = 375, + HOLIDAY_DARKMOON_FAIRE_SHATTRATH = 376, + HOLIDAY_CALL_TO_ARMS_SA = 400, + HOLIDAY_WOTLK_LAUNCH = 406 +}; + // values based at QuestInfo.dbc enum QuestTypes { @@ -1623,6 +1940,8 @@ enum QuestTypes QUEST_TYPE_LEGENDARY = 83, QUEST_TYPE_ESCORT = 84, QUEST_TYPE_HEROIC = 85, + QUEST_TYPE_RAID_10 = 88, + QUEST_TYPE_RAID_25 = 89 }; // values based at QuestSort.dbc @@ -1633,7 +1952,7 @@ enum QuestSort QUEST_SORT_SEASONAL = 22, QUEST_SORT_UNDERCITY_OLD = 23, QUEST_SORT_HERBALISM = 24, - QUEST_SORT_SCARLET_MONASTERY_OLD= 25, + QUEST_SORT_BATTLEGROUNDS = 25, QUEST_SORT_ULDAMN_OLD = 41, QUEST_SORT_WARLOCK = 61, QUEST_SORT_WARRIOR = 81, @@ -1662,34 +1981,39 @@ enum QuestSort QUEST_SORT_REPUTATION = 367, QUEST_SORT_INVASION = 368, QUEST_SORT_MIDSUMMER = 369, - QUEST_SORT_BREWFEST = 370 + QUEST_SORT_BREWFEST = 370, + QUEST_SORT_INSCRIPTION = 371, + QUEST_SORT_DEATH_KNIGHT = 372, + QUEST_SORT_JEWELCRAFTING = 373 }; inline uint8 ClassByQuestSort(int32 QuestSort) { switch(QuestSort) { - case QUEST_SORT_WARLOCK: return CLASS_WARLOCK; - case QUEST_SORT_WARRIOR: return CLASS_WARRIOR; - case QUEST_SORT_SHAMAN: return CLASS_SHAMAN; - case QUEST_SORT_PALADIN: return CLASS_PALADIN; - case QUEST_SORT_MAGE: return CLASS_MAGE; - case QUEST_SORT_ROGUE: return CLASS_ROGUE; - case QUEST_SORT_HUNTER: return CLASS_HUNTER; - case QUEST_SORT_PRIEST: return CLASS_PRIEST; - case QUEST_SORT_DRUID: return CLASS_DRUID; + case QUEST_SORT_WARLOCK: return CLASS_WARLOCK; + case QUEST_SORT_WARRIOR: return CLASS_WARRIOR; + case QUEST_SORT_SHAMAN: return CLASS_SHAMAN; + case QUEST_SORT_PALADIN: return CLASS_PALADIN; + case QUEST_SORT_MAGE: return CLASS_MAGE; + case QUEST_SORT_ROGUE: return CLASS_ROGUE; + case QUEST_SORT_HUNTER: return CLASS_HUNTER; + case QUEST_SORT_PRIEST: return CLASS_PRIEST; + case QUEST_SORT_DRUID: return CLASS_DRUID; + case QUEST_SORT_DEATH_KNIGHT: return CLASS_DEATH_KNIGHT; } return 0; } enum SkillType { + SKILL_NONE = 0, + SKILL_FROST = 6, SKILL_FIRE = 8, SKILL_ARMS = 26, SKILL_COMBAT = 38, SKILL_SUBTLETY = 39, - SKILL_POISONS = 40, SKILL_SWORDS = 43, SKILL_AXES = 44, SKILL_BOWS = 45, @@ -1697,8 +2021,8 @@ enum SkillType SKILL_BEAST_MASTERY = 50, SKILL_SURVIVAL = 51, SKILL_MACES = 54, - SKILL_HOLY = 56, SKILL_2H_SWORDS = 55, + SKILL_HOLY = 56, SKILL_SHADOW = 78, SKILL_DEFENSE = 95, SKILL_LANG_COMMON = 98, @@ -1754,24 +2078,20 @@ enum SkillType SKILL_PET_BOAR = 211, SKILL_PET_CROCILISK = 212, SKILL_PET_CARRION_BIRD = 213, - SKILL_PET_GORILLA = 215, SKILL_PET_CRAB = 214, + SKILL_PET_GORILLA = 215, SKILL_PET_RAPTOR = 217, SKILL_PET_TALLSTRIDER = 218, SKILL_RACIAL_UNDED = 220, - SKILL_WEAPON_TALENTS = 222, SKILL_CROSSBOWS = 226, - SKILL_SPEARS = 227, SKILL_WANDS = 228, SKILL_POLEARMS = 229, SKILL_PET_SCORPID = 236, SKILL_ARCANE = 237, - SKILL_OPEN_LOCK = 242, SKILL_PET_TURTLE = 251, SKILL_ASSASSINATION = 253, SKILL_FURY = 256, SKILL_PROTECTION = 257, - SKILL_BEAST_TRAINING = 261, SKILL_PROTECTION2 = 267, SKILL_PET_TALENTS = 270, SKILL_PLATE_MAIL = 293, @@ -1801,7 +2121,7 @@ enum SkillType SKILL_LOCKPICKING = 633, SKILL_PET_BAT = 653, SKILL_PET_HYENA = 654, - SKILL_PET_OWL = 655, + SKILL_PET_BIRD_OF_PREY = 655, SKILL_PET_WIND_SERPENT = 656, SKILL_LANG_GUTTERSPEAK = 673, SKILL_RIDING_KODO = 713, @@ -1821,10 +2141,41 @@ enum SkillType SKILL_PET_WARP_STALKER = 766, SKILL_PET_RAVAGER = 767, SKILL_PET_SERPENT = 768, - SKILL_INTERNAL = 769 + SKILL_INTERNAL = 769, + SKILL_DK_BLOOD = 770, + SKILL_DK_FROST = 771, + SKILL_DK_UNHOLY = 772, + SKILL_INSCRIPTION = 773, + SKILL_PET_MOTH = 775, + SKILL_RUNEFORGING = 776, + SKILL_MOUNTS = 777, + SKILL_COMPANIONS = 778, + SKILL_PET_EXOTIC_CHIMAERA = 780, + SKILL_PET_EXOTIC_DEVILSAUR = 781, + SKILL_PET_GHOUL = 782, + SKILL_PET_EXOTIC_SILITHID = 783, + SKILL_PET_EXOTIC_WORM = 784, + SKILL_PET_WASP = 785, + SKILL_PET_EXOTIC_RHINO = 786, + SKILL_PET_EXOTIC_CORE_HOUND = 787, + SKILL_PET_EXOTIC_SPIRIT_BEAST = 788 }; -#define MAX_SKILL_TYPE 770 +#define MAX_SKILL_TYPE 789 + +inline SkillType SkillByLockType(LockType locktype) +{ + switch(locktype) + { + case LOCKTYPE_PICKLOCK: return SKILL_LOCKPICKING; + case LOCKTYPE_HERBALISM: return SKILL_HERBALISM; + case LOCKTYPE_MINING: return SKILL_MINING; + case LOCKTYPE_FISHING: return SKILL_FISHING; + case LOCKTYPE_INSCRIPTION: return SKILL_INSCRIPTION; + default: break; + } + return SKILL_NONE; +} inline uint32 SkillByQuestSort(int32 QuestSort) { @@ -1839,25 +2190,27 @@ inline uint32 SkillByQuestSort(int32 QuestSort) case QUEST_SORT_TAILORING: return SKILL_TAILORING; case QUEST_SORT_COOKING: return SKILL_COOKING; case QUEST_SORT_FIRST_AID: return SKILL_FIRST_AID; + case QUEST_SORT_JEWELCRAFTING: return SKILL_JEWELCRAFTING; + case QUEST_SORT_INSCRIPTION: return SKILL_INSCRIPTION; } return 0; } enum SkillCategory { - SKILL_CATEGORY_ATTRIBUTES = 5, - SKILL_CATEGORY_WEAPON = 6, - SKILL_CATEGORY_CLASS = 7, - SKILL_CATEGORY_ARMOR = 8, - SKILL_CATEGORY_SECONDARY = 9, // secondary professions + SKILL_CATEGORY_ATTRIBUTES = 5, + SKILL_CATEGORY_WEAPON = 6, + SKILL_CATEGORY_CLASS = 7, + SKILL_CATEGORY_ARMOR = 8, + SKILL_CATEGORY_SECONDARY = 9, // secondary professions SKILL_CATEGORY_LANGUAGES = 10, SKILL_CATEGORY_PROFESSION = 11, // primary professions - SKILL_CATEGORY_NOT_DISPLAYED = 12 + SKILL_CATEGORY_GENERIC = 12 }; enum TotemCategory { - TC_SKINNING_SKIFE = 1, + TC_SKINNING_SKIFE_OLD = 1, TC_EARTH_TOTEM = 2, TC_AIR_TOTEM = 3, TC_FIRE_TOTEM = 4, @@ -1867,15 +2220,28 @@ enum TotemCategory TC_GOLDEN_ROD = 8, TC_TRUESILVER_ROD = 9, TC_ARCANITE_ROD = 10, - TC_MINING_PICK = 11, + TC_MINING_PICK_OLD = 11, TC_PHILOSOPHERS_STONE = 12, - TC_BLACKSMITH_HAMMER = 13, + TC_BLACKSMITH_HAMMER_OLD = 13, TC_ARCLIGHT_SPANNER = 14, TC_GYROMATIC_MA = 15, TC_MASTER_TOTEM = 21, TC_FEL_IRON_ROD = 41, TC_ADAMANTITE_ROD = 62, - TC_ETERNIUM_ROD = 63 + TC_ETERNIUM_ROD = 63, + TC_HOLLOW_QUILL = 81, + TC_RUNED_AZURITE_ROD = 101, + TC_VIRTUOSO_INKING_SET = 121, + TC_DRUMS = 141, + TC_GNOMISH_ARMY_KNIFE = 161, + TC_BLACKSMITH_HAMMER = 162, + TC_MINING_PICK = 165, + TC_SKINNING_KNIFE = 166, + TC_HAMMER_PICK = 167, + TC_BLADED_PICKAXE = 168, + TC_FLINT_AND_TINDER = 169, + TC_RUNED_COBALT_ROD = 189, + TC_RUNED_TITANIUM_ROD = 190 }; enum UnitDynFlags @@ -1885,7 +2251,8 @@ enum UnitDynFlags UNIT_DYNFLAG_OTHER_TAGGER = 0x0004, UNIT_DYNFLAG_ROOTED = 0x0008, UNIT_DYNFLAG_SPECIALINFO = 0x0010, - UNIT_DYNFLAG_DEAD = 0x0020 + UNIT_DYNFLAG_DEAD = 0x0020, + UNIT_DYNFLAG_REFER_A_FRIEND = 0x0040 }; enum CorpseDynFlags @@ -1894,11 +2261,14 @@ enum CorpseDynFlags }; // Passive Spell codes explicit used in code -#define SPELL_ID_GENERIC_LEARN 483 -#define SPELL_ID_PASSIVE_BATTLE_STANCE 2457 -#define SPELL_ID_PASSIVE_RESURRECTION_SICKNESS 15007 -#define SPELL_ID_WEAPON_SWITCH_COOLDOWN_1_5s 6119 -#define SPELL_ID_WEAPON_SWITCH_COOLDOWN_1_0s 6123 +#define SPELL_ID_GENERIC_LEARN 483 +#define SPELL_ID_GENERIC_LEARN_PET 55884 // used for learning mounts and companions +#define SPELL_ID_PASSIVE_BATTLE_STANCE 2457 +#define SPELL_ID_PASSIVE_RESURRECTION_SICKNESS 15007 +#define SPELL_ID_WEAPON_SWITCH_COOLDOWN_1_5s 6119 +#define SPELL_ID_WEAPON_SWITCH_COOLDOWN_1_0s 6123 +#define SPELL_ID_AUTOSHOT 75 // used for checks in other spells interruption +#define SPELL_ID_SHADOWMELD 58984 // used for check ignore stealth stance state enum WeatherType { @@ -1962,9 +2332,12 @@ enum ChatMsg CHAT_MSG_BATTLEGROUND = 0x2C, CHAT_MSG_BATTLEGROUND_LEADER = 0x2D, CHAT_MSG_RESTRICTED = 0x2E, + CHAT_MSG_BN = 0x2F, + CHAT_MSG_ACHIEVEMENT = 0x30, + CHAT_MSG_GUILD_ACHIEVEMENT = 0x31 }; -#define MAX_CHAT_MSG_TYPE 0x2F +#define MAX_CHAT_MSG_TYPE 0x32 // Values from ItemPetFood (power of (value-1) used for compare with CreatureFamilyEntry.petDietMask enum PetDiet @@ -2011,30 +2384,23 @@ enum DiminishingGroup { // Common Groups DIMINISHING_NONE, - DIMINISHING_CONTROL_STUN, // Player Controlled stuns - DIMINISHING_TRIGGER_STUN, // By aura proced stuns, usualy chance on hit talents - DIMINISHING_SLEEP, - DIMINISHING_CONTROL_ROOT, // Immobilizing effects from casted spells - DIMINISHING_TRIGGER_ROOT, // Immobilizing effects from triggered spells like Frostbite - DIMINISHING_FEAR, // Non-warlock fears + DIMINISHING_CONTROL_STUN, // Player Controlled stuns + DIMINISHING_TRIGGER_STUN, // By aura proced stuns, usualy chance on hit talents + DIMINISHING_CONTROL_ROOT, // Immobilizing effects from casted spells + DIMINISHING_TRIGGER_ROOT, // Immobilizing effects from triggered spells like Frostbite DIMINISHING_CHARM, - // Mage Specific - DIMINISHING_POLYMORPH, - // Rogue Specific - DIMINISHING_KIDNEYSHOT, // Kidney Shot is not diminished with Cheap Shot - // Warlock Specific - DIMINISHING_DEATHCOIL, // Death Coil Diminish only with another Death Coil - DIMINISHING_WARLOCK_FEAR, // Also with Sedduction - // Shared Class Specific - DIMINISHING_BLIND_CYCLONE, // From 2.3.0 - DIMINISHING_DISARM, // From 2.3.0 - DIMINISHING_SILENCE, // From 2.3.0 - DIMINISHING_FREEZE, // Hunter's Freezing Trap - DIMINISHING_KNOCKOUT, // Also with Sap, all Knockout mechanics are here + DIMINISHING_SLEEP_FREEZE, + DIMINISHING_POLYMORPH, // Also: Gouge, Sap, Repentance, Hungering Cold + DIMINISHING_CHEAPSHOT_POUNCE, + DIMINISHING_DEATHCOIL, // Death Coil Diminish only with another Death Coil + DIMINISHING_SILENCE, + DIMINISHING_KNOCKOUT, // Sap, Knockout mechanics + DIMINISHING_DISARM, + DIMINISHING_FEAR_BLIND, // Intimidating Shout, Howl of Terror, Blind + DIMINISHING_FEAR, DIMINISHING_BANISH, - // Other - // Don't Diminish, but limit duration to 10s - DIMINISHING_LIMITONLY + DIMINISHING_TAUNT, + DIMINISHING_LIMITONLY // Don't Diminish, but limit duration to 10s }; enum DungeonDifficulties @@ -2044,27 +2410,29 @@ enum DungeonDifficulties TOTAL_DIFFICULTIES }; +enum SummonCategory +{ + SUMMON_CATEGORY_WILD = 0, + SUMMON_CATEGORY_ALLY = 1, + SUMMON_CATEGORY_PET = 2, + SUMMON_CATEGORY_PUPPET = 3, + SUMMON_CATEGORY_VEHICLE = 4, +}; + enum SummonType { - SUMMON_TYPE_CRITTER = 41, - SUMMON_TYPE_GUARDIAN = 61, - SUMMON_TYPE_TOTEM_SLOT1 = 63, - SUMMON_TYPE_WILD = 64, - SUMMON_TYPE_POSESSED = 65, - SUMMON_TYPE_DEMON = 66, - SUMMON_TYPE_SUMMON = 67, - SUMMON_TYPE_TOTEM_SLOT2 = 81, - SUMMON_TYPE_TOTEM_SLOT3 = 82, - SUMMON_TYPE_TOTEM_SLOT4 = 83, - SUMMON_TYPE_TOTEM = 121, - SUMMON_TYPE_UNKNOWN3 = 181, - SUMMON_TYPE_UNKNOWN4 = 187, - SUMMON_TYPE_UNKNOWN1 = 247, - SUMMON_TYPE_CRITTER2 = 407, - SUMMON_TYPE_CRITTER3 = 307, - SUMMON_TYPE_UNKNOWN5 = 409, - SUMMON_TYPE_POSESSED3 = 427, - SUMMON_TYPE_POSESSED2 = 428 + SUMMON_TYPE_NONE = 0, + SUMMON_TYPE_PET = 1, + SUMMON_TYPE_GUARDIAN = 2, + SUMMON_TYPE_MINION = 3, + SUMMON_TYPE_TOTEM = 4, + SUMMON_TYPE_MINIPET = 5, + SUMMON_TYPE_GUARDIAN2 = 6, + SUMMON_TYPE_WILD2 = 7, + SUMMON_TYPE_WILD3 = 8, + SUMMON_TYPE_VEHICLE = 9, + SUMMON_TYPE_VEHICLE2 = 10, + SUMMON_TYPE_OBJECT = 11, }; enum ResponseCodes @@ -2133,42 +2501,45 @@ enum ResponseCodes CHAR_CREATE_SERVER_QUEUE = 0x37, CHAR_CREATE_ONLY_EXISTING = 0x38, CHAR_CREATE_EXPANSION = 0x39, - - CHAR_DELETE_IN_PROGRESS = 0x3A, - CHAR_DELETE_SUCCESS = 0x3B, - CHAR_DELETE_FAILED = 0x3C, - CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 0x3D, - CHAR_DELETE_FAILED_GUILD_LEADER = 0x3E, - CHAR_DELETE_FAILED_ARENA_CAPTAIN = 0x3F, - - CHAR_LOGIN_IN_PROGRESS = 0x40, - CHAR_LOGIN_SUCCESS = 0x41, - CHAR_LOGIN_NO_WORLD = 0x42, - CHAR_LOGIN_DUPLICATE_CHARACTER = 0x43, - CHAR_LOGIN_NO_INSTANCES = 0x44, - CHAR_LOGIN_FAILED = 0x45, - CHAR_LOGIN_DISABLED = 0x46, - CHAR_LOGIN_NO_CHARACTER = 0x47, - CHAR_LOGIN_LOCKED_FOR_TRANSFER = 0x48, - CHAR_LOGIN_LOCKED_BY_BILLING = 0x49, - - CHAR_NAME_SUCCESS = 0x4A, - CHAR_NAME_FAILURE = 0x4B, - CHAR_NAME_NO_NAME = 0x4C, - CHAR_NAME_TOO_SHORT = 0x4D, - CHAR_NAME_TOO_LONG = 0x4E, - CHAR_NAME_INVALID_CHARACTER = 0x4F, - CHAR_NAME_MIXED_LANGUAGES = 0x50, - CHAR_NAME_PROFANE = 0x51, - CHAR_NAME_RESERVED = 0x52, - CHAR_NAME_INVALID_APOSTROPHE = 0x53, - CHAR_NAME_MULTIPLE_APOSTROPHES = 0x54, - CHAR_NAME_THREE_CONSECUTIVE = 0x55, - CHAR_NAME_INVALID_SPACE = 0x56, - CHAR_NAME_CONSECUTIVE_SPACES = 0x57, - CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 0x58, - CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 0x59, - CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 0x5A, + CHAR_CREATE_EXPANSION_CLASS = 0x3A, + CHAR_CREATE_LEVEL_REQUIREMENT = 0x3B, + CHAR_CREATE_UNIQUE_CLASS_LIMIT = 0x3C, + + CHAR_DELETE_IN_PROGRESS = 0x3D, + CHAR_DELETE_SUCCESS = 0x3E, + CHAR_DELETE_FAILED = 0x3F, + CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER = 0x40, + CHAR_DELETE_FAILED_GUILD_LEADER = 0x41, + CHAR_DELETE_FAILED_ARENA_CAPTAIN = 0x42, + + CHAR_LOGIN_IN_PROGRESS = 0x43, + CHAR_LOGIN_SUCCESS = 0x44, + CHAR_LOGIN_NO_WORLD = 0x45, + CHAR_LOGIN_DUPLICATE_CHARACTER = 0x46, + CHAR_LOGIN_NO_INSTANCES = 0x47, + CHAR_LOGIN_FAILED = 0x48, + CHAR_LOGIN_DISABLED = 0x49, + CHAR_LOGIN_NO_CHARACTER = 0x4A, + CHAR_LOGIN_LOCKED_FOR_TRANSFER = 0x4B, + CHAR_LOGIN_LOCKED_BY_BILLING = 0x4C, + + CHAR_NAME_SUCCESS = 0x4D, + CHAR_NAME_FAILURE = 0x4E, + CHAR_NAME_NO_NAME = 0x4F, + CHAR_NAME_TOO_SHORT = 0x50, + CHAR_NAME_TOO_LONG = 0x51, + CHAR_NAME_INVALID_CHARACTER = 0x52, + CHAR_NAME_MIXED_LANGUAGES = 0x53, + CHAR_NAME_PROFANE = 0x54, + CHAR_NAME_RESERVED = 0x55, + CHAR_NAME_INVALID_APOSTROPHE = 0x56, + CHAR_NAME_MULTIPLE_APOSTROPHES = 0x57, + CHAR_NAME_THREE_CONSECUTIVE = 0x58, + CHAR_NAME_INVALID_SPACE = 0x59, + CHAR_NAME_CONSECUTIVE_SPACES = 0x5A, + CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS = 0x5B, + CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END = 0x5C, + CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME = 0x5D }; /// Ban function modes @@ -2186,5 +2557,74 @@ enum BanReturn BAN_SYNTAX_ERROR, BAN_NOTFOUND }; + +// indexes of BattlemasterList.dbc +enum BattleGroundTypeId +{ + BATTLEGROUND_TYPE_NONE = 0, + BATTLEGROUND_AV = 1, + BATTLEGROUND_WS = 2, + BATTLEGROUND_AB = 3, + BATTLEGROUND_NA = 4, + BATTLEGROUND_BE = 5, + BATTLEGROUND_AA = 6, + BATTLEGROUND_EY = 7, + BATTLEGROUND_RL = 8, + BATTLEGROUND_SA = 9, + BATTLEGROUND_DS = 10, + BATTLEGROUND_RV = 11 +}; +#define MAX_BATTLEGROUND_TYPE_ID 12 + +enum MailResponseType +{ + MAIL_SEND = 0, + MAIL_MONEY_TAKEN = 1, + MAIL_ITEM_TAKEN = 2, + MAIL_RETURNED_TO_SENDER = 3, + MAIL_DELETED = 4, + MAIL_MADE_PERMANENT = 5 +}; + +enum MailResponseResult +{ + MAIL_OK = 0, + MAIL_ERR_EQUIP_ERROR = 1, + MAIL_ERR_CANNOT_SEND_TO_SELF = 2, + MAIL_ERR_NOT_ENOUGH_MONEY = 3, + MAIL_ERR_RECIPIENT_NOT_FOUND = 4, + MAIL_ERR_NOT_YOUR_TEAM = 5, + MAIL_ERR_INTERNAL_ERROR = 6, + MAIL_ERR_DISABLED_FOR_TRIAL_ACC = 14, + MAIL_ERR_RECIPIENT_CAP_REACHED = 15, + MAIL_ERR_CANT_SEND_WRAPPED_COD = 16, + MAIL_ERR_MAIL_AND_CHAT_SUSPENDED = 17, + MAIL_ERR_TOO_MANY_ATTACHMENTS = 18, + MAIL_ERR_MAIL_ATTACHMENT_INVALID = 19, + MAIL_ERR_ITEM_HAS_EXPIRED = 21, +}; + +enum SpellFamilyNames +{ + SPELLFAMILY_GENERIC = 0, + SPELLFAMILY_UNK1 = 1, // events, holidays + // 2 - unused + SPELLFAMILY_MAGE = 3, + SPELLFAMILY_WARRIOR = 4, + SPELLFAMILY_WARLOCK = 5, + SPELLFAMILY_PRIEST = 6, + SPELLFAMILY_DRUID = 7, + SPELLFAMILY_ROGUE = 8, + SPELLFAMILY_HUNTER = 9, + SPELLFAMILY_PALADIN = 10, + SPELLFAMILY_SHAMAN = 11, + SPELLFAMILY_UNK2 = 12, // 2 spells (silence resistance) + SPELLFAMILY_POTION = 13, + // 14 - unused + SPELLFAMILY_DEATHKNIGHT = 15, + // 16 - unused + SPELLFAMILY_PET = 17 +}; + #endif |