Pular para o conteúdo principal

NetStats_PacketLossPercent

Descrição

Obtém a porcentagem de perda de pacotes de um jogador. Perda de pacote significa que os dados que o jogador está enviando ao servidor estão sendo perdidos (ou vice-versa).

NomeDescrição
playeridO ID do jogador do qual obter os dados.

Retornos

A porcentagem de perda de pacotes como um valor flutuante. 0 se o jogador não estiver conectado.

Exemplos

public OnPlayerCommandText(playerid,cmdtext[])
{
if (!strcmp(cmdtext, "/packetloss"))
{
new szString[144];
format(szString, sizeof(szString), "Packets lost: %.2f percent.", NetStats_PacketLossPercent(playerid));
SendClientMessage(playerid, -1, szString);
}
return 1;
}

Notas

dica

Esta função foi considerada atualmente não confiável e a saída não é a esperada quando comparada ao cliente. Portanto, esta função não deve ser usada como kicker de perda de pacotes. Uma função de perda de pacotes mais precisa:

stock GetPlayerPacketLoss(playerid, &Float:packetLoss)
{
/* Retorna a porcentagem de perda de pacotes do playerid fornecido - Feito por Fusez */

if(!IsPlayerConnected(playerid))
{
return 0;
}

new nstats[400+1], nstats_loss[20], start, end;
GetPlayerNetworkStats(playerid, nstats, sizeof (nstats));

start = strfind(nstats, "packetloss", true);
end = strfind(nstats, "%", true, start);

strmid(nstats_loss, nstats, start+12, end, sizeof (nstats_loss));
packetLoss = floatstr(nstats_loss);
return 1;
}
dica

Esteja ciente de que esta função reportará os pacotes perdidos pelo servidor. O número de perda de pacotes relatado pelo cliente será diferente, não porque qualquer um esteja incorreto, mas porque tanto o servidor quanto o cliente estão cientes apenas dos pacotes perdidos enviados por eles.

dica

Qualquer valor superior a 0,0% já deve ser motivo de preocupação. Qualquer coisa superior a 1,0% é totalmente ruim.

Funções Relacionadas