Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //nucopia mata123
- #include "hooks.h"
- #include "Menu.h"
- #include "global.h"
- #include "MaterialHelper.h"
- #include "xor.h"
- #include "Backtrackinghelper.h"
- #include "GameUtils.h"
- Color rainbow() {
- static float x = 0, y = 0;
- static float r = 0, g = 0, b = 0;
- if (y >= 0.0f && y < 255.0f) {
- r = 255.0f;
- g = 0.0f;
- b = x;
- }
- else if (y >= 255.0f && y < 510.0f) {
- r = 255.0f - x;
- g = 0.0f;
- b = 255.0f;
- }
- else if (y >= 510.0f && y < 765.0f) {
- r = 0.0f;
- g = x;
- b = 255.0f;
- }
- else if (y >= 765.0f && y < 1020.0f) {
- r = 0.0f;
- g = 255.0f;
- b = 255.0f - x;
- }
- else if (y >= 1020.0f && y < 1275.0f) {
- r = x;
- g = 255.0f;
- b = 0.0f;
- }
- else if (y >= 1275.0f && y < 1530.0f) {
- r = 255.0f;
- g = 255.0f - x;
- b = 0.0f;
- }
- x += 0.25f; //increase this value to switch colors faster
- if (x >= 255.0f)
- x = 0.0f;
- y += 0.25f; //increase this value to switch colors faster
- if (y > 1530.0f)
- y = 0.0f;
- return Color((int)r, (int)g, (int)b, 255);
- }
- void __fastcall Hooks::scene_end(void* thisptr, void* edx)
- {
- static auto scene_end_o = renderviewVMT->GetOriginalMethod< decltype(&scene_end) >(9);
- scene_end_o(thisptr, edx);
- if (vars->Visuals.ChamsEnable)
- {
- //float Red, Green, Blue, RedZ, GreenZ, BlueZ;
- static IMaterial* CoveredLit = g_MaterialHelper->CreateMaterial(true);
- static IMaterial* OpenLit = g_MaterialHelper->CreateMaterial(false);
- static IMaterial* CoveredFlat = g_MaterialHelper->CreateMaterial(true, false);
- static IMaterial* OpenFlat = g_MaterialHelper->CreateMaterial(false, false);
- IMaterial *covered = vars->Visuals.ChamsStyle == 1 ? CoveredLit : CoveredFlat;
- IMaterial *open = vars->Visuals.ChamsStyle == 1 ? OpenLit : OpenFlat;
- auto b_IsThirdPerson = *reinterpret_cast<bool*>(reinterpret_cast<DWORD>(g_pInput) + 0xA5);
- for (int i = 1; i < g_pEngine->GetMaxClients(); ++i) {
- CBaseEntity* ent = (CBaseEntity*)g_pEntitylist->GetClientEntity(i);
- if (ent == G::LocalPlayer && G::LocalPlayer != nullptr)
- {
- /*if (G::LocalPlayer->isAlive())
- {
- if (b_IsThirdPerson && vars->Visuals.FakeAngleGhost != 0)
- {
- //
- Vector OrigAng;
- OrigAng = ent->GetEyeAngles();
- float r = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
- float r2 = static_cast <float> (rand()) / (static_cast <float> (RAND_MAX / 1.f));
- float r3 = 0.30f + static_cast <float> (rand()) / (static_cast <float> (RAND_MAX / (0.49f - 0.35f)));
- float mata[3] = { r, 1.f , r3 };
- if (vars->Visuals.FakeAngleGhost == 1)
- ent->SetAngle2(Vector(vars->Ragebot.fakex, G::FakeAngle.y, vars->Ragebot.fakez));
- else
- ent->SetAngle2(Vector(0, G::LocalPlayer->LowerBodyYaw(), 0));
- g_pRenderView->SetBlend(vars->Colors.transparentaghost);
- g_pRenderView->SetColorModulation(mata);
- g_pModelRender->ForcedMaterialOverride(covered);
- ent->draw_model(0x1, 255);
- g_pModelRender->ForcedMaterialOverride(nullptr);
- ent->SetAngle2(OrigAng);
- }
- }
- */
- int index = ent->Index();
- studiohdr_t* pStudioModel = g_pModelInfo->GetStudioModel((model_t*)ent->GetModel());
- if (pStudioModel && g_BacktrackHelper->PlayerRecord[index].records.size() > 0)
- {
- mstudiobone_t* pBone = pStudioModel->pBone(i);
- if (!pBone || !(pBone->flags & 256) || pBone->parent == -1)
- continue;
- tick_record record = g_BacktrackHelper->PlayerRecord[index].records.back();
- Vector sBonePos1 = GameUtils::GetBonePosition(ent, i, record.boneMatrix), vBonePos1; //.back() for nice skeleton
- if (sBonePos1 == Vector(0, 0, 0))
- continue;
- if (!GameUtils::WorldToScreen(sBonePos1, vBonePos1))
- continue;
- Vector sBonePos2 = GameUtils::GetBonePosition(ent, pBone->parent, record.boneMatrix), vBonePos2;//.back() for nice skeleton
- //
- if (vars->Visuals.FakeAngleGhost != 0)
- {
- //
- Vector OrigAng;
- OrigAng = ent->GetEyeAngles();
- float r = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
- float r2 = static_cast <float> (rand()) / (static_cast <float> (RAND_MAX / 1.f));
- float r3 = 0.30f + static_cast <float> (rand()) / (static_cast <float> (RAND_MAX / (0.49f - 0.35f)));
- float mata[3] = { r, 1.f , r3 };
- if (vars->Visuals.FakeAngleGhost == 1)
- ent->SetAngle2(Vector(vBonePos1));
- else
- ent->SetAngle2(Vector(0, G::LocalPlayer->LowerBodyYaw(), 0));
- g_pRenderView->SetBlend(vars->Colors.transparentaghost);
- g_pRenderView->SetColorModulation(mata);
- g_pModelRender->ForcedMaterialOverride(covered);
- ent->draw_model(0x1, 255);
- g_pModelRender->ForcedMaterialOverride(nullptr);
- ent->SetAngle2(sBonePos2);
- }
- }
- if (ent->IsValidRenderable() && vars->Visuals.ChamsPlayer)
- {
- if (vars->Visuals.ChamsPlayerWall)
- {
- g_pRenderView->SetColorModulation(vars->Colors.PlayerChamsWall);
- g_pModelRender->ForcedMaterialOverride(covered);
- ent->draw_model(0x1, 255);
- ent->SetAngle2(Vector(vars->Ragebot.fakex, G::FakeAngle.y, vars->Ragebot.fakez));
- g_pModelRender->ForcedMaterialOverride(nullptr);
- }
- g_pRenderView->SetColorModulation(vars->Colors.PlayerChams);
- g_pModelRender->ForcedMaterialOverride(open);
- ent->draw_model(0x1/*STUDIO_RENDER*/, 255);
- ent->SetAngle2(Vector(vars->Ragebot.fakex, G::FakeAngle.y, vars->Ragebot.fakez));
- g_pModelRender->ForcedMaterialOverride(nullptr);
- }
- }
- }
- }
- }
- void __fastcall Hooks::DrawModelExecute(void* ecx, void* edx, void* * ctx, void *state, const ModelRenderInfo_t &pInfo, matrix3x4_t *pCustomBoneToWorld)
- {
- if (!G::LocalPlayer)
- {
- modelrenderVMT->GetOriginalMethod<DrawModelExecuteFn>(21)(ecx, ctx, state, pInfo, pCustomBoneToWorld);
- return;
- }
- const char* ModelName = g_pModelInfo->GetModelName((model_t*)pInfo.pModel);
- static IMaterial* pWireframeMaterial = g_MaterialHelper->CreateMaterial(false, false, true);
- static IMaterial* OpenFlat = g_MaterialHelper->CreateMaterial(false, false);
- if (!*(bool*)((DWORD)g_pInput + 0xA5)) { // Thirdperson
- if (vars->Visuals.WeaponChams && strstr(ModelName, XorStr("models/weapons")))
- {
- g_pRenderView->SetColorModulation(vars->Colors.ChamsWeapon);
- g_pRenderView->SetBlend(1.f);
- g_pModelRender->ForcedMaterialOverride(OpenFlat);
- modelrenderVMT->GetOriginalMethod<DrawModelExecuteFn>(21)(ecx, ctx, state, pInfo, pCustomBoneToWorld);
- if (vars->Visuals.WeaponWireframe)
- {
- g_pRenderView->SetColorModulation(vars->Colors.WireframeWeapon);
- g_pRenderView->SetBlend(1.f);
- g_pModelRender->ForcedMaterialOverride(pWireframeMaterial);
- }
- }
- }
- if (vars->Visuals.ChamsHands && strstr(ModelName, XorStr("arms")))
- {
- g_pRenderView->SetColorModulation(vars->Colors.ChamsHand);
- g_pRenderView->SetBlend(1.f);
- g_pModelRender->ForcedMaterialOverride(OpenFlat);
- modelrenderVMT->GetOriginalMethod<DrawModelExecuteFn>(21)(ecx, ctx, state, pInfo, pCustomBoneToWorld);
- if (vars->Visuals.ChamsHandsWireframe)
- {
- g_pRenderView->SetColorModulation(vars->Colors.WireframeHand);
- g_pRenderView->SetBlend(1.f);
- g_pModelRender->ForcedMaterialOverride(pWireframeMaterial);
- }
- }
- modelrenderVMT->GetOriginalMethod<DrawModelExecuteFn>(21)(ecx, ctx, state, pInfo, pCustomBoneToWorld);
- g_pModelRender->ForcedMaterialOverride(NULL);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement