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

Как спастить nightmode?

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
21 Май 2020
Сообщения
2
Реакции
0
Захотелось "сделать" nightmode, ведь выглядит достаточно прикольно, но в попытки пасты я как можно понять ничего не достиг. Кто может объяснить как пастить? (С Cs go Simple)
 
Ну как бы берёшь сурсы
Пожалуйста, авторизуйтесь для просмотра ссылки.
(noad) ну и пастишь себе переделывая под свой sdk,а и потом вызываешь в framestagenotify
 
C++:
Expand Collapse Copy
//nightmode.cpp

#include "NightMode.h"
#include <string>
#include "..\\RuntimeSaver.h"
#include "..\valve_sdk\csgostructs.hpp"
#include "..\Settings.h"

std::string fallback_skybox = "";

void NightMode::Apply(bool ForceUpdate)
{
    static bool perfomed = false, bLastSetting;
    bool optMode = false;
    static ConVar* sv_skyname = g_CVar->FindVar("sv_skyname");
    sv_skyname->m_nFlags &= ~FCVAR_CHEAT; // something something dont force convars
    static ConVar* r_3dsky = g_CVar->FindVar("r_3dsky");

    if (!g_LocalPlayer || !g_EngineClient->IsConnected() || !g_EngineClient->IsInGame())
    {
        Active = false;
        return;
    }
       
    // Add revert option
    if (!Active || ForceUpdate)
    {
        for (int i = 0; i < g_EntityList->GetMaxEntities(); i++)
        {
            C_BaseEntity* ent = static_cast<C_BaseEntity*>(g_EntityList->GetClientEntity(i));

            if (ent)
            {
                if (ent->GetClientClass()->m_ClassID == ClassId::CEnvTonemapController)
                {
                    fallback_skybox = sv_skyname->GetString();
                    sv_skyname->SetValue("sky_csgo_night02");
                    if (r_3dsky != nullptr)
                    {
                        if (r_3dsky->m_nFlags & FCVAR_HIDDEN)
                            r_3dsky->m_nFlags &= ~FCVAR_HIDDEN;

                        r_3dsky->SetValue(0);
                    }

                    CEnvTonemapController* tonemapper = static_cast<CEnvTonemapController*>(ent);
                    tonemapper->m_bUseCustomAutoExposureMin() = 1;
                    tonemapper->m_bUseCustomAutoExposureMax() = 1;
                    tonemapper->m_flCustomAutoExposureMax() =   Settings::Visual::NightModeBrighthness;//0.08f;
                    tonemapper->m_flCustomAutoExposureMin() =   Settings::Visual::NightModeBrighthness;//0.08f;
                    Active = true;

                }
            }
        }
    }

    if (bLastSetting != Settings::Visual::NightMode)
        bLastSetting = Settings::Visual::NightMode;
}

void NightMode::Revert()
{
    if (Active)
    {
        static ConVar* sv_skyname = g_CVar->FindVar("sv_skyname");
        static ConVar* r_3dsky = g_CVar->FindVar("r_3dsky");
        sv_skyname->m_nFlags &= ~FCVAR_CHEAT; // something something dont force convars
        sv_skyname->SetValue(fallback_skybox.data());
        if (r_3dsky != nullptr)
        {
            r_3dsky->SetValue(0);
        }
       
        g_Saver.RequestForceUpdate = true;
        Active = false;
    }
}
C++:
Expand Collapse Copy
//nightmode.h

#pragma once
#include "..\valve_sdk\sdk.hpp"
#include "..\singleton.hpp"

class NightMode : public Singleton<NightMode>
{
public:
    void Apply(bool ForceUpdate);
    void Revert();
private:
   

    bool Active;
};

C++:
Expand Collapse Copy
//hooks.cpp in  void __stdcall hkFrameStageNotify


case FRAME_RENDER_END:
                if (Settings::Visual::NightMode)
                    NightMode::Get().Apply(false);
                else
                    NightMode::Get().Revert();
                break;
               
               
               
//dont forget about
#include "NightMode.h"

C++:
Expand Collapse Copy
//and dont forget to add this to your menu and config!

//menu.cpp

ImGui::Checkbox("Night Mode", &Settings::Visual::NightMode);
                if(Settings::Visual::NightMode)
                    ImGui::SliderFloat("##vis.misc.nm_br", &Settings::Visual::NightModeBrighthness, 0.1f, .3f, "Brightness: %.2f");
                   
                    //add to config by yourself :)
сор если говнокод

look at dickware for more things, that you cant do!
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Назад
Сверху Снизу