Hallo Brotfische
Undzwar wird mir der Leader nicht angezeigt im Dialog, sprich die Memberanzahl rutscht eins nach vorne (siehe Bild)
Um den Fehler auf die schliche zu kommen, habe ich ein print in die Funktion gesetzt und da wird alles ausgegeben.
ocmd:showfracdata(playerid)
{
new string[3000];
string = "Fraktionsid\tFraktionsname\tLeader\tMemberanzahl";
for(new i=1; i < MAX_FRAKS; i++){
if(fData[i][fId] != 0){
format(string,sizeof(string),"%s\n%d\t%s\t%s\t%d\n",string,fData[i][fId],fData[i][fName],fData[i][fLeaderName],fData[i][fMemberInt]);
}
}
_ShowPlayerDialog(playerid,DIALOG_FRACDATA,DIALOG_STYLE_TABLIST_HEADERS,"Fraktionen",string,"Mehr Infos","Abbrechen");
return 1;
}
stock GetFracLeader(fid){
new str[128];
format(str,sizeof(str),"SELECT * FROM `player_account` WHERE `pFraktion` = '%d' AND `pRang` = '6'",fid);
mysql_function_query(dbhandle, str, true, "_GetLeader", "i",fid);
return 1;
}
Function _GetLeader(fid){
new rows, fields;
cache_get_data(rows, fields);
if(rows)
{
cache_get_field_content(0, "playername", fData[fid][fLeaderName], dbhandle, MAX_PLAYER_NAME+10);
printf("Leadername: %s - Frakid: %d",fData[fid][fLeaderName],fid);
}else{
format(fData[fid][fLeaderName],15,"Niemand");
}
return 1;
}
Function LoadFraktion()
{
new num_fields,num_rows,colorString[12];
cache_get_data(num_rows,num_fields);
if(!num_rows)return print("LoadFraktion - num_rows = 0");
for(new i = 0; i < num_rows; i++)
{
fData[i+1][fId] = cache_get_field_content_int(i, "frakid");
cache_get_field_content(i, "fname", fData[i+1][fName], dbhandle, 100);
fData[i+1][f_X] = cache_get_field_content_float(i, "x");
fData[i+1][f_Y] = cache_get_field_content_float(i, "y");
fData[i+1][f_Z] = cache_get_field_content_float(i, "z");
fData[i+1][f_R] = cache_get_field_content_float(i, "r");
cache_get_field_content(i, "fcolor", colorString, dbhandle, 50);
fData[i+1][fMoney] = cache_get_field_content_int(i, "fmoney");
//sscanf(colorString,"%x",fData[i+1][fColor]);
GetFracMemberInt(i+1);
GetFracLeader(i+1);
GetFracCarInt(i+1);
}
return 1;
}
Alles anzeigen