ESP doesn't show
With recent patches my esp became outdated and request an update.
Maybe also trouble with DrawTest, but should not be the case.
Code:
GetMeIdxInPlayerInfoList 56 8B F1 0F B6 86 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 83 C4 04 84 C0 75 04
Code:
___:5DAAAFB0 sub_5DAAAFB0 proc near ; CODE XREF: sub_5D0B7560+D2p ___:5DAAAFB0 ; sub_5D0BC3C0+68p ... ___:5DAAAFB0 push esi ___:5DAAAFB1 mov esi, ecx ___:5DAAAFB3 movzx eax, byte ptr [esi+1FCh] // IClientShellStub offset ___:5DAAAFBA push eax ___:5DAAAFBB call sub_5DB00080 ___:5DAAAFC0 add esp, 4 ___:5DAAAFC3 test al, al ___:5DAAAFC5 jnz short loc_5DAAAFCB ___:5DAAAFC7 or al, 0FFh ___:5DAAAFC9 pop esi ___:5DAAAFCA retn ___:5DAAAFCB ; --------------------------------------------------------------------------- ___:5DAAAFCB ___:5DAAAFCB loc_5DAAAFCB: ; CODE XREF: sub_5DAAAFB0+15j ___:5DAAAFCB movzx eax, byte ptr [esi+1FCh] ___:5DAAAFD2 imul eax, 0D80h // CPlayerInformation class size ___:5DAAAFD8 mov al, [eax+esi+204h] ___:5DAAAFDF pop esi ___:5DAAAFE0 retn ___:5DAAAFE0 sub_5DAAAFB0 endp
Code:
class CPlayerInformation
{
public:
HOBJECT Object;
char ClientId;
char Team;
char Name[12];
char _0x0012[2];
int unk;
int Slot;
int Unknown1;
bool C4;
int CallState;
int Rank;
int Unknown2;
int Unknown3;
short Health;
short Kills;
__int32 Deaths;
char spacer[0xD80 - 0x3C];
bool IsValid() const
{
if (Object != nullptr) {
return (true);
}
return (false);
}
bool IsAlive() const
{
if (Health > 0) {
return (true);
}
return (false);
}
};
class IClientShellStub
{
public:
char pad_0x0004[0x1FC-4];
CPlayerInformation Clients[16];
};
Code:
void Esp::DrawTest()
{
for (int PlayerId = 0; PlayerId < 16; PlayerId++)
{
const CPlayerInformation PlayerInfoIterator = Engine::EngineSingleton().GetPlayerInfoById(PlayerId);
if (!Engine::EngineSingleton().IsObjectValid(PlayerInfoIterator.Object) || !Engine::EngineSingleton().IsPlayerValid(PlayerInfoIterator)) {
continue;
}
//if (Engine::EngineSingleton().IsPlayerLocal(PlayerInfoIterator)) {
// continue;
//}
LTVector PlayerPosMin3D = Engine::EngineSingleton().GetObjectBoxMins(PlayerInfoIterator.Object);
LTVector PlayerPosMin2D;
if (!WorldToScreen(Engine::EngineSingleton().GetDirect3DDevice(), PlayerPosMin3D, PlayerPosMin2D)) {
continue;
}
ToolkitRenderer::GetToolkitRenderer().Text(PlayerPosMin2D.x, PlayerPosMin2D.y, DT_CENTER, 0xffff0000, PlayerInfoIterator.Name, false);
}
}
