public static nint GetEntityList() => Memo.Read<nint>(Client + dwEntityList);
public static List<Entity> GetEntities()
{
List<Entity> list = new List<Entity>();
try
{
nint entityList = GetEntityList();
nint listEntry = Memo.Read<nint>(entityList + 0x10);
for (int i = 0; i < 64; i++)
{
if (listEntry == nint.Zero)
continue;
nint currentController = Memo.Read<nint>(listEntry + i * 0x70);
if (currentController == nint.Zero)
continue;
int pawnHandle = Memo.Read<int>(currentController + CCSPlayerController.m_hPlayerPawn); // CCSPlayerController.m_hPlayerPawn
if (pawnHandle == 0)
continue;
//bitmaska
nint listEntry2 = Memo.Read<nint>(entityList + 0x8 * ((pawnHandle & 0x7FFF) >> 9) + 0x10);
if (listEntry2 == nint.Zero)
continue;
nint currentPawn = Memo.Read<nint>(listEntry2 + 0x70 * (pawnHandle & 0x1FF));
IntPtr healthaddr = currentPawn + C_BaseEntity.m_iHealth;
if (currentPawn != LocalPlayer.Pawn && currentController != LocalPlayer.Controller && healthaddr != 844)
list.Add(new Entity(currentController, currentPawn, i));
}
} catch (Exception e)
{
Console.WriteLine(e.ToString());
}
return list;
}
public static List<Vector3> GetProjectiles()
{
List<Vector3> list = new List<Vector3>();
try
{
for (int i = 64; i < 1024; i++)
{
nint EntityListBase = GetEntityList();
uint listEntry = Memo.Read<uint>(EntityListBase + 8 * ((i & 0x7FFF) >> 9) + 16);
if (listEntry == 0) continue;
//Ошибка опять здессь
uint entity = Memo.Read<uint>((nint)(listEntry + 112 * (i & 0x1FF))); // 112 валид не меняй его (через 70 не найдешь)
if (entity == 0) continue;
uint sceneNode = Memo.Read<uint>((nint)(entity + C_BaseEntity.m_pGameSceneNode));
if (sceneNode == 0) continue;
Vector3 origin = Memo.Read<Vector3>((nint)(sceneNode + CGameSceneNode.m_vecAbsOrigin));
//Projectile NewEntity = new Projectile((nint)entity, (nint)sceneNode, nint.Zero, i);
list.Add(origin);
//Console.WriteLine(origin);
}
/*const uintptr_t entityListBase = memory->read<uintptr_t>(client + Offsets::dwEntityList);
uintptr_t listEntry = memory->read<uintptr_t>(entityListBase + 8 * ((i & 0x7FFF) >> 9) + 16);
uintptr_t entity = memory->read<uintptr_t>(listEntry + 112 * (i & 0x1FF));
uintptr_t sceneNode = memory->read<uintptr_t>(entity + Offsets::m_pGameSceneNode);
Vec3 origin = memory->read<Vec3>(sceneNode + Offsets::m_vecAbsOrigin)*/
} catch (Exception e)
{
Console.WriteLine(e.ToString());
return list;
}
return list;
}