Spieler wird nicht gebannt

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 habe mir einen /ban Befehl erstellt, jedoch wird der Spieler nicht gebannt.
    Allerdings wird der Ban-Grund und der Name des Admins, der den Spieler gebannt hat, gespeichert.
    Das finde Ich bisschen komisch.
    Ich habe überall geguckt und keine Fehler gefunden, kann mir einer helfen?



    //Bei PasswortRichtig
    pInfo[playerid][pBan] = cache_get_field_content_int(0, "Gebannt", dbhandle);


    //Bei OnPlayerDisconnect
    format(query, sizeof(query), "UPDATE user SET Gebannt='%i', BanName='%s', BanReason='%s' WHERE id='%i'", pInfo[playerid][pBan], pInfo[playerid][pBanName], pInfo[playerid][pBanReason]);


    mysql_function_query(dbhandle, query, false, "", "");



    ocmd:ban(playerid, params[])
    {
    if(!IsPlayerAnAdmin(playerid, 3))return 0;
    new pID, reason[64], string[128];
    if(sscanf(params, "us[64]", pID, reason))return SendClientMessage(playerid, COLOR_GRAY, "Tippe: /ban [Spieler-ID] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_RED, "FEHLER:"HTML_WHITE" Dieser Spieler ist Offline.");
    format(string, sizeof(string), "AdmCmd: %s wurde vom Server gebannt. Grund: %s", GetSpielerName(pID), reason);
    SendMessageToAll(COLOR_RED2, string);
    format(string, sizeof(string), "* %s %s hat %s vom Server gebannt. Grund: %s", GetAdminRang(playerid), GetSpielerName(playerid), GetSpielerName(pID), reason);
    SendAdminMessage(1, COLOR_WHITE, string);
    format(pInfo[pID][pBanName], 25, GetSpielerName(playerid));
    format(pInfo[pID][pBanReason], 25, reason);
    new query[256];
    format(query, sizeof(query), "UPDATE user SET BanName='%s', BanReason='%s' WHERE id='%i'", pInfo[pID][pBanName], pInfo[pID][pBanReason], pInfo[pID][pDatenBankID]);
    mysql_function_query(dbhandle, query, false, "", "");
    pInfo[pID][pBan] = 1;
    //Habe Kick(pID); rausgenommen, da Ich hierbei die Kick-Nachricht nicht erhalte.
    return 1;
    }


  • Du übergibst nur pBan pBanName und pBanReason die variable für die ID in der datenbank fehlt. Sollte dir auch die mysql log sagen wenn nicht dann das loggen aktivieren. Das mit Kick wurde absichtlich so geändert deshalb einfach hier die include verwenden. Kick/Ban Fix

  • Wenn du den Spieler updatest wieso dann nicht Gebannt rein geschrieben? Die Veriable brauchst du dort eigentlich nicht auf 1 setzen, ich würde es sofort in die Datenbank setzen und den Account updaten lassen... Teste es mal so...


    Das mit dem Kicken würde ich mit ner eigenen Funktion machen :)


    mach dir das so


    KickPlayer(playerid);


    forward KickPlayer(playerid);
    public KickPlayer(playerid);
    {
    // Timer von ner millisekunde oder ner halben sekunde
    return 1;
    }


    und in den Timer machst dann Kick(playerid);