Гайд Делаем nightmode к индусу(indigo)

sex
Забаненный
Статус
Оффлайн
Регистрация
4 Окт 2017
Сообщения
1,073
Реакции[?]
160
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
н
В общем. Вот вам тру гайд для ваших ̶т̶р̶у̶ ̶2̶2̶8̶ ̶с̶а̶м̶о̶п̶и̶с̶а̶н̶н̶ы̶х̶ ̶п̶р̶и̶в̶а̶т̶о̶к̶ паст.
И так, приступим. Что же у нас есть:
Индус (любой сурц),
Прямые руки.
Начнём с добалвения CVar'ов в сурц:
Идём крче в sdk.h добавляем эта:

Код:
#include "../CVar.h" // в столбик с инклудами
static ConVar*    GetConVar(); // в публик класс Interfaces
static ConVar*    g_pConVar;  // в приват класс Interfaces
Далее в sdk.cpp:
Код:
ConVar*       Interfaces::g_pConVar = nullptr;  // в начало неймспейса SDK
ConVar* Interfaces::GetConVar()  // В конец неймспейса
{
    if (!g_pConVar)
    {
        CreateInterfaceFn pfnFactory = CaptureFactory(VSTDLIB_DLL);
        g_pConVar = CaptureInterface<ConVar>(pfnFactory, VENGINEVCAR_INTERFACE_VERSION);
    }
    return g_pConVar;
}
Далее создаём файл в проекте с названием CVar.h
Код:
#pragma once

#include "SDK/SDK.h"

#define FORCEINLINE_CVAR

#pragma region CVAR Flags
#define FCVAR_NONE                      0
#define FCVAR_UNREGISTERED              (1<<0)
#define FCVAR_DEVELOPMENTONLY           (1<<1)
#define FCVAR_GAMEDLL                   (1<<2)
#define FCVAR_CLIENTDLL                 (1<<3)
#define FCVAR_HIDDEN                    (1<<4)

// ConVar only
#define FCVAR_PROTECTED                 (1<<5)
#define FCVAR_SPONLY                    (1<<6)
#define   FCVAR_ARCHIVE                 (1<<7)
#define   FCVAR_NOTIFY                  (1<<8)
#define   FCVAR_USERINFO                (1<<9)
#define FCVAR_CHEAT                     (1<<14)

#define FCVAR_PRINTABLEONLY             (1<<10)
#define FCVAR_UNLOGGED                  (1<<11)
#define FCVAR_NEVER_AS_STRING           (1<<12)


#define FCVAR_REPLICATED                (1<<13)
#define FCVAR_DEMO                      (1<<16)
#define FCVAR_DONTRECORD                (1<<17)

#define FCVAR_NOT_CONNECTED             (1<<22)

#define FCVAR_ARCHIVE_XBOX              (1<<24)

#define FCVAR_SERVER_CAN_EXECUTE        (1<<28)
#define FCVAR_SERVER_CANNOT_QUERY       (1<<29)
#define FCVAR_CLIENTCMD_CAN_EXECUTE     (1<<30)
#pragma endregion

namespace SDK
{
    class ConVar
    {
    public:

        char pad_0x0000[0x4]; //0x0000
        ConVar* pNext; //0x0004
        __int32 bRegistered; //0x0008
        char* pszName; //0x000C
        char* pszHelpString; //0x0010
        __int32 nFlags; //0x0014
        char pad_0x0018[0x4]; //0x0018
        ConVar* pParent; //0x001C
        char* pszDefaultValue; //0x0020
        char* strString; //0x0024
        __int32 StringLength; //0x0028
        float fValue; //0x002C
        __int32 nValue; //0x0030
        __int32 bHasMin; //0x0034
        float fMinVal; //0x0038
        __int32 bHasMax; //0x003C
        float fMaxVal; //0x0040
        void* fnChangeCallback; //0x0044


        void ConVar::SetValue(const char* value)
        {
            typedef void(__thiscall* OriginalFn)(void*, const char*);
            return GetMethod<OriginalFn>(this, 14)(this, value);
        }

        void ConVar::SetValue(float value)
        {
            typedef void(__thiscall* OriginalFn)(void*, float);
            return GetMethod<OriginalFn>(this, 15)(this, value);
        }

        void ConVar::SetValue(int value)
        {
            typedef void(__thiscall* OriginalFn)(void*, int);
            return GetMethod<OriginalFn>(this, 16)(this, value);
        }

        void ConVar::SetValue(Color value)
        {
            typedef void(__thiscall* OriginalFn)(void*, Color);
            return GetMethod<OriginalFn>(this, 17)(this, value);
        }

        char* ConVar::GetName()
        {
            typedef char*(__thiscall* OriginalFn)(void*);
            return GetMethod<OriginalFn>(this, 5)(this);
        }

        char* ConVar::GetDefault()
        {
            return pszDefaultValue;
        }

        void RegisterConCommand(ConVar* pCommandBase)
        {
            typedef ConVar*(__thiscall* FindVarFn)(void*, ConVar*);
            GetMethod< FindVarFn >(this, 12)(this, pCommandBase);
        }

        void UnRegisterConCommand(ConVar* pCommandBase)
        {
            typedef ConVar*(__thiscall* FindVarFn)(void*, ConVar*);
            GetMethod< FindVarFn >(this, 13)(this, pCommandBase);
        }

        ConVar* FindVar(const char *var_name)
        {
            typedef ConVar*(__thiscall* FindVarFn)(void*, const char*);
            return GetMethod< FindVarFn >(this, 15)(this, var_name);
        }
    };
}
Далее делаем нашу переменную в settings.cpp/h под названием NightMode
(Я её добавил в неймспуйс Esp) (Писать как её сделать думаю не нужно)
Далее добавляем сам найтмуд в esp.cpp и esp.h:
Код:
void CEsp::NightMode()
{
    if (Settings::Esp::NightMode)
    {
        if (!done)
        {
            static auto sv_skyname = Interfaces::GetConVar()->FindVar("sv_skyname");
            static auto r_DrawSpecificStaticProp = Interfaces::GetConVar()->FindVar("r_DrawSpecificStaticProp");
            r_DrawSpecificStaticProp->SetValue(1);
            sv_skyname->SetValue("sky_csgo_night02");

            for (MaterialHandle_t i = Interfaces::MaterialSystem()->FirstMaterial(); i != Interfaces::MaterialSystem()->InvalidMaterial(); i = Interfaces::MaterialSystem()->NextMaterial(i))
            {
                IMaterial *pMaterial = Interfaces::MaterialSystem()->GetMaterial(i);

                if (!pMaterial)
                    continue;

                const char* group = pMaterial->GetTextureGroupName();
                const char* name = pMaterial->GetName();

                if (strstr(group, "World textures"))
                {
                    pMaterial->ColorModulate(0.10, 0.10, 0.10);
                }
                if (strstr(group, "StaticProp"))
                {
                    pMaterial->ColorModulate(0.30, 0.30, 0.30);
                }
                if (strstr(name, "models/props/de_dust/palace_bigdome"))
                {
                    pMaterial->SetMaterialVarFlag(MATERIAL_VAR_NO_DRAW, true);
                }
                if (strstr(name, "models/props/de_dust/palace_pillars"))
                {
                    pMaterial->ColorModulate(0.30, 0.30, 0.30);
                }

                if (strstr(group, "Particle textures"))
                {
                    pMaterial->SetMaterialVarFlag(MATERIAL_VAR_NO_DRAW, true);
                }
                done = true;
            }

        }
    }
    else
    {
        if (done)
        {
            for (MaterialHandle_t i = Interfaces::MaterialSystem()->FirstMaterial(); i != Interfaces::MaterialSystem()->InvalidMaterial(); i = Interfaces::MaterialSystem()->NextMaterial(i))
            {
                IMaterial *pMaterial = Interfaces::MaterialSystem()->GetMaterial(i);

                if (!pMaterial)
                    continue;

                const char* group = pMaterial->GetTextureGroupName();
                const char* name = pMaterial->GetName();

                if (strstr(group, "World textures"))
                {

                    pMaterial->ColorModulate(1, 1, 1);
                }
                if (strstr(group, "StaticProp"))
                {

                    pMaterial->ColorModulate(1, 1, 1);
                }
                if (strstr(name, "models/props/de_dust/palace_bigdome"))
                {
                    pMaterial->SetMaterialVarFlag(MATERIAL_VAR_NO_DRAW, false);
                }
                if (strstr(name, "models/props/de_dust/palace_pillars"))
                {

                    pMaterial->ColorModulate(1, 1, 1);
                }
                if (strstr(group, "Particle textures"))
                {
                    pMaterial->SetMaterialVarFlag(MATERIAL_VAR_NO_DRAW, false);
                }
            }

            done = false;
        }
    }
}
в esp.h добавляем в приват:
void NightMode();
Помимо этого ещё в esp.cpp реализуем такую х*йню:
bool done = false;
После этого делаем чекбокс в client.cpp и будет вам счастье и мир во всех пастах.
Ещё нам нужно обновить класс IMaterialSystem:
В IMaterialSystem.h в начале кода после строчки
#include "SDK.h"
добавляем
typedef unsigned short MaterialHandle_t;
Далее меняем класс IMaterialSystem на:
Код:
class IMaterialSystem
    {
    public:
        IMaterial* CreateMaterial( const char* pMaterialName , KeyValues* pVMTKeyValues )
        {
            VirtualFn( IMaterial* )( PVOID , const char* , KeyValues* );
            return GetMethod< OriginalFn >( this , 83 )( this , pMaterialName , pVMTKeyValues );
        }

        IMaterial* FindMaterial( const char* pMaterialName , const char* pTextureGroupName , bool complain = true , const char* pComplainPrefix = 0 )
        {
            VirtualFn( IMaterial* )( PVOID , const char* , const char* , bool , const char* );
            return GetMethod< OriginalFn >( this , 84 )( this , pMaterialName , pTextureGroupName , complain , pComplainPrefix );
        }

        MaterialHandle_t FirstMaterial()
        {
            typedef MaterialHandle_t(__thiscall* FirstMaterialFn)(void*);
            return GetMethod <FirstMaterialFn>(this, 86)(this);
        }

        MaterialHandle_t NextMaterial(MaterialHandle_t h)
        {
            typedef MaterialHandle_t(__thiscall* NextMaterialFn)(void*, MaterialHandle_t);
            return GetMethod <NextMaterialFn>(this, 87)(this, h);
        }

        MaterialHandle_t InvalidMaterial()
        {
            typedef MaterialHandle_t(__thiscall* InvalidMaterialFn)(void*);
            return GetMethod <InvalidMaterialFn>(this, 88)(this);
        }

        IMaterial* GetMaterial(MaterialHandle_t h)
        {
            typedef IMaterial*(__thiscall* GetMaterialFn)(void*, MaterialHandle_t);
            return GetMethod <GetMaterialFn>(this, 89)(this, h);
        }
    };

UPD: ещё добавьте в CEsp::Render такую строчку:
NightMode();

UPDV2: hitmarker кому нибудь нужен? :D + grenade prediction скоро солью.
ну где гайд,на хитмайкер?
 
Забаненный
Статус
Оффлайн
Регистрация
13 Июл 2017
Сообщения
218
Реакции[?]
116
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
sex
Забаненный
Статус
Оффлайн
Регистрация
4 Окт 2017
Сообщения
1,073
Реакции[?]
160
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
13 Июл 2017
Сообщения
218
Реакции[?]
116
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
1 Июл 2017
Сообщения
43
Реакции[?]
2
Поинты[?]
0
nixware.cc
EXCLUSIVE
Статус
Оффлайн
Регистрация
1 Июл 2017
Сообщения
1,631
Реакции[?]
1,534
Поинты[?]
31K
Забаненный
Статус
Оффлайн
Регистрация
13 Июл 2017
Сообщения
218
Реакции[?]
116
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
20 Фев 2017
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
i do everything but not working
 
Сверху Снизу