/ban 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
  • Guten Tag,
    wenn ich ein Spieler sperre kann er ganz einfach wieder Joinen aber laut Server-Logs wurde er in die Ban-Liste eingetragen und es ist auch in der Datenbank drinnen!


    Server-Log


    INSERT INTO `server_ban`(`typ`,`userID`,`user`,`userIP`,`reason`,`adminID`,`admin`,`adminIP`,`banTime`,`status`) VALUES('ban','353955','ServerTester','**.***.20*.80','Dies ist ein Test,'353955','ServerTester','**.***.20*.80,UNIX_TIMESTAMP(),'0');



    Name und IP-Adressen wurden zensiert


    if(strcmp(cmd, "/ban", true) == 0) {
    if(PlayerInfo[playerid][ALevel] == 500 || PlayerInfo[playerid][ALevel] == 600){
    return 1;
    }
    if(PlayerInfo[playerid][ALevel] == 1){
    SendClientMessage(playerid, COLOR_GREEN, "Du bist nicht befugt!");
    return 1;
    }
    if(SperreBan[playerid] == 1){
    SendClientMessage(playerid, COLOR_RED,"Du kannst erst jede 50 sek. bannen");
    return 1;
    }
    if(PlayerInfo[playerid][ALevel] == 0) {
    MeldungText(playerid, "Du bist nicht befugt!!", 5);
    return 1;
    }


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)){
    MeldungText(playerid, "Verwendung: /ban [playerid] [Grund]", 6);
    return 1;
    }


    new player1;
    player1 = ReturnUser(tmp);
    if(PlayerInfo[playerid][ALevel] != 2000){
    if(PlayerInfo[player1][ALevel] == 2000 || PlayerInfo[playerid][ALevel] == 2015){
    SendClientMessage(playerid, COLOR_RED, "Man bannt keine Community Leiter!");
    return 1;
    }
    }


    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' ')){
    idx++;
    }
    new offset = idx;
    new result[128];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))){
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    tmp = strtok(cmdtext, idx);


    if(IsPlayerNPC(player1)){
    SendClientMessage(playerid, COLOR_RED, "Es ist ein Bot ...");
    return 1;
    }



    if(CheckAntiWerbung2(result)) return 0;


    if(PlayerInfo[playerid][ALevel] != 2000){
    SperreBan[playerid] = 1;
    }


    PlayerInfo[player1][Team] = 0;
    PlayerInfo[player1][Leader] = 0;


    if(PlayerInfo[playerid][Team] != 21){
    format(string, sizeof(string), "=> %s wurde von Admin ( %s ) gebannt! [Grund: %s]", PlayerName(player1), PlayerName(playerid), result);
    SendClientMessageToAll(0xFF6347AA, string);
    }
    else{
    format(string, 256, "=> %s wurde gebannt! [Grund: %s]", PlayerName(player1), result);
    SendClientMessage(playerid, 0xFF6347AA, string);
    }


    new sql[512];
    format(sql, sizeof(sql), "INSERT INTO `server_ban`(`typ`,`userID`,`user`,`userIP`,`reason`,`adminID`,`admin`,`adminIP`,`banTime`,`status`) VALUES('ban','%d','%s','%s','%s','%d','%s','%s',UNIX_TIMESTAMP(),'0');", PlayerInfo[player1][Spielerzid], PlayerName(player1), PlayerIP(player1), result, PlayerInfo[playerid][Spielerzid], PlayerName(playerid, 1), PlayerIP(playerid));
    mysql_query(sql);
    SendClientMessage(player1, COLOR_RED, "Wichtig: Erstelle sofort von diesem Ban einen Screen. Ohne ein Screen direkt nach dem Ban, gibt es keine Entbannung!");
    SendClientMessage(player1, COLOR_RED, "Wichtig: Erstelle sofort von diesem Ban einen Screen. Ohne ein Screen direkt nach dem Ban, gibt es keine Entbannung!");
    SendClientMessage(player1, COLOR_RED, "Wichtig: Erstelle sofort von diesem Ban einen Screen. Ohne ein Screen direkt nach dem Ban, gibt es keine Entbannung!");
    SendClientMessage(player1, COLOR_RED, "Wichtig: Erstelle sofort von diesem Ban einen Screen. Ohne ein Screen direkt nach dem Ban, gibt es keine Entbannung!");
    printf(sql);


    BanEx(player1, result);
    return 1;
    }

  • wo fragst du den ab ob er gebannt ist beim Joinen

    public checkBan(playerid){
    if(LogFilesJet == 1){
    printf("checkBan 1 | Name: %s", PlayerName(playerid));
    }


    new sql[512];
    format(sql, sizeof(sql), "SELECT * FROM view_bans WHERE user LIKE '%s'", PlayerName(playerid));
    mysql_function_query(Connection,sql,true,"checkBanExecute","i", playerid);
    if(LogFilesJet == 1){
    printf("checkBan 2 | Name: %s", PlayerName(playerid));
    }
    }


    und checkBan steht bei OnPlayerConnect ^^

  • checkBanExecute


    zeig doch mal dieses Funktion.

    public checkBanExecute(playerid){
    new rows, fields;
    new admin[MAX_PLAYER_NAME], reason[256], datum[16], bantime[16];
    cache_get_data(rows, fields);


    if(LogFilesJet == 1) printf("CheckBanExecute 1");


    if(rows > 0){
    if(LogFilesJet == 1) printf("CheckBanExecute 2");
    cache_get_field_content(0, "datum", datum, Connection, 128);
    cache_get_field_content(0, "zeit", bantime, Connection, 128);
    cache_get_field_content(0, "admin", admin, Connection, 128);
    cache_get_field_content(0, "reason", reason, Connection, 128);


    if(LogFilesJet == 1) printf("CheckBanExecute 3");
    new stringl[128];
    SendClientMessage(playerid,COLOR_GREY,"-------------------------------------------------------------------");
    format(stringl,sizeof(stringl),"Der Name \"%s\" ist auf unserem Server nicht erwünscht", PlayerName(playerid));
    format(stringl,sizeof(stringl),"Du wurdest vom Admin %s am %s um %s Uhr gebannt!", admin, datum, bantime);
    SendClientMessage(playerid,COLOR_GREY,stringl);
    format(stringl,sizeof(stringl),"Begründung: %s", reason);
    SendClientMessage(playerid,COLOR_GREY,stringl);
    SendClientMessage(playerid,COLOR_GREY,"-------------------------------------------------------------------");
    KickPlayer(playerid);
    }


    if(LogFilesJet == 1) printf("CheckBanExecute 4");
    }

  • Wird denn CheckBanExecute 4 o.ä in der Konsole geprintet`?

    Nein



    [14:56:08] INSERT INTO `server_ban`(`typ`,`userID`,`user`,`userIP`,`reason`,`adminID`,`admin`,`adminIP`,`banTime`,`status`) VALUES('ban','353955','*Username*','******.206.80','test','353955','Username',´´´****206.80',UNIX_TIMESTAMP(),'0');
    [14:56:08] OnPlayerDisconnect
    [14:56:08] OnPlayerCarUpdate2
    [14:56:08] DissconectDDTexte
    [14:56:08] RemoveDinger


    [14:56:08] [part] Usernamehas left the server (1:2)
    Nur das

    Einmal editiert, zuletzt von B!aze ()

  • So kann es ja auch nicht gerpintet werden, du musst mal mit einem gebannten Acc connecten, damit das Public aufgerufen wird

    Ja es passiert nichts man wird nicht mal Gebannt? Wenn man jemanden bannt man kann einfach so wieder Joinen

  • bist du denn sicher das Checkban ausgeführt wird?
    Zeig doch mal bitte dein OnPlayerConnect

    public OnPlayerConnect(playerid){


    ConnectPlayer(playerid);
    PlayerInfo[playerid][frisch_eingeloggt] = 1;
    if(LogFilesJet == 1){
    printf("OnPlayerConnect 0 | Name: %s", PlayerName(playerid));
    }
    PlayerInfo[playerid][gPlayerLogged] = 0;
    SetTimer("ResetConnect", 3000, 0);
    ConnectPlayers++;
    Leben[playerid] = 100;
    Ruestung[playerid] = 0;
    if(ConnectPlayers > 20){
    SendClientMessage(playerid, COLOR_RED, "[ACHTUNG] Zu viele Spieler versuchen gleichzeitig zu connecten.");
    KickPlayer(playerid);
    blockhospital[playerid]=1;
    blockhospitaltimer[playerid]=SetTimerEx("BlockHospital",25000,false,"i",playerid);
    return 1;
    }




    pVehicles[playerid] = 0;
    /*
    new country[MAX_COUNTRY_NAME];
    country = GetPlayerCountryName(playerid);


    new playername[64];
    GetPlayerName(playerid,playername,64);


    if(IsPlayerNPC(playerid) ||strmatch(country,"Germany") || strmatch(country,"Netherlands") || strmatch(country,"Austria") || strmatch(country,"Switzerland") ||!strcmp(playername,"XX",true)|| !strcmp(playername,"Tyger_Rastellis",true) || !strcmp(playername,"Arlind",true)|| !strcmp(playername,"FatiFlori",true)|| !strcmp(playername,"flori50",true)|| !strcmp(playername,"Streep",true)|| !strcmp(playername,"FatiFlori.[157]",true)
    || !strcmp(playername,"XX",true) ||!strcmp(playername,"Arlind_Muerto",true) ){
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREEN, "Nicht zugelassene IP");
    KickPlayer(playerid);
    }
    */


    shotTime[playerid] = 0;
    shot[playerid] = 0;


    TextDrawHideForPlayer(playerid, AutoKaufText[playerid]);
    TextDrawHideForPlayer(playerid, gInfoBoxAuto[playerid]);
    PlayerInfo[playerid][gPlayerLogged] = 0;
    PlayerInfo[playerid][voteban] = 0;
    PlayerInfo[playerid][coins] = 0;
    PlayerInfo[playerid][blockcmd] = 1;
    PlayerInfo[playerid][tutlos] = 0;
    PlayerInfo[playerid][gwkills] = 0;
    euro[playerid] = 0;
    PlayerInfo[playerid][failedlogin] = 0;
    PlayerInfo[playerid][bank] = 0;
    PlayerInfo[playerid][nca] = 0;
    PlayerInfo[playerid][nc] = 0;
    PlayerInfo[playerid][springen] = 0;
    hatzelle[playerid] = 40;
    respawnzeit[playerid] = 0;
    OnPlayerInit(playerid);



    return 1;
    }

  • Was wird denn nun geprintet?

    8:09:51] ConnectPlayer 1 | Name: ServerTester
    [18:09:51] ConnectPlayer 2 | Name: ServerTester
    [18:09:51] ConnectPlayer 3 | Name: ServerTester
    [18:09:51] ConnectPlayer 4 | Name: ServerTester
    [18:09:51] OnPlayerConnect 0 | Name: ServerTester
    [18:09:51] OnPlayerConnect 1 Name: ServerTester
    [18:09:51] OnPlayerConnect 2
    [18:09:51] OnPlayerConnect 3
    [18:09:51] OnPlayerConnect 4
    [18:09:51] OnPlayerConnect 5
    [18:09:51] OnPlayerConnect 6
    [18:09:51] OnPlayerConnect 7
    [18:09:51] WantedLevelBesse
    [18:09:51] OnPlayerConnect 8
    [18:09:51] OnPlayerConnect 9
    [18:09:51] OnPlayerConnect 10
    [18:09:51] OnPlayerConnect 11
    [18:09:51] OnPlayerConnect 12
    [18:09:51] ConnectDDTexte
    [18:09:51] OnPlayerConnect 13
    [18:09:51] ConnectPlayer 1 | Name: ServerTester
    [18:09:51] ConnectPlayer 2 | Name: ServerTester
    [18:09:51] ConnectPlayer 3 | Name: ServerTester
    [18:09:51] ConnectPlayer 4 | Name: ServerTester
    [18:09:51] CheckLoginExecute 1
    [18:09:51] CheckLoginExecute 2
    [18:09:51] OnTurfConnect
    [18:09:51] CheckLoginExecute 4
    [18:09:51] CheckLoginExecute 1
    [18:09:51] CheckLoginExecute 2
    [18:09:51] OnTurfConnect
    [18:09:51] CheckLoginExecute 4
    [18:09:53] checkBan 1 | Name: ServerTester
    [18:09:53] checkBan 2 | Name: ServerTester
    [18:09:53] checkBan 1 | Name: ServerTester
    [18:09:53] checkBan 2 | Name: ServerTester
    [18:09:53] CheckBanExecute 1
    [18:09:53] CheckBanExecute 4
    [18:09:53] CheckBanExecute 1
    [18:09:53] CheckBanExecute 4