Eigene Geldanzeige (Platzhalter)

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
  • Hey Leute,


    ich habe versucht, eine eigene Geldanzeige über die normale zu scripten (Godfather),
    welche das Geld auf der Hand und auf der Bank anzeigt.


    Jedoch habe ich nun das Problem, dass ich die 0 als Platzhalter nicht hinbekomme,
    dh. es steht da: $5684 anstatt von: $0000000000005684


    Mir wurde graten, es per TextDrawSetString() zu machen,
    leider bekomme ich das nicht ganz hin, bin noch ein Anfänger.


    Kann da jmd. weiterhelfen?


    MfG
    Stas


  • //==================
    new Text:CashHand, handstring[14];
    new Text:CashBank, bankstring[14];
    new handgeld[MAX_PLAYERS];
    new bankgeld[MAX_PLAYERS];
    //==================



    // ======================== Geldanzeige =========================================
    handgeld[playerid] = GetPlayerMoney(playerid);
    bankgeld[playerid] = PlayerInfo[playerid][pAccount];

    format(handstring,sizeof(handstring),"$%d",handgeld[playerid]);
    CashHand = TextDrawCreate(499.000000,76.000000,handstring);

    format(bankstring,sizeof(bankstring),"$%d",bankgeld[playerid]);
    CashBank = TextDrawCreate(499.000000,97.000000,bankstring);

    TextDrawAlignment(CashHand,0);
    TextDrawAlignment(CashBank,0);
    TextDrawBackgroundColor(CashHand,0x000000ff);
    TextDrawBackgroundColor(CashBank,0x000000ff);
    TextDrawFont(CashHand,3);
    TextDrawLetterSize(CashHand,0.499999,2.399999);
    TextDrawFont(CashBank,3);
    TextDrawLetterSize(CashBank,0.499999,2.399999);
    TextDrawColor(CashHand,0xffff00ff);
    TextDrawColor(CashBank,0xffffffff);
    TextDrawSetOutline(CashHand,1);
    TextDrawSetOutline(CashBank,1);
    TextDrawSetProportional(CashHand,1);
    TextDrawSetProportional(CashBank,1);
    TextDrawSetShadow(CashHand,1);
    TextDrawSetShadow(CashBank,1);
    TextDrawShowForPlayer(playerid,CashHand);
    TextDrawShowForPlayer(playerid,CashBank);
    //===============================================================================

  • Ich habe zwar keine ahnung von TextDraw aber könnte es nicht sogehen:



    TextDrawShowForPlayer(playerid,00000CashHand);
    TextDrawShowForPlayer(playerid,00000CashBank);

  • Ist doch easy, man muss sich einfach mal das Prinzip angucken,


    wie:


    if(Betrag > 99) - Format Setzen , würde im Format so aussehen, 00000%d$
    if(Betrag > 999) - Format auf 0000%d


    Ich hoffe es hilft ein bissl, einfach immer neu Formatieren lassen mehr ist da nicht

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Ahh, okay.Das geht, danke.
    Doch wie mache ich, dass das GEld sofort aktualisiert wird,
    sobald der Spieler Geld bekommt.


    Im mom. ist es so, dass sobald er Geld bekommt, ein neuer Textdraw über dem alten erstellt wird.


    // ======================== Geldanzeige =========================================
    handgeld[playerid] = GetPlayerMoney(playerid);
    bankgeld[playerid] = PlayerInfo[playerid][pAccount];

    if ((handgeld[playerid]) < 99)
    {
    format(handstring,sizeof(handstring),"$000000%d",handgeld[playerid]);
    CashHand = TextDrawCreate(499.000000,76.000000,handstring);
    }
    else if ((handgeld[playerid]) < 999)
    {
    format(handstring,sizeof(handstring),"$00000%d",handgeld[playerid]);
    CashHand = TextDrawCreate(499.000000,76.000000,handstring);
    }
    else if ((handgeld[playerid]) < 9999)
    {
    format(handstring,sizeof(handstring),"$0000%d",handgeld[playerid]);
    CashHand = TextDrawCreate(499.000000,76.000000,handstring);
    }
    else if ((handgeld[playerid]) < 99999)
    {
    format(handstring,sizeof(handstring),"$000%d",handgeld[playerid]);
    CashHand = TextDrawCreate(499.000000,76.000000,handstring);
    }
    else if ((handgeld[playerid]) < 999999)
    {
    format(handstring,sizeof(handstring),"$00%d",handgeld[playerid]);
    CashHand = TextDrawCreate(499.000000,76.000000,handstring);
    }
    else if ((handgeld[playerid]) < 9999999)
    {
    format(handstring,sizeof(handstring),"$0%d",handgeld[playerid]);
    CashHand = TextDrawCreate(499.000000,76.000000,handstring);
    }
    else if ((handgeld[playerid]) < 99999999)
    {
    format(handstring,sizeof(handstring),"$%d",handgeld[playerid]);
    CashHand = TextDrawCreate(499.000000,76.000000,handstring);
    }

    format(bankstring,sizeof(bankstring),"$%d",bankgeld[playerid]);
    CashBank = TextDrawCreate(499.000000,97.000000,bankstring);

    TextDrawAlignment(CashHand,0);
    TextDrawAlignment(CashBank,0);
    TextDrawBackgroundColor(CashHand,0x000000ff);
    TextDrawBackgroundColor(CashBank,0x000000ff);
    TextDrawFont(CashHand,3);
    TextDrawLetterSize(CashHand,0.499999,2.399999);
    TextDrawFont(CashBank,3);
    TextDrawLetterSize(CashBank,0.499999,2.399999);
    TextDrawColor(CashHand,0xffff00ff);
    TextDrawColor(CashBank,0xffffffff);
    TextDrawSetOutline(CashHand,1);
    TextDrawSetOutline(CashBank,1);
    TextDrawSetProportional(CashHand,1);
    TextDrawSetProportional(CashBank,1);
    TextDrawSetShadow(CashHand,1);
    TextDrawSetShadow(CashBank,1);
    TextDrawShowForPlayer(playerid,CashHand);
    TextDrawShowForPlayer(playerid,CashBank);
    //===============================================================================

  • vllt mit nem timer? o.o
    ich glaub mit nen timer sollts gehen der jede sekunde überprüft ob er neues geld bekommen hat..dann textdraw erneuern..



    Lua: 63% C++: 23% C#: 53% VB: 96%