Originally Posted by
stoneharry
Of course it's possible, there are several quests on retail where creatures look like you (note the Future You quest).
Find out how it functions and there you have it. It's probably a packet somewhere you can send with specific values.
Confirm. I haven't tried it, but all the data is there and I know Mirror Image is functional on TrinityCore.
Theoretically, just send SMSG_MIRRORIMAGE_DATA. Not sure how it'll behave if the client didn't ask for it, however.
Code:
WorldPacket data(SMSG_MIRRORIMAGE_DATA, 68);
data << uint64(guid);
data << uint32(creator->GetDisplayId());
if (creator->GetTypeId() == TYPEID_PLAYER)
{
Player * pCreator = creator->ToPlayer();
data << uint8(pCreator->getRace());
data << uint8(pCreator->getGender());
data << uint8(pCreator->getClass());
data << uint8(pCreator->GetByteValue(PLAYER_BYTES, 0)); // skin
data << uint8(pCreator->GetByteValue(PLAYER_BYTES, 1)); // face
data << uint8(pCreator->GetByteValue(PLAYER_BYTES, 2)); // hair
data << uint8(pCreator->GetByteValue(PLAYER_BYTES, 3)); // haircolor
data << uint8(pCreator->GetByteValue(PLAYER_BYTES_2, 0)); // facialhair
data << uint32(pCreator->GetGuildId()); // unk
static const EquipmentSlots ItemSlots[] =
{
EQUIPMENT_SLOT_HEAD,
EQUIPMENT_SLOT_SHOULDERS,
EQUIPMENT_SLOT_BODY,
EQUIPMENT_SLOT_CHEST,
EQUIPMENT_SLOT_WAIST,
EQUIPMENT_SLOT_LEGS,
EQUIPMENT_SLOT_FEET,
EQUIPMENT_SLOT_WRISTS,
EQUIPMENT_SLOT_HANDS,
EQUIPMENT_SLOT_BACK,
EQUIPMENT_SLOT_TABARD,
EQUIPMENT_SLOT_END
};
// Display items in visible slots
for (EquipmentSlots const* itr = &ItemSlots[0]; *itr != EQUIPMENT_SLOT_END; ++itr)
{
if (*itr == EQUIPMENT_SLOT_HEAD && pCreator->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_HELM))
data << uint32(0);
else if (*itr == EQUIPMENT_SLOT_BACK && pCreator->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_HIDE_CLOAK))
data << uint32(0);
else if (Item const *item = pCreator->GetItemByPos(INVENTORY_SLOT_BAG_0, *itr))
data << uint32(item->GetProto()->DisplayInfoID);
else
data << uint32(0);
}
}