Guten Abend Breadfish-Community,
ich komme an meinem Fraktionssystem nicht weiter.
Mit dem Befehl '/ränge' möchte ich in einem Dialogfenster 7 Fraktionsränge anzeigen lassen.
Mein Problem besteht darin, das nur die erste Fraktion angezeigt wird und wenn man in einer anderen Fraktion ist
werden die Ränge noch vom LSPD angezeigt.
Folgendermaßen sieht mein Grundgerüst aus:
> Befehl:
Code
if (strcmp(cmd, "/ränge", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new string1[600];
for(new i = 0; i < sizeof(FraktionsRang); i++)
{
if(PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] && FraktionsRang[i][fr_frak])
{
format(string1, sizeof(string1), "{FFFFFF}Rang 1: %s\nRang 2: %s\nRang 3: %s\nRang 4: %s\nRang 5: %s\nRang 6: %s\nRang 7: %s",FraktionsRang[i][fr_rang1], FraktionsRang[i][fr_rang2], FraktionsRang[i][fr_rang3], FraktionsRang[i][fr_rang4], FraktionsRang[i][fr_rang5], FraktionsRang[i][fr_rang6], FraktionsRang[i][fr_rang7]);
ShowPlayerDialog(playerid, DIALOG_RANG_ANZEIGEN, DIALOG_STYLE_MSGBOX, "Fraktion Rangnamen:",string1, "O.K.","");
}
else SendClientMessage(playerid, COLOR_WHITE, "Deine Fraktion besitzt {FF8484}keine{FFFFFF} Ränge!"); break;
}
}
return 1;
}
Alles anzeigen
> Enum:
Code
enum fRang {
fr_id,
fr_frak,
fr_gesperrt,
fr_rang1[50],
fr_rang2[50],
fr_rang3[50],
fr_rang4[50],
fr_rang5[50],
fr_rang6[50],
fr_rang7[50]
};
#define MAX_RANG_FRAK 3
new FraktionsRang[MAX_RANG_FRAK][fRang];
Alles anzeigen
> Rängeladen:
Code
Function LoadFraktionsRang()
{
new num_fields, num_rows;
cache_get_data(num_rows, num_fields, dbhandle);
if(num_rows > 0)
{
for(new i = 0; i < MAX_RANG_FRAK; i++)
{
FraktionsRang[i][fr_id] = cache_get_field_content_int(i, "id",dbhandle);
FraktionsRang[i][fr_frak] = cache_get_field_content_int(i, "Fraktion",dbhandle);
FraktionsRang[i][fr_gesperrt] = cache_get_field_content_int(0, "gesperrt",dbhandle);
cache_get_field_content(0, "Rang1", FraktionsRang[i][fr_rang1], dbhandle, 50);
cache_get_field_content(0, "Rang2", FraktionsRang[i][fr_rang2], dbhandle, 50);
cache_get_field_content(0, "Rang3", FraktionsRang[i][fr_rang3], dbhandle, 50);
cache_get_field_content(0, "Rang4", FraktionsRang[i][fr_rang4], dbhandle, 50);
cache_get_field_content(0, "Rang5", FraktionsRang[i][fr_rang5], dbhandle, 50);
cache_get_field_content(0, "Rang6", FraktionsRang[i][fr_rang6], dbhandle, 50);
cache_get_field_content(0, "Rang7", FraktionsRang[i][fr_rang7], dbhandle, 50);
printf("FrakIDs wurden geladen: %d", FraktionsRang[i][fr_frak]);
}
}
return 1;
}
Alles anzeigen
Ich weiß nicht was ich falsch gemacht habe...
Habe jegliches ausprobiert auch mit einem Stock was die FraktionsID sowohl als Leader und Member zu holen und zu vergleichen und geht auch nciht.
Was mir noch rätselhaft ist, wenn ich in:
Code
if(PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] && FraktionsRang[i][fr_frak])
zu:
Code
if(PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] == FraktionsRang[i][fr_frak])
mache geht das nicht.
Rein Theoretisch müsste es doch funktionieren ...
Bitte um Hilfe
Lg
J0a9