MANGACS TEAM
All for Counter strike 1.6 and more WWW.MANGACS.3XFORUM.RO WWW.MANGACS.3XFORUM.RO WWW.MANGACS.3XFORUM.RO WWW.MANGACS.3XFORUM.RO FREE DOWNLOAD - Filme noi 2016 filme noi filme comedie filme horror filme de groaza filme aventura filme actiune filme desene animate download filme gratis filme noi , filme thriller , filme gratis , jocuri full download , jocuri gratis , jocuri full , muzica noua , muzica romaneasca , hacking , torrent , jocuri free download , free download cfg silent aim ,dll , aimbot for counter strike 1.6 free download, scripts aim , eac , voiplay , Vac : WWW.MANGACS.3XFORUM.RO WWW.MANGACS.3XFORUM.RO FREE DOWNLOAD Cheat counter strike eac3 vac3 aimbot dll yahoo facebook hack aegiss
Lista Forumurilor Pe Tematici
MANGACS TEAM | Reguli | Inregistrare | Login

POZE MANGACS TEAM

Nu sunteti logat.
Nou pe simpatie:
barbyy Profile
Femeie
23 ani
Bucuresti
cauta Barbat
23 - 80 ani
MANGACS TEAM / Tutorials / [C++]Aimbot CS 1.6 Moderat de dIeZz # 1337
Autor
Mesaj Pagini: 1
allen
Pe lista neagra

Inregistrat: acum 12 ani
Postari: 15
Aimbot.cpp



//==============================================================================
// Aimbot.cpp
//==============================================================================

#define WIN32_LEAN_AND_MEAN
#pragma warning(disable:4786)
#pragma warning(disable:4305)
#pragma warning(disable:4800)
#pragma warning(disable:4244)
#pragma warning(disable:4101)
#pragma warning(disable:4715)
#include <windows.h>
#include <stdlib.h>
#include <math.h>
#undef NDEBUG
#include <assert.h>
#include <memory.h>
#include <map>
#include <vector>
#include <fstream>
#include "aimbot.h"

using namespace std;

typedef float TransformMatrix[MAXSTUDIOBONES][3][4];
#define M_PI        3.14159265358979323846

CAimbot Aimbot;
float mainViewOrigin[3];

//===================================================================================

float predahead = 0.20; // Some default Values ;D
int predback = 0;
static void PredictTarget(int index,float *pred)
{
//    if (cvar.pred)
//    {
    /*        cl_entity_s* ent = gEngfuncs.GetEntityByIndex(index);
            int  historyIndex = (ent->current_position+HISTORY_MAX-predback)%HISTORY_MAX;
           
            vec3_t vFromOrigin , vToOrigin , vDeltaOrigin,vPredictedOrigin;

            vFromOrigin = ent->ph[historyIndex].origin;
            vToOrigin   = ent->ph[ent->current_position].origin;
            vDeltaOrigin = vToOrigin - vFromOrigin;

            vDeltaOrigin[0] *= predahead;
            vDeltaOrigin[1] *= predahead;
            vDeltaOrigin[2] *= predahead;

            vPredictedOrigin = ent->origin + vDeltaOrigin;
            VectorCopy(vPredictedOrigin,pred); */
    cl_entity_s* ent = gEngfuncs.GetEntityByIndex(index);
    VectorCopy(ent->origin, pred);
/*    }
    else
    {
            VectorCopy(vPlayers[index].getEnt()->origin,pred);
    }*/
}

//==============================================================================
float vpreahead = 1.2;
bool bSoonvisible(int iIndex)
{
    float to[3], lastpred = predahead;
    predahead = vpreahead;// apply some leeb value here :)
    PredictTarget(iIndex,(float*)to);
    predahead = lastpred;
    pmtrace_t tr;
    gEngfuncs.pEventAPI->EV_SetTraceHull( 2 );
    gEngfuncs.pEventAPI->EV_PlayerTrace( me.pmEyePos, to, PM_WORLD_ONLY, me.ent->index, &tr );
//    return ( tr.fraction == 1.0 );
    if (tr.fraction == 0.75 )
        return true;
    return false;
}

//==============================================================================

void VectorAngles( const float *forward, float *angles )
{
    float tmp, yaw, pitch;
   
    if( forward[1] == 0 && forward[0] == 0 )
    {
        yaw = 0;

        if( forward[2] > 0 )
            pitch = 90.0f;
        else
            pitch = 270.0f;
    }
    else
    {
        yaw = ( float )( ( atan2( forward[1], forward[0] ) * 180 / M_PI ) );

        if( yaw < 0 )
            yaw += 360.0f;

        tmp = sqrt( forward[0] * forward[0] + forward[1] * forward[1] );
       
        pitch = ( float )( ( atan2( forward[2], tmp ) * 180 / M_PI ) );
    }
   
    angles[0] = pitch;
    angles[1] = yaw;
    angles[2] = 0;
}

//==============================================================================
int CanPenetrate( float *start, float *end, int power )
{
   pmtrace_t pmtrace;
   pmtrace_t * tr = (pmtrace_t*) &pmtrace;

   float view[3];
   float dir[3];

   view[0] = end[0] - start[0];
   view[1] = end[1] - start[1];
   view[2] = end[2] - start[2];

   float length = VectorLength(view);

   dir[0] = view[0] / length;
   dir[1] = view[1] / length;
   dir[2] = view[2] / length;

   float position[3];
   position[0] = start[0];
   position[1] = start[1];
   position[2] = start[2];
   tr->startsolid = true;

   while( power )
   {
      if( !tr->startsolid )
         power--;
      tr = gEngfuncs.PM_TraceLine( position, end, PM_TRACELINE_PHYSENTSONLY, 2, -1);
       
      if( tr->fraction==1.0f )
         return 1;
      if( tr->allsolid )
         return 0;

      position[0] = tr->endpos[0] + dir[0] * 8.0f;
      position[1] = tr->endpos[1] + dir[1] * 8.0f;
      position[2] = tr->endpos[2] + dir[2] * 8.0f;
   }
   return 0;
}
//==============================================================================
void VectorTransform (float *in1, float in2[3][4], float *out)
{
    out[0] = DotProduct(in1, in2[0]) + in2[0][3];
    out[1] = DotProduct(in1, in2[1]) + in2[1][3];
    out[2] = DotProduct(in1, in2[2]) + in2[2][3];
}

//==============================================================================
#include <gl\gl.h>


void CAimbot::DrawAimSpot(void)
{
    if(!cvar.avdraw) return;
    for(int i = 0; i < 32; i++)
    {
        if(!vPlayers[i].bDrawn || !vPlayers[i].isUpdatedAddEnt()) continue;
        float fVecScreen[2];
        vec3_t vecEnd, up, right, forward, EntViewOrg, playerAngles;
        if (!vPlayers[i].fixHbAim)         {VectorCopy(vPlayers[i].vHitbox,EntViewOrg);}   
        else                             {VectorCopy(vPlayers[i].origin(),EntViewOrg);}
        // calculate angle vectors
        playerAngles[0]=0;
        playerAngles[1]=vPlayers[iTarget].getEnt()->angles[1];
        playerAngles[2]=0;
        gEngfuncs.pfnAngleVectors (playerAngles, forward, right, up);
        forward[2] = -forward[2];
        EntViewOrg = EntViewOrg + forward * cvar.hadj_f;
        EntViewOrg = EntViewOrg + up * cvar.hadj_h;
        EntViewOrg = EntViewOrg + right * cvar.hadj_r;
        if(!CalcScreen(EntViewOrg, fVecScreen)) continue;
        tintArea(fVecScreen[0], fVecScreen[1], 2, 2, 255, 255, 255, 255);
    }
}

void CAimbot::CalculateHitbox( cl_entity_s *pEnt )
{
    if( !cvar.aimingmethod )
        return;
    if(cvar.aimingmethod == 1)
    {
        if( !vPlayers[pEnt->index].bGotHead )
        {
            int iIndex = pEnt->index;

            model_s            *pModel            = pStudio->SetupPlayerModel( iIndex );
            studiohdr_t     *pStudioHeader    = ( studiohdr_t* )pStudio->Mod_Extradata( pModel );
            mstudiobbox_t   *pStudioBox;
            TransformMatrix *pBoneTransform = ( TransformMatrix* )pStudio->StudioGetBoneTransform( );   

            vec3_t vMin, vMax;
            pStudioBox = ( mstudiobbox_t* )( ( byte* )pStudioHeader + pStudioHeader->hitboxindex );

            //Head 11 bone 7 | Low Head 9 bone 5 | Chest 8 bone 4 | Stomach 7 bone 3
            int i = 11;
            if (cvar.aimspot == 1) i = 11;
            else if (cvar.aimspot == 2) i = 9;
            else if (cvar.aimspot == 3) i = 8;   
           
            VectorTransform(pStudioBox[i].bbmin, (*pBoneTransform)[pStudioBox[i].bone], vMin);
            VectorTransform(pStudioBox[i].bbmax, (*pBoneTransform)[pStudioBox[i].bone], vMax);
            vPlayers[iIndex].vHitbox    = ( vMin + vMax ) * 0.5f;
            vPlayers[iIndex].bGotHead    = true;       
        }
    }
    if(cvar.aimingmethod == 2)
    {
        int ax = pEnt->index;
        if(!vPlayers[ax].bGotHead)
        {
            vec3_t pos;
    //        studiohdr_t* pStudioHeader = (studiohdr_t*)oEngStudio.Mod_Extradata( pEnt->model );
            TransformMatrix*  pbonetransform = (TransformMatrix*)pStudio->StudioGetBoneTransform();
            //Head 11 bone 7 | Low Head 9 bone 5 | Chest 8 bone 4 | Stomach 7 bone 3
            int i = 7;
            if (cvar.aimspot == 1) i = 7;
            else if (cvar.aimspot == 2) i = 5;
            else if (cvar.aimspot == 3) i = 4;
            pos[ 0 ] = (*pbonetransform)[ i ][ 0 ][ 3 ];
            pos[ 1 ] = (*pbonetransform)[ i ][ 1 ][ 3 ];
            pos[ 2 ] = (*pbonetransform)[ i ][ 2 ][ 3 ];
            VectorCopy(pos, vPlayers[ax].vHitbox);
            vPlayers[ax].bGotHead = true;
        }
    }
}

//==============================================================================

void CAimbot::CalculateAimingView( void )
{
    float view[3];
    vec3_t vecEnd, up, right, forward, EntViewOrg, playerAngles;

    if (!vPlayers[iTarget].fixHbAim) {VectorCopy(vPlayers[iTarget].vHitbox,EntViewOrg);}   
    else                             {VectorCopy(vPlayers[iTarget].origin(),EntViewOrg);}   

    // calculate angle vectors
    playerAngles[0]=0;
    playerAngles[1]=vPlayers[iTarget].getEnt()->angles[1];
    playerAngles[2]=0;
    gEngfuncs.pfnAngleVectors (playerAngles, forward, right, up);
    forward[2] = -forward[2];
       
    EntViewOrg = EntViewOrg + forward * cvar.hadj_f;
    EntViewOrg = EntViewOrg + up * cvar.hadj_h;
    EntViewOrg = EntViewOrg + right * cvar.hadj_r;

    view[0] = EntViewOrg[0] - me.pmEyePos[0];
    view[1] = EntViewOrg[1] - me.pmEyePos[1];
    view[2] = EntViewOrg[2] - me.pmEyePos[2];

    VectorAngles(view,aim_viewangles);
    aim_viewangles[0] *= -1;

    if (aim_viewangles[0]>180) aim_viewangles[0]-=360;
    if (aim_viewangles[1]>180) aim_viewangles[1]-=360;
}
//==============================================================================
int CorrectGunX()
{
   int currentWeaponID = GetCurWeaponID();
   if (currentWeaponID == WEAPON_SG550 || currentWeaponID == WEAPON_G3SG1 || currentWeaponID == WEAPON_SCOUT || currentWeaponID == WEAPON_AWP)
   { return 3; }

   if (currentWeaponID == WEAPON_AUG || currentWeaponID == WEAPON_PARA || currentWeaponID == WEAPON_COLT ||  currentWeaponID == WEAPON_DEAGLE || currentWeaponID == WEAPON_SIG || currentWeaponID == WEAPON_AK)
   { return 2; }
   
   { return 1; }
}
//====================================================================================
bool CAimbot::pathFree(float* xfrom,float* xto)
{
   int pathtest;
   pmtrace_t tr;
   gEngfuncs.pEventAPI->EV_SetTraceHull( 2 );
   gEngfuncs.pEventAPI->EV_PlayerTrace( xfrom, xto, PM_GLASS_IGNORE, me.ent->index, &tr );
   pathtest = (tr.fraction == 1.0);
   if (!pathtest && cvar.autowall && CorrectGunX())
   {
      pathtest = CanPenetrate(xfrom, xto, CorrectGunX());
   }
   return pathtest;
}
//====================================================================================

bool CAimbot::TargetRegion(int ax)
{
    vec3_t vecEnd, up, right, forward, EntViewOrg,playerAngles;
    cl_entity_s* ent = vPlayers[ax].getEnt();
   
    // calculate angle vectors
    playerAngles[0]=0;
    playerAngles[1]=ent->angles[1];
    playerAngles[2]=0;
    gEngfuncs.pfnAngleVectors (playerAngles, forward, right, up);
    forward[2] = -forward[2];

    if (vPlayers[ax].bGotHead)    {VectorCopy(vPlayers[ax].vHitbox,EntViewOrg);vPlayers[ax].fixHbAim=false;}   
    else                        {VectorCopy(vPlayers[ax].origin(),EntViewOrg);vPlayers[ax].fixHbAim=true;}       

    EntViewOrg = EntViewOrg + forward * cvar.hadj_f;
    EntViewOrg = EntViewOrg + up * cvar.hadj_h;
    EntViewOrg = EntViewOrg + right * cvar.hadj_r;
       
    if(pathFree(me.pmEyePos,EntViewOrg) || pathFree(me.pmEyePos, ent->origin)) return true;

    return false;
}

//==============================================================================

bool isValidEnt(cl_entity_s *ent)
{
    if(ent && (ent != gEngfuncs.GetLocalPlayer())  && ent->player && !ent->curstate.spectator && ent->curstate.solid && !(ent->curstate.messagenum < gEngfuncs.GetLocalPlayer()->curstate.messagenum))
        return true;
    else
        return false;
}
//==============================================================================
void CAimbot::FindTarget( void )
{
    if (!me.alive) return;   

    SetTarget(-1);

    for (int ax=0;ax<MAX_VPLAYERS;ax++)
    {
        if  ( vPlayers[ax].isUpdatedAddEnt() && vPlayers[ax].canAim && vPlayers[ax].isAlive()) // No Dead People
        {
            if( !HasTarget() )                                            { SetTarget(ax); continue; }
            if( vPlayers[ax].fovangle <   vPlayers[iTarget].fovangle )    { SetTarget(ax);             }       
        }
    }
}

//==============================================================================

float CAimbot::calcFovAngle(const float* origin_viewer, const float* angle_viewer, const float* origin_target)
{
    double vec[3], view[3];
    double dot;   
   
    view[0] = origin_target[0] - origin_viewer[0];
    view[1] = origin_target[1] - origin_viewer[1];
    view[2] = origin_target[2] - origin_viewer[2];

    dot = sqrt(view[0] * view[0] + view[1] * view[1] + view[2] * view[2]);
    dot = 1/dot;

    vec[0] = view[0] * dot;
    vec[1] = view[1] * dot;
    vec[2] = view[2] * dot;
   
    view[0] =  sin((angle_viewer[1] + 90) * (M_PI / 180));
    view[1] = -cos((angle_viewer[1] + 90) * (M_PI / 180));
    view[2] = -sin( angle_viewer[0] * (M_PI / 180));   
   
    dot = view[0] * vec[0] + view[1] * vec[1] + view[2] * vec[2];
   
    // dot to angle:
    return (float)((1.0-dot)*180.0);
}

//==============================================================================

bool CAimbot::CheckTeam(int ax)
{
    if (me.team != vPlayers[ax].team) return true;
    return false;
}

bool bAim = false;
char* gGetWeaponName( int weaponmodel );
int DoHLHAiming(int eventcode)
{
    char *szWeapon;
    UpdateMe();
    szWeapon = gGetWeaponName(me.ent->curstate.weaponmodel);
    if(strstr(szWeapon, "nade") || strstr(szWeapon, "c4") || strstr(szWeapon, "flashbang")) return 1;
    if (eventcode == 1)
    {
        bAim = true;
        gEngfuncs.pfnClientCmd("+attack");   
        return 0;
    }
    else
    {
        bAim = false;
        gEngfuncs.pfnClientCmd("-attack");
        return 1;
    }
}
//==============================================================================
extern float gSpeed;
int DoSpeed(int eventcode)
{
    if (eventcode == 1)
    {
        if (cvar.knivespeed && IsCurWeaponKnife())    gSpeed = 20.0f;
        else                                        gSpeed = cvar.speed;       
    }
    else
        gSpeed = 0.0;
    return 0;
}

//==============================================================================
int getSeqInfo(int ax);
bool CAimbot::IsShielded(int ax)
{
    int seqinfo = getSeqInfo(ax);
    if (seqinfo & SEQUENCE_RELOAD)
        return false;
    if (seqinfo & SEQUENCE_SHIELD)
        return true;
    return false;
}

//==============================================================================

void CAimbot::calcFovangleAndVisibility(int ax)
{
    PlayerInfo& r = vPlayers[ax];
    r.fovangle    = calcFovAngle(me.pmEyePos, me.viewAngles, r.origin() );
   
    if(r.updateType() == 0 || r.updateType() == 2 || !r.isAlive()) { r.visible = false; return; }

    float fov = 0; //1=10 , 2=30 , 3=90 , 4=360
    if (cvar.fov == 1) fov = 10;
    else if (cvar.fov == 2) fov = 30;
    else if (cvar.fov == 3) fov = 90;
    else if (cvar.fov == 4) fov = 360;

    r.visible = TargetRegion(ax);
   
    if(0) {}
    else if (!CheckTeam(ax))                    { r.canAim = 0; }
    else if (IsShielded(ax))                    { r.canAim = 0; }
    else if (r.fovangle>fov)                    { r.canAim = 0; }   
    else if (bSoonvisible(ax))                    { r.canAim = 1; }
    else if (cvar.autowall)
    {
        int damage = GetDamageVec(ax, true);
        if (damage)
        {
            r.canAim = 2;
        }
        else
        {
            damage = GetDamageVec(ax, false);
            if (damage)
                r.canAim = 1;
            else
                r.canAim = 0;
        }
    }
    else                                        { r.canAim = r.visible; }
}
//==============================================================================

int CAimbot::GetDamageVec(int ax, bool onlyvis)
{
    int hitdamage, penetration = WALL_PEN0;
    vec3_t vecEnd, up, right, forward, EntViewOrg, PlayerOrigin, playerAngles, targetspot;

    VectorCopy(vPlayers[ax].vHitbox,PlayerOrigin);

    playerAngles[0]=0;
    playerAngles[1]=vPlayers[ax].getEnt()->angles[1];
    playerAngles[2]=0;

    gEngfuncs.pfnAngleVectors(playerAngles, forward, right, up);

    forward[2] = -forward[2];

    if (!onlyvis)
        penetration = CorrectGunX();

    targetspot[0] = PlayerOrigin[0] + up[0] * cvar.hadj_h + forward[0] * cvar.hadj_f + right[0] * cvar.hadj_r;
    targetspot[1] = PlayerOrigin[1] + up[1] * cvar.hadj_h + forward[1] * cvar.hadj_f + right[1] * cvar.hadj_r;
    targetspot[2] = PlayerOrigin[2] + up[2] * cvar.hadj_h + forward[2] * cvar.hadj_f + right[2] * cvar.hadj_r;

    hitdamage = CanPenetrate(me.pmEyePos, targetspot, penetration);
    if (hitdamage > 0)
        return hitdamage;

    return 0;
}
//==============================================================================
#define SPIN_REVS_PER_SECOND 6.0f   // adjust to taste
void CAimbot::FixupAngleDifference(usercmd_t *usercmd)
{
    // thanks tetsuo for this copy/paste
    cl_entity_t *pLocal;
    Vector viewforward, viewright, viewup, aimforward, aimright, aimup, vTemp;
    float newforward, newright, newup, newmagnitude, fTime;
    float forward = g_Originalcmd.forwardmove;
    float right = g_Originalcmd.sidemove;
    float up = g_Originalcmd.upmove;

    pLocal = gEngfuncs.GetLocalPlayer();
    if(!pLocal)
        return;

// this branch makes sure your horizontal velocity is not affected when fixing up the movement angles -- it isn't specific to spinning and you can use it with the source tetsuo posted in his forum too
if(pLocal->curstate.movetype == MOVETYPE_WALK)
    {
        gEngfuncs.pfnAngleVectors(Vector(0.0f, g_Originalcmd.viewangles.y, 0.0f), viewforward, viewright, viewup);
    }
    else
    {
        gEngfuncs.pfnAngleVectors(g_Originalcmd.viewangles, viewforward, viewright, viewup);
    }

    // SPIN!!!
    int iHasShiftHeld = GetAsyncKeyState(VK_LSHIFT);
    if(pLocal->curstate.movetype == MOVETYPE_WALK && !iHasShiftHeld && !(usercmd->buttons & IN_ATTACK) && !(usercmd->buttons & IN_USE))
    {
        fTime = gEngfuncs.GetClientTime();
        usercmd->viewangles.y = fmod(fTime * SPIN_REVS_PER_SECOND * 360.0f, 360.0f);
    }

// this branch makes sure your horizontal velocity is not affected when fixing up the movement angles -- it isn't specific to spinning and you can use it with the source tetsuo posted in his forum too
    if(pLocal->curstate.movetype == MOVETYPE_WALK)
    {
        gEngfuncs.pfnAngleVectors(Vector(0.0f, usercmd->viewangles.y, 0.0f), aimforward, aimright, aimup);
    }
    else
    {
        gEngfuncs.pfnAngleVectors(usercmd->viewangles, aimforward, aimright, aimup);
    }

        newforward = DotProduct(forward * viewforward.Normalize(), aimforward) + DotProduct(right * viewright.Normalize(), aimforward) + DotProduct(up * viewup.Normalize(), aimforward);
        newright = DotProduct(forward * viewforward.Normalize(), aimright) + DotProduct(right * viewright.Normalize(), aimright) + DotProduct(up * viewup.Normalize(), aimright);
        newup = DotProduct(forward * viewforward.Normalize(), aimup) + DotProduct(right * viewright.Normalize(), aimup) + DotProduct(up * viewup.Normalize(), aimup);

    usercmd->forwardmove = newforward;
    usercmd->sidemove = newright;
    usercmd->upmove = newup;
}


Aimbot.h



#ifndef AIMBOT_H
#define AIMBOT_H

#include <windows.h>
#include <vector>

using namespace std;

struct Aimvec
{
    float h;
    float f;
    float r;
};

class CAimbot
{
protected:
    void init()
    {
        iTarget = -1;
        active = false;
    }

public:
    int iTarget;
    bool active;
    vec3_t aim_viewangles;   

    void DrawAimSpot(void);
    void CalculateHitbox( cl_entity_s *pEnt );
    void CalculateAimingView( void );
    inline void SetTarget( int iIndex ){ iTarget = iIndex; }
    bool HasTarget( void ){ return iTarget != -1; }
    void FindTarget( void );
    bool CheckTeam(int ax);
    bool IsShielded(int ax);
    float calcFovAngle(const float* origin_viewer, const float* angle_viewer, const float* origin_target);
    void calcFovangleAndVisibility(int ax);
    bool pathFree(float* xfrom,float* xto);
    bool TargetRegion(int ax);
    int GetDamageVec(int ax, bool onlyvis);
    void FixupAngleDifference(usercmd_t *usercmd);
    usercmd_t g_Originalcmd;

public:
    CAimbot() { init(); }
};

extern CAimbot Aimbot;
extern float mainViewOrigin[3];
extern bool isValidEnt(cl_entity_s *ent);
extern int DoSpeed(int eventcode);
extern int DoHLHAiming(int eventcode);

#endif


Modificat de allen (acum 12 ani)


pus acum 12 ani
   
Pagini: 1  

Mergi la