das mit den variablen war nicht so ne gute idee von mir weil wenn das spiel nach dem x-ten room vieleicht abstürzt gehen die highscores von den vorherigen räumen ja verloren...
also hab ich mich heute nacht mal hingesetzt und ein bissel rumgewerkelt
und das ist dabei raus gekommen. ich hoffe es hilft dir weiter.
[PHP]
// Room-Highscore anlegen oder lesen (Room-start) cad2525 Nov.2004
{
var f_name, f_id, name, punkte; // Variablen anlegen
f_name = "HI_score" + string (room); // Filenamen festlegen (hier die Room-id als teil des Filenamens)
highscore_clear(); // den alten Highscore (von anderen Rooms) brauchen wir nicht mehr....
// Prüfen ob das File schon exestiert wenn ja lesen wenn nein anlegen
if ( file_exists (f_name))
{
f_id = file_text_open_read(f_name); // File zum lesen öffnen und File-id merken
// Daten für Highscore 1 bis 10 einlesen
repeat (10)
{
name = file_text_read_string(f_id); // Namen lesen
file_text_readln(f_id); // Rest der Zeile weglassen
punkte = file_text_read_string(f_id); // Punkte lesen
file_text_readln(f_id); // nochmal Rest weglassen
highscore_add(name,real(punkte)); // und in die highscoreliste eintragen (Punkte wieder als Zahl)
}
file_text_close(f_id); // Daten sind drin also schön das File wieder zumachen
}
// File gibts noch nicht -> also erstmal eins anlegen
else
{
f_id = file_text_open_write(f_name); // Erstmal ein File zum schreiben anlegen und wieder File-id merken
// 10 mal Dummy-Werte eintragen
punkte = string(10); // is ja noch nicht gespielt worden also score = 10 damit der score auch eingetragen wird
name = "CAD2525"; // (Hier könnte Ihr Name stehen ^^)
repeat (10)
{
file_text_write_string(f_id,name); // einen "Dummy"-Namen eintragen
file_text_writeln(f_id); // neue Zeile sonst gibts stress beim lesen
file_text_write_string(f_id,punkte); // und die Punkte....
file_text_writeln(f_id); // nochmal ne neue Zeile....
highscore_add(name,real(punkte)); // und gleich auch in die Highscore-liste von diesem Room eintragen
}
file_text_close(f_id); // und nicht vergessen das File wieder zu zu machen
}
}
// den Code könnt ihr beim room-start ausführen....
// fehlt noch der zum schreiben....
//--------------------------------------------------------------------------------------------------------------------------------------------------------------
// Room-Highscore schreiben (Room-ende oder game-over) cad2525 Nov.2004
{
var f_name, f_id, nr, name, punkte; // Variablen anlegen
f_name = "HI_score" + string (room); // Filenamen festlegen (hier die Room-id als teil des Filenamens)
file_delete(f_name); // weg mit dem alten Room-Highscore
f_id = file_text_open_write(f_name); // File neu anlegen
// Plätze von 1 bis 10 holen und schreiben
for ( nr = 1, nr <= 10, nr += 1)
{
name = highscore_name(nr); // Namen aus Highscore holen
punkte = string (highscore_value(nr)); // Punkte holen als string
file_text_write_string(f_id,name); // den neuen Namen eintragen
file_text_writeln(f_id); // neue Zeile sonst gibts stress beim lesen
file_text_write_string(f_id,punkte); // und die Punkte....
file_text_writeln(f_id); // nochmal ne neue Zeile....
}
file_text_close(f_id); // und nicht vergessen das File wieder zu zu machen
}
// diesen Teil hab ich noch nicht getestet aber er müsste funktionieren....
// ich hoffe das es einigen weiterhilft...
[/PHP]