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)
