für jeden Erfolg speicherst du per savenum einen eigenen Wert. Zusatz Tipp :
Nicht nur einmal beim Start des Spiels musst du alle Werte per Loadnum laden sondern auch nach jedem Laden eines Spielstandes da sonst die Werte im Savegame die aktuellen Erfolge wieder überschreiben, wenn diese im Savegame noch nicht erreicht waren.
Ich empfehl folgenden Trick.
Erstelle eine dauerhaft laufende Funktion mittels
function (erfolgeladen ; inf) und dem Inhalt :
Code: Select all
if_num (ladeerfolge ; 99)
{
setnum (ladeerfolge ; 0)
loadnum (erfolg1)
setobj (erfolgobjekt1 ; [erfolg1])
usw.
}
In deinem Savemenü (du musst hier also ein eigenes Benutzen) für den Button (oder die Button) zum Saven kommt rein :
Code: Select all
on(click)
{
setnum (ladeerfolge ; 99)
savegame (slot)
}
Der Ablauf der Skripte intern sorgt dafür das das aktuelle Spiel erst gespeichert wird bevor die fortlaufende Funktion zum laden der Erfolge per loadnum anschlägt. Mit dem Ergebnis das sich diese nach jedem Laden eines Savegames automatisch akualisieren. Außerdem : In deinem Startskript brauchst du nur einmal die Variable "ladeerfolge" auf 99 setzen und hast so alle Erfolge übersichtlich in einem einzigen Skript.