It just seems to randomly work for a little bit on and off could i get some help?
My ESP.H :
Code:
#ifndef ESP_H
#define ESP_H
#include "Engine.h"
#include "Settings.h"
struct GlowObjectDefinition_t
{
DWORD dwBase;
float r;
float g;
float b;
float a;
uint8_t unk1[8];
float m_flBloomAmount;
uint8_t unk2[4];
bool m_bRenderWhenOccluded;
bool m_bRenderWhenUnoccluded;
bool m_bFullBloom;
int m_nFullBloomStencil;
uint8_t unk3[10];
};
struct Player {
DWORD dwBase;
int team;
int Dormant;
bool isDormant;
};
class ESP {
public:
void run() {
int objectCount;
DWORD pointerGlow;
bool e_base;
if (Settings()->e_glow_base == 1) {
e_base = true;
} else {
e_base = false;
}
float e_red = sanitizeChannel(Settings()->e_glow_r);
float e_green = sanitizeChannel(Settings()->e_glow_g);
float e_blue = sanitizeChannel(Settings()->e_glow_b);
float e_thick = sanitizeChannel(Settings()->e_glow_t);
float e_bloom = sanitizeChannel(Settings()->e_glow_bl);
bool e_fill;
if (Settings()->e_glow_fill == 1) {
e_fill = true;
} else {
e_fill = false;
}
float f_red = sanitizeChannel(Settings()->f_glow_r);
float f_green = sanitizeChannel(Settings()->f_glow_g);
float f_blue = sanitizeChannel(Settings()->f_glow_b);
float f_thick = sanitizeChannel(Settings()->f_glow_t);
float f_bloom = sanitizeChannel(Settings()->f_glow_bl);
bool f_fill;
if (Settings()->f_glow_fill == 1) {
f_fill = true;
}
else {
f_fill = false;
}
while (true) {
if (Settings()->espEnabled && (Engine()->me.team == 2 || Engine()->me.team == 3)) {
pointerGlow = Engine()->Memory()->Read<DWORD>(Engine()->getClientModule()->dwBase + Engine()->Offsets()->dwGlow);
objectCount = Engine()->Memory()->Read<DWORD>(Engine()->getClientModule()->dwBase + Engine()->Offsets()->dwGlow + 0x4);
if (pointerGlow != NULL && objectCount > 0) {
for (int i = 0; i < (objectCount + 1); i++) {
DWORD mObj = pointerGlow + i * sizeof(GlowObjectDefinition_t);
GlowObjectDefinition_t glowObj = Engine()->Memory()->Read<GlowObjectDefinition_t>(mObj);
Entity* Player = Engine()->getEntityByBase(glowObj.dwBase);
if (glowObj.dwBase != NULL && Player != nullptr && !Player->is_dormant) {
if (Engine()->me.team == Player->team) {
if (Settings()->glow_fen != 1) {
continue;
} else {
glowPlayer(mObj, f_red, f_green, f_blue, f_thick, f_bloom, f_fill);
}
} else if (Settings()->glow_een != 1) {
continue;
} else if (Engine()->me.team != Player->team && Player->hp > 0 && e_base == 1) {
float greenamount, redamount;
float hp = Player->hp;
if (Player->hp > 0 && Player->hp < 101) {
greenamount = hp / 100.f;
redamount = (100.f - hp) / 100.f;
} else {
greenamount = 1.f;
redamount = 0.f;
}
glowPlayer(mObj, redamount, greenamount, 0, e_thick, e_bloom, e_fill);
} else if (Engine()->me.team != Player->team) {
glowPlayer(mObj, e_red, e_green, e_blue, e_thick, e_bloom, e_fill);
} else {
glowPlayer(mObj, e_red, e_green, e_blue, e_thick, e_bloom, e_fill);
}
}
}
}
}
Sleep(Settings()->glow_pfreq);
}
}
private:
void glowPlayer(DWORD mObj, float r, float g, float b, float a, float blm, bool bih) {
Engine()->Memory()->Write<float>(mObj + 0x4, r);
Engine()->Memory()->Write<float>(mObj + 0x8, g);
Engine()->Memory()->Write<float>(mObj + 0xC, b);
Engine()->Memory()->Write<float>(mObj + 0x10, a);
Engine()->Memory()->Write<float>(mObj + 0x1C, blm);
Engine()->Memory()->Write<BOOL>(mObj + 0x24, true);
Engine()->Memory()->Write<BOOL>(mObj + 0x25, false);
Engine()->Memory()->Write<BOOL>(mObj + 0x26, bih);
}
float sanitizeChannel(int value) {
if (value > 255) value = 255;
if (value < 0) value = 0;
return (float) value / 255;
}
};
#endif