Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Исходник LSD source

  • Автор темы Автор темы rudyrdx
  • Дата начала Дата начала
Короче что-то типа такого по фиксу нужно, как щяс в гемини начал хуярить. И здесь не надо чекать модели

C++:
Expand Collapse Copy
void __fastcall Hooks::DrawModelExecute(void* ecx, void* edx, IMatRenderContext* context, const DrawModelState_t& state, const ModelRenderInfo_t& info, matrix3x4_t* matrix)
{
    static auto oDrawModelExecute = g_Hooks.pModelHook->GetOriginal<DrawModelExecute_t>(vtable_indexes::dme);

    if (!Globals::LocalPlayer)
    {
        oDrawModelExecute(ecx, context, state, info, matrix);
        g_pModelRender->ForcedMaterialOverride(NULL);
        return;
    }

    C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(info.index);
    if (!pPlayerEntity)
    {
        oDrawModelExecute(ecx, context, state, info, matrix);
        g_pModelRender->ForcedMaterialOverride(NULL);
        return;
    }

    ClientClass* EntityClass = pPlayerEntity->GetClientClass();
    if (!pPlayerEntity || !EntityClass)
    {
        oDrawModelExecute(ecx, context, state, info, matrix);
        g_pModelRender->ForcedMaterialOverride(NULL);
        return;
    }

    //Ебашим здесь, потому что все проверки выше прошли
    static IMaterial* mat_overlay;
    static bool once{ false };
    if (!once)
    {
        std::ofstream("csgo/materials/glowOverlay.vmt") << R"#("VertexLitGeneric" { 
            "$additive" "1"
            "$envmap" "models/effects/cube_white"
            "$envmaptint" "[0 0.2 0.1]"
            "$envmapfresnel" "1"
            "$envmapfresnelminmaxexp" "[0 1 2]"
            "$alpha" "0.8"
        })#";

        mat_overlay = g_pMaterialSys->FindMaterial("glowOverlay", nullptr);
        once = true;
    }

    //Модель игрока
    if (EntityClass->ClassID == (int)EClassIds::CCSPlayer)
    {
        //Враги
        if (Globals::LocalPlayer->GetTeam() != pPlayerEntity->GetTeam())
        {
            g_pModelRender->ForcedMaterialOverride(mat_overlay);
            oDrawModelExecute(ecx, context, state, info, matrix);
        }
    }


    oDrawModelExecute(ecx, context, state, info, matrix);
    g_pModelRender->ForcedMaterialOverride(NULL);
}
 
Короче что-то типа такого по фиксу нужно, как щяс в гемини начал хуярить. И здесь не надо чекать модели

C++:
Expand Collapse Copy
void __fastcall Hooks::DrawModelExecute(void* ecx, void* edx, IMatRenderContext* context, const DrawModelState_t& state, const ModelRenderInfo_t& info, matrix3x4_t* matrix)
{
    static auto oDrawModelExecute = g_Hooks.pModelHook->GetOriginal<DrawModelExecute_t>(vtable_indexes::dme);

    if (!Globals::LocalPlayer)
    {
        oDrawModelExecute(ecx, context, state, info, matrix);
        g_pModelRender->ForcedMaterialOverride(NULL);
        return;
    }

    C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(info.index);
    if (!pPlayerEntity)
    {
        oDrawModelExecute(ecx, context, state, info, matrix);
        g_pModelRender->ForcedMaterialOverride(NULL);
        return;
    }

    ClientClass* EntityClass = pPlayerEntity->GetClientClass();
    if (!pPlayerEntity || !EntityClass)
    {
        oDrawModelExecute(ecx, context, state, info, matrix);
        g_pModelRender->ForcedMaterialOverride(NULL);
        return;
    }

    //Ебашим здесь, потому что все проверки выше прошли
    static IMaterial* mat_overlay;
    static bool once{ false };
    if (!once)
    {
        std::ofstream("csgo/materials/glowOverlay.vmt") << R"#("VertexLitGeneric" {
            "$additive" "1"
            "$envmap" "models/effects/cube_white"
            "$envmaptint" "[0 0.2 0.1]"
            "$envmapfresnel" "1"
            "$envmapfresnelminmaxexp" "[0 1 2]"
            "$alpha" "0.8"
        })#";

        mat_overlay = g_pMaterialSys->FindMaterial("glowOverlay", nullptr);
        once = true;
    }

    //Модель игрока
    if (EntityClass->ClassID == (int)EClassIds::CCSPlayer)
    {
        //Враги
        if (Globals::LocalPlayer->GetTeam() != pPlayerEntity->GetTeam())
        {
            g_pModelRender->ForcedMaterialOverride(mat_overlay);
            oDrawModelExecute(ecx, context, state, info, matrix);
        }
    }


    oDrawModelExecute(ecx, context, state, info, matrix);
    g_pModelRender->ForcedMaterialOverride(NULL);
}
А, можешь сделать тему, с fixed source ?
 
спасити, что я делаю не так ?
Не удается открыть файл включение: hitsound.h: No such file or directory, (компилируется исходный файл lsd\Hooks.cpp) c:\users\ооо\desktop\lsd-master\lsd\hooks.cpp LSD 18
 
спасити, что я делаю не так ?
Не удается открыть файл включение: hitsound.h: No such file or directory, (компилируется исходный файл lsd\Hooks.cpp) c:\users\ооо\desktop\lsd-master\lsd\hooks.cpp LSD 18
нужно закоментить hitsound
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Короче че скажу. В resolver.cpp дохуя ненужного. Если все допилить и пофиксить половину кода которая просто в кашу,то можно убивать
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
С таким подходом проще с нуля написать самому)
да бля тут единственное что могут взять пастеры так это десинк чамсы. Там вроде все правильно собирается. И визуалы мб еще
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Дебагнул
Крашит в DME
if (strstr(ModelName, "models/player") != nullptr)
Не очень понял почему модель не может иметь индекс 0

Крашит ещё тут :warpath:

int GetHealth()
{
static int m_iHealth = g_pNetvars->GetOffset("DT_BasePlayer", "m_iHealth");
return GetValue<int>(m_iHealth);
}

Этот оффсет return GetValue<int>(m_iHealth);
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Уже пофиксил, только на сервере репача игра дм падает при выборе команды без указателя на ошибку - просто закрывается, а на других мм хвх норм.
 
Назад
Сверху Снизу