Probleme mit Geld Anzeige 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,
    ich brauche einmal eure hilfe, ich bin akutell dabei meine Geldanzeige als Textdraw aus zugeben, weil ich nicht so auf die Standart Geld Anzeige stehe.. ^^
    PS: Ich beschäftige mich das erste mal so mit Textdraws, deshalb bin ich darin noch neu :D


    Fehlermeldungen:

    Mein Textdraw:

    Geld2[playerid] = CreatePlayerTextDraw(500.000000, 81.000000, "100 euro"); //5322
    PlayerTextDrawBackgroundColor(Geld2[playerid], 255); //5323
    PlayerTextDrawFont(playerid,Geld2[playerid], 1); //5324
    PlayerTextDrawLetterSize(Geld2[playerid], 0.320000, 1.400000); //5325
    PlayerTextDrawColor(Geld2[playerid], -1); //5326
    PlayerTextDrawSetOutline(Geld2[playerid], 0); //5327
    PlayerTextDrawSetProportional(Geld2[playerid], 1); //5328
    PlayerTextDrawSetShadow(Geld2[playerid], 1); //5329
    PlayerTextDrawUseBox(Geld2[playerid], 1); //5330
    PlayerTextDrawBoxColor(Geld2[playerid], 255); //5331
    PlayerTextDrawTextSize(Geld2[playerid], 609.000000, 2.000000); //5332
    PlayerTextDrawSetSelectable(Geld2[playerid], 0); //5333


    Mein Stock(falls nötig):
    stock UpdatePlayerMoneyTextdraw(playerid)
    {
    new m = GetPlayerMoney(playerid), str[50];
    if(m == 0) format(str, sizeof str, "~g~00000000");
    else if(m < 10 && m > 0) format(str, sizeof str, "~g~0000000%d euro", m);
    else if(m < 100 && m >= 10) format(str, sizeof str, "~g~000000%d euro", m);
    else if(m < 1000 && m >= 100) format(str, sizeof str, "~g~00000%d euro", m);
    else if(m < 10000 && m >= 1000) format(str, sizeof str, "~g~0000%d euro", m);
    else if(m < 100000 && m >= 10000) format(str, sizeof str, "~g~000%d euro", m);
    else if(m < 1000000 && m >= 10000) format(str, sizeof str, "~g~00%d euro", m);
    else if(m < 10000000 && m >= 1000000) format(str, sizeof str, "~g~0%d euro", m);
    else if(m < 100000000 && m >= 10000000) format(str, sizeof str, "~g~%d euro", m);
    else format(str, sizeof str, "~g~%d euro", m);
    TextDrawSetString(Geld2[playerid], str);
    return 1;
    }

  • Dazu noch als Hinweis, das kannst du auch so schreiben, da sparst du dir den ganzen Aufwand:
    stock UpdatePlayerMoneyTextdraw(playerid)
    {
    new str[50];
    format(str, sizeof str, "~g~%08d euro", GetPlayerMoney(playerid));
    TextDrawSetString(Geld2[playerid], str);
    return 1;
    }

  • Beitrag von Apokrate ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Vielen Dank euch beiden. :)


    Allerdings bin gerade Blind..


    Geld2[playerid] = CreatePlayerTextDraw(playerid,500.000000, 81.000000, "100,00 $");
    PlayerTextDrawBackgroundColor(Geld2[playerid], 255); //10881
    PlayerTextDrawFont(playerid,Geld2[playerid], 1);
    PlayerTextDrawLetterSize(Geld2[playerid], 0.320000, 1.400000);
    PlayerTextDrawColor(Geld2[playerid], -1);
    PlayerTextDrawSetOutline(Geld2[playerid], 0);
    PlayerTextDrawSetProportional(Geld2[playerid], 1);
    PlayerTextDrawSetShadow(Geld2[playerid], 1);
    PlayerTextDrawUseBox(Geld2[playerid], 1);
    PlayerTextDrawBoxColor(Geld2[playerid], 255);
    PlayerTextDrawTextSize(Geld2[playerid], 609.000000, 2.000000);
    PlayerTextDrawSetSelectable(Geld2[playerid], 0); //10891


    Mfg

  • new Text:Geld2[MAX_PLAYERS];
    Zu
    new PlayerText:Geld2[MAX_PLAYERS];


    Und in den Anweisungen oben jeweils noch ein playerid als ersten Parameter einfügen.


    Beispiel:
    PlayerTextDrawBoxColor(Geld2[playerid], 255);
    Zu
    PlayerTextDrawBoxColor(playerid, Geld2[playerid], 255);


  • hatte ich bereits..

  • Nein, du hast es nur bei 2'en gemacht.


    Geld2[playerid] = CreatePlayerTextDraw(playerid,500.000000, 81.000000, "100,00 $");
    PlayerTextDrawBackgroundColor(Geld2[playerid], 255); //10881
    PlayerTextDrawFont(playerid,Geld2[playerid], 1);
    PlayerTextDrawLetterSize(Geld2[playerid], 0.320000, 1.400000);
    PlayerTextDrawColor(Geld2[playerid], -1);
    PlayerTextDrawSetOutline(Geld2[playerid], 0);
    PlayerTextDrawSetProportional(Geld2[playerid], 1);
    PlayerTextDrawSetShadow(Geld2[playerid], 1);
    PlayerTextDrawUseBox(Geld2[playerid], 1);
    PlayerTextDrawBoxColor(Geld2[playerid], 255);
    PlayerTextDrawTextSize(Geld2[playerid], 609.000000, 2.000000);
    PlayerTextDrawSetSelectable(Geld2[playerid], 0); //10891


    zu:
    Geld2[playerid] = CreatePlayerTextDraw(playerid,500.000000, 81.000000, "100,00 $");
    PlayerTextDrawBackgroundColor(playerid,Geld2[playerid], 255); //10881
    PlayerTextDrawFont(playerid,Geld2[playerid], 1);
    PlayerTextDrawLetterSize(playerid,Geld2[playerid], 0.320000, 1.400000);
    PlayerTextDrawColor(playerid,Geld2[playerid], -1);
    PlayerTextDrawSetOutline(playerid,Geld2[playerid], 0);
    PlayerTextDrawSetProportional(playerid,Geld2[playerid], 1);
    PlayerTextDrawSetShadow(playerid,Geld2[playerid], 1);
    PlayerTextDrawUseBox(playerid,Geld2[playerid], 1);
    PlayerTextDrawBoxColor(playerid,Geld2[playerid], 255);
    PlayerTextDrawTextSize(playerid,Geld2[playerid], 609.000000, 2.000000);
    PlayerTextDrawSetSelectable(playerid,Geld2[playerid], 0); //10891

  • Ich habe die Textdraws noch mal neu gemacht, weil die bei mir rum gebugt haben..
    Nun ist es trotzdem nicht besser.. Bitte um Hilfe.


    [pwn]


    & Bekomme wieder eine Menge Warnings:

    InGame:




    Eigentlich sollte über das alte Geld Zeugs ein Textdraw mit der neuen Geldanzeige sein, verstehe nicht wieso das nicht geht.. ?(


    Mfg


    Einmal editiert, zuletzt von KEVAPL ()

  • new Text:Geld2[MAX_PLAYERS];
    zu
    new PlayerText:Geld2[MAX_PLAYERS];


    Auch bei Geld1:
    new PlayerText:Geld1;



    Auch wenn ich das zuvor schon geschrieben habe, aber es scheint als hättest du das noch nicht gemacht, anders sind die Warnungen nicht zu erklären.

  • Du musst bei OnPlayerConnect (oder eben dort wo du willst), das Textdraw anzeigen lassen, wenn du das nicht machst:
    PlayerTextDrawShow(playerid, Geld2[playerid]);


    Übrigens sehe ich gerade, dass bei Geld1 das Array fehlt. An sich kein Problem, da es ja nur eine weiße Box ist, aber dann musst du es als normales Textdraw erstellen, sonst sieht es nur eine playerid. Also unter OnGameMode Init mit "TextDrawCreate" und ohne playerid erstellen und definieren. Außerdem "new Text:Geld1;".
    Das macht dann mehr Sinn, dann erstellst du nicht für jeden Spieler das weiße Textdraw nochmal.


    Anzeigen dann mit
    TextDrawShowForPlayer(playerid, Geld1);

  • Du musst bei OnPlayerConnect (oder eben dort wo du willst), das Textdraw anzeigen lassen, wenn du das nicht machst:
    PlayerTextDrawShow(playerid, Geld2[playerid]);


    Übrigens sehe ich gerade, dass bei Geld1 das Array fehlt. An sich kein Problem, da es ja nur eine weiße Box ist, aber dann musst du es als normales Textdraw erstellen, sonst sieht es nur eine playerid. Also unter OnGameMode Init mit "TextDrawCreate" und ohne playerid erstellen und definieren. Außerdem "new Text:Geld1;".
    Das macht dann mehr Sinn, dann erstellst du nicht für jeden Spieler das weiße Textdraw nochmal.


    Anzeigen dann mit
    TextDrawShowForPlayer(playerid, Geld1);


    Danke, hast mir echt geholfen, hab noch eine Frage kann es sein das ich irgendwas in meinem Stock falsch ist?



    stock UpdatePlayerMoneyTextdraw(playerid)
    {
    new str[50];
    format(str, sizeof str, "~g~%08d $", GetPlayerMoney(playerid));
    TextDrawSetString(Geld2[playerid], str);
    return 1;
    }


    Das Geld wird nämlich nicht auf dem Textdraw angezeigt. Der Stock wird mit PlayerTextDrawShow(playerid, Geld2[playerid]); abgerufen bei OnPlayerSpawn..
    Mfg