aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Item/Item.h3
-rw-r--r--src/server/game/Entities/Player/Player.h6
-rw-r--r--src/server/game/Handlers/TradeHandler.cpp4
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h202
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