Short: Efun copy_object() Date: Mon, 29 Oct 2001 11:44:36 +0100 (MET) From: Erik Meusel <emeusel@mail.CS.Uni-Magdeburg.De> Type: Feature State: new sag mal, wie waere es mit einer Efun der Art object copy_object(object ob)? Hier kurz ein Umriss, was die machen soll und wozu sie mE sinnvoll waere: Sie kopiert ein Objekt _komplett_ (vorzugsweise natuerlich nur Clones) und legt einen neuen Clone an, der in den gleichen Zustand versetzt wird wie das Quellobjekt. D.h. Variableninhalte, Symbolreferenzen, laufende call_out()s usw. usf. werden uebernommen. Sinn der Sache waere u.a. eine dramatische Vereinfachung des Renew-Vorganges, den viele Mudlibs implementiert haben, der jetzt noch auf dem Kopieren von Properties beruht und bei jeder Aenderung der Mudlib auf dem neuesten Stand gehalten werden muss. Ausserdem kann eine solche "Stueck-fuer-Stueck"-Kopie natuerlich nie komplett sein, private und statische Variablen des Quellobjektes kann man ja nicht auslesen. Vielleicht in Verbindung mit einer Applied-Funktion copy(object ob) oder so, damit komplexere Objekte die Moeglichkeit haben, sich ueber Dinge hinaus kopieren koennen, die Du von Driverseite sehen kannst, zB koennte dann ein Raum, der einen NPC beinhaltet, sich komplett kopieren, also auch eine eigene Kopie des Ursprungs-NPC herstellen und hineinstellen. Wichtig dafuer waeren vielleicht auch aus C++ bekannte Friend-Mechanismen (zumindest die automatischen fuer Instanzen der gleichen Klasse). Naja. Nur so als Anregung. Schreib mal Deine Meinung dazu, wenn Du magst. ----- How to handle inventories and changed programs? The copy() apply could be done via a simul_efun overloading this efun.