diff --git a/src/game/ItemHandler.cpp b/src/game/ItemHandler.cpp index 596af2929..ffa5c2aef 100644 --- a/src/game/ItemHandler.cpp +++ b/src/game/ItemHandler.cpp @@ -303,7 +303,7 @@ void WorldSession::HandleReadItemOpcode(WorldPacket& recv_data) DETAIL_LOG("STORAGE: Unable to read item"); _player->SendEquipError(msg, pItem, NULL); } - data << ObjectGuid(pItem->GetObjectGuid()); + data << pItem->GetObjectGuid(); SendPacket(&data); } else @@ -894,11 +894,10 @@ void WorldSession::HandleSetAmmoOpcode(WorldPacket& recv_data) void WorldSession::SendEnchantmentLog(ObjectGuid targetGuid, ObjectGuid casterGuid, uint32 itemId, uint32 spellId) { WorldPacket data(SMSG_ENCHANTMENTLOG, (8 + 8 + 4 + 4 + 1)); // last check 2.0.10 - data << ObjectGuid(targetGuid); - data << ObjectGuid(casterGuid); + data << targetGuid.WriteAsPacked(); + data << casterGuid.WriteAsPacked(); data << uint32(itemId); data << uint32(spellId); - data << uint8(0); SendPacket(&data); } @@ -932,7 +931,7 @@ void WorldSession::HandleWrapItemOpcode(WorldPacket& recv_data) return; } - // cheating: non-wrapper wrapper (all empty wrappers is stackable) + // cheating: non-wrapper wrapper (all empty wrappers are stackable) if (!(gift->GetProto()->Flags & ITEM_FLAG_WRAPPER) || gift->GetMaxStackCount() == 1) { _player->SendEquipError(EQUIP_ERR_ITEM_NOT_FOUND, gift, NULL); diff --git a/src/game/Opcodes.cpp b/src/game/Opcodes.cpp index 9640820ca..d1b80d7d4 100644 --- a/src/game/Opcodes.cpp +++ b/src/game/Opcodes.cpp @@ -131,8 +131,6 @@ void InitializeOpcodes() //OPCODE(SMSG_PET_NAME_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_GUILD_QUERY, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryOpcode ); //OPCODE(SMSG_GUILD_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_ITEM_QUERY_MULTIPLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(SMSG_ITEM_QUERY_MULTIPLE_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_PAGE_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePageTextQueryOpcode ); //OPCODE(SMSG_PAGE_TEXT_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_QUEST_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestQueryOpcode ); @@ -233,14 +231,14 @@ void InitializeOpcodes() OPCODE(SMSG_UPDATE_OBJECT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_DESTROY_OBJECT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_USE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUseItemOpcode ); - //OPCODE(CMSG_OPEN_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleOpenItemOpcode ); - //OPCODE(CMSG_READ_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReadItemOpcode ); - //OPCODE(SMSG_READ_ITEM_OK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_READ_ITEM_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_ITEM_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_OPEN_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleOpenItemOpcode ); + OPCODE(CMSG_READ_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReadItemOpcode ); + OPCODE(SMSG_READ_ITEM_OK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_READ_ITEM_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_ITEM_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_GAMEOBJ_USE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGameObjectUseOpcode ); //OPCODE(CMSG_DESTROY_ITEMS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(SMSG_GAMEOBJECT_CUSTOM_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_GAMEOBJECT_CUSTOM_ANIM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_AREATRIGGER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAreaTriggerOpcode ); OPCODE(CMSG_MOVE_START_FORWARD, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes ); OPCODE(CMSG_MOVE_START_BACKWARD, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleMovementOpcodes ); @@ -337,15 +335,15 @@ void InitializeOpcodes() OPCODE(CMSG_AUTOSTORE_LOOT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutostoreLootItemOpcode ); //OPCODE(CMSG_STORE_LOOT_IN_SLOT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); OPCODE(CMSG_AUTOEQUIP_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoEquipItemOpcode ); - //OPCODE(CMSG_AUTOSTORE_BAG_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBagItemOpcode ); - //OPCODE(CMSG_SWAP_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSwapItem ); + OPCODE(CMSG_AUTOSTORE_BAG_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBagItemOpcode ); + OPCODE(CMSG_SWAP_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSwapItem ); OPCODE(CMSG_SWAP_INV_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSwapInvItemOpcode ); - //OPCODE(CMSG_SPLIT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSplitItemOpcode ); - //OPCODE(CMSG_AUTOEQUIP_ITEM_SLOT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoEquipItemSlotOpcode ); + OPCODE(CMSG_SPLIT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSplitItemOpcode ); + OPCODE(CMSG_AUTOEQUIP_ITEM_SLOT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoEquipItemSlotOpcode ); //OPCODE(CMSG_UNCLAIM_LICENSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(CMSG_DESTROYITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDestroyItemOpcode ); + OPCODE(CMSG_DESTROYITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDestroyItemOpcode ); OPCODE(SMSG_INVENTORY_CHANGE_FAILURE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_OPEN_CONTAINER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_OPEN_CONTAINER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_INSPECT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInspectOpcode ); //OPCODE(SMSG_INSPECT_RESULTS_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_INITIATE_TRADE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleInitiateTradeOpcode ); @@ -489,7 +487,6 @@ void InitializeOpcodes() OPCODE(CMSG_SELL_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSellItemOpcode ); OPCODE(SMSG_SELL_ITEM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_BUY_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBuyItemOpcode ); - //OPCODE(CMSG_BUY_ITEM_IN_SLOT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBuyItemInSlotOpcode ); OPCODE(SMSG_BUY_ITEM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_BUY_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_TAXICLEARALLNODES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -537,18 +534,18 @@ void InitializeOpcodes() //OPCODE(SMSG_LOG_XPGAIN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_AURACASTLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_RECLAIM_CORPSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleReclaimCorpseOpcode ); - //OPCODE(CMSG_WRAP_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleWrapItemOpcode ); + OPCODE(CMSG_WRAP_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleWrapItemOpcode ); OPCODE(SMSG_LEVELUP_INFO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(MSG_MINIMAP_PING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMinimapPingOpcode ); + OPCODE(MSG_MINIMAP_PING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMinimapPingOpcode ); //OPCODE(SMSG_RESISTLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_ENCHANTMENTLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_ENCHANTMENTLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SET_SKILL_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); OPCODE(SMSG_START_MIRROR_TIMER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_PAUSE_MIRROR_TIMER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_STOP_MIRROR_TIMER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_PING, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_EarlyProccess ); OPCODE(SMSG_PONG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_CLEAR_COOLDOWN, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_CLEAR_COOLDOWNS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_GAMEOBJECT_PAGETEXT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SETSHEATHED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleSetSheathedOpcode ); //OPCODE(SMSG_COOLDOWN_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -568,7 +565,7 @@ void InitializeOpcodes() //OPCODE(MSG_TABARDVENDOR_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTabardVendorActivateOpcode); OPCODE(SMSG_PLAY_SPELL_VISUAL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(CMSG_ZONEUPDATE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleZoneUpdateOpcode ); - //OPCODE(SMSG_PARTYKILLLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_PARTYKILLLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_COMPRESSED_UPDATE_OBJECT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_EXPLORATION_EXPERIENCE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_GM_SET_SECURITY_GROUP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); @@ -645,8 +642,8 @@ void InitializeOpcodes() //OPCODE(CMSG_SET_VEHICLE_REC_ID_ACK, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_TAXICLEARNODE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_TAXIENABLENODE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(CMSG_ITEM_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleItemTextQuery ); - //OPCODE(SMSG_ITEM_TEXT_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_ITEM_TEXT_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleItemTextQuery ); + OPCODE(SMSG_ITEM_TEXT_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_MAIL_TAKE_MONEY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailTakeMoney ); //OPCODE(CMSG_MAIL_TAKE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailTakeItem ); //OPCODE(CMSG_MAIL_MARK_AS_READ, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMailMarkAsRead ); @@ -708,8 +705,8 @@ void InitializeOpcodes() //OPCODE(CMSG_REQUEST_PARTY_MEMBER_STATS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestPartyMemberStatsOpcode); //OPCODE(CMSG_GROUP_SWAP_SUB_GROUP, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_RESET_FACTION_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(CMSG_AUTOSTORE_BANK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBankItemOpcode ); - //OPCODE(CMSG_AUTOBANK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoBankItemOpcode ); + OPCODE(CMSG_AUTOSTORE_BANK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoStoreBankItemOpcode ); + OPCODE(CMSG_AUTOBANK_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAutoBankItemOpcode ); //OPCODE(MSG_QUERY_NEXT_MAIL_TIME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryNextMailTime ); //OPCODE(SMSG_RECEIVED_MAIL, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_RAID_GROUP_ONLY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -731,7 +728,7 @@ void InitializeOpcodes() //OPCODE(CMSG_LFG_GET_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(SMSG_SHOW_MAILBOX, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_RESET_RANGED_COMBAT_TIMER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(SMSG_CHAT_NOT_IN_PARTY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_CHAT_NOT_IN_PARTY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_GMTICKETSYSTEM_TOGGLE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //OPCODE(CMSG_CANCEL_GROWTH_AURA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleCancelGrowthAuraOpcode ); OPCODE(SMSG_CANCEL_AUTO_REPEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -746,8 +743,8 @@ void InitializeOpcodes() //OPCODE(SMSG_SET_FORCED_REACTIONS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_SPELL_FAILED_OTHER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_GAMEOBJECT_RESET_STATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //OPCODE(CMSG_REPAIR_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRepairItemOpcode ); - //OPCODE(SMSG_CHAT_PLAYER_NOT_FOUND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(CMSG_REPAIR_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRepairItemOpcode ); + OPCODE(SMSG_CHAT_PLAYER_NOT_FOUND, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(MSG_TALENT_WIPE_CONFIRM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleTalentWipeConfirmOpcode ); //OPCODE(SMSG_SUMMON_REQUEST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_SUMMON_RESPONSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSummonResponseOpcode ); @@ -877,7 +874,7 @@ void InitializeOpcodes() //OPCODE(CMSG_GMSURVEY_SUBMIT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGMSurveySubmitOpcode ); //OPCODE(SMSG_UPDATE_INSTANCE_OWNERSHIP, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(CMSG_IGNORE_KNOCKBACK_CHEAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //OPCODE(SMSG_CHAT_PLAYER_AMBIGUOUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + OPCODE(SMSG_CHAT_PLAYER_AMBIGUOUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(MSG_DELAY_GHOST_TELEPORT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); OPCODE(SMSG_SPELLINSTAKILLLOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_SPELL_UPDATE_CHAIN_TARGETS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); diff --git a/src/game/Opcodes.h b/src/game/Opcodes.h index ac455a171..eaa881e35 100644 --- a/src/game/Opcodes.h +++ b/src/game/Opcodes.h @@ -125,8 +125,6 @@ enum Opcodes SMSG_PET_NAME_QUERY_RESPONSE = 0x1054, CMSG_GUILD_QUERY = 0x1055, SMSG_GUILD_QUERY_RESPONSE = 0x1056, - CMSG_ITEM_QUERY_MULTIPLE = 0x1058, - SMSG_ITEM_QUERY_MULTIPLE_RESPONSE = 0x105A, CMSG_PAGE_TEXT_QUERY = 0x105B, SMSG_PAGE_TEXT_QUERY_RESPONSE = 0x105C, CMSG_QUEST_QUERY = 0x0D06, // 4.3.4 15595 @@ -227,11 +225,11 @@ enum Opcodes SMSG_UPDATE_OBJECT = 0x4715, // 4.3.4 15595 SMSG_DESTROY_OBJECT = 0x4724, // 4.3.4 15595 CMSG_USE_ITEM = 0x2C06, // 4.3.4 15595 - CMSG_OPEN_ITEM = 0x10AD, - CMSG_READ_ITEM = 0x10AE, - SMSG_READ_ITEM_OK = 0x10AF, - SMSG_READ_ITEM_FAILED = 0x10B0, - SMSG_ITEM_COOLDOWN = 0x10B1, + CMSG_OPEN_ITEM = 0x6A34, // 4.3.4 15595 + CMSG_READ_ITEM = 0x2F16, // 4.3.4 15595 + SMSG_READ_ITEM_OK = 0x2605, // 4.3.4 15595 + SMSG_READ_ITEM_FAILED = 0x0F16, // 4.3.4 15595 + SMSG_ITEM_COOLDOWN = 0x4D14, // 4.3.4 15595 CMSG_GAMEOBJ_USE = 0x4E17, // 4.3.4 15595 CMSG_DESTROY_ITEMS = 0x10B3, SMSG_GAMEOBJECT_CUSTOM_ANIM = 0x10B4, @@ -322,15 +320,15 @@ enum Opcodes CMSG_AUTOSTORE_LOOT_ITEM = 0x0E34, // 4.3.4 15595 CMSG_STORE_LOOT_IN_SLOT = 0x110A, CMSG_AUTOEQUIP_ITEM = 0x4304, // 4.3.4 15595 - CMSG_AUTOSTORE_BAG_ITEM = 0x110C, - CMSG_SWAP_ITEM = 0x110D, + CMSG_AUTOSTORE_BAG_ITEM = 0x0236, // 4.3.4 15595 + CMSG_SWAP_ITEM = 0x6326, // 4.3.4 15595 CMSG_SWAP_INV_ITEM = 0x2614, // 4.3.4 15595 - CMSG_SPLIT_ITEM = 0x110F, - CMSG_AUTOEQUIP_ITEM_SLOT = 0x1110, + CMSG_SPLIT_ITEM = 0x0F17, // 4.3.4 15595 + CMSG_AUTOEQUIP_ITEM_SLOT = 0x4A17, // 4.3.4 15595 CMSG_UNCLAIM_LICENSE = 0x1111, - CMSG_DESTROYITEM = 0x1112, + CMSG_DESTROYITEM = 0x4A27, // 4.3.4 15595 SMSG_INVENTORY_CHANGE_FAILURE = 0x2236, // 4.3.4 15595 - SMSG_OPEN_CONTAINER = 0x1114, + SMSG_OPEN_CONTAINER = 0x4714, // 4.3.4 15595 CMSG_INSPECT = 0x1115, SMSG_INSPECT_RESULTS_UPDATE = 0x1116, CMSG_INITIATE_TRADE = 0x1117, @@ -474,7 +472,6 @@ enum Opcodes CMSG_SELL_ITEM = 0x4E15, // 4.3.4 15595 SMSG_SELL_ITEM = 0x6105, // 4.3.4 15595 CMSG_BUY_ITEM = 0x0736, // 4.3.4 15595 - CMSG_BUY_ITEM_IN_SLOT = 0x11A4, SMSG_BUY_ITEM = 0x0F26, // 4.3.4 15595 SMSG_BUY_FAILED = 0x6435, // 4.3.4 15595 CMSG_TAXICLEARALLNODES = 0x11A7, @@ -521,19 +518,19 @@ enum Opcodes SMSG_QUERY_TIME_RESPONSE = 0x2124, // 4.3.4 15595 SMSG_LOG_XPGAIN = 0x11D1, SMSG_AURACASTLOG = 0x11D2, - CMSG_RECLAIM_CORPSE = 0x4036, // 4.3.4 15595 - CMSG_WRAP_ITEM = 0x11D4, + CMSG_RECLAIM_CORPSE = 0x4036, // 4.3.4 15595 + CMSG_WRAP_ITEM = 0x4F06, // 4.3.4 15595 SMSG_LEVELUP_INFO = 0x0435, // 4.3.4 15595 - MSG_MINIMAP_PING = 0x11D6, + MSG_MINIMAP_PING = 0x6635, // 4.3.4 15595 SMSG_RESISTLOG = 0x11D7, - SMSG_ENCHANTMENTLOG = 0x11D8, + SMSG_ENCHANTMENTLOG = 0x6035, // 4.3.4 15595 CMSG_SET_SKILL_CHEAT = 0x11D9, SMSG_START_MIRROR_TIMER = 0x6824, // 4.3.4 15595 SMSG_PAUSE_MIRROR_TIMER = 0x4015, // 4.3.4 15595 SMSG_STOP_MIRROR_TIMER = 0x0B06, // 4.3.4 15595 CMSG_PING = 0x444D, // 4.3.4 15595 SMSG_PONG = 0x4D42, // 4.3.4 15595 - SMSG_CLEAR_COOLDOWN = 0x11DF, + SMSG_CLEAR_COOLDOWNS = 0x59B4, // 4.3.4 15595 SMSG_GAMEOBJECT_PAGETEXT = 0x11E0, CMSG_SETSHEATHED = 0x11E1, SMSG_COOLDOWN_CHEAT = 0x11E2, @@ -553,7 +550,7 @@ enum Opcodes MSG_TABARDVENDOR_ACTIVATE = 0x11F3, SMSG_PLAY_SPELL_VISUAL = 0x55A5, // 4.3.4 15595 CMSG_ZONEUPDATE = 0x4F37, // 4.3.4 15595 - SMSG_PARTYKILLLOG = 0x11F6, + SMSG_PARTYKILLLOG = 0x4937, // 4.3.4 15595 SMSG_COMPRESSED_UPDATE_OBJECT = 0x11F7, SMSG_EXPLORATION_EXPERIENCE = 0x11F9, CMSG_GM_SET_SECURITY_GROUP = 0x11FA, @@ -630,8 +627,8 @@ enum Opcodes CMSG_SET_VEHICLE_REC_ID_ACK = 0x1241, CMSG_TAXICLEARNODE = 0x1242, CMSG_TAXIENABLENODE = 0x1243, - CMSG_ITEM_TEXT_QUERY = 0x1244, - SMSG_ITEM_TEXT_QUERY_RESPONSE = 0x1245, + CMSG_ITEM_TEXT_QUERY = 0x2406, // 4.3.4 15595 + SMSG_ITEM_TEXT_QUERY_RESPONSE = 0x2725, // 4.3.4 15595 CMSG_MAIL_TAKE_MONEY = 0x1246, CMSG_MAIL_TAKE_ITEM = 0x1247, CMSG_MAIL_MARK_AS_READ = 0x1248, @@ -693,8 +690,8 @@ enum Opcodes CMSG_REQUEST_PARTY_MEMBER_STATS = 0x1280, CMSG_GROUP_SWAP_SUB_GROUP = 0x1281, CMSG_RESET_FACTION_CHEAT = 0x1282, - CMSG_AUTOSTORE_BANK_ITEM = 0x1283, - CMSG_AUTOBANK_ITEM = 0x1284, + CMSG_AUTOSTORE_BANK_ITEM = 0x0607, // 4.3.4 15595 + CMSG_AUTOBANK_ITEM = 0x2537, // 4.3.4 15595 MSG_QUERY_NEXT_MAIL_TIME = 0x0F04, // 4.3.4 15595 SMSG_RECEIVED_MAIL = 0x1286, SMSG_RAID_GROUP_ONLY = 0x1287, @@ -716,7 +713,7 @@ enum Opcodes CMSG_LFG_GET_STATUS = 0x1297, SMSG_SHOW_MAILBOX = 0x1298, SMSG_RESET_RANGED_COMBAT_TIMER = 0x1299, - SMSG_CHAT_NOT_IN_PARTY = 0x129A, + SMSG_CHAT_NOT_IN_PARTY = 0x6A14, // 4.3.4 15595 CMSG_GMTICKETSYSTEM_TOGGLE = 0x129B, CMSG_CANCEL_GROWTH_AURA = 0x129C, SMSG_CANCEL_AUTO_REPEAT = 0x6436, // 4.3.4 15595 @@ -731,8 +728,8 @@ enum Opcodes SMSG_SET_FORCED_REACTIONS = 0x12A6, SMSG_SPELL_FAILED_OTHER = 0x4535, // 4.3.4 15595 SMSG_GAMEOBJECT_RESET_STATE = 0x12A8, - CMSG_REPAIR_ITEM = 0x12A9, - SMSG_CHAT_PLAYER_NOT_FOUND = 0x12AA, + CMSG_REPAIR_ITEM = 0x2917, // 4.3.4 15595 + SMSG_CHAT_PLAYER_NOT_FOUND = 0x2526, // 4.3.4 15595 MSG_TALENT_WIPE_CONFIRM = 0x12AB, SMSG_SUMMON_REQUEST = 0x12AC, CMSG_SUMMON_RESPONSE = 0x12AD, @@ -862,7 +859,7 @@ enum Opcodes CMSG_GMSURVEY_SUBMIT = 0x132B, SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x132C, CMSG_IGNORE_KNOCKBACK_CHEAT = 0x132D, - SMSG_CHAT_PLAYER_AMBIGUOUS = 0x132E, + SMSG_CHAT_PLAYER_AMBIGUOUS = 0x2F34, // 4.3.4 15595 MSG_DELAY_GHOST_TELEPORT = 0x132F, SMSG_SPELLINSTAKILLLOG = 0x6216, // 4.3.4 15595 SMSG_SPELL_UPDATE_CHAIN_TARGETS = 0x1331, @@ -1218,7 +1215,7 @@ enum Opcodes SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x148F, CMSG_AUCTION_LIST_PENDING_SALES = 0x1490, SMSG_AUCTION_LIST_PENDING_SALES = 0x1491, - SMSG_MODIFY_COOLDOWN = 0x1492, + SMSG_MODIFY_COOLDOWN = 0x6016, // 4.3.4 15595 SMSG_PET_UPDATE_COMBO_POINTS = 0x1493, CMSG_ENABLETAXI = 0x1494, SMSG_PRE_RESURRECT = 0x1495, diff --git a/src/game/Player.cpp b/src/game/Player.cpp index d67eb9506..0148026ab 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -3659,8 +3659,21 @@ void Player::RemoveAllSpellCooldown() { if (!m_spellCooldowns.empty()) { + ObjectGuid guid = GetObjectGuid(); + + WorldPacket data(SMSG_CLEAR_COOLDOWNS, 1 + 8 + m_spellCooldowns.size() * 4); + data.WriteGuidMask<1, 3, 6>(guid); + data.WriteBits(m_spellCooldowns.size(), 24); // cooldown count + data.WriteGuidMask<7, 5, 2, 4, 0>(guid); + + data.WriteGuidBytes<7, 2, 4, 5, 1, 3>(guid); + for (SpellCooldowns::const_iterator itr = m_spellCooldowns.begin(); itr != m_spellCooldowns.end(); ++itr) - SendClearCooldown(itr->first, this); + data << uint32(itr->first); + + data.WriteGuidBytes<0, 6>(guid); + + SendDirectMessage(&data); m_spellCooldowns.clear(); } @@ -20646,7 +20659,7 @@ void Player::ApplyEquipCooldown(Item* pItem) AddSpellCooldown(spellData.SpellId, pItem->GetEntry(), time(NULL) + 30); WorldPacket data(SMSG_ITEM_COOLDOWN, 12); - data << ObjectGuid(pItem->GetObjectGuid()); + data << pItem->GetObjectGuid(); data << uint32(spellData.SpellId); GetSession()->SendPacket(&data); } @@ -23220,9 +23233,17 @@ void Player::RemoveAtLoginFlag(AtLoginFlags f, bool in_db_also /*= false*/) void Player::SendClearCooldown(uint32 spell_id, Unit* target) { - WorldPacket data(SMSG_CLEAR_COOLDOWN, 4 + 8); + ObjectGuid guid = target->GetObjectGuid(); + + WorldPacket data(SMSG_CLEAR_COOLDOWNS, 1 + 8 + 4); + data.WriteGuidMask<1, 3, 6>(guid); + data.WriteBits(1, 24); // cooldown count + data.WriteGuidMask<7, 5, 2, 4, 0>(guid); + + data.WriteGuidBytes<7, 2, 4, 5, 1, 3>(guid); data << uint32(spell_id); - data << target->GetObjectGuid(); + data.WriteGuidBytes<0, 6>(guid); + SendDirectMessage(&data); } diff --git a/src/game/movement/util.cpp b/src/game/movement/util.cpp index b20375a11..9954f99ba 100644 --- a/src/game/movement/util.cpp +++ b/src/game/movement/util.cpp @@ -184,8 +184,8 @@ namespace Movement STR(Final_Point), // 0x04000000, STR(Final_Target), // 0x08000000, STR(Final_Angle), // 0x10000000, - STR(Unknown7), // 0x20000000, - STR(Unknown8), // 0x40000000, + STR(Unknown7), // 0x20000000, + STR(Unknown8), // 0x40000000, STR(Unknown9), // 0x80000000, }; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index d2c7d39df..062e58b74 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "0143" + #define REVISION_NR "0144" #endif // __REVISION_NR_H__