From dd9bbd12ef353f270d95ba733e1ef465d15d2b44 Mon Sep 17 00:00:00 2001 From: navewindre Date: Sun, 9 Dec 2018 17:12:07 +0100 Subject: hack works now please go fix rest --- cheat/internal_rewrite/CInput.hpp | 1 + cheat/internal_rewrite/ClientClass.hpp | 530 ++++++++++++++++--------------- cheat/internal_rewrite/c_base_player.cpp | 15 +- cheat/internal_rewrite/c_base_player.hpp | 4 +- cheat/internal_rewrite/c_base_weapon.hpp | 124 ++++---- cheat/internal_rewrite/create_move.cpp | 16 +- cheat/internal_rewrite/extra.cpp | 37 ++- cheat/internal_rewrite/extra.hpp | 2 +- cheat/internal_rewrite/hooks.cpp | 24 +- 9 files changed, 395 insertions(+), 358 deletions(-) diff --git a/cheat/internal_rewrite/CInput.hpp b/cheat/internal_rewrite/CInput.hpp index 84802d3..a7c2127 100644 --- a/cheat/internal_rewrite/CInput.hpp +++ b/cheat/internal_rewrite/CInput.hpp @@ -12,6 +12,7 @@ struct verified_cmd_t { class CInput { void* pvftable; //0x00 + char pad[ 0x8 ]; public: bool m_fTrackIRAvailable; //0x04 bool m_fMouseInitialized; //0x05 diff --git a/cheat/internal_rewrite/ClientClass.hpp b/cheat/internal_rewrite/ClientClass.hpp index fc1f140..d62ec55 100644 --- a/cheat/internal_rewrite/ClientClass.hpp +++ b/cheat/internal_rewrite/ClientClass.hpp @@ -2,260 +2,282 @@ #include "Valve/dt_common.h" #include "Valve/dt_recv.h" -enum ClassId_t { - CAI_BaseNPC, - CAK47, - CBaseAnimating, - CBaseAnimatingOverlay, - CBaseAttributableItem, - CBaseButton, - CBaseCombatCharacter, - CBaseCombatWeapon, - CBaseCSGrenade, - CBaseCSGrenadeProjectile, - CBaseDoor, - CBaseEntity_, - CBaseFlex, - CBaseGrenade, - CBaseParticleEntity, - CBasePlayer, - CBasePropDoor, - CBaseTeamObjectiveResource, - CBaseTempEntity, - CBaseToggle, - CBaseTrigger, - CBaseViewModel, - CBaseVPhysicsTrigger, - CBaseWeaponWorldModel, - CBeam, - CBeamSpotlight, - CBoneFollower, - CBreakableProp, - CBreakableSurface, - CC4, - CCascadeLight, - CChicken, - CColorCorrection, - CColorCorrectionVolume, - CCSGameRulesProxy, - CCSPlayer, - CCSPlayerResource, - CCSRagdoll, - CCSTeam, - CDEagle, - CDecoyGrenade, - CDecoyProjectile, - CDynamicLight, - CDynamicProp, - CEconEntity, - CEconWearable, - CEmbers, - CEntityDissolve, - CEntityFlame, - CEntityFreezing, - CEntityParticleTrail, - CEnvAmbientLight, - CEnvDetailController, - CEnvDOFController, - CEnvParticleScript, - CEnvProjectedTexture, - CEnvQuadraticBeam, - CEnvScreenEffect, - CEnvScreenOverlay, - CEnvTonemapController, - CEnvWind, - CFEPlayerDecal, - CFireCrackerBlast, - CFireSmoke, - CFireTrail, - CFish, - CFlashbang, - CFogController, - CFootstepControl, - CFunc_Dust, - CFunc_LOD, - CFuncAreaPortalWindow, - CFuncBrush, - CFuncConveyor, - CFuncLadder, - CFuncMonitor, - CFuncMoveLinear, - CFuncOccluder, - CFuncReflectiveGlass, - CFuncRotating, - CFuncSmokeVolume, - CFuncTrackTrain, - CGameRulesProxy, - CHandleTest, - CHEGrenade, - CHostage, - CHostageCarriableProp, - CIncendiaryGrenade, - CInferno, - CInfoLadderDismount, - CInfoOverlayAccessor, - CItem_Healthshot, - CItemDogtags, - CKnife, - CKnifeGG, - CLightGlow, - CMaterialModifyControl, - CMolotovGrenade, - CMolotovProjectile, - CMovieDisplay, - CParticleFire, - CParticlePerformanceMonitor, - CParticleSystem, - CPhysBox, - CPhysBoxMultiplayer, - CPhysicsProp, - CPhysicsPropMultiplayer, - CPhysMagnet, - CPlantedC4, - CPlasma, - CPlayerResource, - CPointCamera, - CPointCommentaryNode, - CPointWorldText, - CPoseController, - CPostProcessController, - CPrecipitation, - CPrecipitationBlocker, - CPredictedViewModel, - CProp_Hallucination, - CPropDoorRotating, - CPropJeep, - CPropVehicleDriveable, - CRagdollManager, - CRagdollProp, - CRagdollPropAttached, - CRopeKeyframe, - CSCAR17, - CSceneEntity, - CSensorGrenade, - CSensorGrenadeProjectile, - CShadowControl, - CSlideshowDisplay, - CSmokeGrenade, - CSmokeGrenadeProjectile, - CSmokeStack, - CSpatialEntity, - CSpotlightEnd, - CSprite, - CSpriteOriented, - CSpriteTrail, - CStatueProp, - CSteamJet, - CSun, - CSunlightShadowControl, - CTeam, - CTeamplayRoundBasedRulesProxy, - CTEArmorRicochet, - CTEBaseBeam, - CTEBeamEntPoint, - CTEBeamEnts, - CTEBeamFollow, - CTEBeamLaser, - CTEBeamPoints, - CTEBeamRing, - CTEBeamRingPoint, - CTEBeamSpline, - CTEBloodSprite, - CTEBloodStream, - CTEBreakModel, - CTEBSPDecal, - CTEBubbles, - CTEBubbleTrail, - CTEClientProjectile, - CTEDecal, - CTEDust, - CTEDynamicLight, - CTEEffectDispatch, - CTEEnergySplash, - CTEExplosion, - CTEFireBullets, - CTEFizz, - CTEFootprintDecal, - CTEFoundryHelpers, - CTEGaussExplosion, - CTEGlowSprite, - CTEImpact, - CTEKillPlayerAttachments, - CTELargeFunnel, - CTEMetalSparks, - CTEMuzzleFlash, - CTEParticleSystem, - CTEPhysicsProp, - CTEPlantBomb, - CTEPlayerAnimEvent, - CTEPlayerDecal, - CTEProjectedDecal, - CTERadioIcon, - CTEShatterSurface, - CTEShowLine, - CTesla, - CTESmoke, - CTESparks, - CTESprite, - CTESpriteSpray, - CTest_ProxyToggle_Networkable, - CTestTraceline, - CTEWorldDecal, - CTriggerPlayerMovement, - CTriggerSoundOperator, - CVGuiScreen, - CVoteController, - CWaterBullet, - CWaterLODControl, - CWeaponAug, - CWeaponAWP, - CWeaponBaseItem, - CWeaponBizon, - CWeaponCSBase, - CWeaponCSBaseGun, - CWeaponCycler, - CWeaponElite, - CWeaponFamas, - CWeaponFiveSeven, - CWeaponG3SG1, - CWeaponGalil, - CWeaponGalilAR, - CWeaponGlock, - CWeaponHKP2000, - CWeaponM249, - CWeaponM3, - CWeaponM4A1, - CWeaponMAC10, - CWeaponMag7, - CWeaponMP5Navy, - CWeaponMP7, - CWeaponMP9, - CWeaponNegev, - CWeaponNOVA, - CWeaponP228, - CWeaponP250, - CWeaponP90, - CWeaponSawedoff, - CWeaponSCAR20, - CWeaponScout, - CWeaponSG550, - CWeaponSG552, - CWeaponSG556, - CWeaponSSG08, - CWeaponTaser, - CWeaponTec9, - CWeaponTMP, - CWeaponUMP45, - CWeaponUSP, - CWeaponXM1014, - CWorld, - DustTrail, - MovieExplosion, - ParticleSmokeGrenade, - RocketTrail, - SmokeTrail, - SporeExplosion, - SporeTrail, +enum ClassID_t { + CAI_BaseNPC = 0, + CAK47, + CBaseAnimating, + CBaseAnimatingOverlay, + CBaseAttributableItem, + CBaseButton, + CBaseCombatCharacter, + CBaseCombatWeapon, + CBaseCSGrenade, + CBaseCSGrenadeProjectile, + CBaseDoor, + CBaseEntity, + CBaseFlex, + CBaseGrenade, + CBaseParticleEntity, + CBasePlayer, + CBasePropDoor, + CBaseTeamObjectiveResource, + CBaseTempEntity, + CBaseToggle, + CBaseTrigger, + CBaseViewModel, + CBaseVPhysicsTrigger, + CBaseWeaponWorldModel, + CBeam, + CBeamSpotlight, + CBoneFollower, + CBRC4Target, + CBreachCharge, + CBreachChargeProjectile, + CBreakableProp, + CBreakableSurface, + CC4, + CCascadeLight, + CChicken, + CColorCorrection, + CColorCorrectionVolume, + CCSGameRulesProxy, + CCSPlayer, + CCSPlayerResource, + CCSRagdoll, + CCSTeam, + CDangerZone, + CDangerZoneController, + CDEagle, + CDecoyGrenade, + CDecoyProjectile, + CDrone, + CDronegun, + CDynamicLight, + CDynamicProp, + CEconEntity, + CEconWearable, + CEmbers, + CEntityDissolve, + CEntityFlame, + CEntityFreezing, + CEntityParticleTrail, + CEnvAmbientLight, + CEnvDetailController, + CEnvDOFController, + CEnvGasCanister, + CEnvParticleScript, + CEnvProjectedTexture, + CEnvQuadraticBeam, + CEnvScreenEffect, + CEnvScreenOverlay, + CEnvTonemapController, + CEnvWind, + CFEPlayerDecal, + CFireCrackerBlast, + CFireSmoke, + CFireTrail, + CFish, + CFists, + CFlashbang, + CFogController, + CFootstepControl, + CFunc_Dust, + CFunc_LOD, + CFuncAreaPortalWindow, + CFuncBrush, + CFuncConveyor, + CFuncLadder, + CFuncMonitor, + CFuncMoveLinear, + CFuncOccluder, + CFuncReflectiveGlass, + CFuncRotating, + CFuncSmokeVolume, + CFuncTrackTrain, + CGameRulesProxy, + CGrassBurn, + CHandleTest, + CHEGrenade, + CHostage, + CHostageCarriableProp, + CIncendiaryGrenade, + CInferno, + CInfoLadderDismount, + CInfoMapRegion, + CInfoOverlayAccessor, + CItem_Healthshot, + CItemCash, + CItemDogtags, + CKnife, + CKnifeGG, + CLightGlow, + CMaterialModifyControl, + CMelee, + CMolotovGrenade, + CMolotovProjectile, + CMovieDisplay, + CParadropChopper, + CParticleFire, + CParticlePerformanceMonitor, + CParticleSystem, + CPhysBox, + CPhysBoxMultiplayer, + CPhysicsProp, + CPhysicsPropMultiplayer, + CPhysMagnet, + CPhysPropAmmoBox, + CPhysPropLootCrate, + CPhysPropRadarJammer, + CPhysPropWeaponUpgrade, + CPlantedC4, + CPlasma, + CPlayerResource, + CPointCamera, + CPointCommentaryNode, + CPointWorldText, + CPoseController, + CPostProcessController, + CPrecipitation, + CPrecipitationBlocker, + CPredictedViewModel, + CProp_Hallucination, + CPropCounter, + CPropDoorRotating, + CPropJeep, + CPropVehicleDriveable, + CRagdollManager, + CRagdollProp, + CRagdollPropAttached, + CRopeKeyframe, + CSCAR17, + CSceneEntity, + CSensorGrenade, + CSensorGrenadeProjectile, + CShadowControl, + CSlideshowDisplay, + CSmokeGrenade, + CSmokeGrenadeProjectile, + CSmokeStack, + CSpatialEntity, + CSpotlightEnd, + CSprite, + CSpriteOriented, + CSpriteTrail, + CStatueProp, + CSteamJet, + CSun, + CSunlightShadowControl, + CSurvivalSpawnChopper, + CTablet, + CTeam, + CTeamplayRoundBasedRulesProxy, + CTEArmorRicochet, + CTEBaseBeam, + CTEBeamEntPoint, + CTEBeamEnts, + CTEBeamFollow, + CTEBeamLaser, + CTEBeamPoints, + CTEBeamRing, + CTEBeamRingPoint, + CTEBeamSpline, + CTEBloodSprite, + CTEBloodStream, + CTEBreakModel, + CTEBSPDecal, + CTEBubbles, + CTEBubbleTrail, + CTEClientProjectile, + CTEDecal, + CTEDust, + CTEDynamicLight, + CTEEffectDispatch, + CTEEnergySplash, + CTEExplosion, + CTEFireBullets, + CTEFizz, + CTEFootprintDecal, + CTEFoundryHelpers, + CTEGaussExplosion, + CTEGlowSprite, + CTEImpact, + CTEKillPlayerAttachments, + CTELargeFunnel, + CTEMetalSparks, + CTEMuzzleFlash, + CTEParticleSystem, + CTEPhysicsProp, + CTEPlantBomb, + CTEPlayerAnimEvent, + CTEPlayerDecal, + CTEProjectedDecal, + CTERadioIcon, + CTEShatterSurface, + CTEShowLine, + CTesla, + CTESmoke, + CTESparks, + CTESprite, + CTESpriteSpray, + CTest_ProxyToggle_Networkable, + CTestTraceline, + CTEWorldDecal, + CTriggerPlayerMovement, + CTriggerSoundOperator, + CVGuiScreen, + CVoteController, + CWaterBullet, + CWaterLODControl, + CWeaponAug, + CWeaponAWP, + CWeaponBaseItem, + CWeaponBizon, + CWeaponCSBase, + CWeaponCSBaseGun, + CWeaponCycler, + CWeaponElite, + CWeaponFamas, + CWeaponFiveSeven, + CWeaponG3SG1, + CWeaponGalil, + CWeaponGalilAR, + CWeaponGlock, + CWeaponHKP2000, + CWeaponM249, + CWeaponM3, + CWeaponM4A1, + CWeaponMAC10, + CWeaponMag7, + CWeaponMP5Navy, + CWeaponMP7, + CWeaponMP9, + CWeaponNegev, + CWeaponNOVA, + CWeaponP228, + CWeaponP250, + CWeaponP90, + CWeaponSawedoff, + CWeaponSCAR20, + CWeaponScout, + CWeaponSG550, + CWeaponSG552, + CWeaponSG556, + CWeaponSSG08, + CWeaponTaser, + CWeaponTec9, + CWeaponTMP, + CWeaponUMP45, + CWeaponUSP, + CWeaponXM1014, + CWorld, + CWorldVguiText, + DustTrail, + MovieExplosion, + ParticleSmokeGrenade, + RocketTrail, + SmokeTrail, + SporeExplosion, + SporeTrail, }; class ClientClass { diff --git a/cheat/internal_rewrite/c_base_player.cpp b/cheat/internal_rewrite/c_base_player.cpp index 981f63b..865f809 100644 --- a/cheat/internal_rewrite/c_base_player.cpp +++ b/cheat/internal_rewrite/c_base_player.cpp @@ -212,14 +212,14 @@ void c_base_player::invalidate_physics_recursive( int flags ) { } } -void c_base_player::update_clientside_animation() { - bool backup = m_bClientSideAnimation(); - m_bClientSideAnimation() = true; +void c_base_player::update_clientside_animation( ) { + bool backup = m_bClientSideAnimation( ); + m_bClientSideAnimation( ) = true; - using fn = void(__fastcall*)(void*); - pattern::first_code_match(g_csgo.m_chl.dll(), xors("55 8B EC 51 56 8B F1 80 BE ? ? ? ? ? 74 36"))(this); + using fn = void( __fastcall* )( void* ); + pattern::first_code_match( g_csgo.m_chl.dll( ), xors( "55 8B EC 51 56 8B F1 80 BE ? ? ? ? ? 74 36" ) )( this ); - m_bClientSideAnimation() = backup; + m_bClientSideAnimation( ) = backup; } @@ -582,7 +582,8 @@ void c_base_player::do_ent_interpolation( bool reset ) { if( !lerp ) return; - if( anim_data->m_last_interp_origin.dist_to( anim_data->m_interp_origin ) > 64.f ) + //yes + if( anim_data->m_last_interp_origin.dist_to( anim_data->m_interp_origin ) > 128.f ) return; for( size_t i{ }; i < 3; ++i ) { diff --git a/cheat/internal_rewrite/c_base_player.hpp b/cheat/internal_rewrite/c_base_player.hpp index 78c84ac..690f55c 100644 --- a/cheat/internal_rewrite/c_base_player.hpp +++ b/cheat/internal_rewrite/c_base_player.hpp @@ -306,7 +306,7 @@ public: NETVAR( m_hGroundEntity, "m_hGroundEntity", "DT_CSPlayer", 0, uint32_t ); NETVAR( m_flConstraintRadius, "m_flConstraintRadius", "DT_CSPlayer", 0, float ); - OFFSET( m_CachedBoneData, 0x28FC + sizeof( void* ), CUtlVector< matrix3x4 > ); + OFFSET( m_CachedBoneData, 0x290C + sizeof( void* ), CUtlVector< matrix3x4 > ); OFFSET( m_flSpawnTime, 0xA2C0, float ); OFFSET( m_IKContext, 0x265c, IKContext* ); public: @@ -405,7 +405,7 @@ public: __forceinline vec3_t get_eye_pos( ) { vec3_t yes; //fuck references Lol - util::get_vfunc< void( __thiscall* )( void*, vec3_t& ) >( this, 277 )( this, yes ); + util::get_vfunc< void( __thiscall* )( void*, vec3_t& ) >( this, 279 )( this, yes ); //thanks senator!! !11 return yes; diff --git a/cheat/internal_rewrite/c_base_weapon.hpp b/cheat/internal_rewrite/c_base_weapon.hpp index 97f40d6..2abc997 100644 --- a/cheat/internal_rewrite/c_base_weapon.hpp +++ b/cheat/internal_rewrite/c_base_weapon.hpp @@ -4,71 +4,79 @@ #include "netvars.hpp" enum ItemDefinitionIndex_t { - WEAPON_NONE, - WEAPON_DEAGLE = 1, - WEAPON_ELITE = 2, - WEAPON_FIVESEVEN = 3, - WEAPON_GLOCK = 4, + WEAPON_NONE = 0, + WEAPON_DEAGLE, + WEAPON_ELITE, + WEAPON_FIVESEVEN, + WEAPON_GLOCK, WEAPON_AK47 = 7, - WEAPON_AUG = 8, - WEAPON_AWP = 9, - WEAPON_FAMAS = 10, - WEAPON_G3SG1 = 11, + WEAPON_AUG, + WEAPON_AWP, + WEAPON_FAMAS, + WEAPON_G3SG1, WEAPON_GALILAR = 13, - WEAPON_M249 = 14, + WEAPON_M249, WEAPON_M4A1 = 16, - WEAPON_MAC10 = 17, + WEAPON_MAC10, WEAPON_P90 = 19, - WEAPON_UMP45 = 24, - WEAPON_XM1014 = 25, - WEAPON_BIZON = 26, - WEAPON_MAG7 = 27, - WEAPON_NEGEV = 28, - WEAPON_SAWEDOFF = 29, - WEAPON_TEC9 = 30, - WEAPON_TASER = 31, - WEAPON_HKP2000 = 32, - WEAPON_MP7 = 33, - WEAPON_MP9 = 34, - WEAPON_NOVA = 35, - WEAPON_P250 = 36, + WEAPON_MP5SD = 23, + WEAPON_UMP45, + WEAPON_XM1014, + WEAPON_BIZON, + WEAPON_MAG7, + WEAPON_NEGEV, + WEAPON_SAWEDOFF, + WEAPON_TEC9, + WEAPON_TASER, + WEAPON_HKP2000, + WEAPON_MP7, + WEAPON_MP9, + WEAPON_NOVA, + WEAPON_P250, WEAPON_SCAR20 = 38, - WEAPON_SG556 = 39, - WEAPON_SSG08 = 40, - WEAPON_KNIFEGG = 41, - WEAPON_KNIFE = 42, - WEAPON_FLASHBANG = 43, - WEAPON_HEGRENADE = 44, - WEAPON_SMOKEGRENADE = 45, - WEAPON_MOLOTOV = 46, - WEAPON_DECOY = 47, - WEAPON_INCGRENADE = 48, - WEAPON_C4 = 49, + WEAPON_SG556, + WEAPON_SSG08, + WEAPON_KNIFEGG, + WEAPON_KNIFE, + WEAPON_FLASHBANG, + WEAPON_HEGRENADE, + WEAPON_SMOKEGRENADE, + WEAPON_MOLOTOV, + WEAPON_DECOY, + WEAPON_INCGRENADE, + WEAPON_C4, + WEAPON_HEALTHSHOT = 57, WEAPON_KNIFE_T = 59, - WEAPON_M4A1_SILENCER = 60, - WEAPON_USP_SILENCER = 61, + WEAPON_M4A1_SILENCER, + WEAPON_USP_SILENCER, WEAPON_CZ75A = 63, - WEAPON_R8REVOLVER = 64, - WEAPON_MP5SD = 23, + WEAPON_R8REVOLVER, + WEAPON_TAGRENADE = 68, + WEAPON_FISTS, + WEAPON_BREACHCHARGE, + WEAPON_TABLET = 72, + WEAPON_MELEE = 74, + WEAPON_AXE, + WEAPON_HAMMER, + WEAPON_SPANNER = 78, + WEAPON_KNIFE_GHOST = 80, + WEAPON_FIREBOMB, + WEAPON_DIVERSION, + WEAPON_FRAG_GRENADE, WEAPON_KNIFE_BAYONET = 500, WEAPON_KNIFE_FLIP = 505, - WEAPON_KNIFE_GUT = 506, - WEAPON_KNIFE_KARAMBIT = 507, - WEAPON_KNIFE_M9_BAYONET = 508, - WEAPON_KNIFE_TACTICAL = 509, + WEAPON_KNIFE_GUT, + WEAPON_KNIFE_KARAMBIT, + WEAPON_KNIFE_M9_BAYONET, + WEAPON_KNIFE_TACTICAL, WEAPON_KNIFE_FALCHION = 512, WEAPON_KNIFE_BOWIE = 514, - WEAPON_KNIFE_BUTTERFLY = 515, - WEAPON_KNIFE_PUSH = 516, - GLOVE_STUDDED_BLOODHOUND = 5027, - GLOVE_T_SIDE = 5028, - GLOVE_CT_SIDE = 5029, - GLOVE_SPORTY = 5030, - GLOVE_SLICK = 5031, - GLOVE_LEATHER_WRAP = 5032, - GLOVE_MOTORCYCLE = 5033, - GLOVE_SPECIALIST = 5034, - GLOVE_HYDRA = 5035, + WEAPON_KNIFE_BUTTERFLY, + WEAPON_KNIFE_PUSH, + WEAPON_KNIFE_URSUS = 519, + WEAPON_KNIFE_GYPSY_JACKKNIFE, + WEAPON_KNIFE_STILETTO = 522, + WEAPON_KNIFE_WIDOWMAKER }; class weapon_info_t { @@ -211,19 +219,19 @@ public: } __forceinline weapon_info_t* get_wpn_info( ) { - return util::get_vfunc< 443, weapon_info_t* >( this ); + return util::get_vfunc< 448, weapon_info_t* >( this ); } __forceinline void update_accuracy_penalty( ) { - return util::get_vfunc< 468, void >( this ); + return util::get_vfunc< 472, void >( this ); } __forceinline float get_spread( ) { - return util::get_vfunc< 436, float >( this ); + return util::get_vfunc< 440, float >( this ); } __forceinline float get_inaccuracy( ) { - return util::get_vfunc< 467, float >( this ); + return util::get_vfunc< 471, float >( this ); } __forceinline void set_glove_model( int model_index ) { diff --git a/cheat/internal_rewrite/create_move.cpp b/cheat/internal_rewrite/create_move.cpp index 75a36e4..04fd0c6 100644 --- a/cheat/internal_rewrite/create_move.cpp +++ b/cheat/internal_rewrite/create_move.cpp @@ -104,20 +104,22 @@ bool __fastcall hooks::create_move( void* ecx_, void* edx_, float input_sample_f g_ctx.m_cmd_numbers.push_back( ucmd->m_cmd_nr ); } else { - //int choked = cl->m_netchannel->m_nChokedPackets; + int choked = cl->m_netchannel->m_nChokedPackets; //printf( "choked: %d\n", choked ); // - //cl->m_netchannel->m_nChokedPackets = 0; + cl->m_netchannel->m_nChokedPackets = 0; // - //int in_seq = cl->m_netchannel->m_nInSequenceNr; + int in_seq = cl->m_netchannel->m_nInSequenceNr; + int reliable = cl->m_netchannel->m_nInReliableState; // - //g_cheat.m_extra.add_latency( cl->m_netchannel ); - //send_datagram_o( cl->m_netchannel, 0, 0 ); + g_cheat.m_extra.add_latency( cl->m_netchannel ); + send_datagram_o( cl->m_netchannel, 0, 0 ); // //cl->m_netchannel->m_nInSequenceNr = in_seq; // - //cl->m_netchannel->m_nOutSequenceNr--; - //cl->m_netchannel->m_nChokedPackets = choked; + cl->m_netchannel->m_nInReliableState = reliable; + cl->m_netchannel->m_nOutSequenceNr--; + cl->m_netchannel->m_nChokedPackets = choked; } g_cheat.m_ragebot.m_antiaim->on_runcommand( ); diff --git a/cheat/internal_rewrite/extra.cpp b/cheat/internal_rewrite/extra.cpp index 07a8aaf..cbca0be 100644 --- a/cheat/internal_rewrite/extra.cpp +++ b/cheat/internal_rewrite/extra.cpp @@ -80,9 +80,9 @@ namespace features void c_extra::update_netchannel( ) { // fuck u bithc - auto *netchan = g_csgo.m_global_state->get_client_state()->m_netchannel; + auto *netchan = g_csgo.m_global_state->get_client_state( )->m_netchannel; - if (netchan->m_nInSequenceNr != m_last_sequence) { + if( netchan->m_nInSequenceNr != m_last_sequence ) { m_last_sequence = netchan->m_nInSequenceNr; // emplace new record @@ -91,36 +91,39 @@ namespace features netchan->m_nInReliableState, netchan->m_nInSequenceNr }; - m_net_records.emplace_back(record); + m_net_records.emplace_back( record ); } + // here's the thing. + // stl is autistic and it crashes. + // clear outdated records - for (auto &it = m_net_records.begin(); it != m_net_records.end(); ++it) { - const float delta = g_csgo.m_globals->m_realtime - it->m_realtime; + for( size_t i{ }; i < m_net_records.size( ); ++i ) { + const float delta = g_csgo.m_globals->m_curtime - m_net_records.at( i ).m_curtime; // 200ms is the max we can fake anyway.. // hnn this might be why it's so fucked :/ - if (delta > 0.4f) - m_net_records.erase(it); + if( delta > 0.4f ) + m_net_records.erase( m_net_records.begin( ) + i ); } } void c_extra::add_latency( INetChannel* channel ) { - auto nci = g_csgo.m_engine()->GetNetChannelInfo(); - float in_latency = nci->GetLatency(0); - + auto nci = g_csgo.m_engine( )->GetNetChannelInfo( ); + float in_latency = nci->GetLatency( 0 ); + // amount of latency we want to achieve - float latency = 0.15f - (in_latency + g_csgo.m_globals->m_frametime) - TICK_INTERVAL(); + float latency = 0.15f - ( in_latency + g_csgo.m_globals->m_frametime ) - TICK_INTERVAL( ); - if ( g_ctx.m_local && g_ctx.m_local->is_valid( ) ) { + if( g_ctx.m_local && g_ctx.m_local->is_valid( ) ) { // god this is autistic - for (auto &it = m_net_records.begin(); it != m_net_records.end(); ++it) { - const float delta = g_csgo.m_globals->m_realtime - it->m_realtime; + for( auto& it : m_net_records ) { + const float delta = g_csgo.m_globals->m_curtime - it.m_curtime; - if (delta >= latency) { + if( delta >= latency ) { // apply latency - channel->m_nInReliableState = it->m_reliable; - channel->m_nInSequenceNr = it->m_sequence; + channel->m_nInReliableState = it.m_reliable; + channel->m_nInSequenceNr = it.m_sequence; break; } diff --git a/cheat/internal_rewrite/extra.hpp b/cheat/internal_rewrite/extra.hpp index 5c7d5f4..f3ab837 100644 --- a/cheat/internal_rewrite/extra.hpp +++ b/cheat/internal_rewrite/extra.hpp @@ -9,7 +9,7 @@ namespace features // i'm gay struct netchan_record_t { - float m_realtime; + float m_curtime; int32_t m_reliable; int32_t m_sequence; }; diff --git a/cheat/internal_rewrite/hooks.cpp b/cheat/internal_rewrite/hooks.cpp index 812a46d..bd78929 100644 --- a/cheat/internal_rewrite/hooks.cpp +++ b/cheat/internal_rewrite/hooks.cpp @@ -71,8 +71,8 @@ bool hooks::commit( factory::c_csgo* instance ) { instance->m_netshowfragments->hook( 13, &hooks::net_showfragments_get_int ); instance->m_csm_shadows->hook( 13, &hooks::cl_csm_shadows_get_int ); - //paint_traverse_o = d->create_hook( &hooks::paint_traverse, instance->m_panel->get_old_function< void* >( 41 ) ); - //create_move_o = d->create_hook( &hooks::create_move, instance->m_clientmode->get_old_function< void* >( 24 ) ); + paint_traverse_o = d->create_hook( &hooks::paint_traverse, instance->m_panel->get_old_function< void* >( 41 ) ); + create_move_o = d->create_hook( &hooks::create_move, instance->m_clientmode->get_old_function< void* >( 24 ) ); override_mouse_input_o = d->create_hook( &hooks::override_mouse_input, instance->m_clientmode->get_old_function< void* >( 23 ) ); get_viewmodel_fov_o = d->create_hook( &hooks::get_viewmodel_fov, instance->m_clientmode->get_old_function< void* >( 35 ) ); do_post_screen_space_effects_o = d->create_hook( &hooks::do_post_screen_space_effects, instance->m_clientmode->get_old_function< void* >( 44 ) ); @@ -80,9 +80,9 @@ bool hooks::commit( factory::c_csgo* instance ) { lock_cursor_o = d->create_hook( &hooks::lock_cursor, instance->m_surface->get_old_function< void* >( 67 ) ); run_command_o = d->create_hook( &hooks::run_command, instance->m_prediction->get_old_function< void* >( 19 ) ); in_prediction_o = d->create_hook( &hooks::in_prediction, instance->m_prediction->get_old_function< void* >( 14 ) ); - //draw_model_execute_o = d->create_hook( &hooks::draw_model_execute, instance->m_model_render->get_old_function< void* >( 21 ) ); - //scene_end_o = d->create_hook( &hooks::scene_end, instance->m_render_view->get_old_function< void* >( 9 ) ); - //get_screen_size_o = d->create_hook( &hooks::get_screen_size, instance->m_surface->get_old_function< void* >( 44 ) ); + draw_model_execute_o = d->create_hook( &hooks::draw_model_execute, instance->m_model_render->get_old_function< void* >( 21 ) ); + scene_end_o = d->create_hook( &hooks::scene_end, instance->m_render_view->get_old_function< void* >( 9 ) ); + get_screen_size_o = d->create_hook( &hooks::get_screen_size, instance->m_surface->get_old_function< void* >( 44 ) ); // //// this has annoyed me for so long //emit_sound_o = d->create_hook(&hooks::emit_sound, instance->m_engine_sound->get_old_function< void * >(5)); @@ -90,11 +90,11 @@ bool hooks::commit( factory::c_csgo* instance ) { on_screen_size_changed_o = d->create_hook( &hooks::on_screen_size_changed, instance->m_surface->get_old_function< void* >( 116 ) ); play_sound_o = d->create_hook( &hooks::play_sound, instance->m_surface->get_old_function< void* >( 82 ) ); material_system_o = d->create_hook( &hooks::material_system, instance->m_mat_system->get_old_function< void* >( 21 ) ); - //suppress_lists_o = d->create_hook( &hooks::suppress_lists, instance->m_partition->get_old_function< void* >( 16 ) ); - ////draw_small_entities_o = d->create_hook( &hooks::draw_small_entities, instance->m_clientleaf->get_old_function< void* >( 39 ) ); - //simulate_o = d->create_hook( &hooks::simulate, instance->m_engine_vgui->get_old_function< void* >( 39 ) ); - //begin_lock_o = d->create_hook( &hooks::begin_lock, instance->m_mdl_cache->get_old_function< void* >( 33 ) ); - //end_lock_o = d->create_hook( &hooks::end_lock, instance->m_mdl_cache->get_old_function< void* >( 34 ) ); + suppress_lists_o = d->create_hook( &hooks::suppress_lists, instance->m_partition->get_old_function< void* >( 16 ) ); + draw_small_entities_o = d->create_hook( &hooks::draw_small_entities, instance->m_clientleaf->get_old_function< void* >( 42 ) ); + simulate_o = d->create_hook( &hooks::simulate, instance->m_engine_vgui->get_old_function< void* >( 39 ) ); + begin_lock_o = d->create_hook( &hooks::begin_lock, instance->m_mdl_cache->get_old_function< void* >( 33 ) ); + end_lock_o = d->create_hook( &hooks::end_lock, instance->m_mdl_cache->get_old_function< void* >( 34 ) ); // auto packet_start = pattern::first_code_match< void* >( instance->m_engine.dll( ), xors( "55 8B EC 8B 45 08 89 81 ? ? ? ? 8B 45 0C 89 81 ? ? ? ? 5D C2 08 00 ? ? ? ? ? ? ? 56" ) ); packet_start_o = d->create_hook( &hooks::packet_start, packet_start ); @@ -102,8 +102,8 @@ bool hooks::commit( factory::c_csgo* instance ) { auto process_packet = pattern::first_code_match< void * >(instance->m_engine.dll(), xors("55 8B EC 83 E4 C0 81 EC ? ? ? ? 53 56 57 8B 7D 08 8B D9")); process_packet_o = d->create_hook(&hooks::process_packet, process_packet); // - //auto update_clientside_anim = pattern::first_code_match< void* >( instance->m_chl.dll( ), xors( "55 8B EC 51 56 8B F1 80 BE ? ? ? ? ? 74 36" ) ); - //update_clientside_animation_o = d->create_hook( &hooks::update_clientside_animation, update_clientside_anim ); + auto update_clientside_anim = pattern::first_code_match< void* >( instance->m_chl.dll( ), xors( "55 8B EC 51 56 8B F1 80 BE ? ? ? ? ? 74 36" ) ); + update_clientside_animation_o = d->create_hook( &hooks::update_clientside_animation, update_clientside_anim ); // auto send_datagram = pattern::first_code_match< void* >( instance->m_engine.dll( ), xors( "55 8B EC 83 E4 F0 B8 ? ? ? ? E8 ? ? ? ? 56 57 8B F9 89 7C 24 18" ) ); send_datagram_o = d->create_hook( &hooks::send_datagram, send_datagram ); -- cgit v1.2.3