Nah, die Aktualisierung ist zu krass 
Unter OnPlayerUpdate wird das ungefähr > 1000x die Sekunde aufgerufen 
Schreibs mal so:
new PlayerText3D:Info[MAX_PLAYERS],FPS_LAST[MAX_PLAYERS],FPS[MAX_PLAYERS];
public OnPlayerConnect(playerid) return SetTimerEx("@Stream_Draw",1000,1,"i",playerid);
public OnPlayerStreamIn(playerid, forplayerid)
{
if(IsPlayerNPC(playerid)) return 1;
Info[playerid] = CreatePlayer3DTextLabel(forplayerid, "Ping: 0\nFPS: 0", -1, 0.0, 0.0, 0.35, 30.0, playerid, 0);
return 1;
}
@StreamDraw(playerid);@StreamDraw(playerid) {
new string_3D[256];
format(string_3D, sizeof(string_3D), "{ff0033}Ping: {ffffff}%d\n{ff0033}FPS: {ffffff}%d", GetPlayerPing(playerid), FPS[playerid]);
for(new i, j = GetMaxPlayers(); i != j; i++)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
UpdatePlayer3DTextLabelText(i, Info[playerid], -1, string_3D);
}
return 1;
}
public OnPlayerUpdate(playerid)
{
new drunknew = GetPlayerDrunkLevel(playerid);
if (drunknew < 100) return SetPlayerDrunkLevel(playerid, 2000),1;
if (FPS_LAST[playerid] != drunknew) {
new wfps = FPS_LAST[playerid] - drunknew;
if ((wfps > 0) && (wfps < 200))FPS[playerid] = wfps;
FPS_LAST[playerid] = drunknew;
}
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
if(IsPlayerNPC(playerid)) return 1;
for(new i; i < 6; i++) DeletePlayer3DTextLabel(forplayerid, Info[playerid]);
return 1;
}
mfg. 