Исходник CSGOSimple base full fix

Забаненный
Статус
Оффлайн
Регистрация
25 Дек 2017
Сообщения
102
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
8 Май 2017
Сообщения
196
Реакции[?]
18
Поинты[?]
0
Забаненный
Статус
Оффлайн
Регистрация
15 Авг 2018
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ну да а индексы менять так сложно.... И пофиксить мышку под панораму:FailFish:
 
Начинающий
Статус
Оффлайн
Регистрация
8 Май 2017
Сообщения
196
Реакции[?]
18
Поинты[?]
0
Ну да а индексы менять так сложно.... И пофиксить мышку под панораму:FailFish:
Не знаю, я еще вчера пофиксил. Просто сказал ему из-за чего еще вылеты, мб пофиксит для себя, кто знает
 
Пользователь
Статус
Оффлайн
Регистрация
11 Янв 2018
Сообщения
333
Реакции[?]
147
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
12 Июл 2017
Сообщения
6
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
12 Июл 2017
Сообщения
6
Реакции[?]
0
Поинты[?]
0
ctrf+f "название индекса" и заменяешь циферки
upd.
заменять вот это.
accuracypenalty 469 -> 468
getcone 476 -> 436
getinnacuracy 468 -> 467
GetCSWeaponData() 445 -> 444
Где узнать на что менять?там есть еще такое как: GetSpread
 
Начинающий
Статус
Оффлайн
Регистрация
8 Май 2017
Сообщения
196
Реакции[?]
18
Поинты[?]
0
Где узнать на что менять?там есть еще такое как: GetSpread
меняй все. В итоге -1 из целого числа сделай. Файл csgostructs.cpp


Код:
#include "csgostructs.hpp"
#include "../helpers/math.hpp"
#include "../helpers/utils.hpp"

bool C_BaseEntity::IsPlayer()
{
    return CallVFunction<bool(__thiscall*)(C_BaseEntity*)>(this, 151)(this); //152
}

bool C_BaseEntity::IsWeapon()
{
    return CallVFunction<bool(__thiscall*)(C_BaseEntity*)>(this, 159)(this); //160
}

bool C_BaseEntity::IsPlantedC4()
{
    return GetClientClass()->m_ClassID == ClassId_CPlantedC4;
}

bool C_BaseEntity::IsDefuseKit()
{
    return GetClientClass()->m_ClassID == ClassId_CBaseAnimating;
}

CCSWeaponInfo* C_BaseCombatWeapon::GetCSWeaponData()
{
    return CallVFunction<CCSWeaponInfo*(__thiscall*)(void*)>(this, 444)(this); //445

}

bool C_BaseCombatWeapon::HasBullets()
{
    return !IsReloading() && m_iClip1() > 0;
}

bool C_BaseCombatWeapon::CanFire()
{
    if(IsReloading() || m_iClip1() <= 0)
        return false;

    if(!g_LocalPlayer)
        return false;

    const float server_time = g_LocalPlayer->m_nTickBase() * g_GlobalVars->interval_per_tick;

    return m_flNextPrimaryAttack() <= server_time;
}

bool C_BaseCombatWeapon::IsGrenade()
{
    return GetCSWeaponData()->WeaponType == WEAPONTYPE_GRENADE;
}

bool C_BaseCombatWeapon::IsKnife()
{
    return GetCSWeaponData()->WeaponType == WEAPONTYPE_KNIFE;
}

bool C_BaseCombatWeapon::IsRifle()
{
    switch (GetCSWeaponData()->WeaponType)
    {
    case WEAPONTYPE_RIFLE:
    case WEAPONTYPE_SHOTGUN:
    case WEAPONTYPE_SUBMACHINEGUN:
    case WEAPONTYPE_MACHINEGUN:
        return true;
    default:
        return false;
    }
}

bool C_BaseCombatWeapon::IsPistol()
{
    return GetCSWeaponData()->WeaponType == WEAPONTYPE_PISTOL;
}

bool C_BaseCombatWeapon::IsSniper()
{
    return GetCSWeaponData()->WeaponType == WEAPONTYPE_SNIPER_RIFLE;
}

bool C_BaseCombatWeapon::IsReloading()
{
    static auto inReload = *reinterpret_cast<uint32_t*>(Utils::PatternScan("client_panorama.dll", "C6 87 ? ? ? ? ? 8B 06 8B CE FF 90") + 2);
    return *reinterpret_cast<bool*>(uintptr_t(this) + inReload);
}

float C_BaseCombatWeapon::GetInaccuracy()
{
    return CallVFunction<float(__thiscall*)(void*)>(this, 467)(this); //468
}

float C_BaseCombatWeapon::GetSpread()
{
    return CallVFunction<float(__thiscall*)(void*)>(this, 436)(this); //437
}

void C_BaseCombatWeapon::UpdateAccuracyPenalty()
{
    CallVFunction<void(__thiscall*)(void*)>(this, 468)(this); //469
}

CUserCmd*& C_BasePlayer::m_pCurrentCommand()
{
    static auto current_сommand = *reinterpret_cast<uint32_t*>(Utils::PatternScan("client_panorama.dll", "C6 87 ? ? ? ? ? 8B 06 8B CE FF 90") + 2);
    return *reinterpret_cast<CUserCmd**>(uintptr_t(this) + current_сommand);
}

Vector C_BasePlayer::GetEyePos()
{
    return m_vecOrigin() + m_vecViewOffset();
}

player_info_t C_BasePlayer::GetPlayerInfo()
{
    player_info_t info;
    g_EngineClient->GetPlayerInfo(EntIndex(), &info);
    return info;
}

bool C_BasePlayer::IsAlive()
{
    return m_lifeState() == LIFE_ALIVE;
}

bool C_BasePlayer::HasC4()
{
    static auto fnHasC4 = reinterpret_cast<bool(__thiscall*)(void*)>(Utils::PatternScan("client_panorama.dll", "56 8B F1 85 F6 74 31"));

    return fnHasC4(this);
}

Vector C_BasePlayer::GetHitboxPos(int hitbox_id)
{
    matrix3x4_t boneMatrix[MAXSTUDIOBONES];

    if(SetupBones(boneMatrix, MAXSTUDIOBONES, BONE_USED_BY_HITBOX, 0.0f)) {
        auto studio_model = g_MdlInfo->GetStudiomodel(GetModel());
        if(studio_model) {
            const auto hitbox = studio_model->GetHitboxSet(0)->GetHitbox(hitbox_id);
            if(hitbox) {
                auto
                    min = Vector{},
                    max = Vector{};

                Math::VectorTransform(hitbox->bbmin, boneMatrix[hitbox->bone], min);
                Math::VectorTransform(hitbox->bbmax, boneMatrix[hitbox->bone], max);

                return (min + max) / 2.0f;
            }
        }
    }
    return Vector{};
}

bool C_BasePlayer::GetHitboxPos(int hitbox, Vector &output)
{
    if(hitbox >= HITBOX_MAX)
        return false;

    const model_t *model = this->GetModel();
    if(!model)
        return false;

    studiohdr_t *studioHdr = g_MdlInfo->GetStudiomodel(model);
    if(!studioHdr)
        return false;

    matrix3x4_t matrix[MAXSTUDIOBONES];
    if(!this->SetupBones(matrix, MAXSTUDIOBONES, 0x100, 0))
        return false;

    mstudiobbox_t *studioBox = studioHdr->GetHitboxSet(0)->GetHitbox(hitbox);
    if(!studioBox)
        return false;

    Vector min, max;

    Math::VectorTransform(studioBox->bbmin, matrix[studioBox->bone], min);
    Math::VectorTransform(studioBox->bbmax, matrix[studioBox->bone], max);

    output = (min + max) * 0.5f;

    return true;
}

Vector C_BasePlayer::GetBonePos(int bone)
{
    matrix3x4_t boneMatrix[MAXSTUDIOBONES];

    if(SetupBones(boneMatrix, MAXSTUDIOBONES, BONE_USED_BY_ANYTHING, 0.0f)) {
        return boneMatrix[bone].at(3);
    }
    return Vector{};
}

bool C_BasePlayer::CanSeePlayer(C_BasePlayer* player, int hitbox)
{
    return CanSeePlayer(player, player->GetHitboxPos(hitbox));
}

bool C_BasePlayer::CanSeePlayer(C_BasePlayer* player, const Vector& pos)
{
    CGameTrace tr;
    Ray_t ray;
    CTraceFilter filter;
    filter.pSkip = this;

    ray.Init(GetEyePos(), pos);
    g_EngineTrace->TraceRay(ray, MASK_SHOT | CONTENTS_GRATE, &filter, &tr);

    return tr.hit_entity == player || tr.fraction > 0.97f;
}

int C_BasePlayer::m_nMoveType()
{
    return *reinterpret_cast<int*>(uintptr_t(this) + 0x258);
}

C_BasePlayer* C_BasePlayer::GetPlayerOrObserver()
{
    if (IsAlive())
        return this;

    if (!m_hObserverTarget())
        return nullptr;

    auto player = dynamic_cast<C_BasePlayer*>(g_EntityList->GetClientEntityFromHandle(m_hObserverTarget()));
    return player->IsAlive() ? player : nullptr;
}
 
Начинающий
Статус
Оффлайн
Регистрация
12 Июл 2017
Сообщения
6
Реакции[?]
0
Поинты[?]
0
меняй все. В итоге -1 из целого числа сделай. Файл csgostructs.cpp


Код:
#include "csgostructs.hpp"
#include "../helpers/math.hpp"
#include "../helpers/utils.hpp"

bool C_BaseEntity::IsPlayer()
{
    return CallVFunction<bool(__thiscall*)(C_BaseEntity*)>(this, 151)(this); //152
}

bool C_BaseEntity::IsWeapon()
{
    return CallVFunction<bool(__thiscall*)(C_BaseEntity*)>(this, 159)(this); //160
}

bool C_BaseEntity::IsPlantedC4()
{
    return GetClientClass()->m_ClassID == ClassId_CPlantedC4;
}

bool C_BaseEntity::IsDefuseKit()
{
    return GetClientClass()->m_ClassID == ClassId_CBaseAnimating;
}

CCSWeaponInfo* C_BaseCombatWeapon::GetCSWeaponData()
{
    return CallVFunction<CCSWeaponInfo*(__thiscall*)(void*)>(this, 444)(this); //445

}

bool C_BaseCombatWeapon::HasBullets()
{
    return !IsReloading() && m_iClip1() > 0;
}

bool C_BaseCombatWeapon::CanFire()
{
    if(IsReloading() || m_iClip1() <= 0)
        return false;

    if(!g_LocalPlayer)
        return false;

    const float server_time = g_LocalPlayer->m_nTickBase() * g_GlobalVars->interval_per_tick;

    return m_flNextPrimaryAttack() <= server_time;
}

bool C_BaseCombatWeapon::IsGrenade()
{
    return GetCSWeaponData()->WeaponType == WEAPONTYPE_GRENADE;
}

bool C_BaseCombatWeapon::IsKnife()
{
    return GetCSWeaponData()->WeaponType == WEAPONTYPE_KNIFE;
}

bool C_BaseCombatWeapon::IsRifle()
{
    switch (GetCSWeaponData()->WeaponType)
    {
    case WEAPONTYPE_RIFLE:
    case WEAPONTYPE_SHOTGUN:
    case WEAPONTYPE_SUBMACHINEGUN:
    case WEAPONTYPE_MACHINEGUN:
        return true;
    default:
        return false;
    }
}

bool C_BaseCombatWeapon::IsPistol()
{
    return GetCSWeaponData()->WeaponType == WEAPONTYPE_PISTOL;
}

bool C_BaseCombatWeapon::IsSniper()
{
    return GetCSWeaponData()->WeaponType == WEAPONTYPE_SNIPER_RIFLE;
}

bool C_BaseCombatWeapon::IsReloading()
{
    static auto inReload = *reinterpret_cast<uint32_t*>(Utils::PatternScan("client_panorama.dll", "C6 87 ? ? ? ? ? 8B 06 8B CE FF 90") + 2);
    return *reinterpret_cast<bool*>(uintptr_t(this) + inReload);
}

float C_BaseCombatWeapon::GetInaccuracy()
{
    return CallVFunction<float(__thiscall*)(void*)>(this, 467)(this); //468
}

float C_BaseCombatWeapon::GetSpread()
{
    return CallVFunction<float(__thiscall*)(void*)>(this, 436)(this); //437
}

void C_BaseCombatWeapon::UpdateAccuracyPenalty()
{
    CallVFunction<void(__thiscall*)(void*)>(this, 468)(this); //469
}

CUserCmd*& C_BasePlayer::m_pCurrentCommand()
{
    static auto current_сommand = *reinterpret_cast<uint32_t*>(Utils::PatternScan("client_panorama.dll", "C6 87 ? ? ? ? ? 8B 06 8B CE FF 90") + 2);
    return *reinterpret_cast<CUserCmd**>(uintptr_t(this) + current_сommand);
}

Vector C_BasePlayer::GetEyePos()
{
    return m_vecOrigin() + m_vecViewOffset();
}

player_info_t C_BasePlayer::GetPlayerInfo()
{
    player_info_t info;
    g_EngineClient->GetPlayerInfo(EntIndex(), &info);
    return info;
}

bool C_BasePlayer::IsAlive()
{
    return m_lifeState() == LIFE_ALIVE;
}

bool C_BasePlayer::HasC4()
{
    static auto fnHasC4 = reinterpret_cast<bool(__thiscall*)(void*)>(Utils::PatternScan("client_panorama.dll", "56 8B F1 85 F6 74 31"));

    return fnHasC4(this);
}

Vector C_BasePlayer::GetHitboxPos(int hitbox_id)
{
    matrix3x4_t boneMatrix[MAXSTUDIOBONES];

    if(SetupBones(boneMatrix, MAXSTUDIOBONES, BONE_USED_BY_HITBOX, 0.0f)) {
        auto studio_model = g_MdlInfo->GetStudiomodel(GetModel());
        if(studio_model) {
            const auto hitbox = studio_model->GetHitboxSet(0)->GetHitbox(hitbox_id);
            if(hitbox) {
                auto
                    min = Vector{},
                    max = Vector{};

                Math::VectorTransform(hitbox->bbmin, boneMatrix[hitbox->bone], min);
                Math::VectorTransform(hitbox->bbmax, boneMatrix[hitbox->bone], max);

                return (min + max) / 2.0f;
            }
        }
    }
    return Vector{};
}

bool C_BasePlayer::GetHitboxPos(int hitbox, Vector &output)
{
    if(hitbox >= HITBOX_MAX)
        return false;

    const model_t *model = this->GetModel();
    if(!model)
        return false;

    studiohdr_t *studioHdr = g_MdlInfo->GetStudiomodel(model);
    if(!studioHdr)
        return false;

    matrix3x4_t matrix[MAXSTUDIOBONES];
    if(!this->SetupBones(matrix, MAXSTUDIOBONES, 0x100, 0))
        return false;

    mstudiobbox_t *studioBox = studioHdr->GetHitboxSet(0)->GetHitbox(hitbox);
    if(!studioBox)
        return false;

    Vector min, max;

    Math::VectorTransform(studioBox->bbmin, matrix[studioBox->bone], min);
    Math::VectorTransform(studioBox->bbmax, matrix[studioBox->bone], max);

    output = (min + max) * 0.5f;

    return true;
}

Vector C_BasePlayer::GetBonePos(int bone)
{
    matrix3x4_t boneMatrix[MAXSTUDIOBONES];

    if(SetupBones(boneMatrix, MAXSTUDIOBONES, BONE_USED_BY_ANYTHING, 0.0f)) {
        return boneMatrix[bone].at(3);
    }
    return Vector{};
}

bool C_BasePlayer::CanSeePlayer(C_BasePlayer* player, int hitbox)
{
    return CanSeePlayer(player, player->GetHitboxPos(hitbox));
}

bool C_BasePlayer::CanSeePlayer(C_BasePlayer* player, const Vector& pos)
{
    CGameTrace tr;
    Ray_t ray;
    CTraceFilter filter;
    filter.pSkip = this;

    ray.Init(GetEyePos(), pos);
    g_EngineTrace->TraceRay(ray, MASK_SHOT | CONTENTS_GRATE, &filter, &tr);

    return tr.hit_entity == player || tr.fraction > 0.97f;
}

int C_BasePlayer::m_nMoveType()
{
    return *reinterpret_cast<int*>(uintptr_t(this) + 0x258);
}

C_BasePlayer* C_BasePlayer::GetPlayerOrObserver()
{
    if (IsAlive())
        return this;

    if (!m_hObserverTarget())
        return nullptr;

    auto player = dynamic_cast<C_BasePlayer*>(g_EntityList->GetClientEntityFromHandle(m_hObserverTarget()));
    return player->IsAlive() ? player : nullptr;
}
Спасибо
 
Сверху Снизу