PayDay System Prob.

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
  • Also folgendes Problem:


    Ich möchte ein PayDay System machen, aber nicht jede stunde, sondern einfach so,


    dass die Zeit bis zum PayDay gespeichert wird.



    Folgendes:


    SetTimerEx("PayDayAbzug", 60000, true, "i", playerid);


    Ich überprüfe jede Minute ob PayDay ist mit dem Befehl.


    Und den PayDay sette ich nach


    SetTimerEx("PayDayForPlayer", PlayerInfo[playerid][pPayDayTime] * 1000 * 60, true, "i", playerid);



    PayDay Abzug: https://pastebin.com/TQnGiYEf


    Nach dem PayDay wird der Wert dann auf 1 Gesetzt (da man ja bei 60 Minuten PayDay bekommt)



    Problem ist jedoch, das dann SetTimerEx("PayDayForPlayer", PlayerInfo[playerid][pPayDayTime] * 1000 * 60, true, "i", playerid);


    Mal 1 ausgeführt wird also bekomme ich jede Minute payday.



    [pwn]public PayDayAbzug(playerid){if(PlayerInfo[playerid][pPayDayTime] >= 60)



    Auf 60 Setzten kann ichs auch nicht, da ich ja dann bei PayDayAbzug payday bekomme.


    Pro PayDayAbzug bekomme ich dann ja +1 PayDayTime, welcher natürlich bei


    public PayDay wd auf 1 gesetzt wurde, da ich ihn ja nicht auf 0 setzten kann,


    da ich nicht 0 * 1000 nehmen kann...


    Hab schon viel nachgedacht und bin irgendwie ein bisschen durcheinander gekommen,


    bräuchte da mal ein bisschen hilfe xd












    hier ist btw noch der payday public


    PayDay Public: https://pastebin.com/J7657Xnn
















    @Jeffry > Neues Thema

  • Pastebin.com


    Du kannst es aber auch hier sauber posten (was besser ist).
    Einfach den Code aus der .pwn Datei heraus kopieren und hier nicht den WYSIWYG Editor nutzen, sondern den Code-Editor (ersten Button anklicken).
    Dann den Code zwischen [pwn][/pwn] einfügen, und schon sieht es sauber aus.
    Lediglich bearbeiten solltest du den Post dann nicht mehr, sonst steht alles in einer Zeile.


    Alternativ, nutze den "Code"-Tag (</> Zeichen) und wähle den C-Code, dann geht auch die Bearbeiten Funktion, sowie der WYSIWYG Editor.

  • Das kannst du wesentlich einfacher machen, indem du einfach einen einzigen Timer bei OnGameModeInit startest, und diesen immer für alle Spieler ausführst:
    public PayDayAbzug()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
    PlayerInfo[i][pPayDayTime]++;
    if(PlayerInfo[i][pPayDayTime] >= 60)
    {
    //PayDayForPlayer(i);
    PlayerInfo[i][pPayDayTime] = 0;
    SendClientMessage(i,-1,"yo-ho hahaha du hast payday yoo");
    }
    else
    {
    SendClientMessage(i,-1,"get schwiftyyy alter du hast eine minute");
    }
    }
    return 1;
    }


    Und bei OnGameModeInit einfach nur:
    SetTimer("PayDayAbzug", 60000, true);

  • Das kannst du wesentlich einfacher machen, indem du einfach einen einzigen Timer bei OnGameModeInit startest, und diesen immer für alle Spieler ausführst:
    public PayDayAbzug(){ for(new i = 0; i < MAX_PLAYERS; i++) { if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue; PlayerInfo[i][pPayDayTime]++; if(PlayerInfo[i][pPayDayTime] >= 60) { //PayDayForPlayer(i); PlayerInfo[i][pPayDayTime] = 0; SendClientMessage(i,-1,"yo-ho hahaha du hast payday yoo"); } else { SendClientMessage(i,-1,"get schwiftyyy alter du hast eine minute"); } } return 1;}


    Und bei OnGameModeInit einfach nur:
    SetTimer("PayDayAbzug", 60000, true);

    So möchte ich das ja nicht,


    das war in dem Script vorher genau so,


    aber die Zeit bis zum PayDay soll einfach gespeichert werden


    wie auf RPG oder Liberty reallife

  • Also ganz einfach:


    Ich hab eine Zeit bis zum PayDay (pPayDayTime)


    Diese möchte ich abspeichern, heißt also wenn ich z.B


    schon 35 Minuten Online bin also PayDayTime = 35,


    möchte ich wenn ich wieder online bin wieder


    35 Minuten haben, heißt also noch 25 Minuten bis zum PayDay


    Und beim payday wird das wieder auf 1(paydaytime) gesetzt

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen