-
Автор темы
- #1
Всем привет, перестал работать Glow в CS:GO. Попробовал и структуру менять, и байт прибавлять 0x4, не выходит. Прошу помощи. Скидываю код до изменений:
Оффсеты:
Сам Glow:
Структура:
Оффсеты:
C++:
// Часто обновляемые оффсеты
const DWORD m_dwEntityList = 0x4DA21AC; // EntityList -> m_dwEntityList
const DWORD m_dwGlowObject = 0x52EA640; // Extra -> m_dwGlowObject
const DWORD m_dwLocalPlayer = 0xD892CC; // LocalPlayer -> m_dwLocalPlayer
const DWORD m_dwClientState = 0x588FEC; // ClientState -> m_dwClientState
const DWORD m_dwForceJump = 0x524BF9C; // Extra -> m_dwForceJump
const DWORD m_dwInput = 0x51F3770; // Extra -> m_dwInpu t
const DWORD m_dwRadarBase = 0x51D6F24; // RadarBase -> m_dwRadarBase
const DWORD m_dwViewMatrix = 0x4D93AC4; // EngineRender -> m_dwViewMatrix
// Изредка обновляемые оффсеты
const DWORD m_bDormant = 0xED; // BaseEntity -> m_bDormant
const DWORD m_iTeamNum = 0xF4; // DT_BaseEntity -> m_iTeamNum
const DWORD m_vecOrigin = 0x138; // DT_BaseEntity -> m_vecOrigin
const DWORD m_dwViewAngles = 0x4D90; // ClientState -> m_dwViewAngles
const DWORD m_vecPunch = 0x301C; // DT_Local -> m_vecPunch
const DWORD m_dwBoneMatrix = 0x26A8; // BaseEntity -> m_dwBoneMatrix
const DWORD m_iHealth = 0x100; // DT_BasePlayer -> m_iHealth
const DWORD m_fFlags = 0x104; // DT_BasePlayer -> m_fFlags
const DWORD m_lifeState = 0x25F; // DT_BasePlayer -> m_lifeState
const DWORD m_iCrossHairID = 0xB3E8; // DT_Local -> m_iCrossHairID
const DWORD m_ArmorValue = 0xB37C; // DT_CSPlayer -> m_ArmorValue
const DWORD m_flFlashMaxAlpha = 0xA41C; // DT_CSPlayer -> m_flFlashMaxAlpha
const DWORD m_iShotsFired = 0xA390; // DT_CSPlayer -> m_iShotsFired
const DWORD m_flNextPrimaryAttack = 0x2D70; // DT_BaseCombatWeapon -> m_flNextPrimaryAttack
const DWORD m_nTickBase = 0x3430; // DT_BasePlayer -> m_nTickBase
const DWORD m_dwInGame = 0x108; // ClientState -> m_dwInGame
C++:
class cESP
{
private:
int type3_lastID = NULL;
DWORD type3_lastObj = NULL;
int type3_attempt_FIX = 0;
public:
// Первый тип ESP: Противники красные, союзники зеленые
// Второй тип ESP: Цвет противника зависит от его здоровья. Союзники - синие.
void type2_tick()
{
DWORD glowPointer = csgo.Read<DWORD>(dwClient + m_dwGlowObject);
int glowObjects = csgo.Read<DWORD>(dwClient + m_dwGlowObject + 0x4);
otherPlayer_t* Player = NULL;
myPlayer.ReadInfo();
for (int i = 0; i < glowObjects; i++)
{
DWORD mObj = glowPointer + i * sizeof(glow_t);
glow_t glowObject = csgo.Read<glow_t>(mObj);
Player = getEntityByCEntityList(glowObject.dwBase);
// Если объект для свечения некорректный, не продолжаем
if (glowObject.dwBase == NULL || Player == nullptr)
continue;
/// ВНИМАНИЕ: КОСТЫЛЬ
/// Устанавливаем Alpha = 0, для исправления лежачих игроков
/// ToDo: Найти способ получше
if (Player->dormant)
{
csgo.Write<float>(mObj + 0x10, 0.0f);
continue;
}
// Фикс максимального количества здоровья
int maxHealth = Player->health > 100 ? Player->health : 100;
if (myPlayer.team == Player->team)
// Подсвечиваем союзника синим цветом
glow_player(mObj, 0, 0.2f, 0.5f);
else
// Подсвечиваем врага цветом его здоровья (максимум 100)
glow_player(mObj, (maxHealth - Player->health) / 100.0f, Player->health / 100.0f);
}
}
// Третий тип ESP: Подсвечивается игрок, на которого наведен прицел.
// Убираем свечение с игроков
void remove_glow()
{
DWORD glowPointer = csgo.Read<DWORD>(dwClient + m_dwGlowObject);
int glowObjects = csgo.Read<DWORD>(dwClient + m_dwGlowObject + 0x4);
otherPlayer_t* Player = NULL;
myPlayer.ReadInfo();
if (glowPointer != NULL && glowObjects > 0)
{
for (int i = 0; i < glowObjects; i++)
{
DWORD mObj = glowPointer + i * sizeof(glow_t);
glow_t glowObject = csgo.Read<glow_t>(mObj);
Player = getEntityByCEntityList(glowObject.dwBase);
// Если объект для свечения некорректный, не продолжаем
if (glowObject.dwBase == NULL || Player == nullptr || Player->dormant)
continue;
// Устанавливаем нулевое свечение
glow_player(mObj);
}
}
}
}; cESP esp;
C++:
// Структура Glow
struct glow_t
{
DWORD dwBase;
BYTE nextFreeSlot[0x4];
BYTE entity[0x4];
float r;
float g;
float b;
float a;
BYTE pad0[0x10];
bool m_bRenderWhenOccluded;
bool m_bRenderWhenUnoccluded;
BYTE pad1[0xE];
};
void glow_player(DWORD mObj, float r = 0, float g = 0, float b = 0, float a = 1.0f, bool m_bRenderWhenOccluded = true, bool m_bRenderWhenUnoccluded = false)
{
csgo.Write<float>(mObj + 0x4, r);
csgo.Write<float>(mObj + 0x8, g);
csgo.Write<float>(mObj + 0xC, b);
csgo.Write<float>(mObj + 0x10, a);
csgo.Write<BOOL>(mObj + 0x24, m_bRenderWhenOccluded);
csgo.Write<BOOL>(mObj + 0x25, m_bRenderWhenUnoccluded);
}[/CODE=cpp]
Прошу помощи разобраться в чем дело