-
Автор темы
- #1
Как сделать кэш класса player ? нужно ограничить чтение одной и той же переменной в течение ограниченного периода времени допустим просто что бы в памяти хранилось другое название переменной
C++:
class c_player
{
public:
std::uintptr_t address;
c_player()
{
address = memory::read<uintptr_t>(globals::client + offsets::dwLocalPlayer);
}
c_player(int index)
{
address = g_client.i_hero_from_index(index);
}
uint32_t i_health()
{
return memory::read<uint32_t>(address + offsets::m_iHealth);
}
uint32_t i_team()
{
return memory::read<uint32_t>(address + offsets::m_iTeamNum);
}
bool i_dormant()
{
return memory::read<uint32_t>(address + offsets::m_bDormant);
}
DWORD32 get_crosshair_id()
{
return memory::read<DWORD32>( address + offsets::m_iCrosshairId );
}
c_player get_crosshair_entity()
{
c_player enemy;
enemy.address = memory::read<DWORD>(globals::client + offsets::dwEntityList + (c_player().get_crosshair_id() - 1) * 0x10);
return enemy;
}
uint32_t i_classid()
{
return memory::read<uint32_t>(memory::read<DWORD>(memory::read<DWORD>(memory::read<DWORD>(address + 0x8) + 0x8) + 0x1) + 0x14);
}
vec3_t aim_punch_angle()
{
return memory::read<vec3_t>(address + offsets::m_aimPunchAngle);
}
vec3_t origin()
{
return memory::read<vec3_t>(address + offsets::m_vecOrigin);
}
vec3_t get_bone_pos(int bone)
{
DWORD bone_matrix_ptr = memory::read<DWORD>(address + offsets::m_dwBoneMatrix);
bone_matrix bone_pos = memory::read<bone_matrix>(bone_matrix_ptr + bone * 0x30);
return vec3_t({ bone_pos.x, bone_pos.y, bone_pos.z });
}
vec3_t i_local_eye()
{
vec3_t vec_origin = origin();
vec3_t vec_offset = memory::read<vec3_t>(address + offsets::m_vecViewOffset);
return vec_origin + vec_offset;
}
uint32_t weapon()
{
return memory::read<uint32_t>(address + offsets::m_hActiveWeapon);
}
};
c_player g_localplayer;