Offline Ban Problem

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,


    ich habe ein Problem mit meinem Offlineban-Command.


    Und zwar werden die Werte zwar in die Userdatei geschrieben, ich möchte allerdings, dass die bereits vorhandenen Werte aus der Datei ausgelesen werden und sich die Werte: Banned, BanFrom, BanReason nur aktualisieren.
    Denn jetzt wird die ganze File gelöscht und nur die neuen Dateien werden reingeschrieben.


    ocmd:alock(playerid,params[])
    {
    if (PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid,COLOR_GREY,"Du bist kein Administrator!");
    new acc[64], string[256],giveplayer[32],reason[128], sendername[MAX_PLAYER_NAME];
    if(sscanf(params,"s[32]s[128]",giveplayer,reason)) return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /alock [Spieler] [Grund]");
    format(acc,sizeof(acc),"/Accounts/%s.ini",giveplayer);
    if(!fexist(acc)) {
    format(string,sizeof(string)," Der Account von %s existiert nicht!",giveplayer);
    SendClientMessage(playerid,COLOR_GRAD2,string);
    return 1;
    }
    new File:banaccount = fopen(acc,io_write);
    fwrite(banaccount,"Banned=1\n");
    GetPlayerName(playerid,sendername,sizeof(sendername));
    format(string, sizeof(string), "BanFrom=%s\n",sendername);
    fwrite(banaccount,string);
    format(string, sizeof(string), "BanReason=%s\n",reason);
    fwrite(banaccount,string);
    fclose(banaccount);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s gebannt, Grund: %s",giveplayer,sendername, reason);
    SendClientMessageToAll(COLOR_LIGHTRED,string);
    format(string, sizeof(string), "[Bann:A]: Der Account von %s wurde durch %s gesperrt, Grund: %s", giveplayer, sendername, reason);
    SaveToFile("Adminlog",string);
    return 1;
    }


    }


    Kann mir jemand helfen?
    //Edit: Unnötige Zeile entfernt


    Grüße,
    tonyalva

  • Empfehlung: Benutze DINI, damit wirst du nicht soviele Probleme haben, denn da könntest du dini_IntSet("Banned",1) machen und das wäre leichter als dein derzeitiges.


    Hey,


    naja möchte jetzt nicht den ganzen GM umändern, sofern ich jedoch ein Selfmade anfange, werde ich dies wohl machen.
    Hat jemand eine Lösung für dieses System?


    Grüße,
    tonyalva

  • So,


    habe es nun auf Dini umgeschrieben, die Werte werden auch gespeichert, allerdings wird das Passwort vom gebannten Account verändert.
    In der .ini steht es noch richtig, allerdings kann man sich damit nicht mehr einloggen?
    Das Passwort wird also ungültig angezeigt, jedoch nur bei offline gebannten Accounts.


    Weißt jemand, wie ich dies lösen kann?


    //Edit: Rechtschreibung und Beschreibung angepasst


    //Edit²: So habe jetzt mal einen "Offlinewarn" erstellt, der Wert wird mit 1 addiert, aber wieder der gleiche Fehler, das Passwort wird einfach geändert.
    Kann es daran liegen, dass die Daten dann mit dem Editor alle untereinander liegen?
    Sonst sind sie alle nebeneinander, also z.B pKey=TestpLevel=X usw.


    //Edit: Habe jetzt mal weiter geschaut und nach pKey gesucht, allerdings verändert sich dieser nirgentswo.
    Bei jedem Command, bei dem ich mit dini einen Wert verändere, ist das Passwort nicht mehr gültig.
    Es steht dann trotzdem in der Userfile.ini.
    Auch wenn ich dieses Passwort dann manuell ändere, geht es trotzdem nicht.
    Ich habe keine Ahnung, wieso das so nicht klappt, ich verzweifel da förmlich dran :P


    Grüße,
    tonyalva

    3 Mal editiert, zuletzt von tonyalva ()