135-018 Posted December 14, 2020 Share Posted December 14, 2020 (edited) int m_iMaxProcessTicks; //sv_maxusrcmdprocessticks int m_iDummyCommandsToProcess; int m_iTicksAllowedForProcessing; int m_iTotalCommandsToSend; int m_iNumFakeCommandsToSend; bool m_bReadyToShiftTickbase; bool m_bIncrementTicksAllowedForProcessing; bool m_bEnableShiftPrinting; bool m_bShiftedLastSendPacket; int m_iBackupTickbase; bool m_bForceNextTickToIncrementTicksAllowedForProcessing; int m_iNumInvalidTicksSent; int m_iBackupTickbaseFirstCmd; float m_flDelayTickbaseShiftUntilThisTime; double m_flLastServerPacketReceiveTime; int m_iLastServerPacketReceiveTickcount; int m_nServerTick; __int32 m_nDeltaTick; bool m_bForceSend = false; bool m_bShouldChoke = false; bool ApplyTickbaseShift = false; int m_iCustomTickbase[150][2]; //if not set to 0, prediction will set tickbase to this on that command number int m_iCalculatedTickbase[150]; int lastoutgoingcommand; CLC_Move moveMsg; int m_TicksAllowedForProcessing; void SetForceSend(bool send) { m_bForceSend = send; }; void SetShouldChoke(bool choke) { m_bShouldChoke = choke; }; void InitDoubleTap() { static bool did_shift_before = false; static int double_tapped = 0; int i_ticks_to_wait = 15; static int prev_shift_ticks = 0; static bool reset = false; bool ApplyTickbaseShift = false; static int shot_tick = 0; int networked_tickbase = g_csgo->local->GetTickBase(); int current_tickbase = g_csgo->local->GetTickBase(); bool m_bShiftedLastSendPacket = false; int num_used_commands = g_csgo->client_state->iChokedCommands + 1; int clockcorrect = TIME_TO_TICKS(0.03f); static int process_ticks = 0; int latencyticks = max(0, TIME_TO_TICKS(interfaces.engine->GetNetChannelInfo()->GetAvgLatency(FLOW_OUTGOING))); static int limit = 14; bool CanShiftShot = false; bool PredictionStateIsShifted = false; bool WaitForTickbaseBeforeFiring = false; int tickb = m_nServerTick + latencyticks + 1; int nIdealFinalTick = tickb + clockcorrect; int simulation_ticks = m_iTotalCommandsToSend; int _ShiftedTickbase = nIdealFinalTick - simulation_ticks + 1; int new_tickbase = current_tickbase; int too_fast_limit = nIdealFinalTick + clockcorrect; int too_slow_limit = nIdealFinalTick - clockcorrect; float desiredrealtime = interfaces.global_vars->realtime + TICKS_TO_TIME(abs(networked_tickbase) + g_csgo->client_state->iChokedCommands + 1); int nEstimatedFinalTick = current_tickbase + simulation_ticks; bool _CanFireAfterShifting = (g_csgo->cmd->buttons & IN_ATTACK); int nextslot = (g_csgo->cmd->command_number + 1) % 150; int slot = g_csgo->cmd->command_number % 150; int maxprocessable = TIME_TO_TICKS(0.03f); CMAntiAim::Get().shot_dt = false; bool _CanFireWithoutShifting = (g_csgo->cmd->buttons & IN_ATTACK); int _FirstCommandSlot = (g_csgo->cmd->command_number - g_csgo->client_state->iChokedCommands) % 150; int nCorrectedTick = nIdealFinalTick - simulation_ticks + 1; int servertick = m_nServerTick; int nFinalTickbase = nCorrectedTick + moveMsg.m_nNewCommands; int old_tickbase = m_iCalculatedTickbase[lastoutgoingcommand % 150]; if (CanDT() && !g_csgo->game_rules->IsFreezeTime()) { if (vars.ragebot.double_tap->active) { prev_shift_ticks = 0; auto can_shift_shot = CMAntiAim::Get().can_exploit(16); auto can_shot = CMAntiAim::Get().can_exploit(abs(-1 - prev_shift_ticks)); if (m_iNumInvalidTicksSent != 1 || can_shift_shot || !can_shot && !did_shift_before) { prev_shift_ticks = 16; double_tapped = 0; } else { double_tapped++; m_iNumInvalidTicksSent++; prev_shift_ticks = 0; } if (m_nDeltaTick == -1) { for (int i = 0; i < 150; ++i) { m_iCustomTickbase[i][0] = 0; m_iCustomTickbase[i][1] = 0; m_iCalculatedTickbase[i] = 0; } } if (g_csgo->send_packet && g_csgo->local->GetTickBase()) { if (prev_shift_ticks > 0) { if (CMAntiAim::Get().can_exploit(_CanFireAfterShifting && prev_shift_ticks + clockcorrect)) { CMAntiAim::Get().shot_dt = true; if (g_csgo->cmd->buttons & IN_ATTACK) { m_bEnableShiftPrinting = false; m_iBackupTickbase = g_csgo->local->GetTickBase(); g_csgo->m_nTickbaseShift = prev_shift_ticks; CMAntiAim::Get().did_shot = true; PredictionStateIsShifted = true; CMAntiAim::Get().cmd_tick = g_csgo->cmd->command_number; reset = false; interfaces.global_vars->curtime = TICKS_TO_TIME(g_csgo->local->GetTickBase()); m_bEnableShiftPrinting = true; if (m_bShiftedLastSendPacket) { g_csgo->local->GetTickBase(); return; } m_iBackupTickbase = g_csgo->local->GetTickBase(); //store the current tickbase in case we need to restore prediction later if we did not decide to shift m_iBackupTickbaseFirstCmd = m_iCustomTickbase[_FirstCommandSlot][0]; //save the first cmd tickbase in case we dont decide to shift { m_bShiftedLastSendPacket = TICKS_TO_TIME(nCorrectedTick), m_bShiftedLastSendPacket = TICKS_TO_TIME(nFinalTickbase), m_bShiftedLastSendPacket = TIME_TO_TICKS(TICKS_TO_TIME(old_tickbase) - TICKS_TO_TIME(nCorrectedTick)), m_bShiftedLastSendPacket = TICKS_TO_TIME(old_tickbase); TICKS_TO_TIME(servertick); moveMsg.m_nNewCommands = 1 + g_csgo->client_state->iChokedCommands; } m_iCustomTickbase[_FirstCommandSlot][0] = _ShiftedTickbase; nIdealFinalTick - simulation_ticks + desiredrealtime + 1; interfaces.global_vars->curtime = TICKS_TO_TIME(servertick + prev_shift_ticks); CMAntiAim::Get().cmd_tick = (g_csgo->cmd->command_number + 1) % 150; if (nEstimatedFinalTick > too_fast_limit || nEstimatedFinalTick < too_slow_limit) new_tickbase = nIdealFinalTick - simulation_ticks + 1; m_iCustomTickbase[nextslot][0] = nIdealFinalTick; m_iCustomTickbase[nextslot][1] = 1; _CanFireWithoutShifting += _ShiftedTickbase; if (m_TicksAllowedForProcessing == -999) m_TicksAllowedForProcessing = (m_iTicksAllowedForProcessing); CMAntiAim::Get().base_tick = g_csgo->local->GetTickBase(); if (m_iNumInvalidTicksSent != 1) { m_bIncrementTicksAllowedForProcessing = true; m_iNumInvalidTicksSent++; m_bForceNextTickToIncrementTicksAllowedForProcessing = false; } else { m_iNumInvalidTicksSent = 0; if (m_bReadyToShiftTickbase && m_iTicksAllowedForProcessing) { m_bForceNextTickToIncrementTicksAllowedForProcessing = true; } } if (m_iCustomTickbase[slot][0] != 0) { m_iCustomTickbase[slot][0] = 0; m_iCustomTickbase[slot][1] = 0; } interfaces.global_vars->curtime = TICKS_TO_TIME(m_iBackupTickbase); interfaces.global_vars->curtime = TICKS_TO_TIME(m_iBackupTickbase + maxprocessable); interfaces.global_vars->curtime = TICKS_TO_TIME(_ShiftedTickbase); m_bEnableShiftPrinting = true; } else { if ((!(g_csgo->cmd->buttons & IN_ATTACK) || !Ragebot::Get().shot) && CMAntiAim::Get().did_shot) { g_csgo->dt_charged = false; g_csgo->skip_ticks = vars.ragebot.dt_instant ? 16 : 8; CMAntiAim::Get().did_shot = false; PredictionStateIsShifted = false; CMAntiAim::Get().base_tick = g_csgo->local->GetTickBase(); } } if (m_bIncrementTicksAllowedForProcessing) { SetForceSend(true); SetShouldChoke(false); WaitForTickbaseBeforeFiring = true; } } else { CMAntiAim::Get().shot_dt = false; process_ticks = 0; reset = true; m_iMaxProcessTicks = 16; m_iTicksAllowedForProcessing = 0; m_iNumFakeCommandsToSend = 0; m_bReadyToShiftTickbase = false; m_bIncrementTicksAllowedForProcessing = false; m_iNumInvalidTicksSent = 0; m_bEnableShiftPrinting = true; m_bForceNextTickToIncrementTicksAllowedForProcessing = false; for (int i = 0; i < 150; ++i) { m_iCustomTickbase[i][0] = 0; m_iCustomTickbase[i][1] = 0; m_iCalculatedTickbase[i] = 0; } } } did_shift_before = prev_shift_ticks != 0; } } else { g_csgo->bShootedFirstBullet = false; g_csgo->TickShifted = false; g_csgo->nSinceUse = 0; } } new_tickbase; return; } if error change g_csgo to csgo Edited December 14, 2020 by 135-018 p Quote Link to comment Share on other sites More sharing options...
Dana22222 Posted December 15, 2020 Share Posted December 15, 2020 same DT, pasted from yg... good job! Quote Link to comment Share on other sites More sharing options...
135-018 Posted December 15, 2020 Author Share Posted December 15, 2020 7 hours ago, Dana22222 said: same DT, pasted from yg... good job! did u read the title? good job yg paster Quote Link to comment Share on other sites More sharing options...
RealOfficial Posted December 22, 2020 Share Posted December 22, 2020 good dt thanks Quote Link to comment Share on other sites More sharing options...
zxzdarkzxz Posted December 31, 2020 Share Posted December 31, 2020 Where can I replace this at, cant find it in Createmove.h Quote Link to comment Share on other sites More sharing options...
135-018 Posted January 3, 2021 Author Share Posted January 3, 2021 On 12/31/2020 at 7:51 AM, zxzdarkzxz said: Where can I replace this at, cant find it in Createmove.h init doubletap Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.