Bann System funktioniert nicht.

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
  • Ich hab in meinem Selfmade jetzt ein Bannsystem reingemacht. Nur das funktioniert leider nicht so, wie ich das will.


    Erstmal die Spieler enum:

    Spoiler anzeigen
    enum PlayerDATA
    {
    Level,
    Admin,
    Geld,
    SpawnSkin,
    Banned
    }
    new Spieler[MAX_PLAYERS][PlayerDATA];


    Dann der Bann befehl:

    Spoiler anzeigen
    ocmd:ban(playerid, params[])
    {
    new pID, PlayerName[64], pIDName[64], Grund[128], string[256], Playerdatei[128];
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",pIDName);
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    GetPlayerName(pID, pIDName, sizeof(pIDName));
    if(Spieler[playerid][Admin] < 3) return SendClientMessage(playerid, Rot, "Du bist kein Admin!");
    if(sscanf(params, "us", pID, Grund)) return SendClientMessage(playerid, Rot, "Benutze: /ban [ID] [Grund]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, Rot, "Spieler nicht gefunden!");
    //if(playerid == pID) return SendClientMessage(playerid, Rot, "Du kannst dich nicht selbst bannen!"); // Zum Test, damit ich mich selbst bannen kann.
    format(string, sizeof(string), "%s wurde von %s gebannt. Grund: %s", pIDName, PlayerName, Grund);
    SendClientMessageToAll(Rot, string);
    SetPVarInt(pID,"Eingeloggt",0);
    SpielerSpeichern(pID);
    Kick(pID);
    return 1;
    }


    Und hier der AccountLaden stock:

    Spoiler anzeigen
    stock AccountLaden(playerid)
    {
    if(Spieler[playerid][Banned] == 1)
    {
    new string[128], PlayerName[64];
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    SendClientMessage(playerid, Rot, "_________| Info |__________");
    SendClientMessage(playerid, Rot, "| |");
    SendClientMessage(playerid, Rot, "| Du wurdest permanent |");
    SendClientMessage(playerid, Rot, "| Des Servers verwiesen |");
    SendClientMessage(playerid, Rot, "|_________________________|");
    Kick(playerid);
    format(string, sizeof(string), "%s hat versucht dem Server beizutreten, obwohl er gebannt ist.", PlayerName);
    SendClientMessageToAll(Rot, string);
    }
    new Playerdatei[128], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    Spieler[playerid][Level] = dini_Int(Playerdatei,"Level");
    Spieler[playerid][Admin] = dini_Int(Playerdatei,"Admin");
    Spieler[playerid][Geld] = dini_Int(Playerdatei, "Geld");
    Spieler[playerid][SpawnSkin] = dini_Int(Playerdatei, "SpawnSkin");
    Spieler[playerid][Banned] = dini_Int(Playerdatei,"Banned");
    SetPVarInt(playerid,"Eingeloggt",1);
    return 1;
    }



    Um zu testen hab ich mir einen "BannMe" Befehl gemacht:

    Spoiler anzeigen
    ocmd:banme(playerid, params[])
    {
    Spieler[playerid][Banned] = 1;
    SpielerSpeichern(playerid);
    return 1;
    }



    Wenn ich aber jetzt mit meinem Account (Banned ist in der *.ini auf 1 gesetzt!) auf den Server connecte, kann ich mich ganz normal einloggen, aber empfange die Bann nachricht nicht, und werde auch nicht gekickt, kann also ganz normal spielen.

    [align=center]