/* * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #include "Chat.h" #include "CommandScript.h" #include "DBCStructure.h" #include "Language.h" #include "SmartEnum.h" #include "SpellAuraDefines.h" #include "SpellInfo.h" #include "SpellMgr.h" using namespace Acore::ChatCommands; class spellinfo_commandscript : public CommandScript { public: spellinfo_commandscript() : CommandScript("spellinfo_commandscript") { } ChatCommandTable GetCommands() const override { static ChatCommandTable spellinfoCommandTable = { { "attributes", HandleSpellInfoAttributesCommand, SEC_GAMEMASTER, Console::Yes }, { "effects", HandleSpellInfoEffectsCommand, SEC_GAMEMASTER, Console::Yes }, { "targets", HandleSpellInfoTargetsCommand, SEC_GAMEMASTER, Console::Yes }, { "all", HandleSpellInfoAllCommand, SEC_GAMEMASTER, Console::Yes } }; static ChatCommandTable commandTable = { { "spellinfo", spellinfoCommandTable } }; return commandTable; } static char const* GetSpellEffectName(uint32 effect) { switch (effect) { case SPELL_EFFECT_INSTAKILL: return "SPELL_EFFECT_INSTAKILL"; case SPELL_EFFECT_SCHOOL_DAMAGE: return "SPELL_EFFECT_SCHOOL_DAMAGE"; case SPELL_EFFECT_DUMMY: return "SPELL_EFFECT_DUMMY"; case SPELL_EFFECT_PORTAL_TELEPORT: return "SPELL_EFFECT_PORTAL_TELEPORT"; case SPELL_EFFECT_TELEPORT_UNITS: return "SPELL_EFFECT_TELEPORT_UNITS"; case SPELL_EFFECT_APPLY_AURA: return "SPELL_EFFECT_APPLY_AURA"; case SPELL_EFFECT_ENVIRONMENTAL_DAMAGE: return "SPELL_EFFECT_ENVIRONMENTAL_DAMAGE"; case SPELL_EFFECT_POWER_DRAIN: return "SPELL_EFFECT_POWER_DRAIN"; case SPELL_EFFECT_HEALTH_LEECH: return "SPELL_EFFECT_HEALTH_LEECH"; case SPELL_EFFECT_HEAL: return "SPELL_EFFECT_HEAL"; case SPELL_EFFECT_BIND: return "SPELL_EFFECT_BIND"; case SPELL_EFFECT_PORTAL: return "SPELL_EFFECT_PORTAL"; case SPELL_EFFECT_RITUAL_BASE: return "SPELL_EFFECT_RITUAL_BASE"; case SPELL_EFFECT_RITUAL_SPECIALIZE: return "SPELL_EFFECT_RITUAL_SPECIALIZE"; case SPELL_EFFECT_RITUAL_ACTIVATE_PORTAL: return "SPELL_EFFECT_RITUAL_ACTIVATE_PORTAL"; case SPELL_EFFECT_QUEST_COMPLETE: return "SPELL_EFFECT_QUEST_COMPLETE"; case SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL: return "SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL"; case SPELL_EFFECT_RESURRECT: return "SPELL_EFFECT_RESURRECT"; case SPELL_EFFECT_ADD_EXTRA_ATTACKS: return "SPELL_EFFECT_ADD_EXTRA_ATTACKS"; case SPELL_EFFECT_DODGE: return "SPELL_EFFECT_DODGE"; case SPELL_EFFECT_EVADE: return "SPELL_EFFECT_EVADE"; case SPELL_EFFECT_PARRY: return "SPELL_EFFECT_PARRY"; case SPELL_EFFECT_BLOCK: return "SPELL_EFFECT_BLOCK"; case SPELL_EFFECT_CREATE_ITEM: return "SPELL_EFFECT_CREATE_ITEM"; case SPELL_EFFECT_WEAPON: return "SPELL_EFFECT_WEAPON"; case SPELL_EFFECT_DEFENSE: return "SPELL_EFFECT_DEFENSE"; case SPELL_EFFECT_PERSISTENT_AREA_AURA: return "SPELL_EFFECT_PERSISTENT_AREA_AURA"; case SPELL_EFFECT_SUMMON: return "SPELL_EFFECT_SUMMON"; case SPELL_EFFECT_LEAP: return "SPELL_EFFECT_LEAP"; case SPELL_EFFECT_ENERGIZE: return "SPELL_EFFECT_ENERGIZE"; case SPELL_EFFECT_WEAPON_PERCENT_DAMAGE: return "SPELL_EFFECT_WEAPON_PERCENT_DAMAGE"; case SPELL_EFFECT_TRIGGER_MISSILE: return "SPELL_EFFECT_TRIGGER_MISSILE"; case SPELL_EFFECT_OPEN_LOCK: return "SPELL_EFFECT_OPEN_LOCK"; case SPELL_EFFECT_SUMMON_CHANGE_ITEM: return "SPELL_EFFECT_SUMMON_CHANGE_ITEM"; case SPELL_EFFECT_APPLY_AREA_AURA_PARTY: return "SPELL_EFFECT_APPLY_AREA_AURA_PARTY"; case SPELL_EFFECT_LEARN_SPELL: return "SPELL_EFFECT_LEARN_SPELL"; case SPELL_EFFECT_SPELL_DEFENSE: return "SPELL_EFFECT_SPELL_DEFENSE"; case SPELL_EFFECT_DISPEL: return "SPELL_EFFECT_DISPEL"; case SPELL_EFFECT_LANGUAGE: return "SPELL_EFFECT_LANGUAGE"; case SPELL_EFFECT_DUAL_WIELD: return "SPELL_EFFECT_DUAL_WIELD"; case SPELL_EFFECT_JUMP: return "SPELL_EFFECT_JUMP"; case SPELL_EFFECT_JUMP_DEST: return "SPELL_EFFECT_JUMP_DEST"; case SPELL_EFFECT_TELEPORT_UNITS_FACE_CASTER: return "SPELL_EFFECT_TELEPORT_UNITS_FACE_CASTER"; case SPELL_EFFECT_SKILL_STEP: return "SPELL_EFFECT_SKILL_STEP"; case SPELL_EFFECT_ADD_HONOR: return "SPELL_EFFECT_ADD_HONOR"; case SPELL_EFFECT_SPAWN: return "SPELL_EFFECT_SPAWN"; case SPELL_EFFECT_TRADE_SKILL: return "SPELL_EFFECT_TRADE_SKILL"; case SPELL_EFFECT_STEALTH: return "SPELL_EFFECT_STEALTH"; case SPELL_EFFECT_DETECT: return "SPELL_EFFECT_DETECT"; case SPELL_EFFECT_TRANS_DOOR: return "SPELL_EFFECT_TRANS_DOOR"; case SPELL_EFFECT_FORCE_CRITICAL_HIT: return "SPELL_EFFECT_FORCE_CRITICAL_HIT"; case SPELL_EFFECT_GUARANTEE_HIT: return "SPELL_EFFECT_GUARANTEE_HIT"; case SPELL_EFFECT_ENCHANT_ITEM: return "SPELL_EFFECT_ENCHANT_ITEM"; case SPELL_EFFECT_ENCHANT_ITEM_TEMPORARY: return "SPELL_EFFECT_ENCHANT_ITEM_TEMPORARY"; case SPELL_EFFECT_TAMECREATURE: return "SPELL_EFFECT_TAMECREATURE"; case SPELL_EFFECT_SUMMON_PET: return "SPELL_EFFECT_SUMMON_PET"; case SPELL_EFFECT_LEARN_PET_SPELL: return "SPELL_EFFECT_LEARN_PET_SPELL"; case SPELL_EFFECT_WEAPON_DAMAGE: return "SPELL_EFFECT_WEAPON_DAMAGE"; case SPELL_EFFECT_CREATE_RANDOM_ITEM: return "SPELL_EFFECT_CREATE_RANDOM_ITEM"; case SPELL_EFFECT_PROFICIENCY: return "SPELL_EFFECT_PROFICIENCY"; case SPELL_EFFECT_SEND_EVENT: return "SPELL_EFFECT_SEND_EVENT"; case SPELL_EFFECT_POWER_BURN: return "SPELL_EFFECT_POWER_BURN"; case SPELL_EFFECT_THREAT: return "SPELL_EFFECT_THREAT"; case SPELL_EFFECT_TRIGGER_SPELL: return "SPELL_EFFECT_TRIGGER_SPELL"; case SPELL_EFFECT_APPLY_AREA_AURA_RAID: return "SPELL_EFFECT_APPLY_AREA_AURA_RAID"; case SPELL_EFFECT_CREATE_MANA_GEM: return "SPELL_EFFECT_CREATE_MANA_GEM"; case SPELL_EFFECT_HEAL_MAX_HEALTH: return "SPELL_EFFECT_HEAL_MAX_HEALTH"; case SPELL_EFFECT_INTERRUPT_CAST: return "SPELL_EFFECT_INTERRUPT_CAST"; case SPELL_EFFECT_DISTRACT: return "SPELL_EFFECT_DISTRACT"; case SPELL_EFFECT_PULL: return "SPELL_EFFECT_PULL"; case SPELL_EFFECT_PICKPOCKET: return "SPELL_EFFECT_PICKPOCKET"; case SPELL_EFFECT_ADD_FARSIGHT: return "SPELL_EFFECT_ADD_FARSIGHT"; case SPELL_EFFECT_UNTRAIN_TALENTS: return "SPELL_EFFECT_UNTRAIN_TALENTS"; case SPELL_EFFECT_APPLY_GLYPH: return "SPELL_EFFECT_APPLY_GLYPH"; case SPELL_EFFECT_HEAL_MECHANICAL: return "SPELL_EFFECT_HEAL_MECHANICAL"; case SPELL_EFFECT_SUMMON_OBJECT_WILD: return "SPELL_EFFECT_SUMMON_OBJECT_WILD"; case SPELL_EFFECT_SCRIPT_EFFECT: return "SPELL_EFFECT_SCRIPT_EFFECT"; case SPELL_EFFECT_ATTACK: return "SPELL_EFFECT_ATTACK"; case SPELL_EFFECT_SANCTUARY: return "SPELL_EFFECT_SANCTUARY"; case SPELL_EFFECT_ADD_COMBO_POINTS: return "SPELL_EFFECT_ADD_COMBO_POINTS"; case SPELL_EFFECT_CREATE_HOUSE: return "SPELL_EFFECT_CREATE_HOUSE"; case SPELL_EFFECT_BIND_SIGHT: return "SPELL_EFFECT_BIND_SIGHT"; case SPELL_EFFECT_DUEL: return "SPELL_EFFECT_DUEL"; case SPELL_EFFECT_STUCK: return "SPELL_EFFECT_STUCK"; case SPELL_EFFECT_SUMMON_PLAYER: return "SPELL_EFFECT_SUMMON_PLAYER"; case SPELL_EFFECT_ACTIVATE_OBJECT: return "SPELL_EFFECT_ACTIVATE_OBJECT"; case SPELL_EFFECT_GAMEOBJECT_DAMAGE: return "SPELL_EFFECT_GAMEOBJECT_DAMAGE"; case SPELL_EFFECT_GAMEOBJECT_REPAIR: return "SPELL_EFFECT_GAMEOBJECT_REPAIR"; case SPELL_EFFECT_GAMEOBJECT_SET_DESTRUCTION_STATE: return "SPELL_EFFECT_GAMEOBJECT_SET_DESTRUCTION_STATE"; case SPELL_EFFECT_KILL_CREDIT: return "SPELL_EFFECT_KILL_CREDIT"; case SPELL_EFFECT_THREAT_ALL: return "SPELL_EFFECT_THREAT_ALL"; case SPELL_EFFECT_ENCHANT_HELD_ITEM: return "SPELL_EFFECT_ENCHANT_HELD_ITEM"; case SPELL_EFFECT_FORCE_DESELECT: return "SPELL_EFFECT_FORCE_DESELECT"; case SPELL_EFFECT_SELF_RESURRECT: return "SPELL_EFFECT_SELF_RESURRECT"; case SPELL_EFFECT_SKINNING: return "SPELL_EFFECT_SKINNING"; case SPELL_EFFECT_CHARGE: return "SPELL_EFFECT_CHARGE"; case SPELL_EFFECT_CAST_BUTTON: return "SPELL_EFFECT_CAST_BUTTON"; case SPELL_EFFECT_KNOCK_BACK: return "SPELL_EFFECT_KNOCK_BACK"; case SPELL_EFFECT_DISENCHANT: return "SPELL_EFFECT_DISENCHANT"; case SPELL_EFFECT_INEBRIATE: return "SPELL_EFFECT_INEBRIATE"; case SPELL_EFFECT_FEED_PET: return "SPELL_EFFECT_FEED_PET"; case SPELL_EFFECT_DISMISS_PET: return "SPELL_EFFECT_DISMISS_PET"; case SPELL_EFFECT_REPUTATION: return "SPELL_EFFECT_REPUTATION"; case SPELL_EFFECT_SUMMON_OBJECT_SLOT1: return "SPELL_EFFECT_SUMMON_OBJECT_SLOT1"; case SPELL_EFFECT_SUMMON_OBJECT_SLOT2: return "SPELL_EFFECT_SUMMON_OBJECT_SLOT2"; case SPELL_EFFECT_SUMMON_OBJECT_SLOT3: return "SPELL_EFFECT_SUMMON_OBJECT_SLOT3"; case SPELL_EFFECT_SUMMON_OBJECT_SLOT4: return "SPELL_EFFECT_SUMMON_OBJECT_SLOT4"; case SPELL_EFFECT_DISPEL_MECHANIC: return "SPELL_EFFECT_DISPEL_MECHANIC"; case SPELL_EFFECT_RESURRECT_PET: return "SPELL_EFFECT_RESURRECT_PET"; case SPELL_EFFECT_DESTROY_ALL_TOTEMS: return "SPELL_EFFECT_DESTROY_ALL_TOTEMS"; case SPELL_EFFECT_DURABILITY_DAMAGE: return "SPELL_EFFECT_DURABILITY_DAMAGE"; case SPELL_EFFECT_112: return "SPELL_EFFECT_112"; case SPELL_EFFECT_RESURRECT_NEW: return "SPELL_EFFECT_RESURRECT_NEW"; case SPELL_EFFECT_ATTACK_ME: return "SPELL_EFFECT_ATTACK_ME"; case SPELL_EFFECT_DURABILITY_DAMAGE_PCT: return "SPELL_EFFECT_DURABILITY_DAMAGE_PCT"; case SPELL_EFFECT_SKIN_PLAYER_CORPSE: return "SPELL_EFFECT_SKIN_PLAYER_CORPSE"; case SPELL_EFFECT_SPIRIT_HEAL: return "SPELL_EFFECT_SPIRIT_HEAL"; case SPELL_EFFECT_SKILL: return "SPELL_EFFECT_SKILL"; case SPELL_EFFECT_APPLY_AREA_AURA_PET: return "SPELL_EFFECT_APPLY_AREA_AURA_PET"; case SPELL_EFFECT_TELEPORT_GRAVEYARD: return "SPELL_EFFECT_TELEPORT_GRAVEYARD"; case SPELL_EFFECT_NORMALIZED_WEAPON_DMG: return "SPELL_EFFECT_NORMALIZED_WEAPON_DMG"; case SPELL_EFFECT_122: return "SPELL_EFFECT_122"; case SPELL_EFFECT_SEND_TAXI: return "SPELL_EFFECT_SEND_TAXI"; case SPELL_EFFECT_PULL_TOWARDS: return "SPELL_EFFECT_PULL_TOWARDS"; case SPELL_EFFECT_MODIFY_THREAT_PERCENT: return "SPELL_EFFECT_MODIFY_THREAT_PERCENT"; case SPELL_EFFECT_STEAL_BENEFICIAL_BUFF: return "SPELL_EFFECT_STEAL_BENEFICIAL_BUFF"; case SPELL_EFFECT_PROSPECTING: return "SPELL_EFFECT_PROSPECTING"; case SPELL_EFFECT_APPLY_AREA_AURA_FRIEND: return "SPELL_EFFECT_APPLY_AREA_AURA_FRIEND"; case SPELL_EFFECT_APPLY_AREA_AURA_ENEMY: return "SPELL_EFFECT_APPLY_AREA_AURA_ENEMY"; case SPELL_EFFECT_REDIRECT_THREAT: return "SPELL_EFFECT_REDIRECT_THREAT"; case SPELL_EFFECT_PLAY_SOUND: return "SPELL_EFFECT_PLAY_SOUND"; case SPELL_EFFECT_PLAY_MUSIC: return "SPELL_EFFECT_PLAY_MUSIC"; case SPELL_EFFECT_UNLEARN_SPECIALIZATION: return "SPELL_EFFECT_UNLEARN_SPECIALIZATION"; case SPELL_EFFECT_KILL_CREDIT2: return "SPELL_EFFECT_KILL_CREDIT2"; case SPELL_EFFECT_CALL_PET: return "SPELL_EFFECT_CALL_PET"; case SPELL_EFFECT_HEAL_PCT: return "SPELL_EFFECT_HEAL_PCT"; case SPELL_EFFECT_ENERGIZE_PCT: return "SPELL_EFFECT_ENERGIZE_PCT"; case SPELL_EFFECT_LEAP_BACK: return "SPELL_EFFECT_LEAP_BACK"; case SPELL_EFFECT_CLEAR_QUEST: return "SPELL_EFFECT_CLEAR_QUEST"; case SPELL_EFFECT_FORCE_CAST: return "SPELL_EFFECT_FORCE_CAST"; case SPELL_EFFECT_FORCE_CAST_WITH_VALUE: return "SPELL_EFFECT_FORCE_CAST_WITH_VALUE"; case SPELL_EFFECT_TRIGGER_SPELL_WITH_VALUE: return "SPELL_EFFECT_TRIGGER_SPELL_WITH_VALUE"; case SPELL_EFFECT_APPLY_AREA_AURA_OWNER: return "SPELL_EFFECT_APPLY_AREA_AURA_OWNER"; case SPELL_EFFECT_KNOCK_BACK_DEST: return "SPELL_EFFECT_KNOCK_BACK_DEST"; case SPELL_EFFECT_PULL_TOWARDS_DEST: return "SPELL_EFFECT_PULL_TOWARDS_DEST"; case SPELL_EFFECT_ACTIVATE_RUNE: return "SPELL_EFFECT_ACTIVATE_RUNE"; case SPELL_EFFECT_QUEST_FAIL: return "SPELL_EFFECT_QUEST_FAIL"; case SPELL_EFFECT_TRIGGER_MISSILE_SPELL_WITH_VALUE: return "SPELL_EFFECT_TRIGGER_MISSILE_SPELL_WITH_VALUE"; case SPELL_EFFECT_CHARGE_DEST: return "SPELL_EFFECT_CHARGE_DEST"; case SPELL_EFFECT_QUEST_START: return "SPELL_EFFECT_QUEST_START"; case SPELL_EFFECT_TRIGGER_SPELL_2: return "SPELL_EFFECT_TRIGGER_SPELL_2"; case SPELL_EFFECT_SUMMON_RAF_FRIEND: return "SPELL_EFFECT_SUMMON_RAF_FRIEND"; case SPELL_EFFECT_CREATE_TAMED_PET: return "SPELL_EFFECT_CREATE_TAMED_PET"; case SPELL_EFFECT_DISCOVER_TAXI: return "SPELL_EFFECT_DISCOVER_TAXI"; case SPELL_EFFECT_TITAN_GRIP: return "SPELL_EFFECT_TITAN_GRIP"; case SPELL_EFFECT_ENCHANT_ITEM_PRISMATIC: return "SPELL_EFFECT_ENCHANT_ITEM_PRISMATIC"; case SPELL_EFFECT_CREATE_ITEM_2: return "SPELL_EFFECT_CREATE_ITEM_2"; case SPELL_EFFECT_MILLING: return "SPELL_EFFECT_MILLING"; case SPELL_EFFECT_ALLOW_RENAME_PET: return "SPELL_EFFECT_ALLOW_RENAME_PET"; case SPELL_EFFECT_FORCE_CAST_2: return "SPELL_EFFECT_FORCE_CAST_2"; case SPELL_EFFECT_TALENT_SPEC_COUNT: return "SPELL_EFFECT_TALENT_SPEC_COUNT"; case SPELL_EFFECT_TALENT_SPEC_SELECT: return "SPELL_EFFECT_TALENT_SPEC_SELECT"; case SPELL_EFFECT_163: return "SPELL_EFFECT_163"; case SPELL_EFFECT_REMOVE_AURA: return "SPELL_EFFECT_REMOVE_AURA"; default: return "UNKNOWN_EFFECT"; } } static char const* GetAuraTypeName(uint32 aura) { switch (aura) { case SPELL_AURA_NONE: return "SPELL_AURA_NONE"; case SPELL_AURA_BIND_SIGHT: return "SPELL_AURA_BIND_SIGHT"; case SPELL_AURA_MOD_POSSESS: return "SPELL_AURA_MOD_POSSESS"; case SPELL_AURA_PERIODIC_DAMAGE: return "SPELL_AURA_PERIODIC_DAMAGE"; case SPELL_AURA_DUMMY: return "SPELL_AURA_DUMMY"; case SPELL_AURA_MOD_CONFUSE: return "SPELL_AURA_MOD_CONFUSE"; case SPELL_AURA_MOD_CHARM: return "SPELL_AURA_MOD_CHARM"; case SPELL_AURA_MOD_FEAR: return "SPELL_AURA_MOD_FEAR"; case SPELL_AURA_PERIODIC_HEAL: return "SPELL_AURA_PERIODIC_HEAL"; case SPELL_AURA_MOD_ATTACKSPEED: return "SPELL_AURA_MOD_ATTACKSPEED"; case SPELL_AURA_MOD_THREAT: return "SPELL_AURA_MOD_THREAT"; case SPELL_AURA_MOD_TAUNT: return "SPELL_AURA_MOD_TAUNT"; case SPELL_AURA_MOD_STUN: return "SPELL_AURA_MOD_STUN"; case SPELL_AURA_MOD_DAMAGE_DONE: return "SPELL_AURA_MOD_DAMAGE_DONE"; case SPELL_AURA_MOD_DAMAGE_TAKEN: return "SPELL_AURA_MOD_DAMAGE_TAKEN"; case SPELL_AURA_DAMAGE_SHIELD: return "SPELL_AURA_DAMAGE_SHIELD"; case SPELL_AURA_MOD_STEALTH: return "SPELL_AURA_MOD_STEALTH"; case SPELL_AURA_MOD_STEALTH_DETECT: return "SPELL_AURA_MOD_STEALTH_DETECT"; case SPELL_AURA_MOD_INVISIBILITY: return "SPELL_AURA_MOD_INVISIBILITY"; case SPELL_AURA_MOD_INVISIBILITY_DETECT: return "SPELL_AURA_MOD_INVISIBILITY_DETECT"; case SPELL_AURA_OBS_MOD_HEALTH: return "SPELL_AURA_OBS_MOD_HEALTH"; case SPELL_AURA_OBS_MOD_POWER: return "SPELL_AURA_OBS_MOD_POWER"; case SPELL_AURA_MOD_RESISTANCE: return "SPELL_AURA_MOD_RESISTANCE"; case SPELL_AURA_PERIODIC_TRIGGER_SPELL: return "SPELL_AURA_PERIODIC_TRIGGER_SPELL"; case SPELL_AURA_PERIODIC_ENERGIZE: return "SPELL_AURA_PERIODIC_ENERGIZE"; case SPELL_AURA_MOD_PACIFY: return "SPELL_AURA_MOD_PACIFY"; case SPELL_AURA_MOD_ROOT: return "SPELL_AURA_MOD_ROOT"; case SPELL_AURA_MOD_SILENCE: return "SPELL_AURA_MOD_SILENCE"; case SPELL_AURA_REFLECT_SPELLS: return "SPELL_AURA_REFLECT_SPELLS"; case SPELL_AURA_MOD_STAT: return "SPELL_AURA_MOD_STAT"; case SPELL_AURA_MOD_SKILL: return "SPELL_AURA_MOD_SKILL"; case SPELL_AURA_MOD_INCREASE_SPEED: return "SPELL_AURA_MOD_INCREASE_SPEED"; case SPELL_AURA_MOD_INCREASE_MOUNTED_SPEED: return "SPELL_AURA_MOD_INCREASE_MOUNTED_SPEED"; case SPELL_AURA_MOD_DECREASE_SPEED: return "SPELL_AURA_MOD_DECREASE_SPEED"; case SPELL_AURA_MOD_INCREASE_HEALTH: return "SPELL_AURA_MOD_INCREASE_HEALTH"; case SPELL_AURA_MOD_INCREASE_ENERGY: return "SPELL_AURA_MOD_INCREASE_ENERGY"; case SPELL_AURA_MOD_SHAPESHIFT: return "SPELL_AURA_MOD_SHAPESHIFT"; case SPELL_AURA_EFFECT_IMMUNITY: return "SPELL_AURA_EFFECT_IMMUNITY"; case SPELL_AURA_STATE_IMMUNITY: return "SPELL_AURA_STATE_IMMUNITY"; case SPELL_AURA_SCHOOL_IMMUNITY: return "SPELL_AURA_SCHOOL_IMMUNITY"; case SPELL_AURA_DAMAGE_IMMUNITY: return "SPELL_AURA_DAMAGE_IMMUNITY"; case SPELL_AURA_DISPEL_IMMUNITY: return "SPELL_AURA_DISPEL_IMMUNITY"; case SPELL_AURA_PROC_TRIGGER_SPELL: return "SPELL_AURA_PROC_TRIGGER_SPELL"; case SPELL_AURA_PROC_TRIGGER_DAMAGE: return "SPELL_AURA_PROC_TRIGGER_DAMAGE"; case SPELL_AURA_TRACK_CREATURES: return "SPELL_AURA_TRACK_CREATURES"; case SPELL_AURA_TRACK_RESOURCES: return "SPELL_AURA_TRACK_RESOURCES"; case SPELL_AURA_46: return "SPELL_AURA_46"; case SPELL_AURA_MOD_PARRY_PERCENT: return "SPELL_AURA_MOD_PARRY_PERCENT"; case SPELL_AURA_PERIODIC_TRIGGER_SPELL_FROM_CLIENT: return "SPELL_AURA_PERIODIC_TRIGGER_SPELL_FROM_CLIENT"; case SPELL_AURA_MOD_DODGE_PERCENT: return "SPELL_AURA_MOD_DODGE_PERCENT"; case SPELL_AURA_MOD_CRITICAL_HEALING_AMOUNT: return "SPELL_AURA_MOD_CRITICAL_HEALING_AMOUNT"; case SPELL_AURA_MOD_BLOCK_PERCENT: return "SPELL_AURA_MOD_BLOCK_PERCENT"; case SPELL_AURA_MOD_WEAPON_CRIT_PERCENT: return "SPELL_AURA_MOD_WEAPON_CRIT_PERCENT"; case SPELL_AURA_PERIODIC_LEECH: return "SPELL_AURA_PERIODIC_LEECH"; case SPELL_AURA_MOD_HIT_CHANCE: return "SPELL_AURA_MOD_HIT_CHANCE"; case SPELL_AURA_MOD_SPELL_HIT_CHANCE: return "SPELL_AURA_MOD_SPELL_HIT_CHANCE"; case SPELL_AURA_TRANSFORM: return "SPELL_AURA_TRANSFORM"; case SPELL_AURA_MOD_SPELL_CRIT_CHANCE: return "SPELL_AURA_MOD_SPELL_CRIT_CHANCE"; case SPELL_AURA_MOD_INCREASE_SWIM_SPEED: return "SPELL_AURA_MOD_INCREASE_SWIM_SPEED"; case SPELL_AURA_MOD_DAMAGE_DONE_CREATURE: return "SPELL_AURA_MOD_DAMAGE_DONE_CREATURE"; case SPELL_AURA_MOD_PACIFY_SILENCE: return "SPELL_AURA_MOD_PACIFY_SILENCE"; case SPELL_AURA_MOD_SCALE: return "SPELL_AURA_MOD_SCALE"; case SPELL_AURA_PERIODIC_HEALTH_FUNNEL: return "SPELL_AURA_PERIODIC_HEALTH_FUNNEL"; case SPELL_AURA_63: return "SPELL_AURA_63"; case SPELL_AURA_PERIODIC_MANA_LEECH: return "SPELL_AURA_PERIODIC_MANA_LEECH"; case SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK: return "SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK"; case SPELL_AURA_FEIGN_DEATH: return "SPELL_AURA_FEIGN_DEATH"; case SPELL_AURA_MOD_DISARM: return "SPELL_AURA_MOD_DISARM"; case SPELL_AURA_MOD_STALKED: return "SPELL_AURA_MOD_STALKED"; case SPELL_AURA_SCHOOL_ABSORB: return "SPELL_AURA_SCHOOL_ABSORB"; case SPELL_AURA_EXTRA_ATTACKS: return "SPELL_AURA_EXTRA_ATTACKS"; case SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL: return "SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL"; case SPELL_AURA_MOD_POWER_COST_SCHOOL_PCT: return "SPELL_AURA_MOD_POWER_COST_SCHOOL_PCT"; case SPELL_AURA_MOD_POWER_COST_SCHOOL: return "SPELL_AURA_MOD_POWER_COST_SCHOOL"; case SPELL_AURA_REFLECT_SPELLS_SCHOOL: return "SPELL_AURA_REFLECT_SPELLS_SCHOOL"; case SPELL_AURA_MOD_LANGUAGE: return "SPELL_AURA_MOD_LANGUAGE"; case SPELL_AURA_FAR_SIGHT: return "SPELL_AURA_FAR_SIGHT"; case SPELL_AURA_MECHANIC_IMMUNITY: return "SPELL_AURA_MECHANIC_IMMUNITY"; case SPELL_AURA_MOUNTED: return "SPELL_AURA_MOUNTED"; case SPELL_AURA_MOD_DAMAGE_PERCENT_DONE: return "SPELL_AURA_MOD_DAMAGE_PERCENT_DONE"; case SPELL_AURA_MOD_PERCENT_STAT: return "SPELL_AURA_MOD_PERCENT_STAT"; case SPELL_AURA_SPLIT_DAMAGE_PCT: return "SPELL_AURA_SPLIT_DAMAGE_PCT"; case SPELL_AURA_WATER_BREATHING: return "SPELL_AURA_WATER_BREATHING"; case SPELL_AURA_MOD_BASE_RESISTANCE: return "SPELL_AURA_MOD_BASE_RESISTANCE"; case SPELL_AURA_MOD_REGEN: return "SPELL_AURA_MOD_REGEN"; case SPELL_AURA_MOD_POWER_REGEN: return "SPELL_AURA_MOD_POWER_REGEN"; case SPELL_AURA_CHANNEL_DEATH_ITEM: return "SPELL_AURA_CHANNEL_DEATH_ITEM"; case SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN: return "SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN"; case SPELL_AURA_MOD_HEALTH_REGEN_PERCENT: return "SPELL_AURA_MOD_HEALTH_REGEN_PERCENT"; case SPELL_AURA_PERIODIC_DAMAGE_PERCENT: return "SPELL_AURA_PERIODIC_DAMAGE_PERCENT"; case SPELL_AURA_90: return "SPELL_AURA_90"; case SPELL_AURA_MOD_DETECT_RANGE: return "SPELL_AURA_MOD_DETECT_RANGE"; case SPELL_AURA_PREVENTS_FLEEING: return "SPELL_AURA_PREVENTS_FLEEING"; case SPELL_AURA_MOD_UNATTACKABLE: return "SPELL_AURA_MOD_UNATTACKABLE"; case SPELL_AURA_INTERRUPT_REGEN: return "SPELL_AURA_INTERRUPT_REGEN"; case SPELL_AURA_GHOST: return "SPELL_AURA_GHOST"; case SPELL_AURA_SPELL_MAGNET: return "SPELL_AURA_SPELL_MAGNET"; case SPELL_AURA_MANA_SHIELD: return "SPELL_AURA_MANA_SHIELD"; case SPELL_AURA_MOD_SKILL_TALENT: return "SPELL_AURA_MOD_SKILL_TALENT"; case SPELL_AURA_MOD_ATTACK_POWER: return "SPELL_AURA_MOD_ATTACK_POWER"; case SPELL_AURA_AURAS_VISIBLE: return "SPELL_AURA_AURAS_VISIBLE"; case SPELL_AURA_MOD_RESISTANCE_PCT: return "SPELL_AURA_MOD_RESISTANCE_PCT"; case SPELL_AURA_MOD_MELEE_ATTACK_POWER_VERSUS: return "SPELL_AURA_MOD_MELEE_ATTACK_POWER_VERSUS"; case SPELL_AURA_MOD_TOTAL_THREAT: return "SPELL_AURA_MOD_TOTAL_THREAT"; case SPELL_AURA_WATER_WALK: return "SPELL_AURA_WATER_WALK"; case SPELL_AURA_FEATHER_FALL: return "SPELL_AURA_FEATHER_FALL"; case SPELL_AURA_HOVER: return "SPELL_AURA_HOVER"; case SPELL_AURA_ADD_FLAT_MODIFIER: return "SPELL_AURA_ADD_FLAT_MODIFIER"; case SPELL_AURA_ADD_PCT_MODIFIER: return "SPELL_AURA_ADD_PCT_MODIFIER"; case SPELL_AURA_ADD_TARGET_TRIGGER: return "SPELL_AURA_ADD_TARGET_TRIGGER"; case SPELL_AURA_MOD_POWER_REGEN_PERCENT: return "SPELL_AURA_MOD_POWER_REGEN_PERCENT"; case SPELL_AURA_ADD_CASTER_HIT_TRIGGER: return "SPELL_AURA_ADD_CASTER_HIT_TRIGGER"; case SPELL_AURA_OVERRIDE_CLASS_SCRIPTS: return "SPELL_AURA_OVERRIDE_CLASS_SCRIPTS"; case SPELL_AURA_MOD_RANGED_DAMAGE_TAKEN: return "SPELL_AURA_MOD_RANGED_DAMAGE_TAKEN"; case SPELL_AURA_MOD_RANGED_DAMAGE_TAKEN_PCT: return "SPELL_AURA_MOD_RANGED_DAMAGE_TAKEN_PCT"; case SPELL_AURA_MOD_HEALING: return "SPELL_AURA_MOD_HEALING"; case SPELL_AURA_MOD_REGEN_DURING_COMBAT: return "SPELL_AURA_MOD_REGEN_DURING_COMBAT"; case SPELL_AURA_MOD_MECHANIC_RESISTANCE: return "SPELL_AURA_MOD_MECHANIC_RESISTANCE"; case SPELL_AURA_MOD_HEALING_PCT: return "SPELL_AURA_MOD_HEALING_PCT"; case SPELL_AURA_119: return "SPELL_AURA_119"; case SPELL_AURA_UNTRACKABLE: return "SPELL_AURA_UNTRACKABLE"; case SPELL_AURA_EMPATHY: return "SPELL_AURA_EMPATHY"; case SPELL_AURA_MOD_OFFHAND_DAMAGE_PCT: return "SPELL_AURA_MOD_OFFHAND_DAMAGE_PCT"; case SPELL_AURA_MOD_TARGET_RESISTANCE: return "SPELL_AURA_MOD_TARGET_RESISTANCE"; case SPELL_AURA_MOD_RANGED_ATTACK_POWER: return "SPELL_AURA_MOD_RANGED_ATTACK_POWER"; case SPELL_AURA_MOD_MELEE_DAMAGE_TAKEN: return "SPELL_AURA_MOD_MELEE_DAMAGE_TAKEN"; case SPELL_AURA_MOD_MELEE_DAMAGE_TAKEN_PCT: return "SPELL_AURA_MOD_MELEE_DAMAGE_TAKEN_PCT"; case SPELL_AURA_RANGED_ATTACK_POWER_ATTACKER_BONUS: return "SPELL_AURA_RANGED_ATTACK_POWER_ATTACKER_BONUS"; case SPELL_AURA_MOD_POSSESS_PET: return "SPELL_AURA_MOD_POSSESS_PET"; case SPELL_AURA_MOD_SPEED_ALWAYS: return "SPELL_AURA_MOD_SPEED_ALWAYS"; case SPELL_AURA_MOD_MOUNTED_SPEED_ALWAYS: return "SPELL_AURA_MOD_MOUNTED_SPEED_ALWAYS"; case SPELL_AURA_MOD_RANGED_ATTACK_POWER_VERSUS: return "SPELL_AURA_MOD_RANGED_ATTACK_POWER_VERSUS"; case SPELL_AURA_MOD_INCREASE_ENERGY_PERCENT: return "SPELL_AURA_MOD_INCREASE_ENERGY_PERCENT"; case SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT: return "SPELL_AURA_MOD_INCREASE_HEALTH_PERCENT"; case SPELL_AURA_MOD_MANA_REGEN_INTERRUPT: return "SPELL_AURA_MOD_MANA_REGEN_INTERRUPT"; case SPELL_AURA_MOD_HEALING_DONE: return "SPELL_AURA_MOD_HEALING_DONE"; case SPELL_AURA_MOD_HEALING_DONE_PERCENT: return "SPELL_AURA_MOD_HEALING_DONE_PERCENT"; case SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE: return "SPELL_AURA_MOD_TOTAL_STAT_PERCENTAGE"; case SPELL_AURA_MOD_MELEE_HASTE: return "SPELL_AURA_MOD_MELEE_HASTE"; case SPELL_AURA_FORCE_REACTION: return "SPELL_AURA_FORCE_REACTION"; case SPELL_AURA_MOD_RANGED_HASTE: return "SPELL_AURA_MOD_RANGED_HASTE"; case SPELL_AURA_MOD_RANGED_AMMO_HASTE: return "SPELL_AURA_MOD_RANGED_AMMO_HASTE"; case SPELL_AURA_MOD_BASE_RESISTANCE_PCT: return "SPELL_AURA_MOD_BASE_RESISTANCE_PCT"; case SPELL_AURA_MOD_RESISTANCE_EXCLUSIVE: return "SPELL_AURA_MOD_RESISTANCE_EXCLUSIVE"; case SPELL_AURA_SAFE_FALL: return "SPELL_AURA_SAFE_FALL"; case SPELL_AURA_MOD_PET_TALENT_POINTS: return "SPELL_AURA_MOD_PET_TALENT_POINTS"; case SPELL_AURA_ALLOW_TAME_PET_TYPE: return "SPELL_AURA_ALLOW_TAME_PET_TYPE"; case SPELL_AURA_MECHANIC_IMMUNITY_MASK: return "SPELL_AURA_MECHANIC_IMMUNITY_MASK"; case SPELL_AURA_RETAIN_COMBO_POINTS: return "SPELL_AURA_RETAIN_COMBO_POINTS"; case SPELL_AURA_REDUCE_PUSHBACK: return "SPELL_AURA_REDUCE_PUSHBACK"; case SPELL_AURA_MOD_SHIELD_BLOCKVALUE_PCT: return "SPELL_AURA_MOD_SHIELD_BLOCKVALUE_PCT"; case SPELL_AURA_TRACK_STEALTHED: return "SPELL_AURA_TRACK_STEALTHED"; case SPELL_AURA_MOD_DETECTED_RANGE: return "SPELL_AURA_MOD_DETECTED_RANGE"; case SPELL_AURA_SPLIT_DAMAGE_FLAT: return "SPELL_AURA_SPLIT_DAMAGE_FLAT"; case SPELL_AURA_MOD_STEALTH_LEVEL: return "SPELL_AURA_MOD_STEALTH_LEVEL"; case SPELL_AURA_MOD_WATER_BREATHING: return "SPELL_AURA_MOD_WATER_BREATHING"; case SPELL_AURA_MOD_REPUTATION_GAIN: return "SPELL_AURA_MOD_REPUTATION_GAIN"; case SPELL_AURA_PET_DAMAGE_MULTI: return "SPELL_AURA_PET_DAMAGE_MULTI"; case SPELL_AURA_MOD_SHIELD_BLOCKVALUE: return "SPELL_AURA_MOD_SHIELD_BLOCKVALUE"; case SPELL_AURA_NO_PVP_CREDIT: return "SPELL_AURA_NO_PVP_CREDIT"; case SPELL_AURA_MOD_AOE_AVOIDANCE: return "SPELL_AURA_MOD_AOE_AVOIDANCE"; case SPELL_AURA_MOD_HEALTH_REGEN_IN_COMBAT: return "SPELL_AURA_MOD_HEALTH_REGEN_IN_COMBAT"; case SPELL_AURA_POWER_BURN: return "SPELL_AURA_POWER_BURN"; case SPELL_AURA_MOD_CRIT_DAMAGE_BONUS: return "SPELL_AURA_MOD_CRIT_DAMAGE_BONUS"; case SPELL_AURA_164: return "SPELL_AURA_164"; case SPELL_AURA_MELEE_ATTACK_POWER_ATTACKER_BONUS: return "SPELL_AURA_MELEE_ATTACK_POWER_ATTACKER_BONUS"; case SPELL_AURA_MOD_ATTACK_POWER_PCT: return "SPELL_AURA_MOD_ATTACK_POWER_PCT"; case SPELL_AURA_MOD_RANGED_ATTACK_POWER_PCT: return "SPELL_AURA_MOD_RANGED_ATTACK_POWER_PCT"; case SPELL_AURA_MOD_DAMAGE_DONE_VERSUS: return "SPELL_AURA_MOD_DAMAGE_DONE_VERSUS"; case SPELL_AURA_MOD_CRIT_PERCENT_VERSUS: return "SPELL_AURA_MOD_CRIT_PERCENT_VERSUS"; case SPELL_AURA_DETECT_AMORE: return "SPELL_AURA_DETECT_AMORE"; case SPELL_AURA_MOD_SPEED_NOT_STACK: return "SPELL_AURA_MOD_SPEED_NOT_STACK"; case SPELL_AURA_MOD_MOUNTED_SPEED_NOT_STACK: return "SPELL_AURA_MOD_MOUNTED_SPEED_NOT_STACK"; case SPELL_AURA_173: return "SPELL_AURA_173"; case SPELL_AURA_MOD_SPELL_DAMAGE_OF_STAT_PERCENT: return "SPELL_AURA_MOD_SPELL_DAMAGE_OF_STAT_PERCENT"; case SPELL_AURA_MOD_SPELL_HEALING_OF_STAT_PERCENT: return "SPELL_AURA_MOD_SPELL_HEALING_OF_STAT_PERCENT"; case SPELL_AURA_SPIRIT_OF_REDEMPTION: return "SPELL_AURA_SPIRIT_OF_REDEMPTION"; case SPELL_AURA_AOE_CHARM: return "SPELL_AURA_AOE_CHARM"; case SPELL_AURA_MOD_DEBUFF_RESISTANCE: return "SPELL_AURA_MOD_DEBUFF_RESISTANCE"; case SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE: return "SPELL_AURA_MOD_ATTACKER_SPELL_CRIT_CHANCE"; case SPELL_AURA_MOD_FLAT_SPELL_DAMAGE_VERSUS: return "SPELL_AURA_MOD_FLAT_SPELL_DAMAGE_VERSUS"; case SPELL_AURA_181: return "SPELL_AURA_181"; case SPELL_AURA_MOD_RESISTANCE_OF_STAT_PERCENT: return "SPELL_AURA_MOD_RESISTANCE_OF_STAT_PERCENT"; case SPELL_AURA_MOD_CRITICAL_THREAT: return "SPELL_AURA_MOD_CRITICAL_THREAT"; case SPELL_AURA_MOD_ATTACKER_MELEE_HIT_CHANCE: return "SPELL_AURA_MOD_ATTACKER_MELEE_HIT_CHANCE"; case SPELL_AURA_MOD_ATTACKER_RANGED_HIT_CHANCE: return "SPELL_AURA_MOD_ATTACKER_RANGED_HIT_CHANCE"; case SPELL_AURA_MOD_ATTACKER_SPELL_HIT_CHANCE: return "SPELL_AURA_MOD_ATTACKER_SPELL_HIT_CHANCE"; case SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_CHANCE: return "SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_CHANCE"; case SPELL_AURA_MOD_ATTACKER_RANGED_CRIT_CHANCE: return "SPELL_AURA_MOD_ATTACKER_RANGED_CRIT_CHANCE"; case SPELL_AURA_MOD_RATING: return "SPELL_AURA_MOD_RATING"; case SPELL_AURA_MOD_FACTION_REPUTATION_GAIN: return "SPELL_AURA_MOD_FACTION_REPUTATION_GAIN"; case SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED: return "SPELL_AURA_USE_NORMAL_MOVEMENT_SPEED"; case SPELL_AURA_MOD_MELEE_RANGED_HASTE: return "SPELL_AURA_MOD_MELEE_RANGED_HASTE"; case SPELL_AURA_MELEE_SLOW: return "SPELL_AURA_MELEE_SLOW"; case SPELL_AURA_MOD_TARGET_ABSORB_SCHOOL: return "SPELL_AURA_MOD_TARGET_ABSORB_SCHOOL"; case SPELL_AURA_MOD_TARGET_ABILITY_ABSORB_SCHOOL: return "SPELL_AURA_MOD_TARGET_ABILITY_ABSORB_SCHOOL"; case SPELL_AURA_MOD_COOLDOWN: return "SPELL_AURA_MOD_COOLDOWN"; case SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE: return "SPELL_AURA_MOD_ATTACKER_SPELL_AND_WEAPON_CRIT_CHANCE"; case SPELL_AURA_198: return "SPELL_AURA_198"; case SPELL_AURA_MOD_INCREASES_SPELL_PCT_TO_HIT: return "SPELL_AURA_MOD_INCREASES_SPELL_PCT_TO_HIT"; case SPELL_AURA_MOD_XP_PCT: return "SPELL_AURA_MOD_XP_PCT"; case SPELL_AURA_FLY: return "SPELL_AURA_FLY"; case SPELL_AURA_IGNORE_COMBAT_RESULT: return "SPELL_AURA_IGNORE_COMBAT_RESULT"; case SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_DAMAGE: return "SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_DAMAGE"; case SPELL_AURA_MOD_ATTACKER_RANGED_CRIT_DAMAGE: return "SPELL_AURA_MOD_ATTACKER_RANGED_CRIT_DAMAGE"; case SPELL_AURA_MOD_SCHOOL_CRIT_DMG_TAKEN: return "SPELL_AURA_MOD_SCHOOL_CRIT_DMG_TAKEN"; case SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED: return "SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED"; case SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED: return "SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED"; case SPELL_AURA_MOD_FLIGHT_SPEED_ALWAYS: return "SPELL_AURA_MOD_FLIGHT_SPEED_ALWAYS"; case SPELL_AURA_MOD_MOUNTED_FLIGHT_SPEED_ALWAYS: return "SPELL_AURA_MOD_MOUNTED_FLIGHT_SPEED_ALWAYS"; case SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACKING: return "SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACKING"; case SPELL_AURA_MOD_FLIGHT_SPEED_MOUNTED_NOT_STACKING: return "SPELL_AURA_MOD_FLIGHT_SPEED_MOUNTED_NOT_STACKING"; case SPELL_AURA_MOD_RANGED_ATTACK_POWER_OF_STAT_PERCENT: return "SPELL_AURA_MOD_RANGED_ATTACK_POWER_OF_STAT_PERCENT"; case SPELL_AURA_MOD_RAGE_FROM_DAMAGE_DEALT: return "SPELL_AURA_MOD_RAGE_FROM_DAMAGE_DEALT"; case SPELL_AURA_214: return "SPELL_AURA_214"; case SPELL_AURA_ARENA_PREPARATION: return "SPELL_AURA_ARENA_PREPARATION"; case SPELL_AURA_HASTE_SPELLS: return "SPELL_AURA_HASTE_SPELLS"; case SPELL_AURA_MOD_MELEE_HASTE_2: return "SPELL_AURA_MOD_MELEE_HASTE_2"; case SPELL_AURA_HASTE_RANGED: return "SPELL_AURA_HASTE_RANGED"; case SPELL_AURA_MOD_MANA_REGEN_FROM_STAT: return "SPELL_AURA_MOD_MANA_REGEN_FROM_STAT"; case SPELL_AURA_MOD_RATING_FROM_STAT: return "SPELL_AURA_MOD_RATING_FROM_STAT"; case SPELL_AURA_MOD_DETAUNT: return "SPELL_AURA_MOD_DETAUNT"; case SPELL_AURA_222: return "SPELL_AURA_222"; case SPELL_AURA_RAID_PROC_FROM_CHARGE: return "SPELL_AURA_RAID_PROC_FROM_CHARGE"; case SPELL_AURA_224: return "SPELL_AURA_224"; case SPELL_AURA_RAID_PROC_FROM_CHARGE_WITH_VALUE: return "SPELL_AURA_RAID_PROC_FROM_CHARGE_WITH_VALUE"; case SPELL_AURA_PERIODIC_DUMMY: return "SPELL_AURA_PERIODIC_DUMMY"; case SPELL_AURA_PERIODIC_TRIGGER_SPELL_WITH_VALUE: return "SPELL_AURA_PERIODIC_TRIGGER_SPELL_WITH_VALUE"; case SPELL_AURA_DETECT_STEALTH: return "SPELL_AURA_DETECT_STEALTH"; case SPELL_AURA_MOD_AOE_DAMAGE_AVOIDANCE: return "SPELL_AURA_MOD_AOE_DAMAGE_AVOIDANCE"; case SPELL_AURA_230: return "SPELL_AURA_230"; case SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE: return "SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE"; case SPELL_AURA_MECHANIC_DURATION_MOD: return "SPELL_AURA_MECHANIC_DURATION_MOD"; case SPELL_AURA_CHANGE_MODEL_FOR_ALL_HUMANOIDS: return "SPELL_AURA_CHANGE_MODEL_FOR_ALL_HUMANOIDS"; case SPELL_AURA_MECHANIC_DURATION_MOD_NOT_STACK: return "SPELL_AURA_MECHANIC_DURATION_MOD_NOT_STACK"; case SPELL_AURA_MOD_DISPEL_RESIST: return "SPELL_AURA_MOD_DISPEL_RESIST"; case SPELL_AURA_CONTROL_VEHICLE: return "SPELL_AURA_CONTROL_VEHICLE"; case SPELL_AURA_MOD_SPELL_DAMAGE_OF_ATTACK_POWER: return "SPELL_AURA_MOD_SPELL_DAMAGE_OF_ATTACK_POWER"; case SPELL_AURA_MOD_SPELL_HEALING_OF_ATTACK_POWER: return "SPELL_AURA_MOD_SPELL_HEALING_OF_ATTACK_POWER"; case SPELL_AURA_MOD_SCALE_2: return "SPELL_AURA_MOD_SCALE_2"; case SPELL_AURA_MOD_EXPERTISE: return "SPELL_AURA_MOD_EXPERTISE"; case SPELL_AURA_FORCE_MOVE_FORWARD: return "SPELL_AURA_FORCE_MOVE_FORWARD"; case SPELL_AURA_MOD_SPELL_DAMAGE_FROM_HEALING: return "SPELL_AURA_MOD_SPELL_DAMAGE_FROM_HEALING"; case SPELL_AURA_MOD_FACTION: return "SPELL_AURA_MOD_FACTION"; case SPELL_AURA_COMPREHEND_LANGUAGE: return "SPELL_AURA_COMPREHEND_LANGUAGE"; case SPELL_AURA_MOD_AURA_DURATION_BY_DISPEL: return "SPELL_AURA_MOD_AURA_DURATION_BY_DISPEL"; case SPELL_AURA_MOD_AURA_DURATION_BY_DISPEL_NOT_STACK: return "SPELL_AURA_MOD_AURA_DURATION_BY_DISPEL_NOT_STACK"; case SPELL_AURA_CLONE_CASTER: return "SPELL_AURA_CLONE_CASTER"; case SPELL_AURA_MOD_COMBAT_RESULT_CHANCE: return "SPELL_AURA_MOD_COMBAT_RESULT_CHANCE"; case SPELL_AURA_CONVERT_RUNE: return "SPELL_AURA_CONVERT_RUNE"; case SPELL_AURA_MOD_INCREASE_HEALTH_2: return "SPELL_AURA_MOD_INCREASE_HEALTH_2"; case SPELL_AURA_MOD_ENEMY_DODGE: return "SPELL_AURA_MOD_ENEMY_DODGE"; case SPELL_AURA_MOD_SPEED_SLOW_ALL: return "SPELL_AURA_MOD_SPEED_SLOW_ALL"; case SPELL_AURA_MOD_BLOCK_CRIT_CHANCE: return "SPELL_AURA_MOD_BLOCK_CRIT_CHANCE"; case SPELL_AURA_MOD_DISARM_OFFHAND: return "SPELL_AURA_MOD_DISARM_OFFHAND"; case SPELL_AURA_MOD_MECHANIC_DAMAGE_TAKEN_PERCENT: return "SPELL_AURA_MOD_MECHANIC_DAMAGE_TAKEN_PERCENT"; case SPELL_AURA_NO_REAGENT_USE: return "SPELL_AURA_NO_REAGENT_USE"; case SPELL_AURA_MOD_TARGET_RESIST_BY_SPELL_CLASS: return "SPELL_AURA_MOD_TARGET_RESIST_BY_SPELL_CLASS"; case SPELL_AURA_258: return "SPELL_AURA_258"; case SPELL_AURA_MOD_HOT_PCT: return "SPELL_AURA_MOD_HOT_PCT"; case SPELL_AURA_SCREEN_EFFECT: return "SPELL_AURA_SCREEN_EFFECT"; case SPELL_AURA_PHASE: return "SPELL_AURA_PHASE"; case SPELL_AURA_ABILITY_IGNORE_AURASTATE: return "SPELL_AURA_ABILITY_IGNORE_AURASTATE"; case SPELL_AURA_ALLOW_ONLY_ABILITY: return "SPELL_AURA_ALLOW_ONLY_ABILITY"; case SPELL_AURA_264: return "SPELL_AURA_264"; case SPELL_AURA_265: return "SPELL_AURA_265"; case SPELL_AURA_266: return "SPELL_AURA_266"; case SPELL_AURA_MOD_IMMUNE_AURA_APPLY_SCHOOL: return "SPELL_AURA_MOD_IMMUNE_AURA_APPLY_SCHOOL"; case SPELL_AURA_MOD_ATTACK_POWER_OF_STAT_PERCENT: return "SPELL_AURA_MOD_ATTACK_POWER_OF_STAT_PERCENT"; case SPELL_AURA_MOD_IGNORE_TARGET_RESIST: return "SPELL_AURA_MOD_IGNORE_TARGET_RESIST"; case SPELL_AURA_MOD_ABILITY_IGNORE_TARGET_RESIST: return "SPELL_AURA_MOD_ABILITY_IGNORE_TARGET_RESIST"; case SPELL_AURA_MOD_DAMAGE_FROM_CASTER: return "SPELL_AURA_MOD_DAMAGE_FROM_CASTER"; case SPELL_AURA_IGNORE_MELEE_RESET: return "SPELL_AURA_IGNORE_MELEE_RESET"; case SPELL_AURA_X_RAY: return "SPELL_AURA_X_RAY"; case SPELL_AURA_ABILITY_CONSUME_NO_AMMO: return "SPELL_AURA_ABILITY_CONSUME_NO_AMMO"; case SPELL_AURA_MOD_IGNORE_SHAPESHIFT: return "SPELL_AURA_MOD_IGNORE_SHAPESHIFT"; case SPELL_AURA_MOD_DAMAGE_DONE_FOR_MECHANIC: return "SPELL_AURA_MOD_DAMAGE_DONE_FOR_MECHANIC"; case SPELL_AURA_MOD_MAX_AFFECTED_TARGETS: return "SPELL_AURA_MOD_MAX_AFFECTED_TARGETS"; case SPELL_AURA_MOD_DISARM_RANGED: return "SPELL_AURA_MOD_DISARM_RANGED"; case SPELL_AURA_INITIALIZE_IMAGES: return "SPELL_AURA_INITIALIZE_IMAGES"; case SPELL_AURA_MOD_ARMOR_PENETRATION_PCT: return "SPELL_AURA_MOD_ARMOR_PENETRATION_PCT"; case SPELL_AURA_MOD_HONOR_GAIN_PCT: return "SPELL_AURA_MOD_HONOR_GAIN_PCT"; case SPELL_AURA_MOD_BASE_HEALTH_PCT: return "SPELL_AURA_MOD_BASE_HEALTH_PCT"; case SPELL_AURA_MOD_HEALING_RECEIVED: return "SPELL_AURA_MOD_HEALING_RECEIVED"; case SPELL_AURA_LINKED: return "SPELL_AURA_LINKED"; case SPELL_AURA_MOD_ATTACK_POWER_OF_ARMOR: return "SPELL_AURA_MOD_ATTACK_POWER_OF_ARMOR"; case SPELL_AURA_ABILITY_PERIODIC_CRIT: return "SPELL_AURA_ABILITY_PERIODIC_CRIT"; case SPELL_AURA_DEFLECT_SPELLS: return "SPELL_AURA_DEFLECT_SPELLS"; case SPELL_AURA_IGNORE_HIT_DIRECTION: return "SPELL_AURA_IGNORE_HIT_DIRECTION"; case SPELL_AURA_PREVENT_DURABILITY_LOSS: return "SPELL_AURA_PREVENT_DURABILITY_LOSS"; case SPELL_AURA_MOD_CRIT_PCT: return "SPELL_AURA_MOD_CRIT_PCT"; case SPELL_AURA_MOD_XP_QUEST_PCT: return "SPELL_AURA_MOD_XP_QUEST_PCT"; case SPELL_AURA_OPEN_STABLE: return "SPELL_AURA_OPEN_STABLE"; case SPELL_AURA_OVERRIDE_SPELLS: return "SPELL_AURA_OVERRIDE_SPELLS"; case SPELL_AURA_PREVENT_REGENERATE_POWER: return "SPELL_AURA_PREVENT_REGENERATE_POWER"; case SPELL_AURA_295: return "SPELL_AURA_295"; case SPELL_AURA_SET_VEHICLE_ID: return "SPELL_AURA_SET_VEHICLE_ID"; case SPELL_AURA_BLOCK_SPELL_FAMILY: return "SPELL_AURA_BLOCK_SPELL_FAMILY"; case SPELL_AURA_STRANGULATE: return "SPELL_AURA_STRANGULATE"; case SPELL_AURA_299: return "SPELL_AURA_299"; case SPELL_AURA_SHARE_DAMAGE_PCT: return "SPELL_AURA_SHARE_DAMAGE_PCT"; case SPELL_AURA_SCHOOL_HEAL_ABSORB: return "SPELL_AURA_SCHOOL_HEAL_ABSORB"; case SPELL_AURA_302: return "SPELL_AURA_302"; case SPELL_AURA_MOD_DAMAGE_DONE_VERSUS_AURASTATE: return "SPELL_AURA_MOD_DAMAGE_DONE_VERSUS_AURASTATE"; case SPELL_AURA_MOD_FAKE_INEBRIATE: return "SPELL_AURA_MOD_FAKE_INEBRIATE"; case SPELL_AURA_MOD_MINIMUM_SPEED: return "SPELL_AURA_MOD_MINIMUM_SPEED"; case SPELL_AURA_306: return "SPELL_AURA_306"; case SPELL_AURA_HEAL_ABSORB_TEST: return "SPELL_AURA_HEAL_ABSORB_TEST"; case SPELL_AURA_MOD_CRIT_CHANCE_FOR_CASTER: return "SPELL_AURA_MOD_CRIT_CHANCE_FOR_CASTER"; case SPELL_AURA_309: return "SPELL_AURA_309"; case SPELL_AURA_MOD_CREATURE_AOE_DAMAGE_AVOIDANCE: return "SPELL_AURA_MOD_CREATURE_AOE_DAMAGE_AVOIDANCE"; case SPELL_AURA_311: return "SPELL_AURA_311"; case SPELL_AURA_312: return "SPELL_AURA_312"; case SPELL_AURA_313: return "SPELL_AURA_313"; case SPELL_AURA_PREVENT_RESURRECTION: return "SPELL_AURA_PREVENT_RESURRECTION"; case SPELL_AURA_UNDERWATER_WALKING: return "SPELL_AURA_UNDERWATER_WALKING"; case SPELL_AURA_PERIODIC_HASTE: return "SPELL_AURA_PERIODIC_HASTE"; default: return "UNKNOWN_AURA"; } } static char const* GetTargetName(uint32 target) { switch (target) { case TARGET_UNIT_CASTER: return "TARGET_UNIT_CASTER"; case TARGET_UNIT_NEARBY_ENEMY: return "TARGET_UNIT_NEARBY_ENEMY"; case TARGET_UNIT_NEARBY_ALLY: return "TARGET_UNIT_NEARBY_ALLY"; case TARGET_UNIT_NEARBY_PARTY: return "TARGET_UNIT_NEARBY_PARTY"; case TARGET_UNIT_PET: return "TARGET_UNIT_PET"; case TARGET_UNIT_TARGET_ENEMY: return "TARGET_UNIT_TARGET_ENEMY"; case TARGET_UNIT_SRC_AREA_ENTRY: return "TARGET_UNIT_SRC_AREA_ENTRY"; case TARGET_UNIT_DEST_AREA_ENTRY: return "TARGET_UNIT_DEST_AREA_ENTRY"; case TARGET_DEST_HOME: return "TARGET_DEST_HOME"; case TARGET_UNIT_SRC_AREA_UNK_11: return "TARGET_UNIT_SRC_AREA_UNK_11"; case TARGET_UNIT_SRC_AREA_ENEMY: return "TARGET_UNIT_SRC_AREA_ENEMY"; case TARGET_UNIT_DEST_AREA_ENEMY: return "TARGET_UNIT_DEST_AREA_ENEMY"; case TARGET_DEST_DB: return "TARGET_DEST_DB"; case TARGET_DEST_CASTER: return "TARGET_DEST_CASTER"; case TARGET_UNIT_CASTER_AREA_PARTY: return "TARGET_UNIT_CASTER_AREA_PARTY"; case TARGET_UNIT_TARGET_ALLY: return "TARGET_UNIT_TARGET_ALLY"; case TARGET_SRC_CASTER: return "TARGET_SRC_CASTER"; case TARGET_GAMEOBJECT_TARGET: return "TARGET_GAMEOBJECT_TARGET"; case TARGET_UNIT_CONE_ENEMY_24: return "TARGET_UNIT_CONE_ENEMY_24"; case TARGET_UNIT_TARGET_ANY: return "TARGET_UNIT_TARGET_ANY"; case TARGET_GAMEOBJECT_ITEM_TARGET: return "TARGET_GAMEOBJECT_ITEM_TARGET"; case TARGET_UNIT_MASTER: return "TARGET_UNIT_MASTER"; case TARGET_DEST_DYNOBJ_ENEMY: return "TARGET_DEST_DYNOBJ_ENEMY"; case TARGET_DEST_DYNOBJ_ALLY: return "TARGET_DEST_DYNOBJ_ALLY"; case TARGET_UNIT_SRC_AREA_ALLY: return "TARGET_UNIT_SRC_AREA_ALLY"; case TARGET_UNIT_DEST_AREA_ALLY: return "TARGET_UNIT_DEST_AREA_ALLY"; case TARGET_DEST_CASTER_SUMMON: return "TARGET_DEST_CASTER_SUMMON"; case TARGET_UNIT_SRC_AREA_PARTY: return "TARGET_UNIT_SRC_AREA_PARTY"; case TARGET_UNIT_DEST_AREA_PARTY: return "TARGET_UNIT_DEST_AREA_PARTY"; case TARGET_UNIT_TARGET_PARTY: return "TARGET_UNIT_TARGET_PARTY"; case TARGET_DEST_CASTER_36: return "TARGET_DEST_CASTER_36"; case TARGET_UNIT_LASTTARGET_AREA_PARTY: return "TARGET_UNIT_LASTTARGET_AREA_PARTY"; case TARGET_UNIT_NEARBY_ENTRY: return "TARGET_UNIT_NEARBY_ENTRY"; case TARGET_DEST_CASTER_FISHING: return "TARGET_DEST_CASTER_FISHING"; case TARGET_GAMEOBJECT_NEARBY_ENTRY: return "TARGET_GAMEOBJECT_NEARBY_ENTRY"; case TARGET_DEST_CASTER_FRONT_RIGHT: return "TARGET_DEST_CASTER_FRONT_RIGHT"; case TARGET_DEST_CASTER_BACK_RIGHT: return "TARGET_DEST_CASTER_BACK_RIGHT"; case TARGET_DEST_CASTER_BACK_LEFT: return "TARGET_DEST_CASTER_BACK_LEFT"; case TARGET_DEST_CASTER_FRONT_LEFT: return "TARGET_DEST_CASTER_FRONT_LEFT"; case TARGET_UNIT_TARGET_CHAINHEAL_ALLY: return "TARGET_UNIT_TARGET_CHAINHEAL_ALLY"; case TARGET_DEST_NEARBY_ENTRY: return "TARGET_DEST_NEARBY_ENTRY"; case TARGET_DEST_CASTER_FRONT: return "TARGET_DEST_CASTER_FRONT"; case TARGET_DEST_CASTER_BACK: return "TARGET_DEST_CASTER_BACK"; case TARGET_DEST_CASTER_RIGHT: return "TARGET_DEST_CASTER_RIGHT"; case TARGET_DEST_CASTER_LEFT: return "TARGET_DEST_CASTER_LEFT"; case TARGET_GAMEOBJECT_SRC_AREA: return "TARGET_GAMEOBJECT_SRC_AREA"; case TARGET_GAMEOBJECT_DEST_AREA: return "TARGET_GAMEOBJECT_DEST_AREA"; case TARGET_DEST_TARGET_ENEMY: return "TARGET_DEST_TARGET_ENEMY"; case TARGET_UNIT_CONE_ENEMY_54: return "TARGET_UNIT_CONE_ENEMY_54"; case TARGET_DEST_CASTER_FRONT_LEAP: return "TARGET_DEST_CASTER_FRONT_LEAP"; case TARGET_UNIT_CASTER_AREA_RAID: return "TARGET_UNIT_CASTER_AREA_RAID"; case TARGET_UNIT_TARGET_RAID: return "TARGET_UNIT_TARGET_RAID"; case TARGET_UNIT_NEARBY_RAID: return "TARGET_UNIT_NEARBY_RAID"; case TARGET_UNIT_CONE_ALLY: return "TARGET_UNIT_CONE_ALLY"; case TARGET_UNIT_CONE_ENTRY: return "TARGET_UNIT_CONE_ENTRY"; case TARGET_UNIT_TARGET_AREA_RAID_CLASS: return "TARGET_UNIT_TARGET_AREA_RAID_CLASS"; case TARGET_UNK_62: return "TARGET_UNK_62"; case TARGET_DEST_TARGET_ANY: return "TARGET_DEST_TARGET_ANY"; case TARGET_DEST_TARGET_FRONT: return "TARGET_DEST_TARGET_FRONT"; case TARGET_DEST_TARGET_BACK: return "TARGET_DEST_TARGET_BACK"; case TARGET_DEST_TARGET_RIGHT: return "TARGET_DEST_TARGET_RIGHT"; case TARGET_DEST_TARGET_LEFT: return "TARGET_DEST_TARGET_LEFT"; case TARGET_DEST_TARGET_FRONT_RIGHT: return "TARGET_DEST_TARGET_FRONT_RIGHT"; case TARGET_DEST_TARGET_BACK_RIGHT: return "TARGET_DEST_TARGET_BACK_RIGHT"; case TARGET_DEST_TARGET_BACK_LEFT: return "TARGET_DEST_TARGET_BACK_LEFT"; case TARGET_DEST_TARGET_FRONT_LEFT: return "TARGET_DEST_TARGET_FRONT_LEFT"; case TARGET_DEST_CASTER_RANDOM: return "TARGET_DEST_CASTER_RANDOM"; case TARGET_DEST_CASTER_RADIUS: return "TARGET_DEST_CASTER_RADIUS"; case TARGET_DEST_TARGET_RANDOM: return "TARGET_DEST_TARGET_RANDOM"; case TARGET_DEST_TARGET_RADIUS: return "TARGET_DEST_TARGET_RADIUS"; case TARGET_DEST_CHANNEL_TARGET: return "TARGET_DEST_CHANNEL_TARGET"; case TARGET_UNIT_CHANNEL_TARGET: return "TARGET_UNIT_CHANNEL_TARGET"; case TARGET_DEST_DEST_FRONT: return "TARGET_DEST_DEST_FRONT"; case TARGET_DEST_DEST_BACK: return "TARGET_DEST_DEST_BACK"; case TARGET_DEST_DEST_RIGHT: return "TARGET_DEST_DEST_RIGHT"; case TARGET_DEST_DEST_LEFT: return "TARGET_DEST_DEST_LEFT"; case TARGET_DEST_DEST_FRONT_RIGHT: return "TARGET_DEST_DEST_FRONT_RIGHT"; case TARGET_DEST_DEST_BACK_RIGHT: return "TARGET_DEST_DEST_BACK_RIGHT"; case TARGET_DEST_DEST_BACK_LEFT: return "TARGET_DEST_DEST_BACK_LEFT"; case TARGET_DEST_DEST_FRONT_LEFT: return "TARGET_DEST_DEST_FRONT_LEFT"; case TARGET_DEST_DEST_RANDOM: return "TARGET_DEST_DEST_RANDOM"; case TARGET_DEST_DEST: return "TARGET_DEST_DEST"; case TARGET_DEST_DYNOBJ_NONE: return "TARGET_DEST_DYNOBJ_NONE"; case TARGET_DEST_TRAJ: return "TARGET_DEST_TRAJ"; case TARGET_UNIT_TARGET_MINIPET: return "TARGET_UNIT_TARGET_MINIPET"; case TARGET_DEST_DEST_RADIUS: return "TARGET_DEST_DEST_RADIUS"; case TARGET_UNIT_SUMMONER: return "TARGET_UNIT_SUMMONER"; case TARGET_CORPSE_SRC_AREA_ENEMY: return "TARGET_CORPSE_SRC_AREA_ENEMY"; case TARGET_UNIT_VEHICLE: return "TARGET_UNIT_VEHICLE"; case TARGET_UNIT_TARGET_PASSENGER: return "TARGET_UNIT_TARGET_PASSENGER"; case TARGET_UNIT_PASSENGER_0: return "TARGET_UNIT_PASSENGER_0"; case TARGET_UNIT_PASSENGER_1: return "TARGET_UNIT_PASSENGER_1"; case TARGET_UNIT_PASSENGER_2: return "TARGET_UNIT_PASSENGER_2"; case TARGET_UNIT_PASSENGER_3: return "TARGET_UNIT_PASSENGER_3"; case TARGET_UNIT_PASSENGER_4: return "TARGET_UNIT_PASSENGER_4"; case TARGET_UNIT_PASSENGER_5: return "TARGET_UNIT_PASSENGER_5"; case TARGET_UNIT_PASSENGER_6: return "TARGET_UNIT_PASSENGER_6"; case TARGET_UNIT_PASSENGER_7: return "TARGET_UNIT_PASSENGER_7"; case TARGET_UNIT_CONE_ENEMY_104: return "TARGET_UNIT_CONE_ENEMY_104"; case TARGET_UNIT_UNK_105: return "TARGET_UNIT_UNK_105"; case TARGET_DEST_CHANNEL_CASTER: return "TARGET_DEST_CHANNEL_CASTER"; case TARGET_UNK_DEST_AREA_UNK_107: return "TARGET_UNK_DEST_AREA_UNK_107"; case TARGET_GAMEOBJECT_CONE: return "TARGET_GAMEOBJECT_CONE"; case TARGET_DEST_UNK_110: return "TARGET_DEST_UNK_110"; default: return "TARGET_NONE"; } } static char const* GetDispelName(uint32 dispel) { switch (dispel) { case DISPEL_NONE: return "DISPEL_NONE"; case DISPEL_MAGIC: return "DISPEL_MAGIC"; case DISPEL_CURSE: return "DISPEL_CURSE"; case DISPEL_DISEASE: return "DISPEL_DISEASE"; case DISPEL_POISON: return "DISPEL_POISON"; case DISPEL_STEALTH: return "DISPEL_STEALTH"; case DISPEL_INVISIBILITY: return "DISPEL_INVISIBILITY"; case DISPEL_ALL: return "DISPEL_ALL"; case DISPEL_SPE_NPC_ONLY: return "DISPEL_SPE_NPC_ONLY"; case DISPEL_ENRAGE: return "DISPEL_ENRAGE"; case DISPEL_ZG_TICKET: return "DISPEL_ZG_TICKET"; case DESPEL_OLD_UNUSED: return "DESPEL_OLD_UNUSED"; default: return "UNKNOWN_DISPEL"; } } static char const* GetPowerName(uint32 power) { switch (power) { case POWER_MANA: return "POWER_MANA"; case POWER_RAGE: return "POWER_RAGE"; case POWER_FOCUS: return "POWER_FOCUS"; case POWER_ENERGY: return "POWER_ENERGY"; case POWER_HAPPINESS: return "POWER_HAPPINESS"; case POWER_RUNE: return "POWER_RUNE"; case POWER_RUNIC_POWER: return "POWER_RUNIC_POWER"; case POWER_HEALTH: return "POWER_HEALTH"; default: return "UNKNOWN_POWER"; } } static char const* GetDmgClassName(uint32 dmgClass) { switch (dmgClass) { case SPELL_DAMAGE_CLASS_NONE: return "SPELL_DAMAGE_CLASS_NONE"; case SPELL_DAMAGE_CLASS_MAGIC: return "SPELL_DAMAGE_CLASS_MAGIC"; case SPELL_DAMAGE_CLASS_MELEE: return "SPELL_DAMAGE_CLASS_MELEE"; case SPELL_DAMAGE_CLASS_RANGED: return "SPELL_DAMAGE_CLASS_RANGED"; default: return "UNKNOWN_DMG_CLASS"; } } static char const* GetPreventionTypeName(uint32 type) { switch (type) { case SPELL_PREVENTION_TYPE_NONE: return "SPELL_PREVENTION_TYPE_NONE"; case SPELL_PREVENTION_TYPE_SILENCE: return "SPELL_PREVENTION_TYPE_SILENCE"; case SPELL_PREVENTION_TYPE_PACIFY: return "SPELL_PREVENTION_TYPE_PACIFY"; default: return "UNKNOWN_PREVENTION_TYPE"; } } static char const* GetSpellFamilyName(uint32 family) { switch (family) { case SPELLFAMILY_GENERIC: return "SPELLFAMILY_GENERIC"; case SPELLFAMILY_UNK1: return "SPELLFAMILY_UNK1"; case SPELLFAMILY_MAGE: return "SPELLFAMILY_MAGE"; case SPELLFAMILY_WARRIOR: return "SPELLFAMILY_WARRIOR"; case SPELLFAMILY_WARLOCK: return "SPELLFAMILY_WARLOCK"; case SPELLFAMILY_PRIEST: return "SPELLFAMILY_PRIEST"; case SPELLFAMILY_DRUID: return "SPELLFAMILY_DRUID"; case SPELLFAMILY_ROGUE: return "SPELLFAMILY_ROGUE"; case SPELLFAMILY_HUNTER: return "SPELLFAMILY_HUNTER"; case SPELLFAMILY_PALADIN: return "SPELLFAMILY_PALADIN"; case SPELLFAMILY_SHAMAN: return "SPELLFAMILY_SHAMAN"; case SPELLFAMILY_UNK2: return "SPELLFAMILY_UNK2"; case SPELLFAMILY_POTION: return "SPELLFAMILY_POTION"; case SPELLFAMILY_DEATHKNIGHT: return "SPELLFAMILY_DEATHKNIGHT"; case SPELLFAMILY_PET: return "SPELLFAMILY_PET"; default: return "UNKNOWN_FAMILY"; } } template static void PrintSpellAttrFlags(ChatHandler* handler, char const* label, uint32 flags) { handler->PSendSysMessage("{}: 0x{:08X}", label, flags); for (auto attr : EnumUtils::Iterate()) if (flags & static_cast(attr)) handler->PSendSysMessage(" - {}", EnumUtils::ToConstant(attr)); } static void PrintBasicInfo(ChatHandler* handler, SpellInfo const* spell) { int locale = handler->GetSessionDbcLocale(); handler->PSendSysMessage("ID: {}", spell->Id); handler->PSendSysMessage("Name: {}", spell->SpellName[locale]); if (spell->Rank[locale] && spell->Rank[locale][0] != '\0') handler->PSendSysMessage("Rank: {}", spell->Rank[locale]); handler->PSendSysMessage("Dispel: {} ({})", spell->Dispel, GetDispelName(spell->Dispel)); handler->PSendSysMessage("Mechanic: {} ({})", spell->Mechanic, EnumUtils::ToConstant(static_cast(spell->Mechanic))); } static void PrintAttributes(ChatHandler* handler, SpellInfo const* spell) { PrintSpellAttrFlags(handler, "Attributes", spell->Attributes); PrintSpellAttrFlags(handler, "AttributesEx", spell->AttributesEx); PrintSpellAttrFlags(handler, "AttributesEx2", spell->AttributesEx2); PrintSpellAttrFlags(handler, "AttributesEx3", spell->AttributesEx3); PrintSpellAttrFlags(handler, "AttributesEx4", spell->AttributesEx4); PrintSpellAttrFlags(handler, "AttributesEx5", spell->AttributesEx5); PrintSpellAttrFlags(handler, "AttributesEx6", spell->AttributesEx6); PrintSpellAttrFlags(handler, "AttributesEx7", spell->AttributesEx7); handler->PSendSysMessage("AttributesCu: 0x{:08X}", spell->AttributesCu); if (spell->AttributesCu) { if (spell->AttributesCu & SPELL_ATTR0_CU_ENCHANT_PROC) handler->PSendSysMessage(" - SPELL_ATTR0_CU_ENCHANT_PROC"); if (spell->AttributesCu & SPELL_ATTR0_CU_CONE_BACK) handler->PSendSysMessage(" - SPELL_ATTR0_CU_CONE_BACK"); if (spell->AttributesCu & SPELL_ATTR0_CU_CONE_LINE) handler->PSendSysMessage(" - SPELL_ATTR0_CU_CONE_LINE"); if (spell->AttributesCu & SPELL_ATTR0_CU_SHARE_DAMAGE) handler->PSendSysMessage(" - SPELL_ATTR0_CU_SHARE_DAMAGE"); if (spell->AttributesCu & SPELL_ATTR0_CU_NO_INITIAL_THREAT) handler->PSendSysMessage(" - SPELL_ATTR0_CU_NO_INITIAL_THREAT"); if (spell->AttributesCu & SPELL_ATTR0_CU_AURA_CC) handler->PSendSysMessage(" - SPELL_ATTR0_CU_AURA_CC"); if (spell->AttributesCu & SPELL_ATTR0_CU_DONT_BREAK_STEALTH) handler->PSendSysMessage(" - SPELL_ATTR0_CU_DONT_BREAK_STEALTH"); if (spell->AttributesCu & SPELL_ATTR0_CU_NO_PVP_FLAG) handler->PSendSysMessage(" - SPELL_ATTR0_CU_NO_PVP_FLAG"); if (spell->AttributesCu & SPELL_ATTR0_CU_DIRECT_DAMAGE) handler->PSendSysMessage(" - SPELL_ATTR0_CU_DIRECT_DAMAGE"); if (spell->AttributesCu & SPELL_ATTR0_CU_CHARGE) handler->PSendSysMessage(" - SPELL_ATTR0_CU_CHARGE"); if (spell->AttributesCu & SPELL_ATTR0_CU_PICKPOCKET) handler->PSendSysMessage(" - SPELL_ATTR0_CU_PICKPOCKET"); if (spell->AttributesCu & SPELL_ATTR0_CU_IGNORE_EVADE) handler->PSendSysMessage(" - SPELL_ATTR0_CU_IGNORE_EVADE"); if (spell->AttributesCu & SPELL_ATTR0_CU_NEGATIVE_EFF0) handler->PSendSysMessage(" - SPELL_ATTR0_CU_NEGATIVE_EFF0"); if (spell->AttributesCu & SPELL_ATTR0_CU_NEGATIVE_EFF1) handler->PSendSysMessage(" - SPELL_ATTR0_CU_NEGATIVE_EFF1"); if (spell->AttributesCu & SPELL_ATTR0_CU_NEGATIVE_EFF2) handler->PSendSysMessage(" - SPELL_ATTR0_CU_NEGATIVE_EFF2"); if (spell->AttributesCu & SPELL_ATTR0_CU_IGNORE_ARMOR) handler->PSendSysMessage(" - SPELL_ATTR0_CU_IGNORE_ARMOR"); if (spell->AttributesCu & SPELL_ATTR0_CU_REQ_TARGET_FACING_CASTER) handler->PSendSysMessage(" - SPELL_ATTR0_CU_REQ_TARGET_FACING_CASTER"); if (spell->AttributesCu & SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET) handler->PSendSysMessage(" - SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET"); if (spell->AttributesCu & SPELL_ATTR0_CU_ALLOW_INFLIGHT_TARGET) handler->PSendSysMessage(" - SPELL_ATTR0_CU_ALLOW_INFLIGHT_TARGET"); if (spell->AttributesCu & SPELL_ATTR0_CU_NEEDS_AMMO_DATA) handler->PSendSysMessage(" - SPELL_ATTR0_CU_NEEDS_AMMO_DATA"); if (spell->AttributesCu & SPELL_ATTR0_CU_BINARY_SPELL) handler->PSendSysMessage(" - SPELL_ATTR0_CU_BINARY_SPELL"); if (spell->AttributesCu & SPELL_ATTR0_CU_NO_POSITIVE_TAKEN_BONUS) handler->PSendSysMessage(" - SPELL_ATTR0_CU_NO_POSITIVE_TAKEN_BONUS"); if (spell->AttributesCu & SPELL_ATTR0_CU_SINGLE_AURA_STACK) handler->PSendSysMessage(" - SPELL_ATTR0_CU_SINGLE_AURA_STACK"); if (spell->AttributesCu & SPELL_ATTR0_CU_SCHOOLMASK_NORMAL_WITH_MAGIC) handler->PSendSysMessage(" - SPELL_ATTR0_CU_SCHOOLMASK_NORMAL_WITH_MAGIC"); if (spell->AttributesCu & SPELL_ATTR0_CU_AURA_CANNOT_BE_SAVED) handler->PSendSysMessage(" - SPELL_ATTR0_CU_AURA_CANNOT_BE_SAVED"); if (spell->AttributesCu & SPELL_ATTR0_CU_POSITIVE_EFF0) handler->PSendSysMessage(" - SPELL_ATTR0_CU_POSITIVE_EFF0"); if (spell->AttributesCu & SPELL_ATTR0_CU_POSITIVE_EFF1) handler->PSendSysMessage(" - SPELL_ATTR0_CU_POSITIVE_EFF1"); if (spell->AttributesCu & SPELL_ATTR0_CU_POSITIVE_EFF2) handler->PSendSysMessage(" - SPELL_ATTR0_CU_POSITIVE_EFF2"); if (spell->AttributesCu & SPELL_ATTR0_CU_FORCE_SEND_CATEGORY_COOLDOWNS) handler->PSendSysMessage(" - SPELL_ATTR0_CU_FORCE_SEND_CATEGORY_COOLDOWNS"); if (spell->AttributesCu & SPELL_ATTR0_CU_ONLY_ONE_AREA_AURA) handler->PSendSysMessage(" - SPELL_ATTR0_CU_ONLY_ONE_AREA_AURA"); if (spell->AttributesCu & SPELL_ATTR0_CU_ENCOUNTER_REWARD) handler->PSendSysMessage(" - SPELL_ATTR0_CU_ENCOUNTER_REWARD"); if (spell->AttributesCu & SPELL_ATTR0_CU_BYPASS_MECHANIC_IMMUNITY) handler->PSendSysMessage(" - SPELL_ATTR0_CU_BYPASS_MECHANIC_IMMUNITY"); } handler->PSendSysMessage("Stances: 0x{:08X}", spell->Stances); handler->PSendSysMessage("StancesNot: 0x{:08X}", spell->StancesNot); } static void PrintEffects(ChatHandler* handler, SpellInfo const* spell) { for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) { SpellEffectInfo const& eff = spell->Effects[i]; if (!eff.Effect) continue; handler->PSendSysMessage("--- Effect {} ---", i); handler->PSendSysMessage(" Effect: {} ({})", eff.Effect, GetSpellEffectName(eff.Effect)); handler->PSendSysMessage(" Aura: {} ({})", static_cast(eff.ApplyAuraName), GetAuraTypeName(static_cast(eff.ApplyAuraName))); handler->PSendSysMessage(" BasePoints: {}", eff.BasePoints); handler->PSendSysMessage(" DieSides: {}", eff.DieSides); handler->PSendSysMessage(" RealPointsPerLevel: {:.4f}", eff.RealPointsPerLevel); handler->PSendSysMessage(" PointsPerComboPoint: {:.2f}", eff.PointsPerComboPoint); handler->PSendSysMessage(" ValueMultiplier: {:.4f}", eff.ValueMultiplier); handler->PSendSysMessage(" DamageMultiplier: {:.4f}", eff.DamageMultiplier); handler->PSendSysMessage(" BonusMultiplier: {:.4f}", eff.BonusMultiplier); handler->PSendSysMessage(" MiscValue: {}", eff.MiscValue); handler->PSendSysMessage(" MiscValueB: {}", eff.MiscValueB); handler->PSendSysMessage(" Mechanic: {} ({})", static_cast(eff.Mechanic), EnumUtils::ToConstant(eff.Mechanic)); handler->PSendSysMessage(" TriggerSpell: {}", eff.TriggerSpell); handler->PSendSysMessage(" Amplitude: {}", eff.Amplitude); handler->PSendSysMessage(" ItemType: {}", eff.ItemType); handler->PSendSysMessage(" SpellClassMask: 0x{:08X} 0x{:08X} 0x{:08X}", eff.SpellClassMask[0], eff.SpellClassMask[1], eff.SpellClassMask[2]); } } static void PrintTargets(ChatHandler* handler, SpellInfo const* spell) { handler->PSendSysMessage("Targets: 0x{:08X}", spell->Targets); handler->PSendSysMessage("TargetCreatureType: 0x{:08X}", spell->TargetCreatureType); handler->PSendSysMessage("MaxAffectedTargets: {}", spell->MaxAffectedTargets); handler->PSendSysMessage("MaxTargetLevel: {}", spell->MaxTargetLevel); for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) { SpellEffectInfo const& eff = spell->Effects[i]; if (!eff.Effect) continue; Targets targetA = eff.TargetA.GetTarget(); Targets targetB = eff.TargetB.GetTarget(); handler->PSendSysMessage("--- Effect {} ---", i); handler->PSendSysMessage(" TargetA: {} ({})", static_cast(targetA), GetTargetName(static_cast(targetA))); handler->PSendSysMessage(" TargetB: {} ({})", static_cast(targetB), GetTargetName(static_cast(targetB))); if (eff.RadiusEntry) handler->PSendSysMessage(" Radius: {:.1f}", eff.RadiusEntry->RadiusMax); handler->PSendSysMessage(" ChainTarget: {}", eff.ChainTarget); } } static void PrintGeneralInfo(ChatHandler* handler, SpellInfo const* spell) { if (spell->CastTimeEntry) handler->PSendSysMessage("CastTime: {} ms", spell->CastTimeEntry->CastTime); if (spell->DurationEntry) handler->PSendSysMessage("Duration: {} / {} / {} ms", spell->DurationEntry->Duration[0], spell->DurationEntry->Duration[1], spell->DurationEntry->Duration[2]); if (spell->RangeEntry) handler->PSendSysMessage("Range: {:.1f}-{:.1f} (hostile), {:.1f}-{:.1f} (friendly)", spell->RangeEntry->RangeMin[0], spell->RangeEntry->RangeMax[0], spell->RangeEntry->RangeMin[1], spell->RangeEntry->RangeMax[1]); handler->PSendSysMessage("RecoveryTime: {} ms", spell->RecoveryTime); handler->PSendSysMessage("CategoryRecoveryTime: {} ms", spell->CategoryRecoveryTime); handler->PSendSysMessage("StartRecoveryTime: {} ms (Category: {})", spell->StartRecoveryTime, spell->StartRecoveryCategory); handler->PSendSysMessage("InterruptFlags: 0x{:08X}", spell->InterruptFlags); handler->PSendSysMessage("AuraInterruptFlags: 0x{:08X}", spell->AuraInterruptFlags); handler->PSendSysMessage("ChannelInterruptFlags: 0x{:08X}", spell->ChannelInterruptFlags); handler->PSendSysMessage("ProcFlags: 0x{:08X}", spell->ProcFlags); handler->PSendSysMessage("ProcChance: {}%", spell->ProcChance); handler->PSendSysMessage("ProcCharges: {}", spell->ProcCharges); handler->PSendSysMessage("SpellLevel: {}, BaseLevel: {}, MaxLevel: {}", spell->SpellLevel, spell->BaseLevel, spell->MaxLevel); handler->PSendSysMessage("PowerType: {} ({})", spell->PowerType, GetPowerName(spell->PowerType)); handler->PSendSysMessage("ManaCost: {}", spell->ManaCost); handler->PSendSysMessage("ManaCostPercentage: {}", spell->ManaCostPercentage); handler->PSendSysMessage("ManaPerSecond: {}", spell->ManaPerSecond); handler->PSendSysMessage("Speed: {:.2f}", spell->Speed); handler->PSendSysMessage("StackAmount: {}", spell->StackAmount); if (spell->EquippedItemClass >= 0) handler->PSendSysMessage("EquippedItemClass: {}, SubClassMask: 0x{:08X}, InvTypeMask: 0x{:08X}", spell->EquippedItemClass, static_cast(spell->EquippedItemSubClassMask), static_cast(spell->EquippedItemInventoryTypeMask)); handler->PSendSysMessage("SpellFamilyName: {} ({})", spell->SpellFamilyName, GetSpellFamilyName(spell->SpellFamilyName)); handler->PSendSysMessage("SpellFamilyFlags: 0x{:08X} 0x{:08X} 0x{:08X}", spell->SpellFamilyFlags[0], spell->SpellFamilyFlags[1], spell->SpellFamilyFlags[2]); handler->PSendSysMessage("DmgClass: {} ({})", spell->DmgClass, GetDmgClassName(spell->DmgClass)); handler->PSendSysMessage("PreventionType: {} ({})", spell->PreventionType, GetPreventionTypeName(spell->PreventionType)); handler->PSendSysMessage("SchoolMask: 0x{:02X}", spell->SchoolMask); } static bool HandleSpellInfoAttributesCommand(ChatHandler* handler, SpellInfo const* spell) { if (!spell) { handler->SendErrorMessage(LANG_COMMAND_NOSPELLFOUND); return false; } handler->PSendSysMessage("===== SPELL ATTRIBUTES ====="); PrintBasicInfo(handler, spell); PrintAttributes(handler, spell); handler->PSendSysMessage("============================"); return true; } static bool HandleSpellInfoEffectsCommand(ChatHandler* handler, SpellInfo const* spell) { if (!spell) { handler->SendErrorMessage(LANG_COMMAND_NOSPELLFOUND); return false; } handler->PSendSysMessage("====== SPELL EFFECTS ======"); PrintBasicInfo(handler, spell); PrintEffects(handler, spell); handler->PSendSysMessage("==========================="); return true; } static bool HandleSpellInfoTargetsCommand(ChatHandler* handler, SpellInfo const* spell) { if (!spell) { handler->SendErrorMessage(LANG_COMMAND_NOSPELLFOUND); return false; } handler->PSendSysMessage("====== SPELL TARGETS ======"); PrintBasicInfo(handler, spell); PrintTargets(handler, spell); handler->PSendSysMessage("==========================="); return true; } static bool HandleSpellInfoAllCommand(ChatHandler* handler, SpellInfo const* spell) { if (!spell) { handler->SendErrorMessage(LANG_COMMAND_NOSPELLFOUND); return false; } handler->PSendSysMessage("========== SPELL INFO =========="); PrintBasicInfo(handler, spell); PrintAttributes(handler, spell); PrintGeneralInfo(handler, spell); PrintEffects(handler, spell); PrintTargets(handler, spell); handler->PSendSysMessage("================================"); return true; } }; void AddSC_spellinfo_commandscript() { new spellinfo_commandscript(); }