Dokumentation zu: CreateDropItems(L)

HR Image


FUNKTION:
        public varargs object* CreateDropItems( object target )

IMPLEMENTIERT IN:
        /std/npc/items.c

ARGUMENTE:
        target : (optional) Das Zielobjekt, wohin die Gegenstaende bewegt
                 werden. Wird es nicht angegeben, werden die Gegenstaende in
                 den NPC (this_object()) bewegt.

RÜCKGABEWERT:
        Die geklonten (gedropten) Objekte als Array oder 0, wenn keine
        Objekte angemeldet wurden oder wenn das Drop-System deaktiviert wurde
        (P_DROP_MODE). Achtung, das Array kann auch Nullen enthalten und es
        kann groesser sein, als mit P_MAX_DROPS eingestellt wurde!

BESCHREIBUNG:
        Erzeugt die vom NPC zu verlierenden Objekte ('drops'), die zuvor mit
        AddDropItem(L) oder ueber eine globale Liste angemeldet wurden. Der
        Aufruf ist pro NPC-Leben nur ein einziges Mal erfolgreich, weitere
        Aufrufe bewirken nichts, es wird dann nur die Liste der bereits
        erzeugten Objekte zurueckgegeben. Durch dieses Verhalten ist sicher-
        gestellt, dass durch (absichtlichen oder versehentlichen) Mehrfach-
        aufruf mehr Objekte erzeugt werden, als geplant.
        
        Normalerweise wird CreateDropItems(L) beim Sterben des NPCs vom
        Death-Handler (/global/handler/death.c) aufgerufen. Das bewirkt, das
        die Objekte erst zum Todeszeitpunkt in den NPC bzw. die Leiche oder
        in den Raum 'gedropt' werden. Das Klonen der Objekte wird dabei
        mit catch(E) geschuetzt, so dass der NPC auch stirbt, wenn eines der
        Objekte nicht geklont werden konnte. Die Fehlermeldung wird dennoch
        erzeugt!
        
        Wenn man erreichen moechte, dass der NPC seine Objekte bereits im
        create() erhaelt, muss man CreateDropItems(L) nach AddDropItem(L) 
        im create() selbst aufrufen. Es ersetzt damit das bislang uebliche:
        
                clone_object("/obj/foo")->move(this_object());

        Andere Objekte, die unabhaengig von AddDropItem(L) in den NPC bewegt
        werden, beeinflussen CreateDropItems(L) nicht.

SIEHE AUCH:
        AddDropItem(L), P_MAX_DROPS, P_DROP_MODE, P_DROP_ITEMS, AddItem(L)


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