[Wichtig] Frage zum 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 :D
    Da es bei meinem PayDay System so ist, dass ale Spieler mit einem mal PayDay haben, wollte ich mal fragen,

    Wie ich es machen ann, dass jeder Spieler seinen eigenen Payday immer nach genau 1 Stunde Spielzeit erhält.

    Der Counter für den Payday soll auch dach Server Restart und natürlich relogg auch da weiterlaufen, wo er geende hat.

    Ich hoffe ihr könnt mir helfen es ist nähmlich wichtig ;)

    mfG

  • Selfmade natürlich,
    siehe Signatur. Es geht halt nur um den Timer was ich damit machen muss, dass er für jeden Spieler einzelln ist und nicht für alle und dass er für die Spieler indivduell gespeichert wird.

  • Du hast ja bestimmt schon einen Timer für die Spieler das sie alle jede Stunde payday bekommen.


    und bestimmt heißt dein forward auch forward Payday();


    Wenn ja musst du eigentlich nur folgendes machen:


    forward payday();
    ändern in forward payday(playerid);
    sowie dann auch den dazugehörigen public.


    Dann gehe ich mal davon aus hast du für deinen Payday bestimmt einen Timer der jede Stunde public payday aufruft.
    Diesen stellst du einfach auf 1 Minute um und setzt eine Variable rein. z.B.
    SetPVarInt(playerid, "Payday", GetPVarInt(playerid, "Payday") +1); //Setzt die variable "payday" immer um 1 höher bei jedem aufruf des timers
    und dann machst du dies:


    public Payday(playerid)
    {
    SetPVarInt(playerid, "Payday", GetPVarInt(playerid, "Payday") +1);
    if(GetPVarInt(playerid, "Payday") == 60)
    {
    DeletePVar(playerid, "Payday");
    //Restcode des Paydays


    Warum PVars benutzen? Es ist nach sagen und höhren besser als z.B. dies:
    new Payday[MAX_PLAYERS]; //usw...^^


    Ich hoffe du konntest es verstehen..... es ist schon etwas spät :S


    Speichern im Account:
    Zum speichern fragst du einfach ab wo der spieler gerade steht mit der variable Payday. GetPVarInt(playerid, "Payday");
    und speicherst dies dan in den account.
    Beim Connecten ladest du dies einfach wieder und setzt die Variable Payday mit SetPVarInt(playerid, "Payday", strval(tmp)); //Oder so^^ rein und zack kann mann nach einem gmx oder sonstiges dort weiter spielen und mann bekommt seinen payday immer pünktlich ^^
    /Edit: Speichern im Accounts vergessen..


    Einmal editiert, zuletzt von [GSF]Zunno ()

  • hhm ok
    eine Frage ist noch wie setzte ich das
    SetPVarInt(playerid, "Payday", GetPVarInt(playerid, "Payday") +1);
    in meinen Timer

    Code
    SetTimer("payday",60000,1); //Auf 1 Minute
  • Das musst du in deinem Public einfügen. Ambesten ganz oben.


    Also so:
    public Payday(playerid)
    {
    SetPVarInt(playerid, "Payday", GetPVarInt(playerid, "Payday") +1);
    if(GetPVarInt(playerid, "Payday") == 60)
    {
    SendClientMessage(playerid, 0xFF0000AA, "Herzlichen Glückwunsch zu deinem Payday..!");
    }
    return 1;
    }


    So als kleines Beispiel^^

  • Ahh verstehe
    Wenn der Timer abläuft (in einer Minute) Setzt der Timer die Varialbe auf +1.
    Wenn Aber die Variable 60 Ist kommt der Payday und die Variable wird zurück gesetzt.
    Muss ich den TImer dann nicht auch noch mit (playerid) oder ähnlichem machen oder ist das egal?
    mfG

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