Timeban Wert wird nicht gespeichtert

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
  • Guten Tag,
    ich bin derzeit dabei ein Timeban zumachen jedoch
    wird der Aktuelle Wert der Sekunden nicht gespeichert und der Bangrund auch nicht.
    Ich weiß leider nicht mehr woran es liegen kann, hier der Code:


    Logs:


    [list=1][*]enum SpielerDaten
    {
    Bangrund[30],
    tBantime,


    ocmd:tban(playerid,params[])
    {
    new pID, time , reason[128], string[256],Spielerdatei[128],timestamp;
    timestamp = gettime();
    format(string, sizeof(string), "%d",timestamp);
    print(string);
    if(SpielerInfo[playerid][Adminlevel] < 1)return SendClientMessage(playerid, RED, ""KeinAdmin"");
    if(sscanf(params,"uis",pID,time ,reason))return SendClientMessage(playerid, GRAU, "Benutze: '/tban [Spieler] [Zeit (In Stunden)] [Grund]'");
    if(Eingeloggt[pID] == 0 || IsPlayerNPC(pID))return SendClientMessage(playerid, RED, "Der Spieler ist nicht eingeloggt!");
    if(time < 1 || time > 1000)return SendClientMessage(playerid, RED, "Du kannst nur jemanden für 1-1000 Stunden bannen!");
    //if(pID == playerid)return SendClientMessage(playerid, RED, "Du kannst dich nicht selber bannen!");
    new sekunden = time * 3600;
    timestamp += sekunden;
    format(string, sizeof(string), "%d",sekunden);
    print(string);
    format(string,sizeof(string),"System: (%d)%s wurde von (%d)%s für %i Stunden gebannt. Grund: %s",pID,GetName(pID),playerid,GetName(playerid),time,reason);
    SendClientMessageToAll(RED,string);
    format(string, sizeof(string), "*** [System]: (%d)%s wurde von (%d)%s für %i Stunden gebannt. Grund: %s ***",pID,GetName(pID),playerid,GetName(playerid),time,reason);
    print(string);
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",GetName(pID));
    dini_IntSet(Spielerdatei, "tBantime", timestamp);
    format(string,sizeof(string),"%s",reason);
    dini_Set(Spielerdatei,"Bangrund",string);
    kicked[pID] = SetTimerEx("Kicken",100,0, "i", pID);
    SendClientMessage(pID, RED, ""Bannachricht"");
    return 1;
    }


    stock CreateAccount(playerid, passwort[])
    {
    new Spielerdatei[64],Datum[30];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",GetName(playerid));
    dini_Create(Spielerdatei);
    dini_IntSet(Spielerdatei,"tBantime",0);
    dini_Set(Spielerdatei,"Bangrund","");


    stock LoadPlayer(playerid)
    {
    if(Eingeloggt[playerid] == 1)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",GetName(playerid));
    SpielerInfo[playerid][tBantime]=dini_Int(Spielerdatei,"tBantime");
    strmid(SpielerInfo[playerid][Bangrund], dini_Get(Spielerdatei, "Bangrund"), false, strlen(dini_Get(Spielerdatei, "Bangrund")), MAX_PLAYER_NAME);


    stock SavePlayer(playerid)
    {
    if(Eingeloggt[playerid] == 1)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",GetName(playerid));
    dini_IntSet(Spielerdatei,"tBantime",SpielerInfo[playerid][tBantime]);
    dini_Set(Spielerdatei,"Bangrund",SpielerInfo[playerid][Bangrund]);[/list]


    Würde mich freuen wenn jemand eine Lösung weiß.


    MfG

  • Nimm diese zwei Zeilen aus SavePlayer raus, du speicherst es ja im Befehl schon direkt.


    dini_IntSet(Spielerdatei,"tBantime",SpielerInfo[playerid][tBantime]);
    dini_Set(Spielerdatei,"Bangrund",SpielerInfo[playerid][Bangrund]);


    Oder, wenn du es drin lassen willst, dann musst du im Befehl diesen beiden Variablen den Wert zuweisen.