PayDay

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 will jetzt dann ein PayDaysystem einfügen.


    Ich möchte gerne dass jeder seine eigene Zeit hat und diese bis 60 geht.


    Wie mache ich das am besten?
    Immer einen Minutentimer laufen lassen, der mir nach jeder Minute den Wert um 1 hochsetzt?


    Kann das zu Laggs führen? Wenn jeder einen Timer laufen hat?

  • [ SCRIPTING ] Individuellen Payday
    [ SCRIPTING ] Individuellen Payday Scripten [Updated]


    Zu Lags führt das nicht, ich würde trotzdem lieber einen Timer nehmen, der nicht wie in den Links oben minütlich für alle Spieler prüft, sondern eben über die Variable.


    EDIT:
    So wie hier:
    Einfaches PayDay System
    Nur nicht mit dini sondern mit Variablen.


    Siehe einfach:
    PayDay

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Wie die Person über mir schon gesagt hat würde ein Timer völlig ausreichen.
    Wenn dieser tickt, gibst du halt jedem Spieler der online ist eine Minute dazu. Ist ja nicht gerade schwierig. ;)


    Für jede Person einen eigenen zu verwenden wäre schlicht Verschwendung von Resourcen.

  • Es ist besser mit einem Timer der jede Minute durch alle Spieler loopt und den Zähler hoch setzt, als einen Timer pro Spieler, der eine Stunde lang ist.


    So ist es auch individuell, da jeder einen anderen Zähler hat. Außerdem läuft dann nur 1 Timer, und keine X Timer.

  • aber der Timer wird schon für jeden Spieler einzeln gesetzt?
    Also der fangt für jeden Spieler in dem Moment wo das aufgerufen wird an:
    sInfo[playerid][p_timer] = SetTimerEx("PaydayTimeCheck",60000,1,"i",playerid);

  • Oh, stimmt, das ist natürlich schlecht in dem Tutorial, darauf hab ich gar nicht geachtet. Kommt davon wenn man sich auf die Korrektheit verlässt.


    Mache es so:
    OnGameModeInit:
    SetTimer("PayDay", 60000, true);


    Und das Public:
    forward PayDay();
    public PayDay()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
    payDayCount[i]++;
    if(payDayCount[i] >= 60)
    {
    //PayDay geben, für i.
    payDayCount[i] = 0;
    }
    }
    }
    return 1;
    }


    Und unter den Includes:
    new payDayCount[MAX_PLAYERS];


    Beim Login den payDayCount laden und beim Verlassen speichern.