Dokumentation zu: clean_up(A)

HR Image


SYNOPSIS
        int <lfun> (int refcount)
        int <closure>(int ref, object ob)

DESCRIPTION
        The hook H_CLEAN_UP defines a lfun or a closure used to clean
        up an object. In older drivers this was hardwired to the lfun
        clean_up().

        The function is applied by the driver when an object hasn't been
        used for a long time, to give it a chance to self-destruct. The
        refcount <ref> passed as argument will be 0 for clone objects,
        1 for a simple loaded object, and greater when the object is
        cloned or inherited by some existing object. It is recommended
        not to self_destruct the object when the reference count is
        greater than one.

        By convention, a refcount < 0 is used if some other object
        asks the called object to clean_up.

        If the function is a closure, the second argument <ob> is the
        object to clean up.

        If the hook specifies a non-existing lfun, or if the call
        returns 0, no further attempt to clean up this object will be made.

        Returning a non-zero value is only recommended when the reason
        why the object can't self-destruct is likely to vanish without
        the object being touched, that is, when no local function is
        called in it, (and in compat mode also when the object is not
        being moved around).

        A typical mud configuration defines the time to wait for
        clean_up() so long that you can assert reset() has been
        called since the object has been touched last time.

EXAMPLES
        A clone of /std/drink defines clean_up() to self-destruct if
        it is empty, not carried a living being and not touched for
        a long time.

        A room that inherits /std/room defines clean_up() to
        self-destruct if it is neither inherited nor used as a
        blueprint, is empty and was not entered for a long time.

HISTORY
        Before 3.2.1, the function was hardwired to the lfun clean_up().

SEE ALSO
        reset(A), heart_beat(A), call_out(E), destruct(E), remove(A),
        hooks(C)


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