Problem mit Fraktions-Chat (MySQL basierend)

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
  • Hallo,


    ich habe ein dynamisches Rangsystem und möchte anhand des Ranges des Spielers einen individuellen Rangnamen (in der DB festgelegt) auslesen lassen.


    Das ganze sieht derzeit so aus:


    ocmd:f(playerid,params[])
    {
    if(Friedhof[playerid] > 0)return SCM(playerid, ROT,"Du bist zu Verletzt um dein Funkgerät zu benutzen!");
    if(pInfo[playerid][pFraktion] == 0)return SCM(playerid, ROT,"Du bist in keiner Fraktion!");
    if(pTie[playerid] == 1)
    {
    SCM(playerid,ROT,"Du wurdest gefesselt, du kannst nicht reden!");
    return 1;
    }
    new inputtext[128],string[256],fname[10],ausgabe[128];
    if(sscanf(params,"s",inputtext))return SCM(playerid, ROT,"/f [text]");
    switch(pInfo[playerid][pFraktion])
    {
    case 1:{fname = "LSPD";}
    case 2:{fname = "BND";}
    case 3:{fname = "Assasins";}
    case 4:{fname = "SAA";}
    case 5:{fname = "Regierung";}
    case 6:{fname = "LSMD";}
    case 7:{fname = "OAmt";}
    case 8:{fname = "LEER";}
    case 9:{fname = "SAM AG";}
    case 10:{fname = "Grove";}
    case 11:{fname = "Ballas";}
    case 12:{fname = "Terror";}
    case 13:{fname = "LCN";}
    }

    new query[256];
    mysql_query(query);
    switch(pInfo[playerid][pRank])
    {
    case 0:{return SCM(playerid,ROT,"Du hast keinen Fraktionsrang!");}
    case 1:{format(query, sizeof(query), "SELECT `Rang1` FROM `raenge` WHERE `Fraktion` = '%s'",fname);}
    case 2:{format(query, sizeof(query), "SELECT `Rang2` FROM `raenge` WHERE `Fraktion` = '%s'",fname);}
    case 3:{format(query, sizeof(query), "SELECT `Rang3` FROM `raenge` WHERE `Fraktion` = '%s'",fname);}
    case 4:{format(query, sizeof(query), "SELECT `Rang4` FROM `raenge` WHERE `Fraktion` = '%s'",fname);}
    case 5:{format(query, sizeof(query), "SELECT `Rang5` FROM `raenge` WHERE `Fraktion` = '%s'",fname);}
    case 6:{format(query, sizeof(query), "SELECT `Rang6` FROM `raenge` WHERE `Fraktion` = '%s'",fname);}
    }
    mysql_query(query);
    mysql_store_result();
    new rows = mysql_num_rows();
    if(rows > 0)
    {
    mysql_fetch_row(ausgabe);
    }

    if(pInfo[playerid][pFraktion] == 1)
    {
    format(string,sizeof(string),"[%s]{C30000}%s %s: {FFFFFF}%s,over.",fname,ausgabe,SpielerName(playerid),inputtext);
    }
    else
    {
    format(string,sizeof(string),"[%s]{C30000}%s %s: {FFFFFF}%s",fname,ausgabe,SpielerName(playerid),inputtext);
    }
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(pInfo[i][pFraktion] == pInfo[playerid][pFraktion])
    {
    SCM(i,0x0091FFFF,string);
    }
    }
    }
    BigearCast(playerid,string,1);
    return 1;
    }


    Das Problem ist, dass er zwar die Fraktion (fname) erkennt, jedoch den Rang nicht.


    Egal welchen Rang ich InGame habe, ich bekomme immer den return, dass ich keinen Fraktionsrang habe :/


    Habt ihr eine Idee? :O

    Meine Werke

  • Wenn du diese Nachricht ("Du hast keinen Fraktionsrang!") bekommst, ist es ziemlich eindeutig.
    pInfo[playerid][pRank] 
    ist 0.


    Möglicherweise lädst du das nicht richtig aus der Datenbank beim Login. Prüfe das mal.

    Das Problem ist, dass es bei diesem Befehl einwandfrei funktioniert:


    ocmd:members(playerid,params[])
    {
    new fID,string[128];
    fID=pInfo[playerid][pFraktion];
    if(pInfo[playerid][pFraktion] == 0) return SCM(playerid,ROT,"Du bist in keiner Fraktion!");
    SCM(playerid,gruen,"------ Fraktions-Mitglieder Online------");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(pInfo[i][pFraktion] == fID)
    {
    format(string,sizeof(string),"Name: %s | Rang: %d",SpielerName(i),pInfo[i][pRang]);
    SCM(playerid,COLOR_YELLOW,string);
    }
    }
    }
    SCM(playerid,gruen,"-----------------------------------------------");
    return 1;
    }

    Meine Werke