Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IMaterial* create_material(bool shade, bool wireframe, bool ignorez, int rimlight_boost = 0) {
- static const std::string material_name = "game_material.vmt";
- const std::string material_type = shade ? "VertexLitGeneric" : "UnlitGeneric";
- std::string material_data;
- material_data += "\"" + material_type + "\"\n{\n";
- material_data += "\t\"$basetexture\" \"vgui/white_additive\"\n";
- material_data += "\t\"$envmap\" \"\"\n";
- material_data += "\t\"$model\" \"1\"\n";
- material_data += "\t\"$flat\" \"1\"\n";
- material_data += "\t\"$nocull\" \"0\"\n";
- material_data += "\t\"$selfillum\" \"1\"\n";
- material_data += "\t\"$halflambert\" \"1\"\n";
- material_data += "\t\"$znearer\" \"0\"\n";
- material_data += "\t\"$rimlightboost\" \"" + std::to_string(rimlight_boost) + "\"\n";
- material_data += "\t\"$rimlightexponent\" \"" + std::to_string(4) + "\"\n";
- material_data += "\t\"$ambientreflectionboost\" \"0.2\"\n";
- material_data += "\t\"$envmaplightscale\" \"" + std::to_string(0.1) + "\"\n";
- material_data += "\t\"$wireframe\" \"" + std::to_string(wireframe) + "\"\n";
- material_data += "\t\"$ignorez\" \"" + std::to_string(ignorez) + "\"\n";
- material_data += "}\n";
- auto init_key_values = [](KeyValuesv2* keyvalues, const char* key_name) -> void {
- using InitKeyValues_t = void(__thiscall*)(void*, const char*);
- static InitKeyValues_t InitKeyValuesEx = nullptr;
- static auto pThis = *reinterpret_cast<DWORD * *>(Utils::FindSignature("client_panorama.dll", "B9 ? ? ? ? E8 ? ? ? ? 8B 5D 08") + 1);
- if (!InitKeyValuesEx)
- InitKeyValuesEx = *reinterpret_cast<InitKeyValues_t>(Utils::FindSignature("client_panorama.dll", "55 8B EC 51 33 C0 C7 45"));
- InitKeyValuesEx(keyvalues, key_name);
- };
- auto load_from_buffer = [](KeyValuesv2* key_values, const char* resource_name, const char* buf, void* file_sys = nullptr, const char* path_id = nullptr, void* eval_sym_proc = nullptr, void* unk = nullptr) -> void {
- using LoadFromBuffer_t = void(__thiscall*)(void*, const char*, const char*, void*, const char*, void*, void*);
- static LoadFromBuffer_t LoadFromBufferEx = nullptr;
- if (!LoadFromBufferEx)
- LoadFromBufferEx = *reinterpret_cast<LoadFromBuffer_t>(Utils::FindSignature("client_panorama.dll", "55 8B EC 83 E4 F8 83 EC 34 53 8B 5D 0C 89"));
- LoadFromBufferEx(key_values, resource_name, buf, file_sys, path_id, eval_sym_proc, unk);
- };
- auto* key_values = new KeyValuesv2();
- init_key_values(key_values, material_type.c_str());
- load_from_buffer(key_values, material_name.c_str(), material_data.c_str());
- return g_pMaterialSys->CreateMaterial1(material_name.c_str(), key_values);
- }
- void NewVis::start_chams()
- {
- //static IMaterial* Material = nullptr;
- //static IMaterial* GlowMat = nullptr;
- if (!g_pEngine->IsInGame() || !g_pEngine->IsConnected())
- return;
- if (!g_Menu.Config.defchams) return;
- for (int i = 1; i < g_pEngine->GetMaxClients(); ++i)
- {
- C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(i);
- if (!pPlayerEntity
- || !pPlayerEntity->IsAlive()
- || pPlayerEntity->IsDormant()
- || !g::pLocalEntity)
- continue;
- bool IsTeammate = pPlayerEntity->GetTeam() == g::pLocalEntity->GetTeam();
- bool IsEnemy = pPlayerEntity->GetTeam() != g::pLocalEntity->GetTeam();
- bool IsLocal = pPlayerEntity == g::pLocalEntity;
- static std::vector< IMaterial* > materials;
- static bool once{ false };
- if (!once)
- {
- materials.push_back(create_material(true, false, false));
- materials.push_back(create_material(false, false, false, 0));
- materials.push_back(create_material(true, false, true));
- materials.push_back(create_material(false, false, true, 0));
- once = true;
- }
- float vis_color[3] = { g_Menu.Config.chamsvisible[0], g_Menu.Config.chamsvisible[1], g_Menu.Config.chamsvisible[2] };
- float hid_color[3] = { g_Menu.Config.chamsinvisible[0], g_Menu.Config.chamsinvisible[1], g_Menu.Config.chamsinvisible[2] };
- float local_color[3] = { g_Menu.Config.ChamsColor[0], g_Menu.Config.ChamsColor[1], g_Menu.Config.ChamsColor[2] };
- //float desync_color[3] = { g_Menu.Config.fakeAngleColor.red / 255.f, g_Menu.Config.fakeAngleColor.green / 255.f, g_Menu.Config.fakeAngleColor.blue / 255.f };
- float flag[3] = { g_Menu.Config.fakeLagColor[0], g_Menu.Config.fakeLagColor[1], g_Menu.Config.fakeLagColor[2] };
- if (IsEnemy)
- {
- //if (g_Menu.Config.chamsvisible)
- {
- //if (g_Menu.Config.chamsinvisible)
- {
- g_pRenderView->SetBlend(g_Menu.Config.chamsinvisible[3]);
- switch (g_Menu.Config.chams_type)
- {
- case 0:
- g_pModelRender->ForcedMaterialOverride(materials.at(2)); break;
- case 1:
- g_pModelRender->ForcedMaterialOverride(materials.at(3)); break;
- }
- g_pRenderView->SetColorModulation(hid_color);
- pPlayerEntity->DrawModel(0x00000001, 255);
- }
- g_pRenderView->SetBlend(g_Menu.Config.chamsvisible[3]);
- switch (g_Menu.Config.chams_type)
- {
- case 0:
- g_pModelRender->ForcedMaterialOverride(materials.at(0)); break;
- case 1:
- g_pModelRender->ForcedMaterialOverride(materials.at(1)); break;
- }
- g_pRenderView->SetColorModulation(vis_color);
- pPlayerEntity->DrawModel(0x00000001, 255);
- }
- }
- else if (IsLocal /*&& !g::pLocalEntity->IsScoped()*/ && g_Menu.Config.chamslocal)
- {
- g_pRenderView->SetBlend(g_Menu.Config.ChamsColor[3]);
- switch (g_Menu.Config.chamslocaltype)
- {
- case 0:
- g_pModelRender->ForcedMaterialOverride(materials.at(0)); break;
- case 1:
- g_pModelRender->ForcedMaterialOverride(materials.at(1)); break;
- }
- g_pRenderView->SetColorModulation(local_color);
- pPlayerEntity->DrawModel(0x00000001, 255);
- }
- if (IsLocal && g_Menu.Config.visualizeFakeLag && g::pLocalEntity->GetVelocity().Length2D() > 5)
- {
- static IMaterial* material = nullptr;
- material = g_pMaterialSys->FindMaterial("models\\inventory_items\\dogtags\\dogtags_outline", "Other textures"); // defining it as dogtags_outline
- static auto last_networked_origin = Vector(0, 0, 0);
- if (g::bSendPacket) last_networked_origin = g::pLocalEntity->GetAbsOrigin();
- g::pLocalEntity->SetAbsOrigin(last_networked_origin);
- g_pModelRender->ForcedMaterialOverride(material);
- g_pRenderView->SetBlend(g_Menu.Config.fakeLagColor[3]);
- g_pRenderView->SetColorModulation(flag);
- g::pLocalEntity->DrawModel(0x00000001, 255);
- g::pLocalEntity->SetAbsOrigin(g::pLocalEntity->GetAbsOrigin());
- }
- g_pModelRender->ForcedMaterialOverride(nullptr);
- }
- /*
- if (!pLocalEntity)
- {
- Material = g_pMaterialSys->FindMaterial("FlatChams", "Model textures");
- GlowMat = g_pMaterialSys->FindMaterial("dev/glow_armsrace.vmt", nullptr, false, 0);
- return;
- }
- if (g::resetMaterials)
- {
- Material = g_pMaterialSys->FindMaterial("FlatChams", "Model textures");
- GlowMat = g_pMaterialSys->FindMaterial("dev/glow_armsrace.vmt", nullptr, false, 0);
- g::resetMaterials = false;
- return;
- }
- if (Material && g_Menu.Config.defchams)
- {
- for (int i = 1; i <= g_pEngine->GetMaxClients(); ++i)
- {
- C_BaseEntity* pPlayerEntity = g_pEntityList->GetClientEntity(i);
- if (!pPlayerEntity
- || !pPlayerEntity->IsPlayer()
- || !pPlayerEntity->IsAlive()
- || pPlayerEntity->IsDormant()
- || pPlayerEntity->GetTeam() == pLocalEntity->GetTeam())
- continue;
- if (g_Menu.Config.chams_type == 0)
- {
- Material->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- Material->AlphaModulate(g_Menu.Config.chamsvisible[3]); Material->ColorModulate(g_Menu.Config.chamsvisible[0] , g_Menu.Config.chamsvisible[1] , g_Menu.Config.chamsvisible[2] );
- g_pModelRender->ForcedMaterialOverride(Material);
- }
- if (g_Menu.Config.chams_type == 1)
- {
- //g::Metallic->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- //g::Metallic->AlphaModulate(g_Menu.Config.chamsvisible[3]); Material->ColorModulate(g_Menu.Config.chamsvisible[0], g_Menu.Config.chamsvisible[1], g_Menu.Config.chamsvisible[2]);
- //g_pModelRender->ForcedMaterialOverride(g::Metallic);
- //i see black models who knows xd
- }
- if (g_Menu.Config.chams_type == 2)
- {
- GlowMat->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
- GlowMat->AlphaModulate(g_Menu.Config.chamsvisible[3]); GlowMat->ColorModulate(g_Menu.Config.chamsvisible[0], g_Menu.Config.chamsvisible[1], g_Menu.Config.chamsvisible[2]);
- g_pModelRender->ForcedMaterialOverride(GlowMat);
- }
- pPlayerEntity->DrawModel(0x1, pPlayerEntity->GetModelInstance());
- g_pModelRender->ForcedMaterialOverride(nullptr);
- }
- }
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement