Beiträge von Jeffry

    Du musst bei den cache_get_row_int jeweils 0,0 nehmen, da du immer nur einen Wert aus der Datenbank ausließt.
    Allerdings ist das ganz schlecht wenn du das so machst. Besser wäre es, alle Werte in einem Query auszulesen (mit Komma getrennt).

    SQL
    SELECT `name`,`level`,`EXP`,`geld` FROM `Clans` WHERE `ID` = '%d'


    Und dann beim cache_get_row_int: 0,0 beim nächsten 0,1 dann 0,2 und 0,3.
    (Zeile, Spalte)


    Und noch besser wäre es natürlich mit Variablen zu arbeiten, anstatt jedes mal die Datenbank anzusprechen.

    format(pfad, sizeof(pfad), "UPDATE `Clans` SET `geld`='%d' WHERE `ID`='%s'",newmoney, GetPVarInt(playerid,"Gang"));
    zu:
    format(pfad, sizeof(pfad), "UPDATE `Clans` SET `geld`='%d' WHERE `ID`='%d'",newmoney, GetPVarInt(playerid,"Gang"));


    %s ist für Strings.

    Genau. Einfach so:
    rangName[sInfo[playerid][adminlevel]]
    Das gibt dir den Rangname zurück.


    Kannst es dir so vorstellen:
    new rang = sInfo[playerid][adminlevel];
    rangName[rang]
    Aber die Variable kannst du dir sparen.


    Also so:
    format(text,sizeof(text),"**%s %s: %s**",rangName[sInfo[playerid][adminlevel]],name,text);


    Allerdings musst du aufpassen, wenn Supporter Level 1 ist, dann so:
    format(text,sizeof(text),"**%s %s: %s**",rangName[sInfo[playerid][adminlevel]-1],name,text);

    Klar, global wäre es natürlich optimal.
    new rangName[5][32] =
    {
    "Supporter",
    "Moderator",
    "Super Moderator",
    "Administrator",
    "Projektleiter"
    };
    Unter die Includes, und dann einfach so zugreifen:


    printf("Spieler-Rang: %s", rangName[sInfo[playerid][adminlevel]]);

    Das wird nicht funktionieren, denn du kannst in PAWN nicht einfach einem Array einen String zuweisen, dazu musst du
    die Funktion format() verwenden.


    Das ist nur bei Arrays aus zum Beispiel einem enum der Fall, nicht bei eindimensionalen Arrays.


    Ganz einfach so, nur die runden Klammern weg machen:
    switch(sInfo[playerid][adminlevel])
    {
    case 0: Rangnameadmin = "Supporter";
    case 1: Rangnameadmin = "Moderator";
    case 2: Rangnameadmin = "Super Moderator";
    case 3: Rangnameadmin = "Administrator";
    case 4: Rangnameadmin = "Projektleiter";
    }



    Außerdem kannst du "text" auf 145 setzen, das ist das Maximum für SendClientMessage.

    Wenn du aus einer Tabelle zum Beispiel nur den Namen einer Fraktion auslesen willst, dann so:

    SQL
    SELECT name FROM tabelle WHERE fID = '%d'


    Im Result steht dann der Name der Fraktion. Je nach Plugin kannst du das dann entsprechend auslesen.

    Das erklärt doch, warum es nicht geht, du bist gar nicht mit der Datenbank verbunden.
    Ändere bei den Verbindungsdaten "127.0.0.1" zu "localhost", bzw. umgekehrt. Poste dann ggf. nochmal den Log, und wenn es nicht geht, die Login Daten (ohne Passwort!!).

    Schreibe den Teil bitte so, und poste dann was im Server Log steht, wenn du dich registrieren willst:
    if(mysql_num_rows(mysql_load)==1)
    {
    printf("rows: 1");
    mysql_free_result(mysql_load);
    format(string,sizeof(string),"{FFFFFF}Dein Account, {33CCFF}%s {FFFFFF}wurde gefunden.\nBitte logge dich mit deinem Passwort ein.",SpielerName(playerid));
    ShowPlayerDialog(playerid,Login,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbruch");
    }
    else
    {
    printf("rows: 0");
    if(strfind(SpielerName(playerid),"[uRP]",true) != -1 || strfind(SpielerName(playerid),"[",true) == 0)
    {
    mysql_free_result(mysql_load);
    SendClientMessage(playerid,COLOR_BRIGHTRED,"Du darfst dich nicht mit diesem Tag registrieren.");
    laterKick(playerid);
    return 1;
    }
    printf("vor allow");
    if(allowregister==0)
    {
    mysql_free_result(mysql_load);
    SendClientMessage(playerid,COLOR_BRIGHTRED,"Die Registrierung auf dem Server ist zur zeit deaktiviert. Eine Nachricht wurde an die Admins gesendet.");
    format(string,sizeof(string),"%s hat versucht sich zu registrieren, während dieses deaktiviert war.",SpielerName(playerid));
    SendAdminMessage(COLOR_BLUE,string);
    laterKick(playerid);
    return 1;
    }
    printf("nach allow");
    mysql_free_result(mysql_load);
    mysql_queryf("SELECT * FROM badnames WHERE name='%s'",SpielerName(playerid));
    mysql_store_result();
    printf("bad-rows: %d", mysql_num_rows());
    if(mysql_num_rows()>=1){mysql_free_result();SendClientMessage(playerid,Gruen,"Dein Name ist nicht erlaubt. Wähle bitte einen anderen.");laterKick(playerid);return 1;}
    mysql_free_result();
    mysql_queryf("SELECT * FROM logins WHERE ip='%s'",SpielerIP(playerid));
    mysql_store_result();
    printf("ip-rows: %d", mysql_num_rows());
    if(mysql_num_rows()>=1){mysql_free_result();SendClientMessage(playerid,Gruen,"Deine IP wird bereits von einem Anderen Account benutzt.");
    SendClientMessage(playerid,Gruen,"Wenn du einen neuen Account möchtest, kannst du ihn auf www.samprl.de beantragen.");laterKick(playerid);return 1;}
    mysql_free_result();
    format(string,sizeof(string),"{FFFFFF}Dein Account, {33CCFF}%s {FFFFFF}wurde nicht gefunden.\nBitte registriere dich, und gib das gewünsche Passwort ein.",SpielerName(playerid));
    printf("string: %s", string);
    ShowPlayerDialog(playerid,Register,DIALOG_STYLE_PASSWORD,"Registrieren",string,"Register","Abbruch");
    }
    mysql_free_result(mysql_load);
    return 1;
    }