mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 10:05:32 +01:00
Core/Packets: Implemented SMSG_CAST_FAILED and updated SpellCastResult enum
This commit is contained in:
@@ -1253,7 +1253,7 @@ enum SpellEffectName
|
||||
TOTAL_SPELL_EFFECTS = 245,
|
||||
};
|
||||
|
||||
enum SpellCastResult // (6.0)
|
||||
enum SpellCastResult // 19116
|
||||
{
|
||||
SPELL_FAILED_SUCCESS = 0,
|
||||
SPELL_FAILED_AFFECTING_COMBAT = 1,
|
||||
@@ -1299,203 +1299,224 @@ enum SpellCastResult // (6.0)
|
||||
SPELL_FAILED_GARRISON_OWNED = 41,
|
||||
SPELL_FAILED_GARRISON_MAX_LEVEL = 42,
|
||||
SPELL_FAILED_GARRISON_NOT_UPGRADEABLE = 43,
|
||||
SPELL_FAILED_HIGHLEVEL = 44,
|
||||
SPELL_FAILED_HUNGER_SATIATED = 45,
|
||||
SPELL_FAILED_IMMUNE = 46,
|
||||
SPELL_FAILED_INCORRECT_AREA = 47,
|
||||
SPELL_FAILED_INTERRUPTED = 48,
|
||||
SPELL_FAILED_INTERRUPTED_COMBAT = 49,
|
||||
SPELL_FAILED_ITEM_ALREADY_ENCHANTED = 50,
|
||||
SPELL_FAILED_ITEM_GONE = 51,
|
||||
SPELL_FAILED_ITEM_NOT_FOUND = 52,
|
||||
SPELL_FAILED_ITEM_NOT_READY = 53,
|
||||
SPELL_FAILED_LEVEL_REQUIREMENT = 54,
|
||||
SPELL_FAILED_LINE_OF_SIGHT = 55,
|
||||
SPELL_FAILED_LOWLEVEL = 56,
|
||||
SPELL_FAILED_LOW_CASTLEVEL = 57,
|
||||
SPELL_FAILED_MAINHAND_EMPTY = 58,
|
||||
SPELL_FAILED_MOVING = 59,
|
||||
SPELL_FAILED_NEED_AMMO = 60,
|
||||
SPELL_FAILED_NEED_AMMO_POUCH = 61,
|
||||
SPELL_FAILED_NEED_EXOTIC_AMMO = 62,
|
||||
SPELL_FAILED_NEED_MORE_ITEMS = 63,
|
||||
SPELL_FAILED_NOPATH = 64,
|
||||
SPELL_FAILED_NOT_BEHIND = 65,
|
||||
SPELL_FAILED_NOT_FISHABLE = 66,
|
||||
SPELL_FAILED_NOT_FLYING = 67,
|
||||
SPELL_FAILED_NOT_HERE = 68,
|
||||
SPELL_FAILED_NOT_INFRONT = 69,
|
||||
SPELL_FAILED_NOT_IN_CONTROL = 70,
|
||||
SPELL_FAILED_NOT_KNOWN = 71,
|
||||
SPELL_FAILED_NOT_MOUNTED = 72,
|
||||
SPELL_FAILED_NOT_ON_TAXI = 73,
|
||||
SPELL_FAILED_NOT_ON_TRANSPORT = 74,
|
||||
SPELL_FAILED_NOT_READY = 75,
|
||||
SPELL_FAILED_NOT_SHAPESHIFT = 76,
|
||||
SPELL_FAILED_NOT_STANDING = 77,
|
||||
SPELL_FAILED_NOT_TRADEABLE = 78,
|
||||
SPELL_FAILED_NOT_TRADING = 79,
|
||||
SPELL_FAILED_NOT_UNSHEATHED = 80,
|
||||
SPELL_FAILED_NOT_WHILE_GHOST = 81,
|
||||
SPELL_FAILED_NOT_WHILE_LOOTING = 82,
|
||||
SPELL_FAILED_NO_AMMO = 83,
|
||||
SPELL_FAILED_NO_CHARGES_REMAIN = 84,
|
||||
SPELL_FAILED_NO_CHAMPION = 85,
|
||||
SPELL_FAILED_NO_COMBO_POINTS = 86,
|
||||
SPELL_FAILED_NO_DUELING = 87,
|
||||
SPELL_FAILED_NO_ENDURANCE = 88,
|
||||
SPELL_FAILED_NO_FISH = 89,
|
||||
SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED = 90,
|
||||
SPELL_FAILED_NO_MOUNTS_ALLOWED = 91,
|
||||
SPELL_FAILED_NO_PET = 92,
|
||||
SPELL_FAILED_NO_POWER = 93,
|
||||
SPELL_FAILED_NOTHING_TO_DISPEL = 94,
|
||||
SPELL_FAILED_NOTHING_TO_STEAL = 95,
|
||||
SPELL_FAILED_ONLY_ABOVEWATER = 96,
|
||||
SPELL_FAILED_ONLY_DAYTIME = 97,
|
||||
SPELL_FAILED_ONLY_INDOORS = 98,
|
||||
SPELL_FAILED_ONLY_MOUNTED = 99,
|
||||
SPELL_FAILED_ONLY_NIGHTTIME = 100,
|
||||
SPELL_FAILED_ONLY_OUTDOORS = 101,
|
||||
SPELL_FAILED_ONLY_SHAPESHIFT = 102,
|
||||
SPELL_FAILED_ONLY_STEALTHED = 103,
|
||||
SPELL_FAILED_ONLY_UNDERWATER = 104,
|
||||
SPELL_FAILED_OUT_OF_RANGE = 105,
|
||||
SPELL_FAILED_PACIFIED = 106,
|
||||
SPELL_FAILED_POSSESSED = 107,
|
||||
SPELL_FAILED_REAGENTS = 108,
|
||||
SPELL_FAILED_REQUIRES_AREA = 109,
|
||||
SPELL_FAILED_REQUIRES_SPELL_FOCUS = 110,
|
||||
SPELL_FAILED_ROOTED = 111,
|
||||
SPELL_FAILED_SILENCED = 112,
|
||||
SPELL_FAILED_SPELL_IN_PROGRESS = 113,
|
||||
SPELL_FAILED_SPELL_LEARNED = 114,
|
||||
SPELL_FAILED_SPELL_UNAVAILABLE = 115,
|
||||
SPELL_FAILED_STUNNED = 116,
|
||||
SPELL_FAILED_TARGETS_DEAD = 117,
|
||||
SPELL_FAILED_TARGET_AFFECTING_COMBAT = 118,
|
||||
SPELL_FAILED_TARGET_AURASTATE = 119,
|
||||
SPELL_FAILED_TARGET_DUELING = 120,
|
||||
SPELL_FAILED_TARGET_ENEMY = 121,
|
||||
SPELL_FAILED_TARGET_ENRAGED = 122,
|
||||
SPELL_FAILED_TARGET_FRIENDLY = 123,
|
||||
SPELL_FAILED_TARGET_IN_COMBAT = 124,
|
||||
SPELL_FAILED_TARGET_IN_PET_BATTLE = 125,
|
||||
SPELL_FAILED_TARGET_IS_PLAYER = 126,
|
||||
SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED = 127,
|
||||
SPELL_FAILED_TARGET_NOT_DEAD = 128,
|
||||
SPELL_FAILED_TARGET_NOT_IN_PARTY = 129,
|
||||
SPELL_FAILED_TARGET_NOT_LOOTED = 130,
|
||||
SPELL_FAILED_TARGET_NOT_PLAYER = 131,
|
||||
SPELL_FAILED_TARGET_NO_POCKETS = 132,
|
||||
SPELL_FAILED_TARGET_NO_WEAPONS = 133,
|
||||
SPELL_FAILED_TARGET_NO_RANGED_WEAPONS = 134,
|
||||
SPELL_FAILED_TARGET_UNSKINNABLE = 135,
|
||||
SPELL_FAILED_THIRST_SATIATED = 136,
|
||||
SPELL_FAILED_TOO_CLOSE = 137,
|
||||
SPELL_FAILED_TOO_MANY_OF_ITEM = 138,
|
||||
SPELL_FAILED_TOTEM_CATEGORY = 139,
|
||||
SPELL_FAILED_TOTEMS = 140,
|
||||
SPELL_FAILED_TRY_AGAIN = 141,
|
||||
SPELL_FAILED_UNIT_NOT_BEHIND = 142,
|
||||
SPELL_FAILED_UNIT_NOT_INFRONT = 143,
|
||||
SPELL_FAILED_VISION_OBSCURED = 144,
|
||||
SPELL_FAILED_WRONG_PET_FOOD = 145,
|
||||
SPELL_FAILED_NOT_WHILE_FATIGUED = 146,
|
||||
SPELL_FAILED_TARGET_NOT_IN_INSTANCE = 147,
|
||||
SPELL_FAILED_NOT_WHILE_TRADING = 148,
|
||||
SPELL_FAILED_TARGET_NOT_IN_RAID = 149,
|
||||
SPELL_FAILED_TARGET_FREEFORALL = 150,
|
||||
SPELL_FAILED_NO_EDIBLE_CORPSES = 151,
|
||||
SPELL_FAILED_ONLY_BATTLEGROUNDS = 152,
|
||||
SPELL_FAILED_TARGET_NOT_GHOST = 153,
|
||||
SPELL_FAILED_TRANSFORM_UNUSABLE = 154,
|
||||
SPELL_FAILED_WRONG_WEATHER = 155,
|
||||
SPELL_FAILED_DAMAGE_IMMUNE = 156,
|
||||
SPELL_FAILED_PREVENTED_BY_MECHANIC = 157,
|
||||
SPELL_FAILED_PLAY_TIME = 158,
|
||||
SPELL_FAILED_REPUTATION = 159,
|
||||
SPELL_FAILED_MIN_SKILL = 160,
|
||||
SPELL_FAILED_NOT_IN_RATED_BATTLEGROUND = 161,
|
||||
SPELL_FAILED_NOT_ON_SHAPESHIFT = 162,
|
||||
SPELL_FAILED_NOT_ON_STEALTHED = 163,
|
||||
SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE = 164,
|
||||
SPELL_FAILED_NOT_ON_MOUNTED = 165,
|
||||
SPELL_FAILED_TOO_SHALLOW = 166,
|
||||
SPELL_FAILED_TARGET_NOT_IN_SANCTUARY = 167,
|
||||
SPELL_FAILED_TARGET_IS_TRIVIAL = 168,
|
||||
SPELL_FAILED_BM_OR_INVISGOD = 169,
|
||||
SPELL_FAILED_GROUND_MOUNT_NOT_ALLOWED = 170,
|
||||
SPELL_FAILED_FLOATING_MOUNT_NOT_ALLOWED = 171,
|
||||
SPELL_FAILED_UNDERWATER_MOUNT_NOT_ALLOWED = 172,
|
||||
SPELL_FAILED_FLYING_MOUNT_NOT_ALLOWED = 173,
|
||||
SPELL_FAILED_APPRENTICE_RIDING_REQUIREMENT = 174,
|
||||
SPELL_FAILED_JOURNEYMAN_RIDING_REQUIREMENT = 175,
|
||||
SPELL_FAILED_EXPERT_RIDING_REQUIREMENT = 176,
|
||||
SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT = 177,
|
||||
SPELL_FAILED_MASTER_RIDING_REQUIREMENT = 178,
|
||||
SPELL_FAILED_COLD_RIDING_REQUIREMENT = 179,
|
||||
SPELL_FAILED_FLIGHT_MASTER_RIDING_REQUIREMENT = 180,
|
||||
SPELL_FAILED_CS_RIDING_REQUIREMENT = 181,
|
||||
SPELL_FAILED_PANDA_RIDING_REQUIREMENT = 182,
|
||||
SPELL_FAILED_MOUNT_NO_FLOAT_HERE = 183,
|
||||
SPELL_FAILED_MOUNT_NO_UNDERWATER_HERE = 184,
|
||||
SPELL_FAILED_MOUNT_ABOVE_WATER_HERE = 185,
|
||||
SPELL_FAILED_MOUNT_COLLECTED_ON_OTHER_CHAR = 186,
|
||||
SPELL_FAILED_NOT_IDLE = 187,
|
||||
SPELL_FAILED_NOT_INACTIVE = 188,
|
||||
SPELL_FAILED_PARTIAL_PLAYTIME = 189,
|
||||
SPELL_FAILED_NO_PLAYTIME = 190,
|
||||
SPELL_FAILED_NOT_IN_BATTLEGROUND = 191,
|
||||
SPELL_FAILED_NOT_IN_RAID_INSTANCE = 192,
|
||||
SPELL_FAILED_ONLY_IN_ARENA = 193,
|
||||
SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE = 194,
|
||||
SPELL_FAILED_ON_USE_ENCHANT = 195,
|
||||
SPELL_FAILED_NOT_ON_GROUND = 196,
|
||||
SPELL_FAILED_CUSTOM_ERROR = 197,
|
||||
SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW = 198,
|
||||
SPELL_FAILED_TOO_MANY_SOCKETS = 199,
|
||||
SPELL_FAILED_INVALID_GLYPH = 200,
|
||||
SPELL_FAILED_UNIQUE_GLYPH = 201,
|
||||
SPELL_FAILED_GLYPH_SOCKET_LOCKED = 202,
|
||||
SPELL_FAILED_GLYPH_EXCLUSIVE_CATEGORY = 203,
|
||||
SPELL_FAILED_GLYPH_INVALID_SPEC = 204,
|
||||
SPELL_FAILED_GLYPH_NO_SPEC = 205,
|
||||
SPELL_FAILED_NO_VALID_TARGETS = 206,
|
||||
SPELL_FAILED_ITEM_AT_MAX_CHARGES = 207,
|
||||
SPELL_FAILED_NOT_IN_BARBERSHOP = 208,
|
||||
SPELL_FAILED_FISHING_TOO_LOW = 209,
|
||||
SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW = 210,
|
||||
SPELL_FAILED_SUMMON_PENDING = 211,
|
||||
SPELL_FAILED_MAX_SOCKETS = 212,
|
||||
SPELL_FAILED_PET_CAN_RENAME = 213,
|
||||
SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED = 214,
|
||||
SPELL_FAILED_TARGET_HAS_RESURRECT_PENDING = 215,
|
||||
SPELL_FAILED_NO_ACTIONS = 216,
|
||||
SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH = 217,
|
||||
SPELL_FAILED_WEIGHT_NOT_ENOUGH = 218,
|
||||
SPELL_FAILED_WEIGHT_TOO_MUCH = 219,
|
||||
SPELL_FAILED_NO_VACANT_SEAT = 220,
|
||||
SPELL_FAILED_NO_LIQUID = 221,
|
||||
SPELL_FAILED_ONLY_NOT_SWIMMING = 222,
|
||||
SPELL_FAILED_BY_NOT_MOVING = 223,
|
||||
SPELL_FAILED_IN_COMBAT_RES_LIMIT_REACHED = 224,
|
||||
SPELL_FAILED_NOT_IN_ARENA = 225,
|
||||
SPELL_FAILED_TARGET_NOT_GROUNDED = 226,
|
||||
SPELL_FAILED_EXCEEDED_WEEKLY_USAGE = 227,
|
||||
SPELL_FAILED_NOT_IN_LFG_DUNGEON = 228,
|
||||
SPELL_FAILED_BAD_TARGET_FILTER = 229,
|
||||
SPELL_FAILED_NOT_ENOUGH_TARGETS = 230,
|
||||
SPELL_FAILED_NO_SPEC = 231,
|
||||
SPELL_FAILED_CANT_ADD_BATTLE_PET = 232,
|
||||
SPELL_FAILED_CANT_UPGRADE_BATTLE_PET = 233,
|
||||
SPELL_FAILED_WRONG_BATTLE_PET_TYPE = 234,
|
||||
SPELL_FAILED_NO_DUNGEON_ENCOUNTER = 235,
|
||||
SPELL_FAILED_NO_TELEPORT_FROM_DUNGEON = 236,
|
||||
SPELL_FAILED_MAX_LEVEL_TOO_LOW = 237,
|
||||
SPELL_FAILED_CANT_REPLACE_ITEM_BONUS = 238,
|
||||
SPELL_FAILED_UNKNOWN = 254, // custom value, default case
|
||||
SPELL_CAST_OK = 255 // custom value, must not be sent to client
|
||||
SPELL_FAILED_GARRISON_FOLLOWER_ON_MISSION = 44,
|
||||
SPELL_FAILED_GARRISON_FOLLOWER_IN_BUILDING = 45,
|
||||
SPELL_FAILED_GARRISON_FOLLOWER_MAX_LEVEL = 46,
|
||||
SPELL_FAILED_GARRISON_FOLLOWER_MAX_ITEM_LEVEL = 47,
|
||||
SPELL_FAILED_GARRISON_FOLLOWER_MAX_QUALITY = 48,
|
||||
SPELL_FAILED_GARRISON_FOLLOWER_NOT_MAX_LEVEL = 49,
|
||||
SPELL_FAILED_GARRISON_FOLLOWER_HAS_ABILITY = 50,
|
||||
SPELL_FAILED_GARRISON_FOLLOWER_NO_OVERRIDEABLE_ABILITY = 51,
|
||||
SPELL_FAILED_HIGHLEVEL = 52,
|
||||
SPELL_FAILED_HUNGER_SATIATED = 53,
|
||||
SPELL_FAILED_IMMUNE = 54,
|
||||
SPELL_FAILED_INCORRECT_AREA = 55,
|
||||
SPELL_FAILED_INTERRUPTED = 56,
|
||||
SPELL_FAILED_INTERRUPTED_COMBAT = 57,
|
||||
SPELL_FAILED_ITEM_ALREADY_ENCHANTED = 58,
|
||||
SPELL_FAILED_ITEM_GONE = 59,
|
||||
SPELL_FAILED_ITEM_NOT_FOUND = 60,
|
||||
SPELL_FAILED_ITEM_NOT_READY = 61,
|
||||
SPELL_FAILED_LEVEL_REQUIREMENT = 62,
|
||||
SPELL_FAILED_LINE_OF_SIGHT = 63,
|
||||
SPELL_FAILED_LOWLEVEL = 64,
|
||||
SPELL_FAILED_LOW_CASTLEVEL = 65,
|
||||
SPELL_FAILED_MAINHAND_EMPTY = 66,
|
||||
SPELL_FAILED_MOVING = 67,
|
||||
SPELL_FAILED_NEED_AMMO = 68,
|
||||
SPELL_FAILED_NEED_AMMO_POUCH = 69,
|
||||
SPELL_FAILED_NEED_EXOTIC_AMMO = 70,
|
||||
SPELL_FAILED_NEED_MORE_ITEMS = 71,
|
||||
SPELL_FAILED_NOPATH = 72,
|
||||
SPELL_FAILED_NOT_BEHIND = 73,
|
||||
SPELL_FAILED_NOT_FISHABLE = 74,
|
||||
SPELL_FAILED_NOT_FLYING = 75,
|
||||
SPELL_FAILED_NOT_HERE = 76,
|
||||
SPELL_FAILED_NOT_INFRONT = 77,
|
||||
SPELL_FAILED_NOT_IN_CONTROL = 78,
|
||||
SPELL_FAILED_NOT_KNOWN = 79,
|
||||
SPELL_FAILED_NOT_MOUNTED = 80,
|
||||
SPELL_FAILED_NOT_ON_TAXI = 81,
|
||||
SPELL_FAILED_NOT_ON_TRANSPORT = 82,
|
||||
SPELL_FAILED_NOT_READY = 83,
|
||||
SPELL_FAILED_NOT_SHAPESHIFT = 84,
|
||||
SPELL_FAILED_NOT_STANDING = 85,
|
||||
SPELL_FAILED_NOT_TRADEABLE = 86,
|
||||
SPELL_FAILED_NOT_TRADING = 87,
|
||||
SPELL_FAILED_NOT_UNSHEATHED = 88,
|
||||
SPELL_FAILED_NOT_WHILE_GHOST = 89,
|
||||
SPELL_FAILED_NOT_WHILE_LOOTING = 90,
|
||||
SPELL_FAILED_NO_AMMO = 91,
|
||||
SPELL_FAILED_NO_CHARGES_REMAIN = 92,
|
||||
SPELL_FAILED_NO_CHAMPION = 93,
|
||||
SPELL_FAILED_NO_COMBO_POINTS = 94,
|
||||
SPELL_FAILED_NO_DUELING = 95,
|
||||
SPELL_FAILED_NO_ENDURANCE = 96,
|
||||
SPELL_FAILED_NO_FISH = 97,
|
||||
SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED = 98,
|
||||
SPELL_FAILED_NO_MOUNTS_ALLOWED = 99,
|
||||
SPELL_FAILED_NO_PET = 100,
|
||||
SPELL_FAILED_NO_POWER = 101,
|
||||
SPELL_FAILED_NOTHING_TO_DISPEL = 102,
|
||||
SPELL_FAILED_NOTHING_TO_STEAL = 103,
|
||||
SPELL_FAILED_ONLY_ABOVEWATER = 104,
|
||||
SPELL_FAILED_ONLY_DAYTIME = 105,
|
||||
SPELL_FAILED_ONLY_INDOORS = 106,
|
||||
SPELL_FAILED_ONLY_MOUNTED = 107,
|
||||
SPELL_FAILED_ONLY_NIGHTTIME = 108,
|
||||
SPELL_FAILED_ONLY_OUTDOORS = 109,
|
||||
SPELL_FAILED_ONLY_SHAPESHIFT = 110,
|
||||
SPELL_FAILED_ONLY_STEALTHED = 111,
|
||||
SPELL_FAILED_ONLY_UNDERWATER = 112,
|
||||
SPELL_FAILED_OUT_OF_RANGE = 113,
|
||||
SPELL_FAILED_PACIFIED = 114,
|
||||
SPELL_FAILED_POSSESSED = 115,
|
||||
SPELL_FAILED_REAGENTS = 116,
|
||||
SPELL_FAILED_REQUIRES_AREA = 117,
|
||||
SPELL_FAILED_REQUIRES_SPELL_FOCUS = 118,
|
||||
SPELL_FAILED_ROOTED = 119,
|
||||
SPELL_FAILED_SILENCED = 120,
|
||||
SPELL_FAILED_SPELL_IN_PROGRESS = 121,
|
||||
SPELL_FAILED_SPELL_LEARNED = 122,
|
||||
SPELL_FAILED_SPELL_UNAVAILABLE = 123,
|
||||
SPELL_FAILED_STUNNED = 124,
|
||||
SPELL_FAILED_TARGETS_DEAD = 125,
|
||||
SPELL_FAILED_TARGET_AFFECTING_COMBAT = 126,
|
||||
SPELL_FAILED_TARGET_AURASTATE = 127,
|
||||
SPELL_FAILED_TARGET_DUELING = 128,
|
||||
SPELL_FAILED_TARGET_ENEMY = 129,
|
||||
SPELL_FAILED_TARGET_ENRAGED = 130,
|
||||
SPELL_FAILED_TARGET_FRIENDLY = 131,
|
||||
SPELL_FAILED_TARGET_IN_COMBAT = 132,
|
||||
SPELL_FAILED_TARGET_IN_PET_BATTLE = 133,
|
||||
SPELL_FAILED_TARGET_IS_PLAYER = 134,
|
||||
SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED = 135,
|
||||
SPELL_FAILED_TARGET_NOT_DEAD = 136,
|
||||
SPELL_FAILED_TARGET_NOT_IN_PARTY = 137,
|
||||
SPELL_FAILED_TARGET_NOT_LOOTED = 138,
|
||||
SPELL_FAILED_TARGET_NOT_PLAYER = 139,
|
||||
SPELL_FAILED_TARGET_NO_POCKETS = 140,
|
||||
SPELL_FAILED_TARGET_NO_WEAPONS = 141,
|
||||
SPELL_FAILED_TARGET_NO_RANGED_WEAPONS = 142,
|
||||
SPELL_FAILED_TARGET_UNSKINNABLE = 143,
|
||||
SPELL_FAILED_THIRST_SATIATED = 144,
|
||||
SPELL_FAILED_TOO_CLOSE = 145,
|
||||
SPELL_FAILED_TOO_MANY_OF_ITEM = 146,
|
||||
SPELL_FAILED_TOTEM_CATEGORY = 147,
|
||||
SPELL_FAILED_TOTEMS = 148,
|
||||
SPELL_FAILED_TRY_AGAIN = 149,
|
||||
SPELL_FAILED_UNIT_NOT_BEHIND = 150,
|
||||
SPELL_FAILED_UNIT_NOT_INFRONT = 151,
|
||||
SPELL_FAILED_VISION_OBSCURED = 152,
|
||||
SPELL_FAILED_WRONG_PET_FOOD = 153,
|
||||
SPELL_FAILED_NOT_WHILE_FATIGUED = 154,
|
||||
SPELL_FAILED_TARGET_NOT_IN_INSTANCE = 155,
|
||||
SPELL_FAILED_NOT_WHILE_TRADING = 156,
|
||||
SPELL_FAILED_TARGET_NOT_IN_RAID = 157,
|
||||
SPELL_FAILED_TARGET_FREEFORALL = 158,
|
||||
SPELL_FAILED_NO_EDIBLE_CORPSES = 159,
|
||||
SPELL_FAILED_ONLY_BATTLEGROUNDS = 160,
|
||||
SPELL_FAILED_TARGET_NOT_GHOST = 161,
|
||||
SPELL_FAILED_TRANSFORM_UNUSABLE = 162,
|
||||
SPELL_FAILED_WRONG_WEATHER = 163,
|
||||
SPELL_FAILED_DAMAGE_IMMUNE = 164,
|
||||
SPELL_FAILED_PREVENTED_BY_MECHANIC = 165,
|
||||
SPELL_FAILED_PLAY_TIME = 166,
|
||||
SPELL_FAILED_REPUTATION = 167,
|
||||
SPELL_FAILED_MIN_SKILL = 168,
|
||||
SPELL_FAILED_NOT_IN_RATED_BATTLEGROUND = 169,
|
||||
SPELL_FAILED_NOT_ON_SHAPESHIFT = 170,
|
||||
SPELL_FAILED_NOT_ON_STEALTHED = 171,
|
||||
SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE = 172,
|
||||
SPELL_FAILED_NOT_ON_MOUNTED = 173,
|
||||
SPELL_FAILED_TOO_SHALLOW = 174,
|
||||
SPELL_FAILED_TARGET_NOT_IN_SANCTUARY = 175,
|
||||
SPELL_FAILED_TARGET_IS_TRIVIAL = 176,
|
||||
SPELL_FAILED_BM_OR_INVISGOD = 177,
|
||||
SPELL_FAILED_GROUND_MOUNT_NOT_ALLOWED = 178,
|
||||
SPELL_FAILED_FLOATING_MOUNT_NOT_ALLOWED = 179,
|
||||
SPELL_FAILED_UNDERWATER_MOUNT_NOT_ALLOWED = 180,
|
||||
SPELL_FAILED_FLYING_MOUNT_NOT_ALLOWED = 181,
|
||||
SPELL_FAILED_APPRENTICE_RIDING_REQUIREMENT = 182,
|
||||
SPELL_FAILED_JOURNEYMAN_RIDING_REQUIREMENT = 183,
|
||||
SPELL_FAILED_EXPERT_RIDING_REQUIREMENT = 184,
|
||||
SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT = 185,
|
||||
SPELL_FAILED_MASTER_RIDING_REQUIREMENT = 186,
|
||||
SPELL_FAILED_COLD_RIDING_REQUIREMENT = 187,
|
||||
SPELL_FAILED_FLIGHT_MASTER_RIDING_REQUIREMENT = 188,
|
||||
SPELL_FAILED_CS_RIDING_REQUIREMENT = 189,
|
||||
SPELL_FAILED_PANDA_RIDING_REQUIREMENT = 190,
|
||||
SPELL_FAILED_MOUNT_NO_FLOAT_HERE = 191,
|
||||
SPELL_FAILED_MOUNT_NO_UNDERWATER_HERE = 192,
|
||||
SPELL_FAILED_MOUNT_ABOVE_WATER_HERE = 193,
|
||||
SPELL_FAILED_MOUNT_COLLECTED_ON_OTHER_CHAR = 194,
|
||||
SPELL_FAILED_NOT_IDLE = 195,
|
||||
SPELL_FAILED_NOT_INACTIVE = 196,
|
||||
SPELL_FAILED_PARTIAL_PLAYTIME = 197,
|
||||
SPELL_FAILED_NO_PLAYTIME = 198,
|
||||
SPELL_FAILED_NOT_IN_BATTLEGROUND = 199,
|
||||
SPELL_FAILED_NOT_IN_RAID_INSTANCE = 200,
|
||||
SPELL_FAILED_ONLY_IN_ARENA = 201,
|
||||
SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE = 202,
|
||||
SPELL_FAILED_ON_USE_ENCHANT = 203,
|
||||
SPELL_FAILED_NOT_ON_GROUND = 204,
|
||||
SPELL_FAILED_CUSTOM_ERROR = 205,
|
||||
SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW = 206,
|
||||
SPELL_FAILED_TOO_MANY_SOCKETS = 207,
|
||||
SPELL_FAILED_INVALID_GLYPH = 208,
|
||||
SPELL_FAILED_UNIQUE_GLYPH = 209,
|
||||
SPELL_FAILED_GLYPH_SOCKET_LOCKED = 210,
|
||||
SPELL_FAILED_GLYPH_EXCLUSIVE_CATEGORY = 211,
|
||||
SPELL_FAILED_GLYPH_INVALID_SPEC = 212,
|
||||
SPELL_FAILED_GLYPH_NO_SPEC = 213,
|
||||
SPELL_FAILED_NO_VALID_TARGETS = 214,
|
||||
SPELL_FAILED_ITEM_AT_MAX_CHARGES = 215,
|
||||
SPELL_FAILED_NOT_IN_BARBERSHOP = 216,
|
||||
SPELL_FAILED_FISHING_TOO_LOW = 217,
|
||||
SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW = 218,
|
||||
SPELL_FAILED_SUMMON_PENDING = 219,
|
||||
SPELL_FAILED_MAX_SOCKETS = 220,
|
||||
SPELL_FAILED_PET_CAN_RENAME = 221,
|
||||
SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED = 222,
|
||||
SPELL_FAILED_TARGET_HAS_RESURRECT_PENDING = 223,
|
||||
SPELL_FAILED_NO_ACTIONS = 224,
|
||||
SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH = 225,
|
||||
SPELL_FAILED_WEIGHT_NOT_ENOUGH = 226,
|
||||
SPELL_FAILED_WEIGHT_TOO_MUCH = 227,
|
||||
SPELL_FAILED_NO_VACANT_SEAT = 228,
|
||||
SPELL_FAILED_NO_LIQUID = 229,
|
||||
SPELL_FAILED_ONLY_NOT_SWIMMING = 230,
|
||||
SPELL_FAILED_BY_NOT_MOVING = 231,
|
||||
SPELL_FAILED_IN_COMBAT_RES_LIMIT_REACHED = 232,
|
||||
SPELL_FAILED_NOT_IN_ARENA = 233,
|
||||
SPELL_FAILED_TARGET_NOT_GROUNDED = 234,
|
||||
SPELL_FAILED_EXCEEDED_WEEKLY_USAGE = 235,
|
||||
SPELL_FAILED_NOT_IN_LFG_DUNGEON = 236,
|
||||
SPELL_FAILED_BAD_TARGET_FILTER = 237,
|
||||
SPELL_FAILED_NOT_ENOUGH_TARGETS = 238,
|
||||
SPELL_FAILED_NO_SPEC = 239,
|
||||
SPELL_FAILED_CANT_ADD_BATTLE_PET = 240,
|
||||
SPELL_FAILED_CANT_UPGRADE_BATTLE_PET = 241,
|
||||
SPELL_FAILED_WRONG_BATTLE_PET_TYPE = 242,
|
||||
SPELL_FAILED_NO_DUNGEON_ENCOUNTER = 243,
|
||||
SPELL_FAILED_NO_TELEPORT_FROM_DUNGEON = 244,
|
||||
SPELL_FAILED_MAX_LEVEL_TOO_LOW = 245,
|
||||
SPELL_FAILED_CANT_REPLACE_ITEM_BONUS = 246,
|
||||
SPELL_FAILED_GRANT_PET_LEVEL_FAIL = 247,
|
||||
SPELL_FAILED_SKILL_LINE_NOT_KNOWN = 248,
|
||||
SPELL_FAILED_BLUEPRINT_KNOWN = 249,
|
||||
SPELL_FAILED_FOLLOWER_KNOWN = 250,
|
||||
SPELL_FAILED_CANT_OVERRIDE_ENCHANT_VISUAL = 251,
|
||||
SPELL_FAILED_ITEM_NOT_A_WEAPON = 252,
|
||||
SPELL_FAILED_SAME_ENCHANT_VISUAL = 253,
|
||||
SPELL_FAILED_TOY_USE_LIMIT_REACHED = 254,
|
||||
SPELL_FAILED_SHIPMENTS_FULL = 255,
|
||||
SPELL_FAILED_HAS_MISSION = 256,
|
||||
SPELL_FAILED_BUILDING_ACTIVATE_NOT_READY = 257,
|
||||
SPELL_FAILED_NOT_SOULBOUND = 258,
|
||||
SPELL_FAILED_RIDING_VEHICLE = 259,
|
||||
SPELL_FAILED_UNKNOWN = 260, // custom value, default case
|
||||
SPELL_CAST_OK = 0xFFFF // custom value, must not be sent to client
|
||||
};
|
||||
|
||||
enum SpellCustomErrors
|
||||
|
||||
@@ -447,6 +447,17 @@ WorldPacket const* WorldPackets::Spells::SpellFailedOther::Write()
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Spells::CastFailed::Write()
|
||||
{
|
||||
_worldPacket << SpellID;
|
||||
_worldPacket << Reason;
|
||||
_worldPacket << FailedArg1;
|
||||
_worldPacket << FailedArg2;
|
||||
_worldPacket << CastID;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Spells::SpellModifierData const& spellModifierData)
|
||||
{
|
||||
data << spellModifierData.ModifierValue;
|
||||
|
||||
@@ -303,6 +303,20 @@ namespace WorldPackets
|
||||
uint8 CastID = 0;
|
||||
};
|
||||
|
||||
class CastFailed final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
CastFailed(OpcodeServer opcode) : ServerPacket(opcode, 4+4+4+4+1) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
int32 Reason = 0;
|
||||
int32 FailedArg1 = -1;
|
||||
int32 FailedArg2 = -1;
|
||||
int32 SpellID = 0;
|
||||
uint8 CastID = 0;
|
||||
};
|
||||
|
||||
struct SpellModifierData
|
||||
{
|
||||
float ModifierValue = 0.0f;
|
||||
|
||||
@@ -799,7 +799,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAMERA_SHAKE, STATUS_UNHANDLED);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_AUTO_REPEAT, STATUS_UNHANDLED);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CANCEL_COMBAT, STATUS_UNHANDLED);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAST_FAILED, STATUS_UNHANDLED);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CAST_FAILED, STATUS_NEVER);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_LIST, STATUS_NEVER);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_MEMBER_COUNT, STATUS_UNHANDLED);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY, STATUS_UNHANDLED);
|
||||
|
||||
@@ -3764,17 +3764,18 @@ void Spell::SendCastResult(Player* caster, SpellInfo const* spellInfo, uint8 cas
|
||||
if (result == SPELL_CAST_OK)
|
||||
return;
|
||||
|
||||
WorldPacket data(opcode, (4+1+1));
|
||||
data << uint8(cast_count);
|
||||
data << uint32(spellInfo->Id);
|
||||
data << uint8(result); // problem
|
||||
WorldPackets::Spells::CastFailed packet(opcode);
|
||||
packet.CastID = cast_count;
|
||||
packet.SpellID = spellInfo->Id;
|
||||
packet.Reason = result;
|
||||
|
||||
switch (result)
|
||||
{
|
||||
case SPELL_FAILED_NOT_READY:
|
||||
data << uint32(0); // unknown (value 1 update cooldowns on client flag)
|
||||
packet.FailedArg1 = 0; // unknown (value 1 update cooldowns on client flag)
|
||||
break;
|
||||
case SPELL_FAILED_REQUIRES_SPELL_FOCUS:
|
||||
data << uint32(spellInfo->RequiresSpellFocus); // SpellFocusObject.dbc id
|
||||
packet.FailedArg1 = spellInfo->RequiresSpellFocus; // SpellFocusObject.dbc id
|
||||
break;
|
||||
case SPELL_FAILED_REQUIRES_AREA: // AreaTable.dbc id
|
||||
// hardcode areas limitation case
|
||||
@@ -3782,71 +3783,71 @@ void Spell::SendCastResult(Player* caster, SpellInfo const* spellInfo, uint8 cas
|
||||
{
|
||||
case 41617: // Cenarion Mana Salve
|
||||
case 41619: // Cenarion Healing Salve
|
||||
data << uint32(3905);
|
||||
packet.FailedArg1 = 3905;
|
||||
break;
|
||||
case 41618: // Bottled Nethergon Energy
|
||||
case 41620: // Bottled Nethergon Vapor
|
||||
data << uint32(3842);
|
||||
packet.FailedArg1 = 3842;
|
||||
break;
|
||||
case 45373: // Bloodberry Elixir
|
||||
data << uint32(4075);
|
||||
packet.FailedArg1 = 4075;
|
||||
break;
|
||||
default: // default case (don't must be)
|
||||
data << uint32(0);
|
||||
packet.FailedArg1 = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SPELL_FAILED_TOTEMS:
|
||||
if (spellInfo->Totem[0])
|
||||
data << uint32(spellInfo->Totem[0]);
|
||||
packet.FailedArg1 = spellInfo->Totem[0];
|
||||
if (spellInfo->Totem[1])
|
||||
data << uint32(spellInfo->Totem[1]);
|
||||
packet.FailedArg2 = spellInfo->Totem[1];
|
||||
break;
|
||||
case SPELL_FAILED_TOTEM_CATEGORY:
|
||||
if (spellInfo->TotemCategory[0])
|
||||
data << uint32(spellInfo->TotemCategory[0]);
|
||||
packet.FailedArg1 = spellInfo->TotemCategory[0];
|
||||
if (spellInfo->TotemCategory[1])
|
||||
data << uint32(spellInfo->TotemCategory[1]);
|
||||
packet.FailedArg2 = spellInfo->TotemCategory[1];
|
||||
break;
|
||||
case SPELL_FAILED_EQUIPPED_ITEM_CLASS:
|
||||
case SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND:
|
||||
case SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND:
|
||||
data << uint32(spellInfo->EquippedItemClass);
|
||||
data << uint32(spellInfo->EquippedItemSubClassMask);
|
||||
packet.FailedArg1 = spellInfo->EquippedItemClass;
|
||||
packet.FailedArg2 = spellInfo->EquippedItemSubClassMask;
|
||||
break;
|
||||
case SPELL_FAILED_TOO_MANY_OF_ITEM:
|
||||
{
|
||||
uint32 item = 0;
|
||||
for (SpellEffectInfo const* effect : spellInfo->GetEffectsForDifficulty(caster->GetMap()->GetDifficulty()))
|
||||
if (effect->ItemType)
|
||||
item = effect->ItemType;
|
||||
ItemTemplate const* proto = sObjectMgr->GetItemTemplate(item);
|
||||
if (proto && proto->ItemLimitCategory)
|
||||
data << uint32(proto->ItemLimitCategory);
|
||||
break;
|
||||
uint32 item = 0;
|
||||
for (SpellEffectInfo const* effect : spellInfo->GetEffectsForDifficulty(caster->GetMap()->GetDifficulty()))
|
||||
if (effect->ItemType)
|
||||
item = effect->ItemType;
|
||||
ItemTemplate const* proto = sObjectMgr->GetItemTemplate(item);
|
||||
if (proto && proto->ItemLimitCategory)
|
||||
packet.FailedArg1 = proto->ItemLimitCategory;
|
||||
break;
|
||||
}
|
||||
case SPELL_FAILED_PREVENTED_BY_MECHANIC:
|
||||
data << uint32(spellInfo->GetAllEffectsMechanicMask()); // SpellMechanic.dbc id
|
||||
packet.FailedArg1 = spellInfo->GetAllEffectsMechanicMask(); // SpellMechanic.dbc id
|
||||
break;
|
||||
case SPELL_FAILED_NEED_EXOTIC_AMMO:
|
||||
data << uint32(spellInfo->EquippedItemSubClassMask); // seems correct...
|
||||
packet.FailedArg1 = spellInfo->EquippedItemSubClassMask; // seems correct...
|
||||
break;
|
||||
case SPELL_FAILED_NEED_MORE_ITEMS:
|
||||
data << uint32(0); // Item id
|
||||
data << uint32(0); // Item count?
|
||||
packet.FailedArg1 = 0; // Item id
|
||||
packet.FailedArg2 = 0; // Item count?
|
||||
break;
|
||||
case SPELL_FAILED_MIN_SKILL:
|
||||
data << uint32(0); // SkillLine.dbc id
|
||||
data << uint32(0); // required skill value
|
||||
packet.FailedArg1 = 0; // SkillLine.dbc id
|
||||
packet.FailedArg2 = 0; // required skill value
|
||||
break;
|
||||
case SPELL_FAILED_FISHING_TOO_LOW:
|
||||
data << uint32(0); // required fishing skill
|
||||
packet.FailedArg1 = 0; // required fishing skill
|
||||
break;
|
||||
case SPELL_FAILED_CUSTOM_ERROR:
|
||||
data << uint32(customError);
|
||||
packet.FailedArg1 = customError;
|
||||
break;
|
||||
case SPELL_FAILED_SILENCED:
|
||||
data << uint32(0); // Unknown
|
||||
packet.FailedArg1 = 0; // Unknown
|
||||
break;
|
||||
case SPELL_FAILED_REAGENTS:
|
||||
{
|
||||
@@ -3866,14 +3867,15 @@ void Spell::SendCastResult(Player* caster, SpellInfo const* spellInfo, uint8 cas
|
||||
}
|
||||
}
|
||||
|
||||
data << uint32(missingItem); // first missing item
|
||||
packet.FailedArg1 = missingItem; // first missing item
|
||||
break;
|
||||
}
|
||||
// TODO: SPELL_FAILED_NOT_STANDING
|
||||
default:
|
||||
break;
|
||||
}
|
||||
caster->GetSession()->SendPacket(&data);
|
||||
|
||||
caster->GetSession()->SendPacket(packet.Write());
|
||||
}
|
||||
|
||||
void Spell::SendSpellStart()
|
||||
|
||||
Reference in New Issue
Block a user