Dokumentation zu: AddDropItem(L)

HR Image


FUNKTION:
        public varargs void 
        AddDropItem( mixed pfad, mixed chance, mapping props )

IMPLEMENTIERT IN:
        /std/npc/items.c

ARGUMENTE:
        pfad   : Der Pfadname des zu clonenden Objektes als String oder ein
                 Array aus Strings. Wird ein Array angegeben, wird genau
                 eins (zufaellig) ausgewaehlt. Damit kann man verhindern,
                 dass 2 (oder mehr) bestimmte Objekte gleichzeitig gedropt
                 werden.

        chance : (optional) Eine Chance in Prozent (!) mit der das ange-
                 gebene Objekt erzeugt wird. Die Angabe von Integern als
                 auch von Fliesskommazahlen (bis 1/100-stel Praezision) ist
                 moeglich. Moeglicher Wertebereich ist also 0.01 bis 100.0.
                  
                 Folgende Standard-Defines existieren:
                  
                 DROP_MIN_CHANCE : Kleinste moegliche Chance (0.01%).
                 DROP_MAX_CHANCE : Groesste moegliche Chance (100.0%).
                 DROP_ALWAYS     : Objekt wird immer erzeugt, auch wenn
                                   der P_MAX_DROPS damit ueberschritten
                                   wird (siehe unten).

                 Alternativ zu einer Chance als Zahl kann auch eine Closure
                 angegeben werden, die beim Aufruf einen float-Wert zu-
                 rueckgeben muss. Die Closure wird mit 'path' als erstem 
                 Argument aufgerufen, wenn das Objekt erzeugt wird. Dies
                 sollte jedoch nur im Ausnahmefall verwendet werden!
                  
        props  : (optional) Ein Mapping mit Properties, die in dem er-
                 zeugten Gegenstand gesetzt werden. Dies kann zum Beispiel
                 fuer Units nuetzlich sein, um einen bestimmten P_AMOUNT
                 Wert zu setzen.
        
RÜCKGABEWERT:
        Keiner.

BESCHREIBUNG:
        Besiegte NPCs koennen mehr oder weniger nuetzliche Gegenstaende
        besitzen, die sie verlieren sollen, sobald sie sterben. Mit dieser
        Funktion kann man angeben, welche Objekte das sein sollen. Man kann
        eine Chance angeben oder weglassen. Im letzteren Fall wird auto-
        magisch ein Wert von DROP_MAX_CHANCE angenommen. Es koennen auch
        beide Modi gemischt werden. Die maximale Anzahl an Gegenstaenden
        kann man mit P_MAX_DROPS begrenzen (Standard: 3).
        
        Den Klon-Modus kann man mit P_DROP_MODE einstellen (experimentell).
        
        Standardeinstellung ist, dass das Drop-System nur dann verwendet 
        wird, wenn AddDropItem mindestens einmal aufgerufen wurde, oder
        der Drop-Modus (P_DROP_MODE) entsprechend eingestellt wird. Die
        Objekte werden zunaechst in P_DROP_ITEMS gesammelt und erst beim
        Aufruf von CreateDropItems(L) erzeugt. Dieser Aufruf findet
        normalerweise beim Sterben des NPC (Aufruf durch den Death-Handler)
        statt. Wenn man bewirken moechte, dass die Gegenstaende sofort er-
        zeugt werden, dann kann man CreateDropItems(L) auch selbst aufrufen.
        
        Die MUDLib kennt selbst Standard-Objekte, die jeder NPC verlieren
        kann, wenn die maximale Anzahl noch nicht erreicht ist. Ausserdem
        koennen Objekte auch ueber eine globale Liste angemeldet werden.
        Diese Objekte stehen aber immer hinter den individuell angemeldeten
        zurueck. (Diese Modi sind derzeit noch nicht verfuegbar.)

DROPS MIT CHANCE:
        Wird eine Chance angegeben, wird der jeweilige Gegenstand mit der
        entsprechenden Chance erzeugt. Wurden mehrere Objekte mit
        AddDropItem(L) angemeldet, werden maximal so viele erzeugt, wie mit
        P_MAX_DROPS angegeben wurde. Standardeinstellung ist 3, das heisst
        es werden standardmaessig bis zu (nie mehr als) 3 Gegenstaende
        erzeugt. Die Anzahl der mit AddDropItem(L) angemeldeten Objekte hat
        keinen Einfluss auf die Anzahl der erzeugten Gegenstaende. Es wird
        auch niemals der gleiche Gegenstand mehrmals erzeugt, es sei denn
        das gleiche Objekt wird mehrmals angemeldet.
        
        ACHTUNG: Die angegebene Chance ein Objekt zu verlieren verringert
        sich zusaetzlich, wenn mehr als P_MAX_DROPS Gegenstaende angemeldet
        werden!

        Beispiel:
        
        // Maximal einen Gegenstand verlieren.
        SetProp ( P_MAX_DROPS, 3 ) ;
        
        // NPC verliert zu 20% einen Knueppel und zu 0.5% ein Bier (und
        // ggf. ein weiteres Objekt aus der globalen Liste oder Standard-
        // Drops).
        AddDropItem ( "/obj/knueppel", 20.0 ) ; 
        AddDropItem ( "/obj/misc/bier", 0.5 ) ;
        
        Eine spezielle Chance ist 'DROP_ALWAYS'. Wird dieser Wert angegeben,
        wird das Objekt IMMER erzeugt, unabhaengig von der Anzahl an
        Objekten oder ob P_MAX_DROPS bereits erreicht ist.
        
        Beispiel:
        
        // Maximal einen Gegenstand verlieren.
        SetProp ( P_MAX_DROPS, 3 ) ;
        
        // NPC verliert auf jeden Fall die Fackel, zu 20% einen Knueppel,
        // zu 10% vier Opale und zu 0.5% ein Bier. Insgesamt verliert
        // der NPC aber nie mehr als 3 Objekte, da das mit P_MAX_DROPS
        // eingestellt wurde.
        AddDropItem ( "/obj/fackel",     DROP_ALWAYS ) ;
        AddDropItem ( "/obj/knueppel",   20.0 ) ; 
        AddDropItem ( "/obj/coins/opal", 10.0, ([P_AMOUNT : 4]) ) ; 
        AddDropItem ( "/obj/misc/bier",   0.5 ) ;

DROPS OHNE CHANCE:
        Wenn man keine Chance angibt, wird fuer den Gegenstand eine Maximal-
        Chance (100%) verwendet. Wurden jedoch mehrere Objekte mit
        AddDropItem(L) angemeldet, werden  jedoch maximal so viele erzeugt,
        wie mit P_MAX_DROPS angegeben wurde. Will man sicherstellen, dass
        alle angemeldeten Objekte auch erzeugt werden, muss man P_MAX_DROPS
        auf die Anzahl an AddDropItem() einstellen oder DROP_ALWAYS als
        Chance setzen (siehe oben).
        
        Beispiel: 

        // Maximal 3 Items verlieren.
        SetProp ( P_MAX_DROPS, 3 ) ;

        // NPC verliert immer ein Seil (und ggf. bis zu 2 weitere Objekte
        // aus der globalen Liste oder Standard-Drops).
        AddDropItem ( "/obj/seil" ) ; 

GLOBALE-DROPLISTE:
        Gegenstaende koennen nicht nur individuell mit AddDropItem(L) im NPC
        angemeldet werden, sondern auch ueber eine globale Drop-Liste.
        Dieses Feature ist derzeit noch in Entwicklung. Die inidividuell
        angemeldeten Objekte haben in jedem Falle Vorrang.

STANDARD-DROPS:
        Wird AddDropItem(L) verwendet, erzeugt auch die MUDLib selbst gege-
        benenfalls (nicht zwingend) 'allgemeine Gegenstaende', wie Fackeln,
        Messer, Jacken, Kleingeld etc. Es wird dabei automatisch nach
        Region, Level, Rasse, Geschlecht, Align und anderen Merkmalen des
        NPCs eine Auswahl getroffen. Es werden aber nie mehr als die mit
        P_MAX_DROPS erzeugten Gegenstaende erzeugt.

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


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