Fraktionssperre Automatisch Löschen nach zeit

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
  • Jo Moin Erstma!


    Ich würde gern Die Fraktionssperre automatisch nach ner gewissen zeit löschen lassen.
    Wäre sehr nett wenn ihr mir helft.


    [pwn=30008]
    if(strcmp(cmd,"/fraksperre",true) == 0)
    {
    if(pDaten[playerid][AdminLevel]>= 1336)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /Fraksperre [playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, pName, sizeof(pName));
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(pDaten[giveplayerid][FrakSperre]==1)
    {
    format(string, sizeof(string), "Du hast %s die Fraksperre Aufgehoben", giveplayer);
    SendClientMessage(playerid,COLOR_BLUE,string);
    format(string, sizeof(string), "Deine Fraksperre wurde von %s aufgehoben.", pName);
    SendClientMessage(giveplayerid,COLOR_RED,string);
    pDaten[giveplayerid][FrakSperre]= 0;
    }
    else if(pDaten[giveplayerid][FrakSperre]==0)
    {
    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "Du hast %s die Fraksperre gegeben. Datum: %s.%s.%s", giveplayer, month,day,year);
    SendClientMessage(playerid,COLOR_BLUE,string);
    format(string, sizeof(string), "Du hast eine Fraksperre bekommen von %s. Datum: %s.%s.%s", pName, month,day,year);
    SendClientMessage(giveplayerid,COLOR_RED,string);
    }
    }//not valid id
    }
    }
    else SendClientMessage(playerid,COLOR_RED," Du hast keine Rechte!");
    return 1;
    }[/pwn]



    P.S. Formatierungsprobleme

    Einmal editiert, zuletzt von MASYNO ()

  • Du musst mit dem Unix Timestamp arbeiten.
    Entnehme dir mal ein Bild aus dem Bespiel.


    new fsperre[MAX_PLAYERS];


    if(!strcmp(cmd, "/fsperre", true))
    {
    new userid[20], time[20];
    userid = strtok(cmd, idx), time = strtok(cmd, idx);
    if(!strlen(userid))return 1;
    new id=strval(userid), t = strval(time);
    fsperre[id] = gettime() + (60 * t);
    // Sperre wird in Minuten gerechnet.
    return 1;
    }
    if(!strcmp(cmd, "/checkfsperre", true))
    {
    if(fsperre[playerid] > 0 && fsperre[playerid] > gettime()) //sperre vorhanden
    else //keine sperre vorhanden
    return 1;
    }


    Dieser Quellcode wurde von mir am Handy geschrieben, falls Fehlet enthalten sein sollte.


    mfg :thumbup:

  • Das heißt also ich muss nur die Zeit in der DB eintragen und dan abfragen ob das Datum vorhanden ist?? Bzw die Zeit? Könnte mir jmd den code anpassen THX. Und danke Michael.


    Achja und würde es dann gern noch als Funktion haben z.B. setFsperre(playerid,14)
    Die 14 steht für die tage


    So ich hab mir mal die Function setFsperre Erstellt, nun bekomm ich immer wieder errors :


    Code

    Function setFSperre(pid, time)
    {
    new giveplayer, fsperre, time, t = strval(time), query[128];
    GetPlayerName(pid, giveplayer, sizeof(giveplayer));
    fsperre = gettime() + (60 * t);
    format(query,sizeof(query),"UPDATE 'accounts' SET Fraksperre = '%d' WHERE Name = '%d'",fsperre , giveplayer);
    mysql_query(query);
    }


    Code
    (12289) : warning 219: local variable "time" shadows a variable at a preceding level
    (30017) : error 017: undefined symbol "time"
    (30023) : error 017: undefined symbol "time"
    (30051) : error 017: undefined symbol "time"

    3 Mal editiert, zuletzt von MASYNO ()

  • Steht in den Klammern.


    Ich schreib hier nochmal alle Sachen:


    /fraksperre

    [pwn=30012]
    if(strcmp(cmd,"/fraksperre",true) == 0)
    {
    if(pDaten[playerid][AdminLevel]>= 1336)
    {
    tmp = strtok(cmdtext, idx);
    time = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /Fraksperre [playerid] [Zeit in Minuten]");
    return 1;
    }
    if(!strlen(time))
    {
    SendClientMessage(playerid, COLOR_GREY, "Benutzung: /Fraksperre [playerid] [Zeit in Minuten]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, pName, sizeof(pName));
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(pDaten[giveplayerid][FrakSperre]>=1)
    {
    format(string, sizeof(string), "Du hast %s die Fraksperre Aufgehoben", giveplayer);
    SendClientMessage(playerid,COLOR_BLUE,string);
    format(string, sizeof(string), "Deine Fraksperre wurde von %s aufgehoben.", pName);
    SendClientMessage(giveplayerid,COLOR_RED,string);
    pDaten[giveplayerid][FrakSperre]= 0;
    }
    else if(pDaten[giveplayerid][FrakSperre]==0)
    {
    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "Du hast %s die Fraksperre gegeben. Datum: %s.%s.%s", giveplayer, month,day,year);
    SendClientMessage(playerid,COLOR_BLUE,string);
    format(string, sizeof(string), "Du hast eine Fraksperre bekommen von %s. Datum: %s.%s.%s", pName, month,day,year);
    SendClientMessage(giveplayerid,COLOR_RED,string);
    setFSperre(giveplayerid, time);
    }
    }//not valid id
    }
    }
    else SendClientMessage(playerid,COLOR_RED," Du hast keine Rechte!");
    return 1;
    }
    [/pwn]


    Meine Function setFSperre
    [pwn=12287]
    Function setFSperre(pid, time)
    {
    new giveplayer[MAX_PLAYER_NAME], fsperre, time, query[128];
    GetPlayerName(pid, giveplayer, sizeof(giveplayer));
    fsperre = gettime() + (60 * time);
    format(query,sizeof(query),"UPDATE 'accounts' SET Fraksperre = '%d' WHERE Name = '%d'",fsperre , giveplayer);
    mysql_query(query);
    }
    [/pwn]


    P.S. Nurnoch 3 Errors und 1 Warning


    Code
    (12289) : warning 219: local variable "time" shadows a variable at a preceding level
    (30017) : error 017: undefined symbol "time"
    (30023) : error 017: undefined symbol "time"
    (30051) : error 017: undefined symbol "time"
  • format(query,sizeof(query),"UPDATE 'accounts' SET Fraksperre = '%d' WHERE Name = '%d'",fsperre , giveplayer);


    zu


    format(query,sizeof(query),"UPDATE 'accounts' SET Fraksperre = '%d' WHERE Name = '%s'",fsperre , giveplayer);


    mfg :thumbup: