MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | SYNOPSIS |
Zesstra | b6ac9f6 | 2020-01-21 11:11:16 +0100 | [diff] [blame] | 2 | int save_object(string name [, int format]) |
| 3 | string save_object([int format]) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 4 | |
| 5 | BESCHREIBUNG |
Zesstra | b6ac9f6 | 2020-01-21 11:11:16 +0100 | [diff] [blame] | 6 | Codiert die speicherbaren Variablen des aktuellen Objekts in einen |
| 7 | String. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 8 | |
| 9 | In der ersten Form wir der String in die Datei <name> geschrieben. Eine |
| 10 | Endung ".c" in <name> wird entfernt, dafuer kann eine Endung ".o" |
| 11 | durch das Masterobjekt angefuegt werden, waehrend der Ueberpruefung |
| 12 | durch valid_read(). Die Efun save_object() liefert 0, wenn die |
| 13 | Speicherdatei erfolgreich erstellt wurde, sonst eine Zahl ungleich 0, |
| 14 | wenn ein nicht schwerwiegendee Fehler aufgetreten ist (die Datei |
| 15 | konnte nicht geschrieben werden oder das aktuelle Objekt wurde |
| 16 | inzwischen zerstoert). |
| 17 | |
| 18 | In der zweiten Form wird der String direkt zurueck gegeben. Wenn das |
| 19 | Objekt zerstoert wurde, wird 0 zurueck gegeben. In beiden Faellen kann |
| 20 | durch das optionale Argument <format> das Format der Speicherdatei |
| 21 | angegeben werden: |
| 22 | |
| 23 | -1: das normale Format des Treibers (Standard) |
| 24 | 0: das Originalformat nach Amylaar's LPMud und LDMud <=3.2.8 |
| 25 | 1: LDMud >= 3.2.9: Non-Lambda Closures, Symbole und gequotete |
| 26 | Arrays koennen gespeichert werden |
Zesstra | b6ac9f6 | 2020-01-21 11:11:16 +0100 | [diff] [blame] | 27 | 2: LDMUd >= 3.5.0: Gleitkommazahlen werden in einem neuen Format |
| 28 | geschrieben, welches kompakter ist die Gleitkommazahlen aus |
| 29 | 3.5.x verlustfrei speichern kann. |
| 30 | |
| 31 | Es wird empfohlen, die Angabe des Formats wegzulassen oder in Version |
| 32 | 2 (oder hoeher) zu speichern. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 33 | |
| 34 | Eine Variable wird als 'speicherbar' betrachtet, wenn sie nicht als |
| 35 | 'nosave' oder 'static' deklariert ist. |
| 36 | |
Zesstra | b6ac9f6 | 2020-01-21 11:11:16 +0100 | [diff] [blame] | 37 | GESCHICHTE |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 38 | Seit LDMud 3.2.8 liefert save_object() einen fixen Wert bei Erfolg. |
| 39 | Das direkte Abspeichern in einen String wurde in LDMud 3.2.8 |
| 40 | eingefuehrt, wird aber in Zukunft eventuell in eine separate Efun |
| 41 | umgezogen. |
| 42 | LDMud 3.2.9 ergaenzte die Funktion um das Speichern von Non-Lambda |
| 43 | Closures, Symbolen und gequoteten Arrays. Dazu wurde ein neues |
| 44 | Format fuer die Speicherdatei eingefuehrt. |
| 45 | LDMud 3.2.10 fuehrte das Argument <format> ein. |
Zesstra | b6ac9f6 | 2020-01-21 11:11:16 +0100 | [diff] [blame] | 46 | LDMud 3.5.0 fuehrte Formatversion 2 ein. |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 47 | |
| 48 | SIEHE AUCH |
Zesstra | b6ac9f6 | 2020-01-21 11:11:16 +0100 | [diff] [blame] | 49 | restore_object(E), save_value(E) |