SetProperties()
FUNKTION:
     void SetProperties(mapping props);

DEFINIERT IN:
     /std/thing/properties.c

ARGUMENTE:
     props	- Mapping mit den Daten fuer alle Properties

BESCHREIBUNG:
     Diese Funktion setzt angegebene Properties auf einen Schlag.
     Mapping muss wie folgt aufgebaut sein:
	([ name: wert; flags; set_method; query_method,
	   name2: ... ]);

BEMERKUNGEN:
     - diese Funktion wird von restore_object() verwendet, um nicht alle
       restaurierten Properties einzeln setzen zu muessen.
     - SECURED/PROTECTED/NOSETMETHOD Properties werden beruecksichtigt

SIEHE AUCH:
     Aehnliches:	SetProp(L), QueryProp(L), Set(L), Query(L)
     Generell:		QueryProperties(L)
     Konzept:		properties, /std/thing/properties.c

1.Mai 2004 Gloinson
