f3mb0y
-
Автор темы
- #1
Ну ваще все очень просто, тут 2па мемы:
Идем в Misc.cpp и туда суем
Далее идем в Misc.h и туда в паблик класса CMisc вставляем
Ну шо же, мы почти топ кодеры, осталось токо пойти в фсн хук и сделать вызов там:
Идем в Hook.cpp и в FrameStageNotify хук добавить это:
Ну и в заключение делаем переменные
И вывод в меню
Единственный минус, что после изменения цвета придется менятся выключать/включать, но это можно не сложно сделать.
А вот и "SS"
Идем в Misc.cpp и туда суем
Код:
void CMisc::ModulateSky()
{
static bool sky_performed = false, sky_lastsetting;
if (!Interfaces::Engine()->IsConnected() || !Interfaces::Engine()->IsInGame())
{
if (sky_performed)
sky_performed = false;
return;
}
if (sky_performed != Settings::Misc::SkyBoxColorBool)
{
sky_lastsetting = Settings::Misc::SkyBoxColorBool;
sky_performed = false;
}
auto local_player = (CBaseEntity*)Interfaces::EntityList()->GetClientEntity(Interfaces::Engine()->GetLocalPlayer());
if (!local_player)
return;
if (!local_player)
{
if (sky_performed)
sky_performed = false;
return;
}
if (sky_lastsetting != Settings::Misc::SkyBoxColorBool)
{
sky_lastsetting = Settings::Misc::SkyBoxColorBool;
sky_performed = false;
}
if (!sky_performed)
{
#define FCVAR_CHEAT (1<<14)
static auto r_DrawSpecificStaticProp = Interfaces::GetConVar()->FindVar("r_DrawSpecificStaticProp");
r_DrawSpecificStaticProp->nFlags &= ~FCVAR_CHEAT;
r_DrawSpecificStaticProp->SetValue(1);
static auto sv_skyname = Interfaces::GetConVar()->FindVar("sv_skyname");
sv_skyname->nFlags &= ~FCVAR_CHEAT;
static auto mat_postprocess_enable = Interfaces::GetConVar()->FindVar("mat_postprocess_enable");
mat_postprocess_enable->SetValue(0);
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;
if (strstr(pMaterial->GetTextureGroupName(), ("SkyBox")))
{
if (Settings::Misc::SkyBoxColorBool)
{
pMaterial->ColorModulate(int(Settings::Colors::skycolor[0] * 255.f), int(Settings::Colors::skycolor[1] * 255.f), int(Settings::Colors::skycolor[2] * 255.f));
}
else
{
pMaterial->ColorModulate(1, 1, 1);
}
}
}
sky_performed = true;
}
}
Код:
void ModulateSky();
Идем в Hook.cpp и в FrameStageNotify хук добавить это:
Код:
Client::g_pMisc->ModulateSky();
Код:
bool SkyBoxColorBool = false;
float skycolor[3] = { 0.f,0.0f,0.f };
--------------------
extern bool SkyBoxColorBool;
extern float skycolor[3];
Код:
ImGui::Checkbox("SkyBox Enable Custom Color", &Settings::Misc::SkyBoxColorBool);
ImGui::MyColorEdit3("Sky Color", Settings::Colors::skycolor);
А вот и "SS"
Последнее редактирование: