Dokumentation zu: objectd(WL)

HR Image


KONZEPT:
        Objekt-Daemon des Wunderland

EINLEITUNG:
        Der Objekt-Daemon dient dazu, Objekte verschiedener Art beim Laden
        eines Raumes ueber 'AddItem' hinzu zu fuegen bevor ein Lebewesen den
        Raum dann betritt.

WIE KANN MAN DIESEN DAEMON NUTZEN?
        Durch das includen von 'properties.h' wird auch die 'daemon.h'
        included in der wir den Objekt-Daemon ueber das Define OBJECTD
        aufrufen koennen.

DIE FUNKTIONEN:
	string AddObject(object obj, string env)
	string RemoveObject(object obj, string env)
	string *QueryObjects(string env)

DIE FUNKTION 'AddObject':
	Mit 'AddObject' sagen wir dem Objekt-Daemon das er sich fuer
	den Raum 'env' das Objekt 'obj' merken soll. Der Pfadname des
        Raum muss dessen object_name() sein. Ist env Null, so wird der
	Pfadname des Aufrufers (previous_object()) angenommen.

        Soll das Objekt 'sofort' im Raum vorhanden sein, so muss man sich
        selbst darum kuemmern - sonst wird es nur beim naechsten Erzeugen
        des Raums beruecksichtigt.

	'AddObject' liefert bei einem Fehler 0 (fuer nicht vorhandenes
	Objekt obj oder string env) und den Pfadnamen von env (wenn das
	Objekt 'obj' im Raum 'env' angemeldet wurde)

	raum = find_object("/players/gilbert/workroom");
	baum = clone_object("/players/gilbert/advent/obj/tannenbaum");
	baum->move(raum, M_NOCHECK|M_SILENT);
	OBJECTD->AddObject(baum, object_name(raum));

	Den Objekten kann auch spezielle Infos mitgegeben werden,
	siehe dazu die Hilfeseite zu P_AUTOLOAD.

DIE FUNKTION 'RemoveObject':
	Mit 'RemoveObject' sagen wir dem Objekt-Daemon das er aus
	dem Raum 'env' das Objekt 'obj' entfernen soll. Das Objekt
	'obj' muss nachdem wir 'RemoveObject' im Objekt-Daemon
	aufgerufen haben, zerstoert werden (wenn wir nicht wollen, dass
        es weiter existiert, ansonsten wird es nur einfach beim naechsten
        Erzeugen des Raums nicht mehr miterzeugt). Wir koennen das Objekt
	'obj' aber auch im Raum 'env' lassen, weil es (wenn der
	Raum mal entladen wird) dann ja mit verschwindet.

	'RemoveObject' liefert bei einem Fehler 0 (fuer nicht
	vorhandenes Objekt obj oder string env), oder den Pfadnamen des
	Raums bei Erfolg.

	raum = find_object("/players/gilbert/workroom");
	baum = find_object("/players/gilbert/advent/obj/tannenbaum");
	OBJECTD->RemoveObject(baum, object_name(raum));
	baum->remove(1);

DIE FUNKTION 'QueryObjects':
	Diese Funktion liefert uns ein Array mit allen object_name()n von
	den Objekten, die ueber den Objekt-Daemon mit 'AddObject'
	fuer den Raum env gespeichert wurden.

	'QueryObjects' liefert bei einem Fehler 0 (wenn 'arg' ein
	Clone ist) und ein Array mit den object_name()n der ueber
	'AddObject' angemeldeten Objekte, bei korrekter Ausfuehrung.

SIEHE AUCH:
	P_AUTOLOAD


Start » Magierhandbuch » Docu » Konzepte » Objectd Letzte Generierung: 25.04.2021, 01:58
Email an: mud@wl.mud.de
Valid HTML 4.01!