-
Автор темы
- #1
Помогите спастить функцию которая делает фейк пинг в табе
Код:
int __fastcall Hooks::SendDatagram(INetChannel* netchan, void*, bf_write* datagram)
{
if (DisableAllChk.Checked || !BacktrackExploitChk.Checked || datagram)
{
return oSendDatagram(netchan, datagram);
}
int instate = netchan->m_nInReliableState;
int insequencenr = netchan->m_nInSequenceNr;
gLagCompensation.AddLatencyToNetchan(netchan, FAKE_LATENCY_AMOUNT);
int ret = oSendDatagram(netchan, datagram);
netchan->m_nInReliableState = instate;
netchan->m_nInSequenceNr = insequencenr;
return ret;
}
void LagCompensation::AddLatencyToNetchan(INetChannel *netchan, float Latency)
{
for (auto& seq : sequences)
{
if (Interfaces::Globals->realtime - seq.curtime >= Latency)
{
netchan->m_nInReliableState = seq.inreliablestate;
netchan->m_nInSequenceNr = seq.sequencenr;
break;
}
}
}
void LagCompensation::UpdateIncomingSequences()
{
DWORD ClientState = (DWORD)*(DWORD*)pClientState;
if (ClientState)
{
INetChannel *netchan = (INetChannel*)*(DWORD*)(ClientState + 0x9C);
if (netchan)
{
if (netchan->m_nInSequenceNr > lastincomingsequencenumber)
{
lastincomingsequencenumber = netchan->m_nInSequenceNr;
sequences.push_front(CIncomingSequence(netchan->m_nInReliableState, netchan->m_nOutReliableState, netchan->m_nInSequenceNr, Interfaces::Globals->realtime));
}
if (sequences.size() > 2048)
sequences.pop_back();
}
}
}