#include "main.h" #include <vector> cAimbot g_cAimbot; using namespace std; cAimbot::cAimbot() { DropTarget(); } void cAimbot::DropTarget() { m_flBestDist = 99999.9f; m_nTarget = -1; m_vPosition = 0; } void cAimbot::CalcAngle(Vector &vSource, Vector &vDestination, QAngle &qAngle) { Vector vDelta(vSource - vDestination); float flHyp = sqrt((vDelta.x * vDelta.x) + (vDelta.y * vDelta.y)); qAngle.x = RAD2DEG(atan(vDelta.z / flHyp)); qAngle.y = RAD2DEG(atan(vDelta.y / vDelta.x)); if(vDelta.x >= 0.0f) qAngle.y += 180.0f; } float GetDistance(Vector &vAbsStart, Vector &vAbsStop) { float flLength = Vector(vAbsStop - vAbsStart).Length(); float flDistance = sqrt(flLength); if(flDistance < 1.0f) flDistance = 1.0f; return flDistance; } bool cAimbot::GetVisible(Vector &vAbsStart) { trace_t Trace; Ray_t Ray; Ray.Init(vAbsStart, m_vPosition); gEnginetrace->TraceRay(Ray, MASK_NPCWORLDSTATIC|MASK_VISIBLE_AND_NPCS|MASK_SHOT, NULL, &Trace); if(Trace.fraction >= 0.97f) return true; if(Trace.fraction <= 0.70f) return false; if(Trace.startsolid || Trace.allsolid) return false; return false; } bool cAimbot::GetHitboxPosition(int nIndex, int rofl) { matrix3x4_t pMatrix[MAXSTUDIOBONES]; Vector vMin, vMax, Bone; QAngle qAngle; mstudiohitboxset_t* pHitboxSet; mstudiobbox_t* pBox; C_BaseAnimating * pEnemyAnim = reinterpret_cast<C_BaseAnimating*>(nIndex); IClientEntity* pEnemyClient = gEntList->GetClientEntity(nIndex); float flSimulationTime = *reinterpret_cast<float*>( reinterpret_cast<DWORD>( pEnemyClient ) + 0x68 ); const model_t* pModel = pEnemyClient->GetModel(); studiohdr_t* pStudioHdr = gModelinfo->GetStudiomodel(pModel); if(pEnemyClient->SetupBones(pMatrix, MAXSTUDIOBONES, BONE_USED_BY_HITBOX, GetTickCount64() + flSimulationTime + GetTickCount())) { MatrixAngles( pMatrix[ nIndex ], qAngle, Bone ); pHitboxSet = pStudioHdr->pHitboxSet(0);// pHitboxSet = pStudioHdr->pHitboxSet(*reinterpret_cast<int*>( reinterpret_cast<DWORD>( pEnemyClient ) + 0x4E8 ) ); //netvar names? pBox = pHitboxSet->pHitbox(rofl); VectorTransform(pBox->bbmin, pMatrix[pBox->bone], vMin); VectorTransform(pBox->bbmax, pMatrix[pBox->bone], vMax); m_vPosition = (vMin + vMax) * 0.5; return true; } return false; } void cAimbot::MakeVector(QAngle angle, QAngle& vector){ float pitch; float yaw; float tmp; pitch = (float)(angle[0] * M_PI/180); yaw = (float)(angle[1] * M_PI/180); tmp = (float) cos(pitch); vector[0] = (float) (-tmp * -cos(yaw)); vector[1] = (float) (sin(yaw)*tmp); vector[2] = (float) -sin(pitch); } Vector &cAimbot::GetPredictedEyePosition(C_BaseEntity* pEntity) { //havde glemt de her offsets /*Vector m_VecOrigin = *(Vector*)((DWORD)pEntity + 0x334); Vector m_vecViewOffset = *(Vector*)((DWORD)pEntity + 0xE4); Vector vEyePosition = (m_VecOrigin + m_vecViewOffset); return vEyePosition;*/ Vector m_VecOrigin = *(Vector*)((DWORD)pEntity + 0x334 ); Vector m_vecViewOffetX = *(Vector*)((DWORD)pEntity + 0x0E4); Vector vEyePosition = (m_VecOrigin + m_vecViewOffetX ); Vector velocity = *(Vector*)((DWORD)pEntity+0xf0); vEyePosition+=velocity*0.015; //vEyePosition+=velocity*0.015; return vEyePosition; } __forceinline void cAimbot::Trace( Vector vecStart, Vector vecEnd, unsigned int uiMask, ITraceFilter* pFilter, trace_t *trMain ) { Ray_t ray; ray.Init( vecStart, vecEnd ); gEnginetrace->TraceRay( ray, uiMask, pFilter, trMain ); } bool __fastcall cAimbot::bIsDefaultHit2( trace_t *pTrace, C_BaseEntity *pEnt ) { if( !pEnt ) return false; if( pTrace->allsolid || pTrace->startsolid ) return false; if( pTrace->m_pEnt && ( pTrace->m_pEnt->index == pEnt->index ) ) return true; if( pTrace->fraction >= 1.0f ) return true; return false; } bool __fastcall cAimbot::bCheckVisible( Vector &vecAbs ,Vector &vecDest, C_BaseEntity *pEnt ) { if( !pEnt ) return false; C_BaseEntity *pLocal = gEntList->GetClientEntity(gEngine->GetLocalPlayer())->GetBaseEntity(); if( !pLocal ) return false; trace_t trTrace; Trace( vecAbs, vecDest, 0x46004003, NULL, &trTrace ); if( bIsDefaultHit2( &trTrace , pEnt ) ) return true; return false; } bool cAimbot::IsAlive(C_BaseEntity* pEntity) { char szLifeState = *(char*)((DWORD)pEntity + 0x8f); return (szLifeState == LIFE_ALIVE); } int cAimbot::GetTeamNumber(C_BaseEntity* pEntity) { int m_iTeamNum = *(int*)((DWORD)pEntity + 0x98); return m_iTeamNum; } bool cAimbot::TriggerBot(CUserCmd* pCmd, C_BaseEntity* pMe,QAngle angul) { trace_t tr; Ray_t ray; Vector vecForward; AngleVectors(angul,&vecForward); Vector vecStart = GetPredictedEyePosition(pMe); Vector vecEnd = vecStart + vecForward * 8192.0f; C_B_TraceFilter lel(pMe); lel.tracen = TRACE_EVERYTHING; ray.Init(vecStart, vecEnd); gEnginetrace->TraceRay(ray, MASK_SHOT, &lel, &tr); if( !tr.m_pEnt ) return false; if( !(tr.m_pEnt->entindex()>1&&tr.m_pEnt->entindex()<=32) )return false; C_BasePlayer* pPlayer = (C_BasePlayer*)tr.m_pEnt; IClientEntity* pRemoteEnt = (IClientEntity*)gEntList->GetClientEntity( tr.m_pEnt->index ); CBaseEntity* pRemoteBEnt = (CBaseEntity*)pRemoteEnt->GetBaseEntity(); if( GetTeamNumber(pRemoteBEnt) == GetTeamNumber(pMe) ) return false; if( pPlayer == NULL ) return false; if( !(tr.hitbox == 12) ) return false; //if( !IsAlive(pPlayer) || !GetTeamNumber(pPlayer) ) //return false; return true; } int cAimbot::GetHealth(C_BaseEntity* pEntity) { int m_iHealth = *(int*)((DWORD)pEntity + 0x90); return m_iHealth; } typedef enum { BULLET_NONE = 0, BULLET_PLAYER_9MM, BULLET_PLAYER_MP5, BULLET_PLAYER_357, BULLET_PLAYER_BUCKSHOT, BULLET_PLAYER_CROWBAR, BULLET_MONSTER_9MM, BULLET_MONSTER_MP5, BULLET_MONSTER_12MM, // CS BULLET_PLAYER_45ACP, BULLET_PLAYER_338MAG, BULLET_PLAYER_762MM, BULLET_PLAYER_556MM, BULLET_PLAYER_50AE, BULLET_PLAYER_57MM, BULLET_PLAYER_357SIG, } Bullet; __inline void GetBulletTypeParametersNoOffset( int iBulletType, float &fPenetrationPower,float &flPenetrationDistance ) { //MIKETODO: make ammo types come from a script file. if (iBulletType == BULLET_PLAYER_50AE ) { fPenetrationPower = 30; flPenetrationDistance = 1000.0; } else if ( iBulletType == BULLET_PLAYER_762MM ) { fPenetrationPower = 39; flPenetrationDistance = 5000.0; } else if ( iBulletType == BULLET_PLAYER_556MM ) { fPenetrationPower = 35; flPenetrationDistance = 4000.0; } else if ( iBulletType == BULLET_PLAYER_338MAG ) { fPenetrationPower = 45; flPenetrationDistance = 8000.0; } else if ( iBulletType == BULLET_PLAYER_9MM ) { fPenetrationPower = 21; flPenetrationDistance = 800.0; } else if ( iBulletType == BULLET_PLAYER_BUCKSHOT ) { fPenetrationPower = 0; flPenetrationDistance = 0.0; } else if ( iBulletType == BULLET_PLAYER_45ACP ) { fPenetrationPower = 15; flPenetrationDistance = 500.0; } else if ( iBulletType == BULLET_PLAYER_357SIG ) { fPenetrationPower = 25; flPenetrationDistance = 800.0; } else if ( iBulletType == BULLET_PLAYER_57MM ) { fPenetrationPower = 30; flPenetrationDistance = 2000.0; } else { // What kind of ammo is this? Assert( false ); fPenetrationPower = 0; flPenetrationDistance = 0.0; } } __inline void getMaterialInformation( int material, float& flPenetrationPowerModifier, float& flDamageModifier ) { switch( material ) { case 'C': // Concrete flPenetrationPowerModifier = 0.4f; flDamageModifier = 0.25f; break; case 'D': // Dirt case 'M': // Metal? flPenetrationPowerModifier = 0.5f; flDamageModifier = 0.3f; break; case 'G': // Grate? flPenetrationPowerModifier = 1.0f; flDamageModifier = 0.99f; break; case 'P': // Computer? flPenetrationPowerModifier = 0.4f; flDamageModifier = 0.45f; break; case 'T': // Tile flPenetrationPowerModifier = 0.65f; flDamageModifier = 0.3f; break; case 'V': // Vent flPenetrationPowerModifier = 0.5f; flDamageModifier = 0.45f; break; case 'W': // Wood flPenetrationPowerModifier = 1.0f; flDamageModifier = 0.6f; break; default: // everything else flPenetrationPowerModifier = 1.0f; flDamageModifier = 0.5f; break; } } bool cAimbot::AutoWallLEL( Vector nigg, Vector vPos, C_BaseEntity* pMe ) { trace_t tr; Ray_t ray; Vector vStart, vEnd, vEndPos[3]; DWORD dwTemp[5]; static CTraceFilterSkipTwoEntities_t TraceFilter = reinterpret_cast< CTraceFilterSkipTwoEntities_t >( ( DWORD )( GetModuleHandle( "client.dll" ) ) + 0x153AD0 ); // Address 62dbcb70 Base 62c20000 TraceFilter(&dwTemp, pMe, pMe, 0); C_BaseEntity *pLocal = (C_BaseEntity*)gEntList->GetClientEntity( gEngine->GetLocalPlayer() ); vStart = GetPredictedEyePosition( pLocal ); vEnd = vPos; if(bCheckVisible(vStart, vEnd, pMe)) return true; if(!gCvar.misc_autowall) return false; ray.Init( vStart, vEnd ); gEnginetrace->TraceRay( ray, MASK_SOLID, (ITraceFilter*)&dwTemp, &tr ); vEndPos[0] = tr.endpos; ray.Init( vEnd, vStart ); gEnginetrace->TraceRay( ray, MASK_SOLID, (ITraceFilter*)&dwTemp, &tr ); vEndPos[1] = tr.endpos; VectorSubtract( vEndPos[0], vEndPos[1], vEndPos[2] ); float flLength = VectorLength( vEndPos[2] ); if ( flLength < 14.5 ){ //14.5 if(gCvar.misc_autowall == 1) return true; } return false; } bool AutoWallgood(Vector &vAbsStart, Vector &targetorigin,C_BaseEntity* pPlayer,C_BaseCombatWeapon* pWeapon) { C_BaseEntity* pMe = (C_BaseEntity*)gEntList->GetClientEntity( gEngine->GetLocalPlayer() ); DWORD dwTemp[5]; static CTraceFilterSkipTwoEntities_t TraceFilter = reinterpret_cast< CTraceFilterSkipTwoEntities_t >( ( DWORD )( GetModuleHandle( "client.dll" ) ) + 0x153AD0 ); // Address 62dbcb70 Base 62c20000 TraceFilter(&dwTemp, pMe, pPlayer, 0); trace_t Trace; Ray_t Ray; float flDamageModifier = 20.0f, flPenetrationPowerModifier = 0.0f,flCurrentDistance = 0.0f; static float flPenetrationPower = 0,flPenetrationDistance = 0; int iBulletType,iPenetration,iCurrentDamage; static int bultyp = 0; char mongol[200]; float flRangeModifier; if( !pWeapon ){ return false; } int iWeaponID = gNospread.getWeaponID(gModelinfo->GetModelName(pWeapon->GetModel())); if(g_cAimbot.bCheckVisible(vAbsStart, targetorigin, pPlayer)) return true; else{ if(!gNospread.GetWeaponInfo(pWeapon,iWeaponID,iBulletType,iPenetration,iCurrentDamage,flCurrentDistance,flRangeModifier)) return false; if(bultyp != iBulletType){ GetBulletTypeParametersNoOffset(iBulletType,flPenetrationPower,flPenetrationDistance); bultyp = iBulletType; } surfacedata_t* pSurfaceData; int nMaterial; Vector vStart = vAbsStart, vEnd, vTmp; Vector vHypneuse; vHypneuse = targetorigin-vAbsStart; float flHypneuseLength = vHypneuse.Length(), flTmpLength = 0.0f; VectorDivide(vHypneuse, flHypneuseLength, vHypneuse); int maxtries = 500; while(iPenetration || iCurrentDamage >= 1){ vEnd = (vStart + (vHypneuse * 10.0f)); Ray.Init(vStart, vEnd); gEnginetrace->TraceRay(Ray, 0x46004003, (ITraceFilter*)&dwTemp, &Trace); pSurfaceData = gPhysicAPI->GetSurfaceData(Trace.surface.surfaceProps); nMaterial = pSurfaceData->game.material; flDamageModifier = pSurfaceData->game.material; flPenetrationPowerModifier = pSurfaceData->game.material; getMaterialInformation(nMaterial,flPenetrationPowerModifier,flDamageModifier); if(Trace.fraction != 1.0f){ if(Trace.allsolid) return false; vTmp = Trace.endpos - vAbsStart; flTmpLength = vTmp.Length(); if(flTmpLength >= flHypneuseLength){ if(iCurrentDamage >= 1 && gCvar.misc_autowall == 1) return true; } iCurrentDamage *= pow(flRangeModifier, (flTmpLength / 500)); iCurrentDamage *= flDamageModifier; iPenetration--; } vStart = vEnd; }} return false; } void cAimbot::PredictFaggot(int index,static Vector m_vPosition,C_BaseEntity * ENEMY) { C_BaseEntity* pLocal = gEntList->GetClientEntity(gEngine->GetLocalPlayer())->GetBaseEntity(); ConVar* psv_gravity = cCvar->FindVar( "sv_gravity" ); static float interp = max(cCvar->FindVar("cl_interp")->GetFloat(), cCvar->FindVar("cl_interp_ratio")->GetFloat() / cCvar->FindVar("cl_updaterate")->GetFloat()); static Vector vTargetVel = ENEMY->m_vecAbsVelocity - pLocal->m_vecAbsVelocity; if( !( pLocal->GetFlags() & FL_ONGROUND ) ) { vTargetVel -= psv_gravity->GetFloat() * gGlobals->frametime; vTargetVel += pLocal->GetBaseVelocity() * gGlobals->frametime; } m_vPosition += vTargetVel * gGlobals->curtime * interp; } Vector positions[64]; struct lelez{ Vector vectorens;//sec lookikng on my pc }; typedef std::vector<lelez> lawlzor_t; lawlzor_t lele; void cAimbot::Main(CUserCmd* pUserCmd,QAngle &ang, bool& bAim) { lele.clear(); bAim = false; IClientEntity* pEnemyClient; C_BaseEntity* pMe, *pEnemy; Vector vDelta, vTemp, vMyEyePosition; //wheres your needed / utils .cpp k wait //Vector vEyePos = GetEyePosition(pLocalPlayer), vBackup = GetEyePosition2(pLocalPlayer); pMe = gEntList->GetClientEntity(gEngine->GetLocalPlayer())->GetBaseEntity(); if(IsAlive(pMe)) { C_BaseCombatWeapon* weapon = gNospread.GetBaseCombatActiveWeapon(pMe); DropTarget(); //vMyEyePosition = GetPredictedEyePosition(pMe); if(weapon) for(int nIndex = 1; nIndex <= gEngine->GetMaxClients(); ++nIndex) { if(nIndex != gEngine->GetLocalPlayer()) { pEnemyClient = gEntList->GetClientEntity(nIndex); if(pEnemyClient && !pEnemyClient->IsDormant()) { pEnemy = pEnemyClient->GetBaseEntity(); player_info_t pInfo; gEngine->GetPlayerInfo(pEnemyClient->entindex(), &pInfo); PredictFaggot(nIndex, m_vPosition,pEnemy); if(IsAlive(pEnemy)) { if(GetTeamNumber(pEnemy) != GetTeamNumber(pMe)) { int hitboxtohit; for(int hIndex = 12; hIndex >= 0; --hIndex) { if(gCvar.aim_hitscan == 1) hitboxtohit = hIndex; if(gCvar.aim_hitscan == 0) hitboxtohit = gCvar.aim_spot; if(GetHitboxPosition(nIndex, hitboxtohit)) { if(AutoWallgood(vMyEyePosition,m_vPosition,pEnemy,weapon)){ //if(GetVisible( vMyEyePosition ) ) //{ float dick = GetDistance(vMyEyePosition, m_vPosition); if(m_flBestDist > dick) { m_flBestDist = dick; m_nTarget = nIndex; m_vFinalPosition = m_vPosition; lelez lel; lel.vectorens = m_vPosition; lele.push_back(lel); } break; //} } } } } } } } int m_iClip1 = *(int*)((DWORD)weapon + 0x8AC); if(gCvar.aim_aimbot == 1){ if(m_iClip1 != 1){ float closest = 999999999999999; Vector finaleh; for (lawlzor_t::iterator it = lele.begin(); it != lele.end(); it++){ if(vMyEyePosition.DistTo(it->vectorens)<closest){ closest = vMyEyePosition.DistTo(it->vectorens); finaleh = (it->vectorens); } } m_vFinalPosition = finaleh; if(m_nTarget != -1) { C_BaseCombatWeapon *m_pWeapon = weapon; if(!(gNospread.getWeaponID(gModelinfo->GetModelName(m_pWeapon->GetModel())) == WEAPON_HE_GRENADE)) if(!(gNospread.getWeaponID(gModelinfo->GetModelName(m_pWeapon->GetModel())) == WEAPON_KNIFE)) if(!(gNospread.getWeaponID(gModelinfo->GetModelName(m_pWeapon->GetModel())) == WEAPON_SMOKE_GRENADE)) if(!(gNospread.getWeaponID(gModelinfo->GetModelName(m_pWeapon->GetModel())) == WEAPON_FLASHBANG)) if(!(gNospread.getWeaponID(gModelinfo->GetModelName(m_pWeapon->GetModel())) == WEAPON_C4)) {pUserCmd->buttons |= IN_ATTACK;} bAim=true; CalcAngle(vMyEyePosition, m_vFinalPosition, ang); if(gCvar.aim_silent == 0){ gEngine->SetViewAngles(ang); gRenderView->SetMainView(m_vFinalPosition,ang); gClient->SetCrosshairAngle(ang); } } } } } } }
Announcement
Collapse
No announcement yet.
aimbot error (cant find)
Collapse
X
-
aimbot error (cant find)
Hello. I tryed to update the offsets today but the triggerbot works so i know something happend after. the aimbot is not working at all i tryed to find this problem but icant. I looked after the error but did not find it .
Code:
i SWAG
Tags: None
-
Re: aimbot error (cant find)
Originally posted by Nicholai12324 View PostRemove comment from the linePHP Code://vMyEyePosition = GetPredictedEyePosition(pMe);
good luck!
-Edit: Not sure if CSS updated since then, try refreshing the offsets :)
if that so... and due to the nature of the question you could've equally said:
Code:Vector &cAimbot::GetPredictedEyePosition(C_BaseEntity* pEntity) { [SIZE=5][COLOR=#ff0000]//havde glemt de her offsets [/COLOR][/SIZE] [COLOR=#008000]/*Vector m_VecOrigin = *(Vector*)((DWORD)pEntity + 0x334); Vector m_vecViewOffset = *(Vector*)((DWORD)pEntity + 0xE4); Vector vEyePosition = (m_VecOrigin + m_vecViewOffset); return vEyePosition;*/[/COLOR] Vector m_VecOrigin = *(Vector*)((DWORD)pEntity + [COLOR=#ff0000]0x334 [/COLOR]); Vector m_vecViewOffetX = *(Vector*)((DWORD)pEntity + [COLOR=#ff0000]0x0E4[/COLOR]); Vector vEyePosition = (m_VecOrigin + [COLOR=#ff0000]m_vecViewOffetX[/COLOR] ); Vector velocity = *(Vector*)((DWORD)pEntity+[COLOR=#ff0000]0xf0[/COLOR]); vEyePosition+=velocity*0.015; [COLOR=#008000] //vEyePosition+=velocity*0.015; [/COLOR] return vEyePosition; }
Comment
Comment