MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | SYNOPSIS |
| 2 | int save_object(string name [, int format]); |
| 3 | string save_object([int format]); |
| 4 | |
| 5 | BESCHREIBUNG |
| 6 | Codiert die speicherbaren (s.u.) Variablen des aktuellen Objekts in |
| 7 | einen String. |
| 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 |
| 27 | |
| 28 | Eine Variable wird als 'speicherbar' betrachtet, wenn sie nicht als |
| 29 | 'nosave' oder 'static' deklariert ist. |
| 30 | |
| 31 | Bitte beachten, dass diese efun im MG durch eine Sefun ueberschrieben |
| 32 | wird und deren Manpage auch lesen! |
| 33 | |
| 34 | BEMERKUNGEN: |
| 35 | Damit ein Objekt in Verzeichnisse der Region/des Magiers schreiben |
| 36 | kann, muss es entsprechende Rechte, also eine gueltige EUID |
| 37 | besitzen. Im create() sollte daher ein: |
| 38 | |
| 39 | seteuid(getuid(this_object())); |
| 40 | |
| 41 | stehen. |
| 42 | |
| 43 | AENDERUNGEN |
| 44 | Seit LDMud 3.2.8 liefert save_object() einen fixen Wert bei Erfolg. |
| 45 | Das direkte Abspeichern in einen String wurde in LDMud 3.2.8 |
| 46 | eingefuehrt, wird aber in Zukunft eventuell in eine separate Efun |
| 47 | umgezogen. |
| 48 | LDMud 3.2.9 ergaenzte die Funktion um das Speichern von Non-Lambda |
| 49 | Closures, Symbolen und gequoteten Arrays. Dazu wurde ein neues |
| 50 | Format fuer die Speicherdatei eingefuehrt. |
| 51 | LDMud 3.2.10 fuehrte das Argument <format> ein. |
| 52 | |
| 53 | SIEHE AUCH |
| 54 | restore_object(E), save_value(E), save_object (Sefun) |