Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "includes.h"
- #include "Aimbot.h"
- #include "Autowall.h"
- #include "Resolver.h"
- #include "BacktrackingHelper.h"
- resolver* g_Resolver = new resolver;
- bool resolver::desyncing(CBaseEntity* entity) {
- auto record = data[entity->GetIndex()];
- if (vars::missed_shots[entity->GetIndex()] > 0) { record.missed = true; return true; }
- if (record.oldsimtime != entity->GetSimulationTime()) return true;
- if (vars::logged[entity->GetIndex()]) return true;
- return false;
- }
- void resolver::applyangle( CBaseEntity* entity, float bodyyaw ) {
- auto record = data[ entity->Index( ) ];
- float newyaw = bodyyaw;
- record.backwardsdelta >= 90 ? newyaw *= -1 : newyaw = bodyyaw;
- record.lastresolved = newyaw;
- entity->AnimState()->m_flGoalFeetYaw += newyaw;
- }
- void resolver::resolve( CBaseEntity* entity )
- {
- auto eidx = entity->GetIndex();
- auto poseparams = entity->poseparameterptr( );
- auto record = data[eidx];
- auto* animstate = entity->AnimState( );
- if (!animstate || !entity->GetAnimOverlays( ) || !poseparams)
- return;
- if ( desyncing(entity) ) {
- record.maxdesync = GameUtils::maxdesyncdelta( entity ) * .9;
- record.backwards = Math::NormalizeYaw( Math::CalcAngle( vars::LocalPlayer->GetOrigin( ), entity->GetOrigin( ) ).y + 180 );
- record.backwardsdelta = abs(Math::NormalizeYaw(( entity->GetEyeAngles( ).y - record.backwards)));
- if ( GetAsyncKeyState( menu.rage.resolveroverride ) ) { // Override
- Vector pos_enemy = entity->GetOrigin();
- if (GameUtils::WorldToScreen( entity->GetOrigin( ), pos_enemy ) ) {
- ImVec2 ImGui::GetMousePos( );
- record.resolvermode = "OVERRIDE";
- applyangle(entity, (ImGui::GetMousePos().x - pos_enemy.x) < 0 ? -record.maxdesync : record.maxdesync);
- }
- } else {
- if (record.missed ? vars::missed_shots[eidx] > 1 : vars::missed_shots[eidx] > 0) {
- //FIRST SHOT RESOLVE
- if (vars::logged[eidx]) {
- //Set to Last Hit Feet Yaw
- record.resolvermode = "LOG";
- applyangle(entity, vars::loggedfeetyaw[eidx]);
- }
- else {
- //Anti-Freestanding Body yaw
- Vector headpos, leftpos, rightpos;
- headpos = entity->GetHedPos();
- leftpos = Vector(headpos.x - 50, headpos.y, headpos.z);
- rightpos = Vector(headpos.x + 50, headpos.y, headpos.z);
- float ldamage = g_Autowall->CanHit(leftpos);
- float rdamage = g_Autowall->CanHit(rightpos);
- if (ldamage != rdamage) {
- applyangle(entity, ldamage > rdamage ? -record.maxdesync : record.maxdesync);
- record.resolvermode = "FSBY";
- } else {
- applyangle(entity, -record.maxdesync);
- record.resolvermode = "RIGHT";
- }
- }
- }else {
- //BRUTEFORCE
- switch (vars::missed_shots[eidx]) {
- case 1:
- applyangle(entity, -record.lastresolved);
- break;
- case 2:
- applyangle(entity, record.lastresolved / 2);
- break;
- case 3:
- applyangle(entity, -record.lastresolved / 2);
- break;
- case 4:
- applyangle(entity, 0);
- break;
- }
- }
- }
- } else record.resolvermode = "N/A";
- record.oldeyeangles = entity->GetEyeAngles( );
- record.oldsimtime = entity->GetSimulationTime( );
- record.oldfeetyaw = animstate->m_flGoalFeetYaw;
- }
- void resolver::handlehits( CBaseEntity* entity )
- {
- auto NetChannel = g_pEngine->GetNetChannelInfo( );
- if ( !NetChannel )
- return;
- static float predTime[65] = { 0.f };
- static bool init[65] = { false };
- int eidx = entity->GetIndex();
- if ( vars::shot ) {
- if ( init[eidx] ) {
- data[eidx].pitch = entity->GetEyeAngles( ).x;
- predTime[ entity->GetIndex( ) ] = g_pGlobals->curtime + NetChannel->GetAvgLatency( FLOW_INCOMING ) + NetChannel->GetAvgLatency( FLOW_OUTGOING ) + TICKS_TO_TIME( 1 ) + TICKS_TO_TIME( g_pEngine->GetNetChannel( )->m_nChokedPackets );
- init[eidx] = false;
- }
- if ( g_pGlobals->curtime > predTime[eidx] && !vars::hit[eidx] ) {
- if (vars::logged[eidx]) vars::logged[eidx] = false;
- if ( vars::missed_shots[eidx] > 4 ) vars::missed_shots[eidx] = 0;
- else vars::missed_shots[eidx]++;
- vars::shot = false;
- } else if ( g_pGlobals->curtime <= predTime[eidx] && vars::hit[eidx] )
- vars::shot = false;
- } else
- init[eidx] = true;
- vars::hit[eidx] = false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement