Premium system

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
  • Hey Leute


    Ich bin gerade an einem Premium System das man Tag weise kaufen kann^^ naja auf jeden fall wie kann ich das machen wenn zb der 15 ist und er 29 tagen gekauft hat das es auf den Nächsten Monat umspringt und die anderen zb 14 tage auf die tage drauf macht?^^



    MFG
    xDNGRSx

  • also ^^


    wenn es zb der 15 tag is also 15.01.2013 nur zb und der Spieler dann 29 PA kauft das es dann noch die vari von den tagen auf 13 setzt und bei Monat auf 2


    denn es gibt ja keine 44 Tage im Monat es muss ja auch der Monat umgeschalten werden.



    und wie scripte ich das ^^



    MFG
    xDNGRSx

  • Währe es nicht einfacher das man eine extra Variable abspeichert bei den Account z.B PremiumZeit


    und wenn man ein Premium Tage weise kaufen kann


    dann macht


    z.B
    PlayerInfo[playerid][pPremiumZeit] += num*1440; // num währe die Anzahl der Tage
    und lässt jede minute 1 von dieser Variable abziehen wenn der Spieler on ist schon hat sich das problem oder hab ich etwas falsch verstanden


    mfg
    GeForce

  • Ich versteh das auch ned so recht,
    Entweder du speicherst wie lang ers noch hat und ziehst dann immer was ab.
    Oder du errechnest mit getdate das Datum und zählst die Tage drauf. Wenn die Var dann kleiner als das jetzige getdate is, wars das mit dem Premium.
    Das Problem dabei ist, dass es am Jahreswechsel zu bugs kommen.
    Das selbe könnte man auch mit gettime machen, das läuft über das Jahr hinaus

  • Timestamp ist das Zauberwort.


    Lies den Timestamp von jetzt aus, und dann rechnest Du die Zeit in Tagen oder so in Sekunden um und addierst dieses Ergebnis zu dem aktuellen Timestamp.


    Bei einer Abfrage, ob er Premium hat, fragst Du wieder den aktuellen Timestamp ab und vergleichst ihn mit dem Timestamp, der aus aus dem vorigen Schritt resultiert.


    Ist der aktuelle Timestamp kleiner, als der gespeicherte Timestamp, hat er Premium, wenn größer, hat er keinen.


    Ein Timestamp ist eine Anzahl der Sekunden, die seit dem 1.1.1970 vergangen sind.


    Mit diesem System lässt sich auch ein Timebannsystem erstellen und ähnliches.