diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Item/Item.h | 3 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 6 | ||||
-rw-r--r-- | src/server/game/Handlers/TradeHandler.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 202 |
4 files changed, 113 insertions, 102 deletions
diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index f81c72c0f98..37d7e3613f2 100644 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -141,7 +141,8 @@ enum InventoryResult EQUIP_ERR_CANT_BUY_QUANTITY = 93, // You can't buy the specified quantity of that item. EQUIP_ERR_ITEM_IS_BATTLE_PAY_LOCKED = 94, // Your purchased item is still waiting to be unlocked EQUIP_ERR_REAGENT_BANK_FULL = 95, // Your reagent bank is full - EQUIP_ERR_REAGENT_BANK_LOCKED = 96 + EQUIP_ERR_REAGENT_BANK_LOCKED = 96, + EQUIP_ERR_WRONG_BAG_TYPE_3 = 97 }; enum BuyResult diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 2dfd10985a5..673b47715aa 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -542,6 +542,12 @@ enum PlayerFlags PLAYER_FLAGS_UNK31 = 0x80000000 }; +enum PlayerFlagsEx +{ + PLAYER_FLAGS_EX_REAGENT_BANK_UNLOCKED = 0x0001, + PLAYER_FLAGS_EX_MERCENARY_MODE = 0x0002 +}; + enum PlayerLocalFlags { PLAYER_LOCAL_FLAG_TRACK_STEALTHED = 0x00000002, diff --git a/src/server/game/Handlers/TradeHandler.cpp b/src/server/game/Handlers/TradeHandler.cpp index 32ed156b226..678b2b72120 100644 --- a/src/server/game/Handlers/TradeHandler.cpp +++ b/src/server/game/Handlers/TradeHandler.cpp @@ -651,7 +651,9 @@ void WorldSession::HandleInitiateTradeOpcode(WorldPackets::Trade::InitiateTrade& return; } - if (pOther->GetTeam() != _player->GetTeam() && + if ((pOther->GetTeam() != _player->GetTeam() || + pOther->HasFlag(PLAYER_FLAGS_EX, PLAYER_FLAGS_EX_MERCENARY_MODE) || + _player->HasFlag(PLAYER_FLAGS_EX, PLAYER_FLAGS_EX_MERCENARY_MODE)) && (!sWorld->getBoolConfig(CONFIG_ALLOW_TWO_SIDE_TRADE) && !HasPermission(rbac::RBAC_PERM_ALLOW_TWO_SIDE_TRADE))) { diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index f6564cb8cc4..f13630188a9 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -1262,7 +1262,7 @@ enum SpellEffectName TOTAL_SPELL_EFFECTS = 252, }; -enum SpellCastResult // 20201 +enum SpellCastResult // 20444 { SPELL_FAILED_SUCCESS = 0, SPELL_FAILED_AFFECTING_COMBAT = 1, @@ -1458,81 +1458,83 @@ enum SpellCastResult // 20201 SPELL_FAILED_FLIGHT_MASTER_RIDING_REQUIREMENT = 191, SPELL_FAILED_CS_RIDING_REQUIREMENT = 192, SPELL_FAILED_PANDA_RIDING_REQUIREMENT = 193, - SPELL_FAILED_MOUNT_NO_FLOAT_HERE = 194, - SPELL_FAILED_MOUNT_NO_UNDERWATER_HERE = 195, - SPELL_FAILED_MOUNT_ABOVE_WATER_HERE = 196, - SPELL_FAILED_MOUNT_COLLECTED_ON_OTHER_CHAR = 197, - SPELL_FAILED_NOT_IDLE = 198, - SPELL_FAILED_NOT_INACTIVE = 199, - SPELL_FAILED_PARTIAL_PLAYTIME = 200, - SPELL_FAILED_NO_PLAYTIME = 201, - SPELL_FAILED_NOT_IN_BATTLEGROUND = 202, - SPELL_FAILED_NOT_IN_RAID_INSTANCE = 203, - SPELL_FAILED_ONLY_IN_ARENA = 204, - SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE = 205, - SPELL_FAILED_ON_USE_ENCHANT = 206, - SPELL_FAILED_NOT_ON_GROUND = 207, - SPELL_FAILED_CUSTOM_ERROR = 208, - SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW = 209, - SPELL_FAILED_TOO_MANY_SOCKETS = 210, - SPELL_FAILED_INVALID_GLYPH = 211, - SPELL_FAILED_UNIQUE_GLYPH = 212, - SPELL_FAILED_GLYPH_SOCKET_LOCKED = 213, - SPELL_FAILED_GLYPH_EXCLUSIVE_CATEGORY = 214, - SPELL_FAILED_GLYPH_INVALID_SPEC = 215, - SPELL_FAILED_GLYPH_NO_SPEC = 216, - SPELL_FAILED_NO_VALID_TARGETS = 217, - SPELL_FAILED_ITEM_AT_MAX_CHARGES = 218, - SPELL_FAILED_NOT_IN_BARBERSHOP = 219, - SPELL_FAILED_FISHING_TOO_LOW = 220, - SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW = 221, - SPELL_FAILED_SUMMON_PENDING = 222, - SPELL_FAILED_MAX_SOCKETS = 223, - SPELL_FAILED_PET_CAN_RENAME = 224, - SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED = 225, - SPELL_FAILED_TARGET_HAS_RESURRECT_PENDING = 226, - SPELL_FAILED_NO_ACTIONS = 227, - SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH = 228, - SPELL_FAILED_WEIGHT_NOT_ENOUGH = 229, - SPELL_FAILED_WEIGHT_TOO_MUCH = 230, - SPELL_FAILED_NO_VACANT_SEAT = 231, - SPELL_FAILED_NO_LIQUID = 232, - SPELL_FAILED_ONLY_NOT_SWIMMING = 233, - SPELL_FAILED_BY_NOT_MOVING = 234, - SPELL_FAILED_IN_COMBAT_RES_LIMIT_REACHED = 235, - SPELL_FAILED_NOT_IN_ARENA = 236, - SPELL_FAILED_TARGET_NOT_GROUNDED = 237, - SPELL_FAILED_EXCEEDED_WEEKLY_USAGE = 238, - SPELL_FAILED_NOT_IN_LFG_DUNGEON = 239, - SPELL_FAILED_BAD_TARGET_FILTER = 240, - SPELL_FAILED_NOT_ENOUGH_TARGETS = 241, - SPELL_FAILED_NO_SPEC = 242, - SPELL_FAILED_CANT_ADD_BATTLE_PET = 243, - SPELL_FAILED_CANT_UPGRADE_BATTLE_PET = 244, - SPELL_FAILED_WRONG_BATTLE_PET_TYPE = 245, - SPELL_FAILED_NO_DUNGEON_ENCOUNTER = 246, - SPELL_FAILED_NO_TELEPORT_FROM_DUNGEON = 247, - SPELL_FAILED_MAX_LEVEL_TOO_LOW = 248, - SPELL_FAILED_CANT_REPLACE_ITEM_BONUS = 249, - GRANT_PET_LEVEL_FAIL = 250, - SPELL_FAILED_SKILL_LINE_NOT_KNOWN = 251, - SPELL_FAILED_BLUEPRINT_KNOWN = 252, - SPELL_FAILED_FOLLOWER_KNOWN = 253, - SPELL_FAILED_CANT_OVERRIDE_ENCHANT_VISUAL = 254, - SPELL_FAILED_ITEM_NOT_A_WEAPON = 255, - SPELL_FAILED_SAME_ENCHANT_VISUAL = 256, - SPELL_FAILED_TOY_USE_LIMIT_REACHED = 257, - SPELL_FAILED_TOY_ALREADY_KNOWN = 258, - SPELL_FAILED_SHIPMENTS_FULL = 259, - SPELL_FAILED_NO_SHIPMENTS_FOR_CONTAINER = 260, - SPELL_FAILED_NO_BUILDING_FOR_SHIPMENT = 261, - SPELL_FAILED_NOT_ENOUGH_SHIPMENTS_FOR_CONTAINER = 262, - SPELL_FAILED_HAS_MISSION = 263, - SPELL_FAILED_BUILDING_ACTIVATE_NOT_READY = 264, - SPELL_FAILED_NOT_SOULBOUND = 265, - SPELL_FAILED_RIDING_VEHICLE = 266, - SPELL_FAILED_VETERAN_TRIAL_ABOVE_SKILL_RANK_MAX = 267, - SPELL_FAILED_UNKNOWN = 268, + SPELL_FAILED_DRAENOR_RIDING_REQUIREMENT = 194, + SPELL_FAILED_MOUNT_NO_FLOAT_HERE = 195, + SPELL_FAILED_MOUNT_NO_UNDERWATER_HERE = 196, + SPELL_FAILED_MOUNT_ABOVE_WATER_HERE = 197, + SPELL_FAILED_MOUNT_COLLECTED_ON_OTHER_CHAR = 198, + SPELL_FAILED_NOT_IDLE = 199, + SPELL_FAILED_NOT_INACTIVE = 200, + SPELL_FAILED_PARTIAL_PLAYTIME = 201, + SPELL_FAILED_NO_PLAYTIME = 202, + SPELL_FAILED_NOT_IN_BATTLEGROUND = 203, + SPELL_FAILED_NOT_IN_RAID_INSTANCE = 204, + SPELL_FAILED_ONLY_IN_ARENA = 205, + SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE = 206, + SPELL_FAILED_ON_USE_ENCHANT = 207, + SPELL_FAILED_NOT_ON_GROUND = 208, + SPELL_FAILED_CUSTOM_ERROR = 209, + SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW = 210, + SPELL_FAILED_TOO_MANY_SOCKETS = 211, + SPELL_FAILED_INVALID_GLYPH = 212, + SPELL_FAILED_UNIQUE_GLYPH = 213, + SPELL_FAILED_GLYPH_SOCKET_LOCKED = 214, + SPELL_FAILED_GLYPH_EXCLUSIVE_CATEGORY = 215, + SPELL_FAILED_GLYPH_INVALID_SPEC = 216, + SPELL_FAILED_GLYPH_NO_SPEC = 217, + SPELL_FAILED_NO_VALID_TARGETS = 218, + SPELL_FAILED_ITEM_AT_MAX_CHARGES = 219, + SPELL_FAILED_NOT_IN_BARBERSHOP = 220, + SPELL_FAILED_FISHING_TOO_LOW = 221, + SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW = 222, + SPELL_FAILED_SUMMON_PENDING = 223, + SPELL_FAILED_MAX_SOCKETS = 224, + SPELL_FAILED_PET_CAN_RENAME = 225, + SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED = 226, + SPELL_FAILED_TARGET_HAS_RESURRECT_PENDING = 227, + SPELL_FAILED_NO_ACTIONS = 228, + SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH = 229, + SPELL_FAILED_WEIGHT_NOT_ENOUGH = 230, + SPELL_FAILED_WEIGHT_TOO_MUCH = 231, + SPELL_FAILED_NO_VACANT_SEAT = 232, + SPELL_FAILED_NO_LIQUID = 233, + SPELL_FAILED_ONLY_NOT_SWIMMING = 234, + SPELL_FAILED_BY_NOT_MOVING = 235, + SPELL_FAILED_IN_COMBAT_RES_LIMIT_REACHED = 236, + SPELL_FAILED_NOT_IN_ARENA = 237, + SPELL_FAILED_TARGET_NOT_GROUNDED = 238, + SPELL_FAILED_EXCEEDED_WEEKLY_USAGE = 239, + SPELL_FAILED_NOT_IN_LFG_DUNGEON = 240, + SPELL_FAILED_BAD_TARGET_FILTER = 241, + SPELL_FAILED_NOT_ENOUGH_TARGETS = 242, + SPELL_FAILED_NO_SPEC = 243, + SPELL_FAILED_CANT_ADD_BATTLE_PET = 244, + SPELL_FAILED_CANT_UPGRADE_BATTLE_PET = 245, + SPELL_FAILED_WRONG_BATTLE_PET_TYPE = 246, + SPELL_FAILED_NO_DUNGEON_ENCOUNTER = 247, + SPELL_FAILED_NO_TELEPORT_FROM_DUNGEON = 248, + SPELL_FAILED_MAX_LEVEL_TOO_LOW = 249, + SPELL_FAILED_CANT_REPLACE_ITEM_BONUS = 250, + GRANT_PET_LEVEL_FAIL = 251, + SPELL_FAILED_SKILL_LINE_NOT_KNOWN = 252, + SPELL_FAILED_BLUEPRINT_KNOWN = 253, + SPELL_FAILED_FOLLOWER_KNOWN = 254, + SPELL_FAILED_CANT_OVERRIDE_ENCHANT_VISUAL = 255, + SPELL_FAILED_ITEM_NOT_A_WEAPON = 256, + SPELL_FAILED_SAME_ENCHANT_VISUAL = 257, + SPELL_FAILED_TOY_USE_LIMIT_REACHED = 258, + SPELL_FAILED_TOY_ALREADY_KNOWN = 259, + SPELL_FAILED_SHIPMENTS_FULL = 260, + SPELL_FAILED_NO_SHIPMENTS_FOR_CONTAINER = 261, + SPELL_FAILED_NO_BUILDING_FOR_SHIPMENT = 262, + SPELL_FAILED_NOT_ENOUGH_SHIPMENTS_FOR_CONTAINER = 263, + SPELL_FAILED_HAS_MISSION = 264, + SPELL_FAILED_BUILDING_ACTIVATE_NOT_READY = 265, + SPELL_FAILED_NOT_SOULBOUND = 266, + SPELL_FAILED_RIDING_VEHICLE = 267, + SPELL_FAILED_VETERAN_TRIAL_ABOVE_SKILL_RANK_MAX = 268, + SPELL_FAILED_NOT_WHILE_MERCENARY = 269, + SPELL_FAILED_UNKNOWN = 270, SPELL_CAST_OK = 0xFFFF // custom value, must not be sent to client }; @@ -4669,32 +4671,32 @@ enum SpellFamilyNames enum TradeStatus { - TRADE_STATUS_DEAD = 0, - TRADE_STATUS_WRONG_FACTION = 1, - TRADE_STATUS_STATE_CHANGED = 2, - TRADE_STATUS_NOT_ENOUGH_CURRENCY = 3, - TRADE_STATUS_CURRENCY_NOT_TRADABLE = 4, - TRADE_STATUS_TOO_FAR_AWAY = 5, - TRADE_STATUS_RESTRICTED_ACCOUNT = 6, + TRADE_STATUS_CURRENCY_NOT_TRADABLE = 0, + TRADE_STATUS_PROPOSED = 1, + TRADE_STATUS_COMPLETE = 2, + TRADE_STATUS_INITIATED = 3, + TRADE_STATUS_DEAD = 4, + TRADE_STATUS_RESTRICTED_ACCOUNT = 5, + TRADE_STATUS_TOO_FAR_AWAY = 6, + TRADE_STATUS_LOGGING_OUT = 7, TRADE_STATUS_ACCEPTED = 8, - TRADE_STATUS_TARGET_DEAD = 9, - TRADE_STATUS_INITIATED = 10, - TRADE_STATUS_TARGET_STUNNED = 11, - TRADE_STATUS_LOGGING_OUT = 12, - TRADE_STATUS_UNACCEPTED = 13, + TRADE_STATUS_ALREADY_TRADING = 9, + TRADE_STATUS_PETITION = 10, + TRADE_STATUS_TARGET_DEAD = 11, + TRADE_STATUS_STATE_CHANGED = 12, TRADE_STATUS_NOT_ON_TAPLIST = 14, - TRADE_STATUS_COMPLETE = 16, - TRADE_STATUS_PLAYER_IGNORED = 17, - TRADE_STATUS_ALREADY_TRADING = 19, - TRADE_STATUS_TARGET_LOGGING_OUT = 20, - TRADE_STATUS_FAILED = 21, - TRADE_STATUS_PLAYER_BUSY = 22, - TRADE_STATUS_PROPOSED = 23, - TRADE_STATUS_PETITION = 25, - TRADE_STATUS_CANCELLED = 26, - TRADE_STATUS_WRONG_REALM = 28, - TRADE_STATUS_STUNNED = 30, - TRADE_STATUS_NO_TARGET = 31 + TRADE_STATUS_TARGET_LOGGING_OUT = 15, + TRADE_STATUS_WRONG_REALM = 17, + TRADE_STATUS_PLAYER_IGNORED = 18, + TRADE_STATUS_UNACCEPTED = 19, + TRADE_STATUS_TARGET_STUNNED = 21, + TRADE_STATUS_NO_TARGET = 22, + TRADE_STATUS_NOT_ENOUGH_CURRENCY = 23, + TRADE_STATUS_FAILED = 24, + TRADE_STATUS_CANCELLED = 25, + TRADE_STATUS_PLAYER_BUSY = 28, + TRADE_STATUS_WRONG_FACTION = 30, + TRADE_STATUS_STUNNED = 31, }; enum XPColorChar |