Исходник Один из лучших ресольверов

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
17 Май 2018
Сообщения
25
Реакции
0
СПИЗЖЕНО С ЛОЛЗТИМА
Код:
Expand Collapse Copy
#pragma once
#include "../../stdafx.h"
#include "../Utils/Playerlist.h"
#include "../Utils/Hitbox.h"
#include "../../SDK/SDK.h"
#include "Backtrack.h"
#define TICK_INTERVAL            (Interfaces.pGlobalVars->interval_per_tick)
#define TIME_TO_TICKS2( dt )        ( (int)( 0.5f + (float)(dt) / TICK_INTERVAL ) )
 
//second: check if the animation state is 979, then do your flip however you want >120
//check if animation state is 973, then do your flip however you want <120
 
int CBaseEntity::GetSequenceActivity(int sequence)
{
    auto hdr = Interfaces.g_pModelInfo->GetStudioModel(this->GetModel());
 
    if (!hdr)
        return -1;
 
    // c_csplayer vfunc 242, follow calls to find the function.
 
    static auto client2 = GetModuleHandleW(L"client.dll");
    static auto getSequenceActivity = (DWORD)(Utils.PatternScan(client2, "55 8B EC 83 7D 08 FF 56 8B F1 74"));
    static auto GetSequenceActivity = reinterpret_cast<int(__fastcall*)(void*, studiohdr_t*, int)>(getSequenceActivity);
 
    return GetSequenceActivity(this, hdr, sequence);
}
 
bool isPartOf(char *a, char *b) {
    if (std::strstr(b, a) != NULL) {    //Strstr says does b contain a
        return true;
    }
    return false;
}
 
class CResolver {
public:
    void AntiAimResolver();
    void AntiAimCorrection();
private:
    bool IsFakeWalking();
};
 
struct ResolverData
{
    float simtime, flcycle[13], flprevcycle[13], flweight[13], flweightdatarate[13], fakewalkdetection[2], fakeanglesimtimedetection[2], fakewalkdetectionsimtime[2];
    float yaw, addyaw, lbycurtime;
    float shotsimtime, oldlby, lastmovinglby, balanceadjustsimtime, balanceadjustflcycle;
    int fakeanglesimtickdetectionaverage[4], amountgreaterthan2, amountequal1or2, amountequal0or1, amountequal1, amountequal0, resetmovetick, resetmovetick2;
    int tick, balanceadjusttick, missedshots, activity[13];
    bool bfakeangle, bfakewalk, playerhurtcalled, weaponfirecalled;
    Vector shotaimangles, hitboxPos, balanceadjustaimangles;
    uint32_t norder[13];
    char* resolvermode = "NONE", *fakewalk = "Not Moving";
};
 
extern ResolverData pResolverData[64];
extern CResolver* Resolver;
 
void CResolver::AntiAimResolver()
{
    CBaseEntity* pLocal = Hacks.LocalPlayer;
    player_info_t info{};
    if (!pLocal->isAlive())
        return;
 
    for (int i = 0; i < Interfaces.pEngine->GetMaxClients(); i++)
    {
        auto pEntity = Interfaces.pEntList->GetClientEntity(i);
 
        if (!pEntity || !pLocal)
            continue;
 
        if (pEntity == pLocal)
            continue;
 
        if (!Interfaces.pEngine->GetPlayerInfo(i, &info))
            continue;
 
        if (pEntity->IsDormant())
            continue;
 
        if (pEntity->GetTeam() == pLocal->GetTeam())
            continue;
 
        if (pEntity->isAlive())
        {
            if (pResolverData[i].addyaw > 135.f)
                pResolverData[i].addyaw = 0.f;
            // Add Spread Check here if you want pBruteForce
            if (pResolverData[Hacks.LocalPlayer->GetIndex()].weaponfirecalled)
            {
                if (!pResolverData[pEntity->GetIndex()].playerhurtcalled)
                {
                    if (isPartOf("Brute", pResolverData[i].resolvermode))
                    {
                        //if (hitgroup >= 4 && hitgroup <= 7)
                        //pResolverData[i].addyaw += 15;
                        //else
                        pResolverData[i].addyaw += 45.f;
                    }
                }
                else
                    pResolverData[i].playerhurtcalled = false;
                pResolverData[Hacks.LocalPlayer->GetIndex()].weaponfirecalled = false;
            }
            //Garbage Fake Angle Detection
            /*pResolverData[pEntity->GetIndex()].fakeanglesimtimedetection[Hacks.CurrentCmd->command_number % 2] = pEntity->GetSimulationTime();
            pResolverData[pEntity->GetIndex()].fakeanglesimtickdetectionaverage[Hacks.CurrentCmd->command_number % 4] = TIME_TO_TICKS2(fabs(pEntity->GetSimulationTime() - pEntity->GetOldSimulationTime()));
            pResolverData[pEntity->GetIndex()].amountgreaterthan2 = 0; pResolverData[pEntity->GetIndex()].amountequal1 = 0; pResolverData[pEntity->GetIndex()].amountequal0 = 0; pResolverData[pEntity->GetIndex()].amountequal1or2 = 0; pResolverData[pEntity->GetIndex()].amountequal0or1 = 0;
            for (int i = 0; i < 4; i++)
            {
                if (pResolverData[pEntity->GetIndex()].fakeanglesimtickdetectionaverage[i] >= 2)
                {
                    pResolverData[pEntity->GetIndex()].amountgreaterthan2++;
                    pResolverData[pEntity->GetIndex()].amountequal1or2++;
                }
                else if (pResolverData[pEntity->GetIndex()].fakeanglesimtickdetectionaverage[i] == 1)
                {
                    pResolverData[pEntity->GetIndex()].amountequal1or2++;
                    pResolverData[pEntity->GetIndex()].amountequal1++;
                    pResolverData[pEntity->GetIndex()].amountequal0or1++;
                }
                else if (pResolverData[pEntity->GetIndex()].fakeanglesimtickdetectionaverage[i] == 0)
                {
                    pResolverData[pEntity->GetIndex()].amountequal0++;
                    pResolverData[pEntity->GetIndex()].amountequal0or1++;
                }
            }
            if (pResolverData[pEntity->GetIndex()].bfakewalk)
            {
                if (pResolverData[pEntity->GetIndex()].amountequal0 == 3 && pResolverData[pEntity->GetIndex()].amountgreaterthan2 == 1 ||
                    pResolverData[pEntity->GetIndex()].amountequal0 == 2 && pResolverData[pEntity->GetIndex()].amountgreaterthan2 == 2
                    || pResolverData[pEntity->GetIndex()].amountequal0 >= 3  /*this is to force
                    )
                    pResolverData[pEntity->GetIndex()].bfakeangle = true;
                else
                    pResolverData[pEntity->GetIndex()].bfakeangle = false;
            }
            else
            {
                if (pResolverData[pEntity->GetIndex()].amountequal1or2 >= 4 ||
                    pResolverData[pEntity->GetIndex()].amountequal0or1 >= 4 ||
                    pResolverData[pEntity->GetIndex()].amountgreaterthan2 == 3 && pResolverData[pEntity->GetIndex()].amountequal1 == 1 ||
                    pResolverData[pEntity->GetIndex()].amountequal1 >= 2)
                    pResolverData[pEntity->GetIndex()].bfakeangle = false;
                else
                    pResolverData[pEntity->GetIndex()].bfakeangle = true;
            }*/
            
            
            // bad coding or anti paste? :thinking:
            // detect fakewalk using m_LegAnimType instead just an fyi
            for (int w = 0; w < 13; w++)
            {
                AnimationLayer currentLayer = pEntity->GetAnimOverlay(w);
                const int activity = pEntity->GetSequenceActivity(currentLayer.m_nSequence);
                float flcycle = currentLayer.m_flCycle, flprevcycle = currentLayer.m_flPrevCycle, flweight = currentLayer.m_flWeight, flweightdatarate = currentLayer.m_flWeightDeltaRate;
                uint32_t norder = currentLayer.m_nOrder;
                Vector* pAngles = pEntity->GetEyeAnglesPointer();
                /*if (pEntity->GetSimulationTime() != pResolverData[pEntity->GetIndex()].simtime)
                {
                pResolverData[pEntity->GetIndex()].simtime = pEntity->GetSimulationTime();
                }*/
                // Fake Walk Detection NOrder 12 is activated when an animation starts and you can use this to detect fakewalk
                // Cause if you understand how fake walk works, they choke and then run and they stop at 0 velocity when they unchoke
                // causing the 0 velocity to be sent and lby not being upadted and it starts a new animation
                // Which is norder 12, if you can figure out how to instantly stop, you can go any velocity fucking up velocity checks.
                // This works against all fake walks.
                // To make this more accurate use more ticks
                if (norder == 12)
                {
                    pResolverData[pEntity->GetIndex()].fakewalkdetection[Hacks.CurrentCmd->command_number % 2] = flweight;
                    pResolverData[pEntity->GetIndex()].fakewalkdetectionsimtime[Hacks.CurrentCmd->command_number % 2] = pEntity->GetSimulationTime();
                    for (int t = 0; t < 2; t++)
                    {
                        int resetmovetick2{};
                        if (pResolverData[pEntity->GetIndex()].fakewalkdetection[t] > 0.f)
                            pResolverData[pEntity->GetIndex()].resetmovetick = t;
                        else if (t == 1)
                        {
                            if (pEntity->GetVecVelocity().Length2D() < 0.50 && flweight == 0.f)
                            {
                                pResolverData[pEntity->GetIndex()].fakewalk = "Not Moving";
                                pResolverData[pEntity->GetIndex()].bfakewalk = false;
                            }
                        }
                        else {
                            if (pResolverData[pEntity->GetIndex()].resetmovetick > 0)
                                resetmovetick2 = pResolverData[pEntity->GetIndex()].resetmovetick - 1;
                            else
                                resetmovetick2 = pResolverData[pEntity->GetIndex()].resetmovetick + 1;
 
                            if (pResolverData[pEntity->GetIndex()].fakewalkdetection[resetmovetick2] == 0.f)
                            {
                                pResolverData[pEntity->GetIndex()].fakewalk = "Fake Walking";
                                pResolverData[pEntity->GetIndex()].bfakewalk = true;
                            }
                        }
                    }
                }
                // Removed fake angle check unreliable
                //if (pResolverData[pEntity->GetIndex()].bfakeangle || !pResolverData[pEntity->GetIndex()].bfakeangle)
                //{
                    if (pEntity->GetVecVelocity().Length2D() >= 0.50 && norder == 6 && flweight >= 0.550000 || pEntity->GetVecVelocity().Length2D() >= 0.50 && norder == 5 && flweight >= 0.550000 || !pResolverData[pEntity->GetIndex()].bfakewalk && pEntity->GetVecVelocity().Length2D() >= 0.50)
                    {
                        float simtime = pEntity->GetSimulationTime();
                        Hitbox box{};
                        if (!box.GetHitbox(pEntity, 0))
                            continue;
                        Vector hitboxPos{};
                        float damage = box.GetBestPoint(hitboxPos);
                        pResolverData[pEntity->GetIndex()].lastmovinglby = pEntity->pelvisangs();
                        RageBackData[pEntity->GetIndex()][Hacks.CurrentCmd->command_number % 16].damage = damage;
                        RageBackData[pEntity->GetIndex()][Hacks.CurrentCmd->command_number % 16].simtime = simtime;
                        RageBackData[pEntity->GetIndex()][Hacks.CurrentCmd->command_number % 16].hitboxPos = hitboxPos;
                        pResolverData[pEntity->GetIndex()].resolvermode = "LBY Move";
                        pResolverData[pEntity->GetIndex()].fakewalk = "No Fake Walk";
                        pAngles->y = pEntity->pelvisangs();
                    }
                    else
                    {
                        /*if (Hacks.CurrentCmd->tick_count % 2 <= 1)
                        {
                        if (norder == 6 && flweight == 0.f || norder == 12 && flweight == 0.f)
                        {
                        pResolverData[pEntity->GetIndex()].fakewalk = "Not Moving";
                        }
                        else if (pEntity->GetVecVelocity().Length2D() >= 0.50 && norder == 6 && flweight >= 0.550000)
                        pResolverData[pEntity->GetIndex()].fakewalk = "Fake Walking";
                        }*/
                        /*else if (backtracking->IsTickValid(RageBackData[pEntity->GetIndex()][Hacks.CurrentCmd->command_number % 16].simtime))
                        {
                        Hacks.CurrentCmd->tick_count = TIME_TO_TICKS2(RageBackData[pEntity->GetIndex()][Hacks.CurrentCmd->command_number % 16].simtime);
                        pAngles->y = RageBackData[pEntity->GetIndex()][Hacks.CurrentCmd->command_number % 16].yaw;
                        }*/
                        /*if (activity == ACT_CSGO_IDLE_TURN_BALANCEADJUST && flweight > 0.f && flcycle > 0.f && flcycle <= 0.05f)
                        {
                            pResolverData[pEntity->GetIndex()].balanceadjustsimtime = pEntity->GetSimulationTime();
                            if (backtracking->IsTickValid(pResolverData[pEntity->GetIndex()].balanceadjustsimtime))
                            {
                                Hitbox box{};
                                if (!box.GetHitbox(pEntity, 0))
                                    continue;
                                pResolverData[pEntity->GetIndex()].balanceadjustaimangles = box.GetCenter();
                                //if (Hacks.CurrentCmd->buttons & IN_ATTACK)
                                pResolverData[pEntity->GetIndex()].resolvermode = "BA Update";
                                pAngles->y = pEntity->pelvisangs() - 17.5;
                                if (Hacks.CurrentCmd && Hacks.CurrentCmd->buttons & IN_ATTACK)
                                    backtracking->BackTrackPlayer(Hacks.CurrentCmd, TIME_TO_TICKS2(pResolverData[pEntity->GetIndex()].balanceadjustsimtime));
                            }
                        }*/
                        /*else if (activity == ACT_CSGO_FIRE_PRIMARY && flweight > 0.f && flcycle > 0.f && flcycle <= 0.05f)
                        {   
                            Hitbox box{};
                            if (!box.GetHitbox(pEntity, 0))
                                continue;
                            pResolverData[pEntity->GetIndex()].resolvermode = "Fire Update";
                            pResolverData[pEntity->GetIndex()].shotsimtime = pEntity->GetSimulationTime();
                            pResolverData[pEntity->GetIndex()].shotaimangles = box.GetCenter();
                        }
                        else if (backtracking->IsTickValid(pResolverData[pEntity->GetIndex()].balanceadjustsimtime))
                        {
                            pResolverData[pEntity->GetIndex()].resolvermode = "BA";
                            if (Hacks.CurrentCmd && Hacks.CurrentCmd->buttons & IN_ATTACK)
                                backtracking->BackTrackPlayer(Hacks.CurrentCmd, TIME_TO_TICKS2(pResolverData[pEntity->GetIndex()].balanceadjustsimtime));
                        }
                        else if (backtracking->IsTickValid(pResolverData[pEntity->GetIndex()].shotsimtime))
                        {
                            pResolverData[pEntity->GetIndex()].resolvermode = "Fire";
                            if (Hacks.CurrentCmd && Hacks.CurrentCmd->buttons & IN_ATTACK)
                                backtracking->BackTrackPlayer(Hacks.CurrentCmd, TIME_TO_TICKS2(pResolverData[pEntity->GetIndex()].shotsimtime));
                        }*/
                        // Check how many times they triggered it in less than 1.1f time to make this more accurate
                        if (activity == ACT_CSGO_IDLE_TURN_BALANCEADJUST && flweight >= 0.05f)
                        {
                            pResolverData[pEntity->GetIndex()].resolvermode = "Less BA Brute";
                            pResolverData[pEntity->GetIndex()].addyaw > 0.f ? pAngles->y = pEntity->pelvisangs() - pResolverData[pEntity->GetIndex()].addyaw - 77.5 : pAngles->y = pEntity->pelvisangs() - 77.5;
                        }
                        else if (activity == ACT_CSGO_IDLE_ADJUST_STOPPEDMOVING || activity == ACT_CSGO_IDLE_TURN_BALANCEADJUST && flweight == 0.f && flcycle >= 0.970000)
                        {
                            pResolverData[pEntity->GetIndex()].resolvermode = "LBY Brute";
                            pResolverData[pEntity->GetIndex()].addyaw > 0.f ? pAngles->y = pEntity->pelvisangs() - pResolverData[pEntity->GetIndex()].addyaw : pAngles->y = pEntity->pelvisangs() - 17.5;
                            //pEntity->pelvisangs() < 0.f ? pAngles->y = (pResolverData[pEntity->GetIndex()].lastmovinglby + (pResolverData[pEntity->GetIndex()].lastmovinglby - pEntity->pelvisangs())) : pAngles->y = (pResolverData[pEntity->GetIndex()].lastmovinglby - (pResolverData[pEntity->GetIndex()].lastmovinglby - pEntity->pelvisangs()));
                            //activity == ACT_CSGO_IDLE_ADJUST_STOPPEDMOVING ? pAngles->y = pEntity->pelvisangs() : pAngles->y = pEntity->pelvisangs() - 90;
                        }
                    }
                //}
                //else
                    //pResolverData[pEntity->GetIndex()].resolvermode = "No Fake Angle";
                g_Math.AngleNormalise(*pAngles);
            }
        }
    }
}
 
ResolverData pResolverData[64];
CResolver* Resolver;
 
Годнота подъехала(НЕТ). Ресольвер астриума.сс он в паблике может год, если не больше
 
"Astrium.cc with animation stuff for resolver" на гите нашел, да и челик на лолзе пишет что это ресольвер скита xD
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хуйня а не ресольвер
Брутфорс можно в 2 строчки написать, нахуя столько дерьмокода?
 
  • Мне нравится
Реакции: Tan
1k+ строк брутфорса найс
 
Во первых это далеко не один из лучших резольверов, во вторых уже Сливали
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ааххахахах, спасибо, поднял настроение )00
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вы чё охерели? Чекните на лолзе, это МОЯ тема. Я там тоже collashe.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу