Wie kann ich einem Spieler etwas 24 stunden oder mehr verbieten ???

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 undzwa habe ich etwas bestimmtes vor... aber ich weis nicht wie ich einem Spieler etwas eine bestimmte anzahl an tagen oder stunde was verbieten kann..


    zuerst setzte ich von einem spieler perlauben auf 24
    PlayerInfo[playerid][perlauben] = 24)


    und z.b. wen er ein befehl macht das ich ihm eine vorgabe gebe..


    if (PlayerInfo[playerid][perlauben] == 0)
    So könnte ich es ja machen..
    Und jetz müsste ich nurnoch wissen wie ich es machen kann das wen der Spieler perlauben höher als 0 hat das es jede stunde minus 1 genommen wird.. und das wäre ja kein Problem :D aber was ist wen er off ist ??
    Naja ich wäre euch echt dankbar...

    Mein I-Net ^^

  • Wie wärs wenn du das Datum und die Uhrzeit herausfindest.
    Dann speicherst du das Datum und die Uhrzeit in seiner Userdatei und machst beim Command dann etwa sowas:



    new
    CurrentDate,
    CurrentTime;


    CurrentTime = gettime();
    CurrentDate = getdate();


    if(PlayerInfo[playerid][pDatum] == CurrentDate || PlayerInfo[playerid][pTime] > CurrentTime)) { return SendClientMessage(playerid, COLOR_RED, "Geht nur alle 24 Stunden."); }




    Keine Ahnung ob es geht, habe es gerade im Browser gemacht. Also keine Garantie ;).

    ...

  • Nimm eine Variable (z.B. userDisallowTime[playerid]) und schreib dort die Minuten rein. Wenn der Spieler off geht (OnPlayerDisconnect...), speicher den Wert dieser Variable in seine Userfile/DB. Beim Verbinden (OnPlayerConnect oder besser bei OnPlayerRequestClass...) lädst du diesen Wert wieder in diese Variable, fertig.


    Mach einen Timer, der minütlich Aufgerufen wird und setz dort u.a. If (IsPlayerConnected(playerid) && userDisallowTime[playerid]>0) {userDisallowTime[playerid]--;}


    Fertig ist der Lack ^^

  • Ok, du möchtest reale 24 Stunden abzählen und keine gespielten 24 Stunden? Wo ist da das Problem?
    Wenn du einem Spieler etwas verbietest, nimm 4 Variablen (z.B. Tag, Monat, Stunde, Minute). Dort schreibst du die Werte rein und speicherst diese 4 Werte in seine Userfile/DB.
    Wenn der Spieler am nächsten Tag wieder IG kommt, frag im Script beim Login diese Werte ab.


    z.B.
    If (aktuellerTag>userTag[playerid] && (aktuelleStunde>userStunde[playerid] || (aktuelleStunde==userStunde[playerid] && aktuelleMinute>userMinute[playerid]))) <--- erlaube Spieler wieder diese Funktion


    Nachtrag:
    Kleiner Fehler bei Monatsanfang. Du kannst natürlich noch mit Monat abfragen, was besser wäre als Zusatz. ^^