-
Автор темы
- #1
class:
class Entity {
public:
Entity(ui entity) : entity(entity) {}
int GetMaxHealth() {
return *(int*)(*(ui*)entity + m_iMaxHealth);
}
int GetHealth() {
return *(int*)(*(ui*)entity + m_iHealth);
}
int GetMaxMana()
{
return *(float*)(*(ui*)entity + m_flMaxMana);
}
int GetMana()
{
return *(float*)(*(ui*)entity + m_flMana);
}
int GetOwner(){
return *(int*)(*(ui*)entity + m_hOwnerEntity) & 0x7FFF;
}
int GetTeam(){
return *(unsigned short*)(*(ui*)entity + m_iTeamNum);
}
bool IsValid() {
return entity != 0;
}
bool IsIllusion(){
return *(ui*)(*(ui*)entity + m_hReplicatingOtherHeroModel) != 0xFFFFFFFF;
}
bool IsLocal() {
return this->GetOwner() == xxd::LocalPlayerIndex;
}
bool IsAlly() {
Entity LocalEntity{xxd::LocalPlayerEntity};
int LocalTeam = LocalEntity.GetTeam();
int EntityTeam = this->GetTeam();
return LocalTeam == EntityTeam;
}
bool IsEnemy() {
return !this->IsAlly();
}
cc GetName() {
if (*(cc*)(*(ui*)(*(ui*)entity + 0x10) + 0x18)) {
return *(cc*)(*(ui*)(*(ui*)entity + 0x10) + 0x18);
}
else if (*(cc*)(*(ui*)(*(ui*)entity + 0x10) + 0x20)) {
return *(cc*)(*(ui*)(*(ui*)entity + 0x10) + 0x20);
}
else {
return "Unknown";
}
}
cc GetBaseClass()
{
if (***(cc***)(*(ui*)(*(ui*)entity + 0x10) + 0x8))
{
return ***(cc***)(*(ui*)(*(ui*)entity + 0x10) + 0x8);
}
else
{
return "Unknown";
}
}
Vector GetPosition()
{
ui gamescenenode = *(ui*)(*(ui*)entity + m_pGameSceneNode);
return *(Vector*)(gamescenenode + m_vecAbsOrigin);
}
Vector2 GetScreenPosition() {
Vector abs = this->GetPosition();
int x, y;
bool bResult = W2S(abs, &x, &y, nullptr);
Vector2 out;
if (bResult) {
out.x = x;
out.y = y;
}
else {
out.x = -1;
out.y = -1;
}
return out;
}
bool IsHero()
{
if (!strcmp("C_DOTA_BaseNPC_Hero", this->GetBaseClass()))
{
return true;
}
else
{
return false;
}
}
private:
ui entity;
};
пытаюсь получить значение дает кординтаы по середине карты и если героем подвигается у которого читаешь значение доту крашнет
помогите пеже