PayDay 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 hätte gerne IG einen PayDay Textdraw, hab das Forum schon durchsucht auch was gefunden, aber ergab bei mir kein Erfolg.. :(


    Also ich habe folgendes im Script:


    new Text:Payday;


    Payday = TextDrawCreate(8,300,"PayDay: /60"); // _
    TextDrawFont(Payday,1);
    TextDrawAlignment(Payday,0);
    TextDrawLetterSize(Payday,0.500000,0.999990);
    TextDrawSetProportional(Payday,1);
    TextDrawSetShadow(Payday,1);
    TextDrawShowForPlayer(playerid,Payday);
    [/size]
    Bekomme keine Errors wird auch alles so angezeigt wie es sein sollte (bis jetzt)


    Ab jetzt weiß ich leider nichtmehr was ich machen muss..


    Das hier ist für den PayDay 60-PlayerInfo[targetid][pPlayMinutes]


    Danke Im Vorraus

    Mit freundlichen Grüßen,
    rndy

  • Zitat

    Ab jetzt weiß ich leider nichtmehr was ich machen muss..


    ich hab keinen Timer .. hab mir das mal in nen Thread angeschaut -> versucht selber zu machen -> funktionierte nicht habs paar mal versucht dann hab ich es aufgegben.

    Mit freundlichen Grüßen,
    rndy

  • Du hast doch da sicher einen Timer, der jede Minute prüft, ob ein Spieler einen PayDay bekommen darf. In diesem Timer wäre es sinnvoll, wenn man dort direkt das Textdraw einbaut, und es so minütlich aktualisiert.
    Ansonsten, falls du das nicht posten willst:


    Textdraw als PlayerTextdraw erstellen: http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw
    Und dann bei der Aktualisierung: http://wiki.sa-mp.com/wiki/PlayerTextDrawSetString



    EDIT: @toniyo:
    PayDay-Timer in PM gesendet.


    Textdraw mit CreatePlayerTextDraw erstellen, bei OnPlayerConnect, und bei OnPlayerDisconnect natürlich wieder entfernen.


    Dann dort, wo du:
    PlayerInfo[i][pPlayMinutes]++;
    machst:


    new str[64];
    format(str, sizeof(str), "Payday: %d/60", PlayerInfo[i][pPlayMinutes]);
    PlayerTextDrawSetString(i, PayDayTD[i], str);



    Und dort wo du
    PlayerInfo[i][pPlayMinutes] = 0;
    machst:
    PlayerTextDrawSetString(i, PayDayTD[i], "Payday: 0/60");



    Kommst du mit dem Erstellen der Textdraws zu Recht?

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Also ich habe jetz bei OnPlayerConnect das hier:


    PlayerTextDrawShow(playerid,Payday[playerid]);
    ich weiß aber jetzt nicht wie ich das mit den PlayerTextDrawString mache

    Mit freundlichen Grüßen,
    rndy

  • Das habe ich dir doch im Post drüber erklärt.
    Suche einfach nach den beiden Zeilen, und füge jeweils drunter das ein, was ich dazugeschrieben habe.


    Erstellen kannst du das Textdraw ja gleich mit "Payday: 0/60", oder du machst bei OnPlayerConnect noch:
    PlayerTextDrawSetString(playerid, Payday[playerid], "Payday: 0/60");

  • Zeile (4330) : Ungültiges Array (kein Array?): "Payday"
    Zeile (4330) : Befehl hat keinen Sinn
    Zeile (4330) : Erwartete Zeichen ";", aber gefunden "]"
    Zeile (4330) : Ungültiger Befehl
    Zeile (4330) : Zuviele Fehler in einer Zeile


    PlayerTextDrawSetString(playerid, Payday[playerid], "Payday: 0/60"); //4330
    PlayerTextDrawShow(playerid,Payday[playerid]); // 4331

    Mit freundlichen Grüßen,
    rndy

  • ähm.. Zeile (6229) : Array-Index fehlt (bspw. Array[1], Name: "Payday")
    Zeile (6230) : Falscher Variablentyp als Parameter (Parameter #1)
    Zeile (6231) : Falscher Variablentyp als Parameter (Parameter #1)
    Zeile (6232) : Falscher Variablentyp als Parameter (Parameter #1)
    Zeile (6233) : Falscher Variablentyp als Parameter (Parameter #1)
    Zeile (6234) : Falscher Variablentyp als Parameter (Parameter #1)
    Zeile (6235) : Falscher Variablentyp als Parameter (Parameter #2)



    Payday = TextDrawCreate(8,300,"PayDay: %i/60"); // 6229
    TextDrawFont(Payday,1);
    TextDrawAlignment(Payday,0);
    TextDrawLetterSize(Payday,0.500000,0.999990);
    TextDrawSetProportional(Payday,1);
    TextDrawSetShadow(Payday,1);
    TextDrawShowForPlayer(playerid,Payday); // 6235
    hab versucht hier [playerid] einzubauen nur bei mir gings nicht .. sorry


    und


    Zeile (57648) : Unbekannte Variable : "PayDayTD"
    Zeile (57648) : Befehl hat keinen Sinn
    Zeile (57648) : Erwartete Zeichen ";", aber gefunden "]"
    Zeile (57648) : Ungültiger Befehl
    Zeile (57648) : Zuviele Fehler in einer Zeile


    PlayerTextDrawSetString(i, PayDayTD[i], "Payday: 0/60"); //57648

    Mit freundlichen Grüßen,
    rndy

  • Payday[playerid] = CreatePlayerTextDraw(playerid, 8, 300, "PayDay: %i/60");
    PlayerTextDrawFont(playerid, Payday[playerid], 1);
    PlayerTextDrawAlignment(playerid, Payday[playerid], 0);
    PlayerTextDrawLetterSize(playerid, Payday[playerid], 0.500000, 0.999990);
    PlayerTextDrawSetProportional(playerid, Payday[playerid], 1);
    PlayerTextDrawSetShadow(playerid, Payday[playerid], 1);
    PlayerTextDrawShow(playerid, Payday[playerid]);

  • hab die letzen Errors selbst erledigt aber mir wird immernoch Ingame angezeigt %d / 60 keine Zahl...


    Wie soll dir den eine Zahl angezeigt werden wenn er keine bekommt? Du muss es mit einem String machen


    Beispiel:
    for(new i=0; i < MAX_PLAYERS; i++)
    {
    new string[68];
    format(string,sizeof(string),"Payday %d/60", sInfo[i][PAYDAYTIME]);
    PlayerTextDrawSetString(i, Payday[i], string);
    }


    Du musst dann aber auch eine Variable erstellen in der die Zeit in einem Timer hochgezählt wird und kannst es dementsprechend so wie in dem Beispiel anzeigen lassen.


    MfG

  • Manche PayDay Draws überspielen sich oder wenn ein anderer User auf den Server kommt überlappt sich das z.B PayDay: 6/60 und ein User kommt on steht über der 6/60 z.B 12/60

    Mit freundlichen Grüßen,
    rndy

  • Manche PayDay Draws überspielen sich oder wenn ein anderer User auf den Server kommt überlappt sich das z.B PayDay: 6/60 und ein User kommt on steht über der 6/60 z.B 12/60


    Ne, für jeden Spieler wird ja ein eigenes Textdraw erstellt da [playerid], ansonsten würde es.
    Musste einfach noch bei OnPlayerDisconnect noch das textdraw hiden (Verstecken) lassen.