This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/csgo/util/playerresource.cpp
2020-08-04 13:13:01 -04:00

78 lines
2.3 KiB
C++

/*
*
* This is the modules player resource area for getting things like Names,
*team, and etc.
*
*/
#include "../hacks/interfaces.hpp" // The games entitys
#include "classes.hpp" // Classnames
#include "netvars.hpp" // Netvar offsets
#include "playerresource.hpp"
namespace modules {
namespace csgo {
// Used to store our player resource ent. We dont use a entity pointer as that
// might become invalid
static int player_resource_ent = 0;
/*
// For finding our player resource if we dont have it.
static bool GetPlayerResource() {
// Try to get our current player resource entity
IClientEntity* raw_entity =
g_IEntityList->GetClientEntity(player_resource_ent);
// Check if we have a player resource
if (raw_entity && !raw_entity->IsDormant() &&
raw_entity->GetClientClass()->m_ClassID == classes::CPlayerResource) return
true;
// If we dont already have our player resource, we need to find it.
player_resource_ent = 0;
for (const auto& entity : g_CatEntitys) {
raw_entity = g_IEntityList->GetClientEntity(entity.IDX);
if (!raw_entity || raw_entity->GetClientClass()->m_ClassID !=
classes::CPlayerResource) continue; player_resource_ent = entity.IDX; return
true;
}
// We dont have our resource...
return false;
}
// This is tf2 only stuff
#if defined(CATHOOK_TF2)
int GetMaxHealth(const CatEntity& player) {
if (CE_BAD(player) || !GetPlayerResource()) return 0;
if (player.IDX >= 64 || player.IDX < 0) return 0;
IClientEntity* raw_player = g_IEntityList->GetClientEntity(player.IDX);
if (!raw_player || raw_player->IsDormant()) return 0;
return
*(int*)((uintptr_t)g_IEntityList->GetClientEntity(player_resource_ent) +
netvars::res_iMaxHealth + 4 * player.IDX);
}
int GetClass(const CatEntity& player) {
if (CE_BAD(player) || !GetPlayerResource()) return 0;
if (player.IDX >= 64 || player.IDX < 0) return 0;
IClientEntity* raw_player = g_IEntityList->GetClientEntity(player.IDX);
if (!raw_player || raw_player->IsDormant()) return 0;
return
*(int*)((uintptr_t)g_IEntityList->GetClientEntity(player_resource_ent) +
netvars::res_iPlayerClass + 4 * player.IDX);
}
#endif
*/
} // namespace csgo
} // namespace modules