Clear the encounter timeline and treasure picker from dungeon sniffs.
This commit is contained in:
@@ -26511,6 +26511,15 @@ void Player::SendInitialPacketsAfterAddToMap()
|
|||||||
initialUpdate.SequenceIndex = m_movementCounter++;
|
initialUpdate.SequenceIndex = m_movementCounter++;
|
||||||
SendDirectMessage(initialUpdate.Write());
|
SendDirectMessage(initialUpdate.Write());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Dungeon captures clear the treasure picker cache with an empty packet once the player is on
|
||||||
|
// the instance connection. Open world does not get that clear.
|
||||||
|
if (GetMap()->IsDungeon())
|
||||||
|
{
|
||||||
|
WorldPackets::Misc::ClearTreasurePickerCache clearTreasurePicker;
|
||||||
|
SendDirectMessage(clearTreasurePicker.Write());
|
||||||
|
}
|
||||||
|
|
||||||
//WowCommunity
|
//WowCommunity
|
||||||
|
|
||||||
if (HasUnitState(UNIT_STATE_FLEEING | UNIT_STATE_CONFUSED) || HasAuraType(SPELL_AURA_MOD_CONFUSE) || HasAuraType(SPELL_AURA_MOD_FEAR))
|
if (HasUnitState(UNIT_STATE_FLEEING | UNIT_STATE_CONFUSED) || HasAuraType(SPELL_AURA_MOD_CONFUSE) || HasAuraType(SPELL_AURA_MOD_FEAR))
|
||||||
|
|||||||
@@ -955,6 +955,10 @@ void InstanceScript::SendEncounterEnd()
|
|||||||
{
|
{
|
||||||
WorldPackets::Instance::InstanceEncounterEnd encounterEndMessage;
|
WorldPackets::Instance::InstanceEncounterEnd encounterEndMessage;
|
||||||
instance->SendToPlayers(encounterEndMessage.Write());
|
instance->SendToPlayers(encounterEndMessage.Write());
|
||||||
|
|
||||||
|
// The same end bundle in the dungeon captures clears the encounter timeline with a count of 0.
|
||||||
|
WorldPackets::Instance::InstanceEncounterEventSequence clearTimeline;
|
||||||
|
instance->SendToPlayers(clearTimeline.Write());
|
||||||
}
|
}
|
||||||
|
|
||||||
void InstanceScript::SendBossKillCredit(uint32 encounterId)
|
void InstanceScript::SendBossKillCredit(uint32 encounterId)
|
||||||
|
|||||||
@@ -593,6 +593,20 @@ namespace WorldPackets
|
|||||||
uint32 TimerID = 0;
|
uint32 TimerID = 0;
|
||||||
bool KeepTimer = false;
|
bool KeepTimer = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// SMSG_INSTANCE_ENCOUNTER_EVENT_SEQUENCE. A count of 0 is the 4-byte clear retail sends
|
||||||
|
// with the encounter-end bundle. Populated event records are variable and not written here.
|
||||||
|
class InstanceEncounterEventSequence final : public ServerPacket
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit InstanceEncounterEventSequence() : ServerPacket(SMSG_INSTANCE_ENCOUNTER_EVENT_SEQUENCE, 4) {}
|
||||||
|
|
||||||
|
WorldPacket const* Write() override
|
||||||
|
{
|
||||||
|
_worldPacket << uint32(0);
|
||||||
|
return &_worldPacket;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1476,6 +1476,15 @@ namespace WorldPackets
|
|||||||
|
|
||||||
WorldPacket const* Write() override { return &_worldPacket; }
|
WorldPacket const* Write() override { return &_worldPacket; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// SMSG_CLEAR_TREASURE_PICKER_CACHE. Dungeon captures send an empty body on the instance connection.
|
||||||
|
class ClearTreasurePickerCache final : public ServerPacket
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit ClearTreasurePickerCache() : ServerPacket(SMSG_CLEAR_TREASURE_PICKER_CACHE, 0) {}
|
||||||
|
|
||||||
|
WorldPacket const* Write() override { return &_worldPacket; }
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1438,7 +1438,7 @@ void OpcodeTable::InitializeServerOpcodes()
|
|||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_RESURRECT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_RESURRECT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_SPELL_CHARGES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_TARGET, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_TARGET, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_TREASURE_PICKER_CACHE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLEAR_TREASURE_PICKER_CACHE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLOSE_ARTIFACT_FORGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLOSE_ARTIFACT_FORGE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_ERROR_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_ERROR_MESSAGE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_CLUB_FINDER_GET_CLUB_POSTING_IDS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||||
@@ -1839,7 +1839,7 @@ void OpcodeTable::InitializeServerOpcodes()
|
|||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_BLOCKED_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_BLOCKED_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_CAST_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_CAST_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_RESPAWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_RESPAWN, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_SEQUENCE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_EVENT_SEQUENCE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_GAIN_COMBAT_RESURRECTION_CHARGE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_IN_COMBAT_RESURRECTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSTANCE_ENCOUNTER_OBJECTIVE_COMPLETE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||||
|
|||||||
Reference in New Issue
Block a user