Wie erstell ich einen "Ping" Textdraw

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • new Text:Ping[MAX_PLAYERS];


    in OnGameModeInit:
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    Ping[i] = TextDrawCreate(610.0, 400.0," ");
    //Hier noch die ganzen TextDrawSettings
    TextDrawShowForPlayer(Ping[i]);
    }



    in einem Timer (10 Sekunden Timer)
    new ping = GetPlayerPing(playerid),str[20];
    format(str,20,"Ping: %d",ping);
    TextDrawSetString(Ping[playerid],str);

  • Ok wenn ich server starten will kommt das da



  • @Hard:
    Warum erstellst du jedes mal einen "normalen" Textdraw?
    Ist es nicht sinnvoller, wenn man einen PlayerTextDraw macht?



    Hier mal mein Ansatz:
    #define PING_INTERVAL 10000
    forward UpdatePing();


    new PlayerText:Ping[MAX_PLAYERS];


    public OnGameModeInit()
    {
    SetTimer("UpdatePing",PING_INTERVAL,1);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    Ping[playerid]=CreatePlayerTextDraw(playerid, Float:x, Float:y, "Ping: 999");
    new ping[16];
    format(ping,sizeof(ping),"Ping: %d", GetPlayerPing(playerid));
    PlayerTextDrawSetString(playerid, Ping[playerid], ping);
    PlayerTextDrawShow(playerid, Ping[playerid]);
    return 1;
    }


    public UpdatePing()
    {
    new ping[16];
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(IsPlayerNPC(i))continue;
    PlayerTextDrawHide(i, Ping[i]);
    format(ping,sizeof(ping),"Ping: %d", GetPlayerPing(i));
    PlayerTextDrawSetString(i, Ping[i], ping);
    PlayerTextDrawShow(i, Ping[i]);
    }
    return 1;
    }

    Berlin - Tel Aviv - Moskau