Du machst das sehr durcheinander und nicht ganz Nachvollziehbar.
Unter der vorraussetzung das die Werte Korrekt gelesen werden:
Also ich reflektiere mal, du willst die BizStatistik von dem User anzeigenlassen der diesen Befehl eingibt.
Und er soll die Statistik seines Biz sehen.
Dazu gehst du, oder bzw. willst du alle Dateien durchgehen und prüfen ob der User Besitzer von einem Biz ist.
Gute Idee, aber wozu brauchst du den Dateipfad wenn do sowieso nicht aus der Datei liest?
Du vergleichst mit dem Array, da brauchst du keinen Pfad.
Die Zeile
if(strcmp(BSystem[i][Biz_Besitzer],name) != 0) return SendClientMessage(playerid,ROT,"Du hast noch keine Firma");
Ist unsinnig, warum? Wenn dem Spieler das erste Biz nicht gehört brichst du die Schleife ab mit der Nachricht "Du hast noch keine Firma"
Ihm könnte aber Biz ID 2 gehören. Das return rausnehmen ist ebenfalls keine Lösung, für jedes Biz das ihm nicht gehört würde er diese Nachricht bekommen = Spam.
So nun zum eigentlich Teil dem formatieren, wieso so komisch? string in einen neuen string formatieren?
Besser wäre es einen kleinen zu haben, den immer neu zu formatieren und ihn dann in einen größeren zu packen.
Das ergebniss wird erst am ende der Schleife ausgegeben, könnte ja sein das jemand mehrere Biz hat, so werden dann alle anzeigt.
Achja ich habs mal zu einer MSGBOX gemacht.
ocmd:bizstats(playerid,params[])
{
#pragma unused params
new gesamterstring[128],teilstring[20],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof name);
for(new i=0;i<MAX_BIZZES;i++)
{
if(strcmp(BSystem[i][Biz_Besitzer],name) == 0)
{
//Erste Teil
format(teilstring,sizeof(teilstring),"Name: %s\n\n",BSystem[i][Biz_Name]);
strins(gesamterstring,teilstring,strlen(gesamterstring));
//Zweiter Teil
format(teilstring,sizeof(teilstring),"Einahmen: %i\n",BSystem[i][Biz_einahmen]);
strins(gesamterstring,teilstring,strlen(gesamterstring));
//Dritter Teil
format(teilstring,sizeof(teilstring),"Produkte: %i\n",BSystem[i][Biz_Produkte]);
strins(gesamterstring,teilstring,strlen(gesamterstring));
}
}
//Ergebniss
ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, 0, "Firmen Infomationen", gesamterstring, "Schließen", "");
return 1;
}
Nicht getestet.
//edit
ShowPlayerDialog korrigiert