Timer der auch wenn man nicht Online ist läuft?

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
  • Okay, habe nun das hier eingefügt.
    stock mktime(hour,minute,second,day,month,year)
    {
    new timestamp2;


    timestamp2 = second + (minute * 60) + (hour * 3600);


    new days_of_month[12];


    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) {
    days_of_month = {31,29,31,30,31,30,31,31,30,31,30,31}; // Schaltjahr
    } else {
    days_of_month = {31,28,31,30,31,30,31,31,30,31,30,31}; // keins
    }
    new days_this_year = 0;
    days_this_year = day;
    if(month > 1) { // No January Calculation, because its always the 0 past months
    for(new i=0; i<month-1;i++) {
    days_this_year += days_of_month[i];
    }
    }
    timestamp2 += days_this_year * 86400;


    for(new j=1970;j<year;j++) {
    timestamp2 += 31536000;
    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp2 += 86400; // Schaltjahr + 1 Tag
    }


    return timestamp2;
    }


    stock Now()
    {
    new hour,minute,second,year,month,day;
    gettime(hour, minute, second);
    getdate(year, month, day);
    return mktime(hour,minute,second,day,month,year);
    }


    Will jetzt eine Fraksperre machen mit 25 Stunden Sperre, habe mir sowas jetzt ausgedacht (90000 Sekunden) aber die laufen auch nur ab wenn man online ist. Wie muss ich das jetzt ändern?
    SetPlayerInterior(playerid,0);
    new rand = random(sizeof(gInviteSpawns));
    SetPlayerPos(playerid, gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]); // Warp the player
    SetPlayerFacingAngle(playerid, gInviteSpawns[rand][3]);
    SetPlayerCameraPos(playerid,gInviteSpawns[rand][0] + 3, gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
    SetPlayerCameraLookAt(playerid,gInviteSpawns[rand][0], gInviteSpawns[rand][1], gInviteSpawns[rand][2]);
    FreezePlayer(playerid);
    SelectChar[playerid] = 255;
    Eingeladen[playerid] = 0;
    SelectCharID[playerid] = PlayerInfo[playerid][pMember];
    SelectCharPlace[playerid] = 1;
    PlayerInfo[playerid][pFrakSperre] = 90000;
    PlayerInfo[playerid][pModel] = ChosenSkin[playerid];
    PlayerInfo[playerid][pChar] = ChosenSkin[playerid];
    SendClientMessage(playerid, COLOR_GRAD5, " Du kannst mit /help deine neuen Fraktionsbefehle betrachten");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "--------------->Du hast nun 25 Spielstunden eine Fraktionssperre!<---------------");
    SendClientMessage(playerid, COLOR_LIGHTRED, "* Benutze 'weiter' um dir den Charakter auszusuchen den du gerne benutzen möchtest.");
    SendClientMessage(playerid, COLOR_LIGHTRED, "* Wenn du den richtigen gefunden hast, gib 'fertig' ein.");
    }

  • Onplayerdisconnect musst du doch arbeiten !!


    8| erstmal überlegen das posten. Er sollte erstmal eine Variabel anlegen welche er auch speichert und ladet.
    Dan bei dem jeweiligen ereignis zieht er mit gettime das datum raus. welches er mit der anzahl der gewünschten Zeit addiert.
    Diese er auch speichert und dies sollte er auch zum schluss wenn der spieler sich auch einloggt wieder abfragen oder ein timer machen der dies checkt jedoch ist das nicht so sinnvoll. Beim einloggen sollte er das datum vergleichen welches er auch noch speichern sollte und die varaibel auf 0 setzen.