Stats im TextDraw, Problem!

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 Leute,
    Ich wollte Paar Infos immer parat haben (im Spiel) und das als Textdraw wieder geben jedoch werden mir die Textdraws nicht angezeigt.
    Ich probiere seit kurzem die Textdraws auch per Befehl ein und aus zu Blenden was leider nicht klappt.


    Hier der code:


    new Text:StatsDraw[MAX_PLAYERS][5];


    if(StatsDraw[playerid] == 0)
    {
    StatsDraw[playerid][0] = TextDrawCreate(525.000000, 125.000000, "Level:");
    TextDrawBackgroundColor(StatsDraw[playerid][0], 255);
    TextDrawFont(StatsDraw[playerid][0], 1);
    TextDrawLetterSize(StatsDraw[playerid][0], 0.400000, 0.949999);
    TextDrawColor(StatsDraw[playerid][0], 8913151);
    TextDrawSetOutline(StatsDraw[playerid][0], 0);
    TextDrawSetProportional(StatsDraw[playerid][0], 1);
    TextDrawSetShadow(StatsDraw[playerid][0], 1);
    TextDrawUseBox(StatsDraw[playerid][0], 1);
    TextDrawBoxColor(StatsDraw[playerid][0], 101);
    TextDrawTextSize(StatsDraw[playerid][0], 644.000000, 0.000000);


    StatsDraw[playerid][1] = TextDrawCreate(525.000000, 136.000000, "Bank:");
    TextDrawBackgroundColor(StatsDraw[playerid][1], 255);
    TextDrawFont(StatsDraw[playerid][1], 1);
    TextDrawLetterSize(StatsDraw[playerid][1], 0.400000, 0.949999);
    TextDrawColor(StatsDraw[playerid][1], 8913151);
    TextDrawSetOutline(StatsDraw[playerid][1], 0);
    TextDrawSetProportional(StatsDraw[playerid][1], 1);
    TextDrawSetShadow(StatsDraw[playerid][1], 1);
    TextDrawUseBox(StatsDraw[playerid][1], 1);
    TextDrawBoxColor(StatsDraw[playerid][1], 101);
    TextDrawTextSize(StatsDraw[playerid][1], 642.000000, 0.000000);


    StatsDraw[playerid][2] = TextDrawCreate(525.000000, 147.000000, "Handynr.:");
    TextDrawBackgroundColor(StatsDraw[playerid][2], 255);
    TextDrawFont(StatsDraw[playerid][2], 1);
    TextDrawLetterSize(StatsDraw[playerid][2], 0.400000, 0.949999);
    TextDrawColor(StatsDraw[playerid][2], 8913151);
    TextDrawSetOutline(StatsDraw[playerid][2], 0);
    TextDrawSetProportional(StatsDraw[playerid][2], 1);
    TextDrawSetShadow(StatsDraw[playerid][2], 1);
    TextDrawUseBox(StatsDraw[playerid][2], 1);
    TextDrawBoxColor(StatsDraw[playerid][2], 101);
    TextDrawTextSize(StatsDraw[playerid][2], 640.000000, 0.000000);


    StatsDraw[playerid][3] = TextDrawCreate(525.000000, 158.000000, "Payday:");
    TextDrawBackgroundColor(StatsDraw[playerid][3], 255);
    TextDrawFont(StatsDraw[playerid][3], 1);
    TextDrawLetterSize(StatsDraw[playerid][3], 0.400000, 0.949999);
    TextDrawColor(StatsDraw[playerid][3], 8913151);
    TextDrawSetOutline(StatsDraw[playerid][3], 0);
    TextDrawSetProportional(StatsDraw[playerid][3], 1);
    TextDrawSetShadow(StatsDraw[playerid][3], 1);
    TextDrawUseBox(StatsDraw[playerid][3], 1);
    TextDrawBoxColor(StatsDraw[playerid][3], 101);
    TextDrawTextSize(StatsDraw[playerid][3], 640.000000, 0.000000);



    StatsDraw[playerid][4]= TextDrawCreate(525.000000, 169.000000, "Mit /showstats an oder aus schalten");
    TextDrawBackgroundColor(StatsDraw[playerid][4], 255);
    TextDrawFont(StatsDraw[playerid][4], 1);
    TextDrawLetterSize(StatsDraw[playerid][4], 0.160000, 1.200000);
    TextDrawColor(StatsDraw[playerid][4], 8913151);
    TextDrawSetOutline(StatsDraw[playerid][4], 0);
    TextDrawSetProportional(StatsDraw[playerid][4], 1);
    TextDrawSetShadow(StatsDraw[playerid][4], 1);
    TextDrawUseBox(StatsDraw[playerid][4], 1);
    TextDrawBoxColor(StatsDraw[playerid][4], 101);
    TextDrawTextSize(StatsDraw[playerid][4], 640.000000, 0.000000);
    }


    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    if(PlayerInfo[playerid][PDA]== 1)
    {
    {
    for(new i=0;i<5;i++)
    TextDrawHideForPlayer(playerid, StatsDraw[playerid][i]);
    return 1;
    }
    else
    {
    for(new i=0;i<5;i++)
    TextDrawShowForPlayer(playerid,StatsDraw[playerid][i]);
    return 1;
    }


    }
    return 1;
    }


    Fehler:



    MfG Flo

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

    Einmal editiert, zuletzt von EliteBread () aus folgendem Grund: Alles

  • Im moment sollen da ja nur Level ... stehen und es sollte möglich sein das man es ein und ausblenden kann.
    aber das geht ja beides bis jetzt noch nicht

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

  • Was ist daran nun so schwer ? Faulheit oder einfach nur die unwissenheit.
    new PlayerText:StatsDraw[MAX_PLAYERS][5];
    public OnPlayerConnect(playerid)
    {
    StatsDraw[playerid][0] = CreatePlayerTextDraw(playerid,525.000000, 125.000000, "Level:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[playerid][0], 255);
    PlayerTextDrawFont(playerid,StatsDraw[playerid][0], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[playerid][0], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[playerid][0], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[playerid][0], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[playerid][0], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[playerid][0], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[playerid][0], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[playerid][0], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[playerid][0], 644.000000, 0.000000);


    StatsDraw[playerid][1] = CreatePlayerTextDraw(playerid,525.000000, 136.000000, "Bank:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[playerid][1], 255);
    PlayerTextDrawFont(playerid,StatsDraw[playerid][1], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[playerid][1], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[playerid][1], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[playerid][1], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[playerid][1], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[playerid][1], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[playerid][1], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[playerid][1], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[playerid][1], 642.000000, 0.000000);


    StatsDraw[playerid][2] = CreatePlayerTextDraw(playerid,525.000000, 147.000000, "Handynr.:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[playerid][2], 255);
    PlayerTextDrawFont(playerid,StatsDraw[playerid][2], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[playerid][2], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[playerid][2], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[playerid][2], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[playerid][2], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[playerid][2], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[playerid][2], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[playerid][2], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[playerid][2], 640.000000, 0.000000);


    StatsDraw[playerid][3] = CreatePlayerTextDraw(playerid,525.000000, 158.000000, "Payday:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[playerid][3], 255);
    PlayerTextDrawFont(playerid,StatsDraw[playerid][3], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[playerid][3], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[playerid][3], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[playerid][3], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[playerid][3], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[playerid][3], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[playerid][3], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[playerid][3], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[playerid][3], 640.000000, 0.000000);


    StatsDraw[playerid][4]= CreatePlayerTextDraw(playerid,525.000000, 169.000000, "Mit /showstats an oder aus schalten");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[playerid][4], 255);
    PlayerTextDrawFont(playerid,StatsDraw[playerid][4], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[playerid][4], 0.160000, 1.200000);
    PlayerTextDrawColor(playerid,StatsDraw[playerid][4], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[playerid][4], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[playerid][4], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[playerid][4], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[playerid][4], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[playerid][4], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[playerid][4], 640.000000, 0.000000);
    return 1;
    }

  • Und hier noch der richtige Befehl dazu:


    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    if(PlayerInfo[playerid][PDA]== 1)
    {
    PlayerTextDrawHide(playerid, StatsDraw[0]);
    PlayerTextDrawHide(playerid, StatsDraw[1]);
    PlayerTextDrawHide(playerid, StatsDraw[2]);
    PlayerTextDrawHide(playerid, StatsDraw[3]);
    PlayerTextDrawHide(playerid, StatsDraw[4]);
    }
    else
    {
    PlayerTextDrawShow(playerid, StatsDraw[0]);
    PlayerTextDrawShow(playerid, StatsDraw[1]);
    PlayerTextDrawShow(playerid, StatsDraw[2]);
    PlayerTextDrawShow(playerid, StatsDraw[3]);
    PlayerTextDrawShow(playerid, StatsDraw[4]);
    }
    return 1;
    }


    IPrototypeI Bei PlayerTextDraws brauchste kein MAX_PLAYERS und musst diese auch nicht beim kreiren nutzen, da ja nun die Textdraws einer playerid zugewiesen werden.


    Würde so auf jeden Fall funktinieren OHNE Errors und Warnings:


    new PlayerText:StatsDraw[5];
    public OnPlayerConnect(playerid)
    {
    StatsDraw[0] = CreatePlayerTextDraw(playerid,525.000000, 125.000000, "Level:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[0], 255);
    PlayerTextDrawFont(playerid,StatsDraw[0], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[0], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[0], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[0], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[0], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[0], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[0], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[0], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[0], 644.000000, 0.000000);


    StatsDraw[1] = CreatePlayerTextDraw(playerid,525.000000, 136.000000, "Bank:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[1], 255);
    PlayerTextDrawFont(playerid,StatsDraw[1], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[1], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[1], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[1], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[1], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[1], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[1], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[1], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[1], 642.000000, 0.000000);


    StatsDraw[2] = CreatePlayerTextDraw(playerid,525.000000, 147.000000, "Handynr.:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[2], 255);
    PlayerTextDrawFont(playerid,StatsDraw[2], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[2], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[2], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[2], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[2], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[2], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[2], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[2], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[2], 640.000000, 0.000000);


    StatsDraw[3] = CreatePlayerTextDraw(playerid,525.000000, 158.000000, "Payday:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[3], 255);
    PlayerTextDrawFont(playerid,StatsDraw[3], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[3], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[3], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[3], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[3], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[3], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[3], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[3], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[3], 640.000000, 0.000000);


    StatsDraw[4]= CreatePlayerTextDraw(playerid,525.000000, 169.000000, "Mit /showstats an oder aus schalten");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[4], 255);
    PlayerTextDrawFont(playerid,StatsDraw[4], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[4], 0.160000, 1.200000);
    PlayerTextDrawColor(playerid,StatsDraw[4], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[4], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[4], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[4], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[4], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[4], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[4], 640.000000, 0.000000);
    return 1;
    }


    EliteBread


    Habe mich erst gefragt warum eine Schleife für sowas, also habe ich dir es einmal so gemacht, übrigens wäre dies gerade einmal EINE Zeile mehr.

    2 Mal editiert, zuletzt von ulbi1990 () aus folgendem Grund: Rechtschreibung

  • Einwenig ins Wiki gucken schade nicht ^^


    TextDrawHideForPlayer(playerid, StatsDraw[0]);


    und so weiter


    PlayerTextDrawHide(playerid, StatsDraw[0]);
    so habe ich das :/
    Ist eigentlich richtig .

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

    Einmal editiert, zuletzt von EliteBread () aus folgendem Grund: Text


  • mann sollte ein 2d array verwenden aufgrund dessen da das ganze wie ein stream funktioniert und dieids nicht wirklich konstant bleiben daher ist es auch moeglich das limit der textdraws zu ueberschreiten dennoch sind beide funktionen nicht unabhaengig.also soll das ganze id verschiebungen vorbeugen.

  • Ich verstehe gerade dein Text nicht :D
    Ich habe es schon auf 10 anderen weisen getesten aber ich kriege es nicht ihn das wen der Spieler kein PDA das kommt
    "Du besitzt kein PDA"
    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    if(PlayerInfo[playerid][PDA]== 1)
    {
    PlayerTextDrawHide(playerid, StatsDraw[0]);
    PlayerTextDrawHide(playerid, StatsDraw[1]);
    PlayerTextDrawHide(playerid, StatsDraw[2]);
    PlayerTextDrawHide(playerid, StatsDraw[3]);
    PlayerTextDrawHide(playerid, StatsDraw[4]);
    SendClientMessage(playerid,Weiß,"PDA {33AA33}aus");
    }
    else
    {
    PlayerTextDrawShow(playerid, StatsDraw[0]);
    PlayerTextDrawShow(playerid, StatsDraw[1]);
    PlayerTextDrawShow(playerid, StatsDraw[2]);
    PlayerTextDrawShow(playerid, StatsDraw[3]);
    PlayerTextDrawShow(playerid, StatsDraw[4]);
    SendClientMessage(playerid,Weiß,"PDA {C20000}aus");
    }
    return 1;
    }


    Eigentlich ist das ja Simple aber egen wie geht es nicht

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

    Einmal editiert, zuletzt von EliteBread () aus folgendem Grund: Text


  • Was willst eigentlich genau noch wissen oder wo besteht das problem schreib mal konkrete sätze wo du auf den Punkt kommst.
    Beispiel:
    Ich möchte ... machen.
    Das Problem dabei ist ... .
    Ich habe ... und ... um ... und ... abzufragen.


    weil ich lese mir deinen geschrieben text durch und schau auf den code und kann keine aussage darüber treffen mit was du eigentlich was abprüfen willst
    ob PlayerInfo[playerid][PDA] dafür verwendet wird um abzuprüfen ob ein pda vorhanden ist oder ob es der status ist ob an oder aus oder alles in sich vereint.
    weil sonst brauchst du dich auch nicht wundern warum es nicht geht.

  • Okay.
    Ich habe eine Abfrage in dem Befehl Showpda.
    Ich würde jetzt gerne einbauen das wen der Player kein PDA hat also PlayerInfo[playerid][Pda] ==0 , das dann kommt "Du hast kein PDA"
    aber wenn PlayerInfo[playerid][Pda] ==1 dann sollen die Textdraws erscheinen.

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

  • Habe das jetzt so kommt aber immer noch ein Fehler
    ich weiß nicht was bei dem "else if" rein kommt.


    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    {


    if(PlayerInfo[playerid][PDA]== 0)
    {
    SendClientMessage(playerid, Rot, "Du besitzt kein PDA!");
    }
    else if ()
    {
    PlayerTextDrawHide(playerid, StatsDraw[0]);
    PlayerTextDrawHide(playerid, StatsDraw[1]);
    PlayerTextDrawHide(playerid, StatsDraw[2]);
    PlayerTextDrawHide(playerid, StatsDraw[3]);
    PlayerTextDrawHide(playerid, StatsDraw[4]);
    SendClientMessage(playerid,Weiß,"PDA {33AA33}aus");
    }


    else
    {
    PlayerTextDrawShow(playerid, StatsDraw[0]);
    PlayerTextDrawShow(playerid, StatsDraw[1]);
    PlayerTextDrawShow(playerid, StatsDraw[2]);
    PlayerTextDrawShow(playerid, StatsDraw[3]);
    PlayerTextDrawShow(playerid, StatsDraw[4]);
    SendClientMessage(playerid,Weiß,"PDA {C20000}aus");
    }
    }
    return 1;
    }

    Bread.pwn(2878) : error 029: invalid expression, assumed zero
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    was muss ich hinters else if setzen ?

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

    2 Mal editiert, zuletzt von EliteBread () aus folgendem Grund: 3xText

  • Hier bitte



    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    switch(PlayerInfo[playerid][PDA]){
    case 0: return SendClientMessage(playerid, Rot, "Du besitzt kein PDA!");
    case 1: return PlayerTextDrawShow(playerid, StatsDraw[0]),PlayerInfo[playerid][PDA]=2,PlayerTextDrawShow(playerid, StatsDraw[1]),PlayerTextDrawShow(playerid, StatsDraw[2]),PlayerTextDrawShow(playerid, StatsDraw[3]),PlayerTextDrawShow(playerid, StatsDraw[4]),SendClientMessage(playerid,-1,"PDA {C20000}an");
    case 2: return PlayerTextDrawHide(playerid, StatsDraw[0]),PlayerInfo[playerid][PDA]=1,PlayerTextDrawHide(playerid, StatsDraw[1]),PlayerTextDrawHide(playerid, StatsDraw[2]),PlayerTextDrawHide(playerid, StatsDraw[3]),PlayerTextDrawHide(playerid, StatsDraw[4]),SendClientMessage(playerid,-1,"PDA {33AA33}aus");
    }
    return 1;
    }
    musst halt das ganze sollte das auch vorhanden sein speichern als 1 falls du nicht willst das der Spieler sollte er damit offline gegangen ist
    das der pda an war in nochmal ausschalten muss und anschalten