Das nur das Letzte Gebiet gespeichert wird liegt daran das du außerhalb der schleife In die Datei schreibst...
Erst die Datei öffnen, dann mit der schleife formatieren und reinschreiben und nach der Schleife schließen
Warum steht eig str mit in dem String der gespeichert werden soll? Man würde es doppelt schreiben was unsinnig wäre...
//Edit Format fehler beseitigt
public SaveZones()
{
new str[128];
new File:file = fopen(OWNER_DATEI, io_write);
for(new z = 0; z < ZONEN_ANZAHL; z++)
{
format(str, sizeof str, "%d|%s\n", z, Zonen[z][CurrentOwner]);
fwrite(file, str);
}
fclose(file);
return 1;
}
So würde in der Datei stehen:
0|Niemand
1|Balls
oder wie sie alle heißen...