Mal zum Grundsinn dieser Funktion..
Ich verstehe nicht, warum du zweimal direkt hintereinander dasselbe abfragst..
if(SpielerInfo[i][Fraktion] == 4)//Zeile 7
und
if(SpielerInfo[i][Fraktion] == 4)//Zeile 13
Auch der tiefere Sinn dieser Formattierungs-Zeile entzieht sich meines Verständnisses:
format(string,sizeof(string),"%s %i$\n%s %i$\n%s %i$\n%s %i$\n%s %i$\n%s %i$\n%s %i$\n%s %i$\n%s %i$\n",SpielerName(i),SpielerInfo[i][Kopfgeld]);
Womit sollen denn diese ganzen Parameter befüllt werden, wenn du nur den Spielernamen und sein Kopfgeld einsetzt ?
Ich hätte mir jetzt aus meiner gezaubert, dass du eine Liste mit allen Spielern haben möchtest, die ein Kopfgeld haben, oder ?
Dann machen wir das wie folgt:
ocmd:contractlist(playerid,params[])
{
if(SpielerInfo[playerid][Fraktion] == 4)
{
new string[600];
for(new i=0; i<GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i)) continue;
if(SpielerInfo[i][Kopfgeld]>0){format(string,sizeof(string),"%s\n%s %i$",string,SpielerName(i),SpielerInfo[i][Kopfgeld]);}//Wir nehmen den bisherigen String und fügen die nächste Zeile an..
}
ShowPlayerDialog(playerid,DIALOG_Contract,DIALOG_STYLE_MSGBOX,"Contractliste",string,"0K","");//Wir senden den Dialog EINMAL!!!!
//Vielleicht ist es als Liste übersichtlicher =)
}
return 1;
}