ESP e Telekill bugados
Acabei de adicionar ESP e Telekill na minha base, e até que funciona, mas se o esp tiver ligado e alguem entrar no jogo, a lista de players fica igual à quando eu entrei e o esp não funciona nos players que entram depois. Sobre o telekill, ele fica mudando a posição entre a minha e a do alvo, resumindo: ele não para a posição no player selecionado.
Codigos:
ESP:
TeleKill
As classes tão todas atualizadas, até pq senão não ia ativar os esps.
Codigos:
ESP:
Code:
VOID ESP(INT Names, INT Lines, INT Distances, INT Boxes, LPDIRECT3DDEVICE9 pDevice)
{
pDevice->SetRenderState(D3DRS_ZENABLE, FALSE);
INT CenterX = (GetSystemMetrics(0) / 2) - 1;
INT CenterY = (GetSystemMetrics(1) / 2) - 1;
CHAR CName[50], CDistance[50], CVida[50];
if((*(BYTE *)GameStatus == 1) && (Names || Lines || Distances || Boxes ))
{
GetPlayerByIndex = (lpGetPlayerByIndex)ADDR_PLAYERBYINDEX;
unsigned long ulThis = *(unsigned long *)ADDR_CLIENTINFOMGR;
GetLocalPlayer = (lpGetLocalPlayer)ADDR_LOCALPLAYER;
cGameClientShell *pGameClientShell = *(cGameClientShell **)ADDR_GCS;
for(INT i = 0; i < 24; i++)
{
PlayerInfo *pLocal = GetLocalPlayer(ulThis);
PlayerInfo *pPlayer = GetPlayerByIndex(ulThis, i, 0);
cCharacterFX *PlayerFX = (cCharacterFX *)pGameClientShell->GetSFXMgr()->SFXList[0x18].List[i];
if(pPlayer != 0 && pPlayer->Object != 0 && pPlayer->pIsDead == false && pLocal->pIsDead == false)
{
D3DXVECTOR3 vPos, vFootScreen, vScreen;
vPos.x = pPlayer->Object->Pos.x;
vPos.y = pPlayer->Object->yBound2;
vPos.z = pPlayer->Object->Pos.z;
if(WorldToScreen(pDevice, vPos, &vScreen))
{
if(pPlayer->pTeam != pLocal->pTeam)
{
if(Names)
{
sprintf(CName, "%s", pPlayer->pName);
DrawString(vScreen.x, vScreen.y, Vermelho, pFont, CName);
}
if(Lines)
{
DrawLine2(CenterX, CenterY, vScreen.x, vScreen.y, Vermelho, pDevice);
}
if(Distances)
{
sprintf(CDistance, "%0.0f M", GetDistance(pLocal->Object->Pos, pPlayer->Object->Pos));
DrawString(vScreen.x, vScreen.y + 23, Verde, pFont, CDistance);
}
if(Boxes)
{
vPos.x = pPlayer->Object->Pos.x;
vPos.y = pPlayer->Object->yBound1;
vPos.z = pPlayer->Object->Pos.z;
if(WorldToScreen(pDevice, vPos, &vFootScreen))
{
INT BoxDist = INT(0.2f * (vFootScreen.y - vScreen.y));
#pragma warning(push)
D3DRECT rectBoxes[10] =
{
{vScreen.x - BoxDist, vScreen.y , vScreen.x - BoxDist + 1, vFootScreen.y},
{vScreen.x - BoxDist, vFootScreen.y, vScreen.x + BoxDist + 1, vFootScreen.y + 1},
{vScreen.x + BoxDist, vScreen.y , vScreen.x + BoxDist + 1, vFootScreen.y},
{vScreen.x - BoxDist, vScreen.y , vScreen.x + BoxDist, vScreen.y + 1}
};
#pragma warning(pop)
pDevice->Clear(10, rectBoxes, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, Vermelho, 1.0f, 0);
}
}
}
if(pPlayer->pTeam == pLocal->pTeam)
{
if(Names)
{
sprintf(CName, "%s", pPlayer->pName);
DrawString(vScreen.x, vScreen.y, Verde, pFont, CName);
}
if(Lines)
{
DrawLine2(CenterX, CenterY, vScreen.x, vScreen.y, Verde, pDevice);
}
if(Distances)
{
sprintf(CDistance, "%0.0f M", GetDistance(pLocal->Object->Pos, pPlayer->Object->Pos));
DrawString(vScreen.x, vScreen.y + 23, Verde, pFont, CDistance);
}
if(Boxes)
{
vPos.x = pPlayer->Object->Pos.x;
vPos.y = pPlayer->Object->yBound1;
vPos.z = pPlayer->Object->Pos.z;
if(WorldToScreen(pDevice, vPos, &vFootScreen))
{
INT BoxDist = INT(0.2f * (vFootScreen.y - vScreen.y));
#pragma warning(push)
D3DRECT rectBoxes[10] =
{
{vScreen.x - BoxDist, vScreen.y , vScreen.x - BoxDist + 2, vFootScreen.y},
{vScreen.x - BoxDist, vFootScreen.y, vScreen.x + BoxDist + 2, vFootScreen.y + 1},
{vScreen.x + BoxDist, vScreen.y , vScreen.x + BoxDist + 2, vFootScreen.y},
{vScreen.x - BoxDist, vScreen.y , vScreen.x + BoxDist, vScreen.y + 1}
};
#pragma warning(pop)
pDevice->Clear(10, rectBoxes, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, Verde, 1.0f, 0);
}
}
}
}
}
}
}
}
Code:
void TeleKillFull(int Kill, LPDIRECT3DDEVICE9 pDevice)
{
DWORD posptr, PositionY;
GetPlayerByIndex = (lpGetPlayerByIndex)ADDR_PLAYERBYINDEX;
unsigned long ulThis = *(unsigned long *)ADDR_CLIENTINFOMGR;
GetLocalPlayer = (lpGetLocalPlayer)ADDR_LOCALPLAYER;
posptr = (DWORD) GetModuleHandle("ClientFX.fxd");
posptr += ClientFX;
memcpy(&PositionY, (VOID *) (posptr), 4);
for (int i = 0; i < 16; i++) {
PlayerInfo *pPlayer = GetPlayerByIndex(ulThis, i, 0);
PlayerInfo *pLocal = GetLocalPlayer(ulThis);
if (pPlayer != 0 && pPlayer->Object != 0 && pPlayer->pIsDead == false) {
if (Kill)
{
if (pPlayer->pTeam != pLocal->pTeam) {
Sleep(5);
*(FLOAT *) (PositionY + 0xC8) = (pPlayer->Object->Pos.x + 20.0f);
*(FLOAT *) (PositionY + 0xCC) = (pPlayer->Object->yBound2);
*(FLOAT *) (PositionY + 0xD0) = (pPlayer->Object->Pos.z);
}
}
}
}
}
