mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
[0106] Fix some opcodes
Signed-off-by: Netcho <kkotlarski@abv.bg>
This commit is contained in:
parent
fe0e119e13
commit
7ab30e619e
4 changed files with 53 additions and 49 deletions
|
|
@ -742,26 +742,30 @@ void WorldSession::SendListInventory(ObjectGuid vendorguid)
|
|||
VendorItemData const* vItems = pCreature->GetVendorItems();
|
||||
VendorItemData const* tItems = pCreature->GetVendorTemplateItems();
|
||||
|
||||
if (!vItems && !tItems)
|
||||
{
|
||||
WorldPacket data(SMSG_LIST_INVENTORY, (8 + 1 + 1));
|
||||
data << ObjectGuid(vendorguid);
|
||||
data << uint8(0); // count==0, next will be error code
|
||||
data << uint8(0); // "Vendor has no inventory"
|
||||
SendPacket(&data);
|
||||
return;
|
||||
}
|
||||
|
||||
uint8 customitems = vItems ? vItems->GetItemCount() : 0;
|
||||
uint8 numitems = customitems + (tItems ? tItems->GetItemCount() : 0);
|
||||
|
||||
uint8 count = 0;
|
||||
|
||||
WorldPacket data(SMSG_LIST_INVENTORY, (8 + 1 + numitems * 8 * 4));
|
||||
data << ObjectGuid(vendorguid);
|
||||
|
||||
ObjectGuid Guid = vendorguid;
|
||||
uint8 GuidMask[] = { 1, 0, 3, 6, 5, 2, 7, 4 };
|
||||
uint8 GuidBytes[] = { 5, 4, 1, 0, 6, 2, 3, 7 };
|
||||
|
||||
size_t count_pos = data.wpos();
|
||||
data << uint8(count); // placeholder, client limit 150 items (as of 3.3.3)
|
||||
data.WriteGuidMask(Guid, GuidMask, 2);
|
||||
data.WriteBits(numitems, 21);
|
||||
data.WriteGuidMask(Guid, GuidMask, 5, 2);
|
||||
|
||||
for (uint32 i = 0; i < numitems; i++)
|
||||
{
|
||||
data.WriteBit(true);
|
||||
data.WriteBit(true);
|
||||
}
|
||||
|
||||
data.WriteGuidMask(Guid, GuidMask, 1, 7);
|
||||
|
||||
data.FlushBits();
|
||||
|
||||
float discountMod = _player->GetReputationPriceDiscount(pCreature);
|
||||
|
||||
|
|
@ -810,25 +814,25 @@ void WorldSession::SendListInventory(ObjectGuid vendorguid)
|
|||
uint32 price = (crItem->ExtendedCost == 0 || pProto->Flags2 & ITEM_FLAG2_EXT_COST_REQUIRES_GOLD) ? uint32(floor(pProto->BuyPrice * discountMod)) : 0;
|
||||
|
||||
data << uint32(vendorslot + 1); // client size expected counting from 1
|
||||
data << uint32(pProto->ItemId);
|
||||
data << uint32(pProto->MaxDurability);
|
||||
|
||||
/*if (hasExtendedCost[vendorslot])
|
||||
data << uint32(crItem->ExtendedCost);*/
|
||||
|
||||
data << uint32(itemId);
|
||||
data << uint32(pProto->BuyCount);
|
||||
data << uint32(price);
|
||||
data << uint32(pProto->DisplayInfoID);
|
||||
data << uint32(crItem->maxcount <= 0 ? 0xFFFFFFFF : pCreature->GetVendorItemCurrentCount(crItem));
|
||||
data << uint32(price);
|
||||
data << uint32(pProto->MaxDurability);
|
||||
data << uint32(pProto->BuyCount);
|
||||
data << uint32(crItem->ExtendedCost);
|
||||
data << uint32(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count == 0)
|
||||
{
|
||||
data << uint8(0); // "Vendor has no inventory"
|
||||
SendPacket(&data);
|
||||
return;
|
||||
}
|
||||
data.WriteGuidBytes(Guid, GuidBytes, 5, 0);
|
||||
data << uint8(0x74);
|
||||
data.WriteGuidBytes(Guid, GuidBytes, 3, 5);
|
||||
|
||||
data.put<uint8>(count_pos, count);
|
||||
SendPacket(&data);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1453,7 +1453,7 @@ void WorldSession::HandleSetRaidDifficultyOpcode(WorldPacket& recv_data)
|
|||
if (pGroup->IsLeader(_player->GetObjectGuid()))
|
||||
{
|
||||
// the difficulty is set even if the instances can't be reset
|
||||
//_player->SendDungeonDifficulty(true);
|
||||
_player->SendDungeonDifficulty(true);
|
||||
pGroup->ResetInstances(INSTANCE_RESET_CHANGE_DIFFICULTY, true, _player);
|
||||
pGroup->SetRaidDifficulty(Difficulty(mode));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -486,10 +486,10 @@ void InitializeOpcodes()
|
|||
//OPCODE(CMSG_QUEST_CONFIRM_ACCEPT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQuestConfirmAccept );
|
||||
//OPCODE(SMSG_QUEST_CONFIRM_ACCEPT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(CMSG_PUSHQUESTTOPARTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandlePushQuestToParty );
|
||||
//OPCODE(CMSG_LIST_INVENTORY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleListInventoryOpcode );
|
||||
//OPCODE(SMSG_LIST_INVENTORY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(CMSG_SELL_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSellItemOpcode );
|
||||
//OPCODE(SMSG_SELL_ITEM, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
OPCODE(CMSG_LIST_INVENTORY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleListInventoryOpcode );
|
||||
OPCODE(SMSG_LIST_INVENTORY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
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 );
|
||||
|
|
@ -569,7 +569,7 @@ void InitializeOpcodes()
|
|||
//OPCODE(MSG_SAVE_GUILD_EMBLEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSaveGuildEmblemOpcode );
|
||||
//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(CMSG_ZONEUPDATE, STATUS_LOGGEDIN, PROCESS_THREADSAFE, &WorldSession::HandleZoneUpdateOpcode );
|
||||
//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 );
|
||||
|
|
@ -577,7 +577,7 @@ void InitializeOpcodes()
|
|||
//OPCODE(CMSG_GM_NUKE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
//OPCODE(MSG_RANDOM_ROLL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomRollOpcode );
|
||||
//OPCODE(SMSG_ENVIRONMENTALDAMAGELOG, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(CMSG_CHANGEPLAYER_DIFFICULTY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
OPCODE(CMSG_CHANGEPLAYER_DIFFICULTY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
//OPCODE(SMSG_RWHOIS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(SMSG_LFG_PLAYER_REWARD, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(SMSG_LFG_TELEPORT_DENIED, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
|
|
@ -594,7 +594,7 @@ void InitializeOpcodes()
|
|||
OPCODE(CMSG_UPDATE_ACCOUNT_DATA, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateAccountData);
|
||||
OPCODE(SMSG_UPDATE_ACCOUNT_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(SMSG_CLEAR_FAR_SIGHT_IMMEDIATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(SMSG_CHANGEPLAYER_DIFFICULTY_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
OPCODE(SMSG_CHANGEPLAYER_DIFFICULTY_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(CMSG_GM_TEACH, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
//OPCODE(CMSG_GM_CREATE_ITEM_TARGET, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
OPCODE(CMSG_GMTICKET_GETTICKET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGMTicketGetTicketOpcode );
|
||||
|
|
@ -636,9 +636,9 @@ void InitializeOpcodes()
|
|||
//OPCODE(CMSG_GUILD_SET_OFFICER_NOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildSetOfficerNoteOpcode );
|
||||
OPCODE(SMSG_LOGIN_VERIFY_WORLD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(CMSG_CLEAR_EXPLORATION, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
//OPCODE(CMSG_SEND_MAIL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSendMail );
|
||||
//OPCODE(SMSG_SEND_MAIL_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(CMSG_GET_MAIL_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetMailList );
|
||||
OPCODE(CMSG_SEND_MAIL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSendMail );
|
||||
OPCODE(SMSG_SEND_MAIL_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
OPCODE(CMSG_GET_MAIL_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetMailList );
|
||||
//OPCODE(SMSG_MAIL_LIST_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(CMSG_BATTLEFIELD_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleBattlefieldListOpcode );
|
||||
//OPCODE(SMSG_BATTLEFIELD_LIST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
|
|
@ -877,7 +877,7 @@ void InitializeOpcodes()
|
|||
//OPCODE(SMSG_GHOSTEE_GONE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(CMSG_GM_UPDATE_TICKET_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||
//OPCODE(SMSG_GM_TICKET_STATUS_UPDATE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||
//OPCODE(MSG_SET_DUNGEON_DIFFICULTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetDungeonDifficultyOpcode);
|
||||
OPCODE(MSG_SET_DUNGEON_DIFFICULTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetDungeonDifficultyOpcode);
|
||||
//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 );
|
||||
|
|
|
|||
|
|
@ -471,10 +471,10 @@ enum Opcodes
|
|||
CMSG_QUEST_CONFIRM_ACCEPT = 0x119C,
|
||||
SMSG_QUEST_CONFIRM_ACCEPT = 0x119D,
|
||||
CMSG_PUSHQUESTTOPARTY = 0x119E,
|
||||
CMSG_LIST_INVENTORY = 0x119F,
|
||||
SMSG_LIST_INVENTORY = 0x11A0,
|
||||
CMSG_SELL_ITEM = 0x11A1,
|
||||
SMSG_SELL_ITEM = 0x11A2,
|
||||
CMSG_LIST_INVENTORY = 0x2806, // 4.3.4 15595
|
||||
SMSG_LIST_INVENTORY = 0x7CB0, // 4.3.4 15595
|
||||
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
|
||||
|
|
@ -554,7 +554,7 @@ enum Opcodes
|
|||
MSG_SAVE_GUILD_EMBLEM = 0x11F2,
|
||||
MSG_TABARDVENDOR_ACTIVATE = 0x11F3,
|
||||
SMSG_PLAY_SPELL_VISUAL = 0x55A5, // 4.3.4 15595
|
||||
CMSG_ZONEUPDATE = 0x11F5,
|
||||
CMSG_ZONEUPDATE = 0x4F37, // 4.3.4 15595
|
||||
SMSG_PARTYKILLLOG = 0x11F6,
|
||||
SMSG_COMPRESSED_UPDATE_OBJECT = 0x11F7,
|
||||
SMSG_EXPLORATION_EXPERIENCE = 0x11F9,
|
||||
|
|
@ -562,7 +562,7 @@ enum Opcodes
|
|||
CMSG_GM_NUKE = 0x11FB,
|
||||
MSG_RANDOM_ROLL = 0x11FC,
|
||||
SMSG_ENVIRONMENTALDAMAGELOG = 0x11FD,
|
||||
CMSG_CHANGEPLAYER_DIFFICULTY = 0x11FE,
|
||||
CMSG_CHANGEPLAYER_DIFFICULTY = 0x6107, // 4.3.4 15595
|
||||
SMSG_RWHOIS = 0x11FF,
|
||||
SMSG_LFG_PLAYER_REWARD = 0x1200,
|
||||
SMSG_LFG_TELEPORT_DENIED = 0x1201,
|
||||
|
|
@ -579,7 +579,7 @@ enum Opcodes
|
|||
CMSG_UPDATE_ACCOUNT_DATA = 0x4736, // 4.3.4 15595
|
||||
SMSG_UPDATE_ACCOUNT_DATA = 0x6837, // 4.3.4 15595
|
||||
SMSG_CLEAR_FAR_SIGHT_IMMEDIATE = 0x120E,
|
||||
SMSG_CHANGEPLAYER_DIFFICULTY_RESULT = 0x120F,
|
||||
SMSG_CHANGEPLAYER_DIFFICULTY_RESULT = 0x2217, // 4.3.4 15595
|
||||
CMSG_GM_TEACH = 0x1210,
|
||||
CMSG_GM_CREATE_ITEM_TARGET = 0x1211,
|
||||
CMSG_GMTICKET_GETTICKET = 0x0326, // 4.3.4 15595
|
||||
|
|
@ -621,9 +621,9 @@ enum Opcodes
|
|||
CMSG_GUILD_SET_OFFICER_NOTE = 0x1236,
|
||||
SMSG_LOGIN_VERIFY_WORLD = 0x2005, // 4.3.4 15595
|
||||
CMSG_CLEAR_EXPLORATION = 0x1238,
|
||||
CMSG_SEND_MAIL = 0x1239,
|
||||
SMSG_SEND_MAIL_RESULT = 0x123A,
|
||||
CMSG_GET_MAIL_LIST = 0x123B,
|
||||
CMSG_SEND_MAIL = 0x0523, // 4.3.4 15595
|
||||
SMSG_SEND_MAIL_RESULT = 0x4927, // 4.3.4 15595
|
||||
CMSG_GET_MAIL_LIST = 0x4D37, // 4.3.4 15595
|
||||
SMSG_MAIL_LIST_RESULT = 0x123C,
|
||||
CMSG_BATTLEFIELD_LIST = 0x123D,
|
||||
SMSG_BATTLEFIELD_LIST = 0x123E,
|
||||
|
|
@ -697,7 +697,7 @@ enum Opcodes
|
|||
CMSG_RESET_FACTION_CHEAT = 0x1282,
|
||||
CMSG_AUTOSTORE_BANK_ITEM = 0x1283,
|
||||
CMSG_AUTOBANK_ITEM = 0x1284,
|
||||
MSG_QUERY_NEXT_MAIL_TIME = 0x1285,
|
||||
MSG_QUERY_NEXT_MAIL_TIME = 0x0F04, // 4.3.4 15595
|
||||
SMSG_RECEIVED_MAIL = 0x1286,
|
||||
SMSG_RAID_GROUP_ONLY = 0x1287,
|
||||
CMSG_SET_DURABILITY_CHEAT = 0x1288,
|
||||
|
|
@ -862,7 +862,7 @@ enum Opcodes
|
|||
SMSG_GHOSTEE_GONE = 0x1327,
|
||||
CMSG_GM_UPDATE_TICKET_STATUS = 0x1328,
|
||||
SMSG_GM_TICKET_STATUS_UPDATE = 0x1329,
|
||||
MSG_SET_DUNGEON_DIFFICULTY = 0x132A,
|
||||
MSG_SET_DUNGEON_DIFFICULTY = 0x4925, // 4.3.4 15595
|
||||
CMSG_GMSURVEY_SUBMIT = 0x132B,
|
||||
SMSG_UPDATE_INSTANCE_OWNERSHIP = 0x132C,
|
||||
CMSG_IGNORE_KNOCKBACK_CHEAT = 0x132D,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue