GivePlayerMoney + 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
  • Hi,


    ich wollte mir eine kleine stock Funktion schreiben, die GivePlayerMoney mit einem einfachen Textdraw erweitert.
    Wenn ein Spieler generell Geld verliert, soll die Zahl rot sein, wenn er welches kriegt, dann grün.


    stock GivePlayerMoneyWithTextdraw(playerid, money)
    {
    new PlayerMoney = GetPlayerMoney(playerid);
    if(PlayerMoney++)
    {
    new Text:MoneyTextdraw;
    MoneyTextdraw = TextDrawCreate(455.55 ,364 , money); //error 035: argument type mismatch (argument 3)
    TextDrawFont(MoneyTextdraw , 3);
    TextDrawLetterSize(MoneyTextdraw , 0.8, 5.6000000000000005);
    TextDrawColor(MoneyTextdraw , 0x008E00FF);
    TextDrawSetOutline(MoneyTextdraw , false);
    TextDrawSetProportional(MoneyTextdraw , true);
    TextDrawSetShadow(MoneyTextdraw , 1);
    GivePlayerMoney(playerid, money);
    }
    if(PlayerMoney--)
    {
    new Text:MoneyTextdraw;
    MoneyTextdraw = TextDrawCreate(455.55 ,364 , money); //error 035: argument type mismatch (argument 3)
    TextDrawFont(MoneyTextdraw , 3);
    TextDrawLetterSize(MoneyTextdraw , 0.8, 5.6000000000000005);
    TextDrawColor(MoneyTextdraw , 0xFF0000FF);
    TextDrawSetOutline(MoneyTextdraw , false);
    TextDrawSetProportional(MoneyTextdraw , true);
    TextDrawSetShadow(MoneyTextdraw , 1);
    GivePlayerMoney(playerid, money);
    }
    return 1;
    }


    Das ist nun vorerst mein Ansatz, auch, wenn es willkürlich zusammengewürfelt ist.
    Ich könnte einen kleinen Denkanstoß gebrauchen. :)

  • GameTextForPlayer kommt nicht in Frage, da ich das Textdraw an eine bestimte Stelle platzieren möchte, nicht mitten auf den Screen.


    Ich habe nach einer Möglichkeit gesucht das Textdraw zu positionieren, und bin auf die obige konventionelle Methode gestoßen. Es hat doch ziemlich viele "Textdraw"-Befehle, und die Vielfalt verwirrt mich ein bisschen... :S


    Also, ich möchte das Textdraw an den genannten Koordinaten (455.55, 364) positionieren und nach 5 Sekunden verschwinden lassen.
    Zudem möchte ich unter Geldgewinn (grünes Textdraw) und Geldverlust (rotes Textdraw) unterscheiden. Und, wenn ich dazwischen unterscheiden möchte, dann brauche ich doch die Abfrage?


    Könntet ihr mir einen kleinen Schritt-für-Schritt-Plan machen? Ohne jeglichen Code, man will ja was lernen.


    Danke!

  • Hier ist du eine kleine Anleitung... so könnte man dein Problem lösen.
    1. Schritt: Ich empfehle dir einen PlayerTextDraw zu verwenden - diesen lässt du bei OnPlayerConnect erstellen und bei OnPlayerDisconnect löschen.
    2. Schritt: Den Textdraw Inhalt "updaten" bzw. den Inhalt setzen und danach erscheinen lassen.
    3. Schritt: Mit einem Timer das Textdraw wieder verschwinden lassen.


    //Edit: Oder benutze einfach die Funktion TextDrawSetStringForPlayer(playerid, Text:Text, text[]); das wäre auch eine Option anstatt einen PlayerTextDraw zu verwenden. Dazu benötigst du allerdings dieses Plugin [ PLUGIN ] Advanced Functions


    Mit freundlichen Grüßen
    DominikGLL


    Es wird niemals so viel gelogen wie vor der Wahl, während des Krieges und nach der Jagd.

    - Otto von Bismarck
    -