Beiträge von B!aze

    Guten Abend,
    wenn ich jemanden Banne wird er gebannt, eigentlich muss es in der Tabelle "view_bans" auch sein Name stehen was aber nicht der Fall ist?
    Aber es klappt einfach nicht Code:


    forward checkBan(playerid);
    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));
    }
    }

    Dann scheint die Person "ServerTester" wohl nicht gebannt zu sein

    [21:18:48] INSERT INTO server_timeban(usr_id, usr_name, usr_ip, ban_time, ban_length, ban_typ, ban_reason, adm_name, adm_ip, status) VALUES(353955,'ServerTester', '******.206.80', UNIX_TIMESTAMP(), '30', 'i', 'Test', 'ServerTester', '********.206.80', '0')


    21:20:09] checkBan 1 | Name: ServerTester
    [21:20:09] checkBan 2 | Name: ServerTester
    [21:20:09] checkBan 1 | Name: ServerTester
    [21:20:09] checkBan 2 | Name: ServerTester
    [21:20:09] CheckBanExecute 1
    [21:20:09] CheckBanExecute 4
    [21:20:09] CheckBanExecute 1
    [21:20:09] CheckBanExecute 4


    //push
    //push

    Dir fehlt die Tabelle "view_race"
    Die darin enthaltenen columns kann man aus diesem Error nicht rauslesen nur die eine welche wäre "rName".
    Wenn du im Script weiter nach query's suchst wo die Tabelle view_race verwendet wird bzw. abgerufen können wir dir vielleicht noch ein stück weiter helfen.


    MFG

    case dRaceLoad:{if(!response) return 1;if(!strlen(inputtext))return ShowPlayerDialog(playerid, dRaceLoad, DIALOG_STYLE_INPUT, "Rennstrecke laden", "{FF0000}Fehler: Du musst schon einen Namen eingeben, sonst wird das heute nichts mehr...\n\n\{FFFFFF}Gebe bitte den Namen der Rennstrecke ein, die du laden möchtest.", "Weiter", "Abbrechen");if(strlen(inputtext) < 3 || strlen(inputtext) > 50)return ShowPlayerDialog(playerid, dRaceLoad, DIALOG_STYLE_INPUT, "Rennstrecke laden", "{FF0000}Fehler: Der Name muss mindestens 3 Zeichen enthalten und darf maximal 50 Zeichen enthalten.\n\n\{FFFFFF}Gebe bitte den Namen der Rennstrecke ein, die du laden möchtest.", "Weiter", "Abbrechen");format(querylosrace, sizeof(querylosrace), "SELECT * FROM view_race WHERE rName LIKE '%s'", inputtext);mysql_function_query(Connection, querylosrace, true, "LoadRace", "i", playerid);


    nur das

    Guten Tag ich bekomme eine Error in den Server Logs


    Error-ID: 1146 | Error: Table 'samp5871_server.view_race' doesn't exist | Callback: LoadRace | Query: SELECT * FROM view_race WHERE rName LIKE 'TestRace'


    Und wie viele Spalten muss ich erstellen ?

    Guten Tag ich bekomme einen MySQL Error
    [18:30:17] Loading plugin: mysql.so
    [18:30:17] Failed (plugins/mysql.so: symbol __cxa_pure_virtual, version libmysqlclient_16 not defined in file libmysqlclient_r.so.16 with link time reference)


    LG

    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

    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;
    }

    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

    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

    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");
    }

    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 ^^

    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;
    }

    Nein nur bei Timeban fehlen paar sachen da es nicht in der Datenbank drinnen war

    Wie gesagt, wende dich an den Ersteller des Servers.
    Da du die Datenbank nicht komplett hast werden wohl die meisten Dinge nicht oder nicht korrekt klappen.
    Da du den Code nicht selbst geschrieben hast, kannst du die Probleme auch nicht richtig schildern, außerdem lässt sich auf Grund der fehlenden Datenbank nicht feststellen, ob es ein Code- oder Datenbankproblem ist.

    /e


    [19:47:16] Error-ID: 1054 | Error: Unknown column 'id' in 'order clause' | Callback: CheckTimebans | Query: SELECT * FROM tb_outstanding WHERE usr_name LIKE 'Test' AND status = '0' ORDER BY id ASC LIMIT 1



    public checktimeban(playerid){


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


    new stringgdfg[256];
    format(stringgdfg, sizeof(stringgdfg), "SELECT * FROM tb_outstanding WHERE usr_name LIKE '%s' AND status = '0' ORDER BY id ASC LIMIT 1", PlayerName(playerid));
    mysql_function_query(Connection, stringgdfg, true, "CheckTimebans", "i", playerid);
    }