Jede Stunde im Public abfragen

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 leute, ich habe eine kleine Frage.


    Ich wollte ein Payday system machen, wo man jede 60 minuten (sprich 1. Stunde) payday bekommt.
    Ich wollte den Payday mit der Spielzeit verknüpfen, sodass wenn der Spieler 60 , 120, 180 usw minuten voll hat, dass dann der Payday erscheint.
    Doch wie stelle ich dies an? gibt es eine Funktion zum überprüfen der 60 Minuten?


    Hier ist mein Anfangscode:



    SetTimerEx("UpdateSpielzeit",60000,1,"i",playerid);


    public UpdateSpielzeit(playerid)
    {
    SpielerInfo[playerid][Spielzeit] += 1;
    if
    }



    WIe kann ich diese vollen minuten abfragen?


    mfg Multi

    526C4Hj.png Mit freundlichen Grüßen,
    Noneatme

  • Eigendlich ganz einfach
    du machst ein timer der jede sekunde ein Funktion auf ruft z.B.
    SetPayDay
    nun must du in diesen Callbalk
    public SetPayDay(playerid)


    jede sekunde ja was setzten also


    PayDayTime += 1 oder -= 1 ist dir überlassen von wo du zahlst


    so jetzt setzt der immer wennd er timer ab lauft oaydaytiem 1 nach oben oder runter
    du wilst ja jede std 1 payday geben richtig?
    public SetPayDay(i)
    {
    new string[124];
    new checks = pDaten[i][Gehalt];
    new lohn = pDaten[i][fLohn];
    if(pDaten[i][PayDay] >= 1)
    {
    pDaten[i][PayDay] -= 1;//hier wird imer ein abgezogen im diesen bespiel
    }
    else if(pDaten[i][PayDay] <= 0)
    {
    SendClientMessage(i,0xFFFF00FF,"Payday!");
    pDaten[i][PayDay] = 3600;//hier wird wieder auf 3600 sek gesetzt 1std das muste noch mal ürgend wo im script machen wo es sinnvoll ist
    // hier kommt dein Funktion rein
    }
    }+
    Ich hoffe ich konnt helfen

  • achso ja ich vestehe,
    grad aufm letzten gedanke^^^


    einfach noch eine Variable die auf 60 gesetzt wird, jede minute -1 abgezogen wird, und wenn sie auf 0 ist, dann der Payday und wird wieder auf 60 gesetzt :D
    danke für die Hilfe. ich versuchs mal.


    mfg

    526C4Hj.png Mit freundlichen Grüßen,
    Noneatme

  • Erstell einen Timer und eine Abfrage.


    Also etwa so.


    pZeit im enum.



    SetTimerEx("UpdateSpielzeit",60000,1,"i",playerid);



    public UpdateSpielzeit(playerid)
    {
    if(SpielerInfo[playerid][pZeit] == 1)
    {
    //Was er bekommt wenn es die 60 Minuten sind.
    SpielerInfo[playerid][pZeit] = 2; //Setzt Spieler seine "Zeit" auf 120 min
    }
    if(SpielerInfo[playerid][pZeit] == 2)
    {
    //was er kriegt wenn es 120 min sind.
    SpielerInfo[playerid][pZeit] = 3; //Setzt den Spieler seine "Zeit" auf 180 Min.
    }
    return 1;
    }


    lg


    pS


  • SetTimerEx("UpdateSpielzeit",60000,1,"i",playerid);
    Dir ist hoffentlich klar, dass du die Zeit in Millisekunden angeben musst oder?
    Also müsste es so lauten:
    SetTimerEx("UpdateSpielzeit",3600000,1,"i",playerid);