Pular para o conteúdo principal

NetStats_PacketLossPercent

Description

Gets the packet loss percentage of a player. Packet loss means data the player is sending to the server is being lost (or vice-versa).

NameDescription
playeridThe ID of the player to get the data from.

Returns

The percentage packet loss as a float. 0 if player not connected.

Examples

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;
}

Notes

dica

This function has been found to be currently unreliable the output is not as expected when compared to the client. Therefore this function should not be used as a packet loss kicker. A more accurate packetloss function:

stock GetPlayerPacketLoss(playerid, &Float:packetLoss)
{
/* Returns the packetloss percentage of the given playerid - Made by 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

Be advised that this function will report the packets lost by the server. The packet loss number reported by the client will be different, not because either is incorrect, but because both the server and the client are only aware of the loss packages sent by them.

dica

Anything greater than 0.0% should already be a cause of concern. Anything greater than 1.0% is outright bad.