give()

FUNKTION:
    public varargs int give(object o, object dest, mixed msg);

DEFINIERT IN:
    /std/living/put_and_get.c

ARGUMENTE:
    object o
        Das Objekt, das uebergeben werden soll.
    object dest
        Der Spieler oder NPC, der das Objekt bekommen soll.
    mixed msg
        Eine optionale Meldung, die anstelle von P_GIVE_MSG oder der
        Standardmeldung verwendet wird, oder -1, um die Meldung zu
        unterdruecken.

BESCHREIBUNG:
    Der Spieler oder NPC uebergibt dem Empfaenger das Objekt. Gibt o->move()
    keinen positiven Wert zurueck, beispielsweise weil das Objekt verflucht
    ist oder der Empfaenger es nicht mehr tragen kann, bekommt er eine
    entsprechende Fehlermeldung.

RUECKGABEWERT:
    Wenn die Uebergabe geklappt hat, 1, ansonsten 0.

BEMERKUNG:
    Diese Funktion ist dann sinnvoll, wenn man den Spieler ein Objekt
    weitergeben lassen und sich nicht selbst um die Fehlerbehandlung kuemmern
    moechte - und da unzaehlige verschiedene Dinge schiefgehen koennen und
    manche Objekte eigene Fehlermeldungen definieren, eigentlich immer.

    Die Funktion prueft nicht, ob der Spieler/NPC der Objekt ueberhaupt hat,
    das muss man ggf. selbst ermitteln.

SIEHE AUCH:
    move(L), P_GIVE_MSG, give_objects(L), give_notify(L),
    P_NOINSERT_MSG, P_NOLEAVE_MSG, P_TOO_MANY_MSG,
    P_TOO_HEAVY_MSG, P_ENV_TOO_HEAVY_MSG, P_NODROP

----------------------------------------------------------------------------
Last modified: Thu Aug 28 22:21:19 2008 by Amynthor
