Ban Grund aus der Datenbank auslesen

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 Abend Community!
    Und zwar suche ich seit einer halben stunde nach einer Lösung, habe mehreres Probiert aber es klappt einfach nix.
    Ich möchte den Ban Grund aus der Datenbank auslesen und in einer neuen Variable speichern und den User
    im Chat anzeigen lassen.
    Doch wenn ich den User den Grund anzeigen lassen möchte, kommt dort als Grund "NULL".



    public IsPlayerBanned(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows > 0)
    {
    new string[128],grund[128];
    cache_get_field_content(0,"grund",grund,dbhandle); //Auslesen und in "grund" speichern.
    format(string,128,"** Du bist vom Server gebannt, Grund: %s",grund); //Grund anzeigen lassen
    SCM(playerid,COLOR_ROT,string);
    Kick(playerid);
    return 0;
    }
    return 1;
    }


    Und noch ein Mysql_log:

    Code
    [17:39:17] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('3')
  • Direkt gibt es kein Problem, meinte nur das wenn der Spieler gebannt ist das kein Dialog mehr kommen soll.
    if(dialogid == DIALOG_LOGIN)
    {
    if(response)
    {
    new string[250],query[128],passwort[16];
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,128,"SELECT * FROM spielerdaten WHERE name='%s' AND passwort='%s'",
    SpielerName(playerid),passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswortCheck","i",playerid);
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Bitte gib dein Passwort ein.");
    format(string,250,"{FAFAFA}Willkommen zurück {002BFF}%s.\n\
    {FAFAFA}Bitte gib dein {002BFF}Passwort {FAFAFA}ein damit du fortfahren kannst.",SpielerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbrechen");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Du hast den Login vorgang abgebrochen.");
    Kick(playerid);
    }
    return 1;
    }

  • Dann darfst du den Login Dialog nicht bei OnPlayerConnect anzeigen, sondern erst hier:
    public IsPlayerBanned(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows > 0)
    {
    new string[128],grund[128];
    cache_get_field_content(0,"grund",grund,dbhandle); //Auslesen und in "grund" speichern.
    format(string,128,"** Du bist vom Server gebannt, Grund: %s",grund); //Grund anzeigen lassen
    SCM(playerid,COLOR_ROT,string);
    Kick(playerid);
    return 0;
    }
    //HIER
    return 1;
    }