Code:
template <class T>
T virtualindex(PVOID pVoid, __int64 i64Index) { return (*(T**)pVoid)[i64Index / 8]; }
class SSystemGlobalEnvironment {
public:
IGame* GetGame() {
return *(IGame**)((__int64)this + 200);
}
IEntitySystem* GetIEntitySystem() {
return *(IEntitySystem**)((__int64)this + 216);
}
static SSystemGlobalEnvironment* Singleton() {
return *(SSystemGlobalEnvironment**)0x141D142C0;
} //0x141D132C0 - EU; 0x141D142C0 - RU
};
class IGame {
public:
IGameFramework* GetGameFramework() {
return virtualindex <IGameFramework*(__thiscall*)(PVOID)>(this, 112)(this);
}
};
class IGameFramework {
public:
IActorSystem* GetIActorSystem() {
return virtualindex <IActorSystem*(__thiscall*)(PVOID)>(this, 200)(this);
}
bool GetClientActor(IActor** bValue) {
return virtualindex <bool(__thiscall*)(PVOID, IActor**)>(this, 1136)(this, bValue);
}
};
class IActorSystem {
public:
IActor* GetActor(int iValue) {
return virtualindex <IActor*(__thiscall*)(PVOID, int)>(this, 120)(this, iValue);
}
};
class IActor {
public:
int GetTeamId() {
return *(int*)((__int64)this + 992);
}
};
class IEntitySystem {
public:
IEntityIterator* GetEntityIterator() {
return virtualindex <IEntityIterator*(__thiscall*)(PVOID)>(this, 168)(this);
}
};
class IEntityIterator {
public:
IEntity* GetNext() {
return virtualindex <IEntity*(__thiscall*)(PVOID)>(this, 48)(this);
}
};
class IEntity {
public:
__int64 GetID() {
return virtualindex <__int64(__thiscall*)(PVOID)>(this, 8)(this);
}
//or
//__int64 GetEntityId() {
//return *(__int64*)((__int64)this + 24);
//}
IEntityProxy* GetProxy(EEntityProxyFlags epParam) {
return virtualindex <IEntityProxy*(__thiscall*)(PVOID, EEntityProxyFlags)>
(this, 472)(this, epParam);
}
};
class IEntityProxy {
public:
IRenderNode* GetRenderNode() {
return virtualindex <IRenderNode*(__thiscall*)(PVOID)>(this, 160)(this);
}
void SetHUDSilhouettesParams(float fAlpha, float fRed, float fGreen, float fBlue) {
return virtualindex <void(__thiscall*)(PVOID, float, float, float, float)>
(this, 352)(this, fAlpha, fRed, fGreen, fBlue);
}
};
class IRenderNode {
public:
void SetRndFlags(__int64 iValue) {
*(__int64*)((__int64)this + 28) = iValue;
}
};
enum EEntityProxyFlags : __int64 {
ENTITY_PROXY_RENDER = 0,
ENTITY_PROXY_PHYSICS = 1,
ENTITY_PROXY_SCRIPT = 2,
ENTITY_PROXY_SOUND = 3,
ENTITY_PROXY_AI = 4,
ENTITY_PROXY_AREA = 5,
ENTITY_PROXY_BOIDS = 6,
ENTITY_PROXY_BOID_OBJECT = 7,
ENTITY_PROXY_CAMERA = 8,
ENTITY_PROXY_FLOW_GRAPH = 9,
ENTITY_PROXY_SUBSTITUTION = 10,
ENTITY_PROXY_TRIGGER = 11,
ENTITY_PROXY_ROPE = 12,
ENTITY_PROXY_ENTITY_NODE = 13,
ENTITY_PROXY_USER = 14,
ENTITY_PROXY_LAST = 15,
};
enum EHUDRenderFlags : __int64 {
eAllMap = 16,
eLimitDistance = 4294967279,
};
I am not sure on: }; void SetRndFlags(__int64 iValue) {