FPS 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
  • Hallo Breadfish.


    Ich würde gern' mal wissen ich meine FPS getten kann um sie dann in einem Textdraw anzeigen zu lassen?


    Wenn jemand eine Idee hätte würde ich mich über eine Antwort freuen (Am besten mit Code).


    Mit freundlichen Grüßen.


    Kinq.

  • SetPlayerdrunkLevel


    Players' drunk level will automatically decrease over time, based on their FPS (players with 50 FPS will lose 50 'levels' per second. This is useful for determining a player's FPS!).
    In 0.3a the drunk level will decrement and stop at 2000. In 0.3b+ the drunk level decrements to zero.)
    Levels over 2000 make the player drunk (camera swaying and vehicles difficult to control).
    Max drunk level is 50000.
    While the drunk level is above 5000, the player's HUD (radar etc.) will be hidden.


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Ich bekomme leider Errors.


    Ich habe oben im Script


    forward FPSz();


    Dann den Timer:


    SetTimer("FPSz",1000,true);


    Und hier der Public dazu:



    public FPSz()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    new string[100];
    format(string, sizeof(string), "FPS: %d",pFPS[i]);
    TextDrawSetString(FPS[i], string);
    }
    return 1;
    }


    Ich bekomme diese Errors:


    error 028: invalid subscript (not an array or too many subscripts): "FPS"
    warning 215: expression has no effect
    : error 001: expected token: ";", but found "]"
    error 029: invalid expression, assumed zero
    fatal error 107: too many error messages on one line


    Was habe ich falsch gemacht?

  • Du musst den Textdraw schon irgentwo Erstellen :S


    Oben:


    new Text:FPS[MAX_PLAYERS];


    OnGameModeInit
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    FPS[i] = TextDrawCreate(3.000000, 433.000000, "~r~FPS: ~y~0");
    TextDrawBackgroundColor(FPS[i], 255);
    TextDrawFont(FPS[i], 2);
    TextDrawLetterSize(FPS[i], 0.200000, 1.300000);
    TextDrawColor(FPS[i], -1);
    TextDrawSetOutline(FPS[i], 1);
    TextDrawSetProportional(FPS[i], 1);
    }

  • Mein Textdraw Create besitzt aber keine 0. -> FPS = TextDrawCreate(520.000000, 100.000000, "FPS:");


    Aber der String wird ja eigentlich laut Script durch die FPS ersetzt.


    format(string, sizeof(string), "FPS: %d",pFPS);
    TextDrawSetString(FPS
    , string);


    Da kommt nirgents eine 0 vor.

  • SetPlayerdrunkLevel


    Players' drunk level will automatically decrease over time, based on their FPS (players with 50 FPS will lose 50 'levels' per second. This is useful for determining a player's FPS!).
    In 0.3a the drunk level will decrement and stop at 2000. In 0.3b+ the drunk level decrements to zero.)
    Levels over 2000 make the player drunk (camera swaying and vehicles difficult to control).
    Max drunk level is 50000.
    While the drunk level is above 5000, the player's HUD (radar etc.) will be hidden.

    There is currently no text in this page, you can search for this page title in other pages or edit this page.

  • So ich schreibe nun nochmal alles zusammengefasst in der Hoffnung das dann mein Problem gelöst wird.


    Im Kopf des Script's:


    new Text:FPS[MAX_PLAYERS];


    OnGameModeInit:



    for(new i=0;i<MAX_PLAYERS;i++)
    {
    FPS[i] = TextDrawCreate(520.000000, 100.000000, "FPS:");
    TextDrawBackgroundColor(FPS[i], 255);
    TextDrawFont(FPS[i], 1);
    TextDrawLetterSize(FPS[i], 0.500000, 1.000000);
    TextDrawColor(FPS[i], -65281);
    TextDrawSetOutline(FPS[i], 1);
    TextDrawSetProportional(FPS[i], 1);
    TextDrawUseBox(FPS[i], 0);
    TextDrawTextSize(FPS[i], 580.000000, 40.000000);
    }


    OnPlayerConnect


    for(new i=0;i<MAX_PLAYERS;i++)
    {
    TextDrawShowForPlayer(playerid,FPS[i]);
    }


    OnPlayerDisConnect


    for(new i=0;i<MAX_PLAYERS;i++)
    {
    TextDrawShowForPlayer(playerid,FPS[i]);
    }



    Im Kopf vom Script:


    forward FPSz();


    OnGameModeInit:


    SetTimer("FPSz",1000,true);


    Public:



    public FPSz()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    new string[100];
    format(string, sizeof(string), "FPS: %d",pFPS[i]);
    TextDrawSetString(FPS[i], string);
    }
    return 1;
    }


    Mein Problem ist oben als Bild das die FPS Fehlerhaft unter dem eigentlichen Textdraw dargestellt werden, ich hoffe mir kann nochmal jemand genau erklären was ich falsch gemacht habe.