SYNOPSIS
int save_object(string name [, int format])
string save_object([int format])
BESCHREIBUNG
Codiert die speicherbaren Variablen des aktuellen Objekts in einen
String.
In der ersten Form wir der String in die Datei <name> geschrieben. Eine
Endung ".c" in <name> wird entfernt, dafuer kann eine Endung ".o"
durch das Masterobjekt angefuegt werden, waehrend der Ueberpruefung
durch valid_read(). Die Efun save_object() liefert 0, wenn die
Speicherdatei erfolgreich erstellt wurde, sonst eine Zahl ungleich 0,
wenn ein nicht schwerwiegendee Fehler aufgetreten ist (die Datei
konnte nicht geschrieben werden oder das aktuelle Objekt wurde
inzwischen zerstoert).
In der zweiten Form wird der String direkt zurueck gegeben. Wenn das
Objekt zerstoert wurde, wird 0 zurueck gegeben. In beiden Faellen kann
durch das optionale Argument <format> das Format der Speicherdatei
angegeben werden:
-1: das normale Format des Treibers (Standard)
0: das Originalformat nach Amylaar's LPMud und LDMud <=3.2.8
1: LDMud >= 3.2.9: Non-Lambda Closures, Symbole und gequotete
Arrays koennen gespeichert werden
2: LDMUd >= 3.5.0: Gleitkommazahlen werden in einem neuen Format
geschrieben, welches kompakter ist die Gleitkommazahlen aus
3.5.x verlustfrei speichern kann.
Es wird empfohlen, die Angabe des Formats wegzulassen oder in Version
2 (oder hoeher) zu speichern.
Eine Variable wird als 'speicherbar' betrachtet, wenn sie nicht als
'nosave' oder 'static' deklariert ist.
GESCHICHTE
Seit LDMud 3.2.8 liefert save_object() einen fixen Wert bei Erfolg.
Das direkte Abspeichern in einen String wurde in LDMud 3.2.8
eingefuehrt, wird aber in Zukunft eventuell in eine separate Efun
umgezogen.
LDMud 3.2.9 ergaenzte die Funktion um das Speichern von Non-Lambda
Closures, Symbolen und gequoteten Arrays. Dazu wurde ein neues
Format fuer die Speicherdatei eingefuehrt.
LDMud 3.2.10 fuehrte das Argument <format> ein.
LDMud 3.5.0 fuehrte Formatversion 2 ein.
SIEHE AUCH
restore_object(E), save_value(E)
|