Dokumentation zu: AddLiquid(L)

HR Image


FUNKTION:
        int AddLiquid(int Famount, mixed Fname, mixed Fdescr, int Fprice,
                      int Fheal, int Fstrength, int Fsoak, int Fweight, int Fnodrink);

DEFINIERT IN:
        /sys/lcontainer.h
        /std/lcontainer.c

ARGUMENTE:
        Famount : amount of liquid to be added to container, if more ignored
                  or better the container will run over
        Fname   : name (id) of the liquid, if there is still something inside
                  the container, it it will be mixed (string or string*)
        Fdescr  : if somebody wants to look at the liquid he sees it if the
                  container is open; use some kind of WEM. (string or string*)

        -- optional -- (all absolute values, not per litre or so)
        Fprice    : the price for the added liquid
        Fheal     : the healing abillity of the added liquid
        Fstrength : the strength of the liquid
        Fsoak     : the soak value of the added liquid
        Fweight   : weight of the added liquid (if 1000g != 1 litre)
        Fnodrink  : liquid is undrinkable

BESCHREIBUNG:
        Add something in the container:
        The return value is amount of liquid successfully added.
        A full or closed container returns 0.
        If env() cant carry weight of liquid -1 is returned.

BEISPIELE:
      - Im Raum kann man einen Lcontainer mit Wasser aus dem Bach fuellen
        a) der Lcontainer wird randvoll gefuellt:

        int GiveLiquid(string id, int am, object ob)
        {
                if (id != "wasser" && id != "bach") return 0;

                return ob->AddLiquid(am, "wasser", "Wasser", am/10, 0, 0,
                        am/2);
        }

        b) nur schluckweises auffuellen (ein Schluck == 20 ml)

        int GiveLiquid(string id, int am, object ob)
        {
                if (id != "wasser" && id != "fass") return 0;
                if (wasser<=5)
                {
                        wasser++;
                        return ob->AddLiquid(20, "wasser",
                          "Wasser", 2, 15, 0, 5);
                }
                write(break_string("Das Wasser scheint gerade "
                  "alle zu sein. Versuche es spaeter "
                  "wieder."));
                return -2;
        }

      - Ein Haendler fuellt Flaschen mit Wasser:

        #include <lcontainer.h>
        ...
        string auffuellen();
        ...
        void create()
        {
                AddInfo( "fuellst|fuellen|auffuellen&flasche|flaschen",
                        #'auffuellen);
        }

        string auffuellen()
        {
                int am;
                object *flaschen, *leer;

                flaschen = filter_objects(all_inventory(PL), "QueryProp",
                        P_LCNT_MAXCAPA);

                if (!sizeof(flaschen))
                        return "sagt: Du hast keine geeignete Flasche bei "
                               "Dir.";

                leer = filter_objects(flaschen, "IsEmpty");

                if (!sizeof(leer))
                        return "sagt: Du hast keine leere Flasche bei Dir.";

                am = leer[0]->QueryProp(P_LCNT_MAXCAPA);

                if (!PL->AddMoney(QueryProp(P_CURRENCY), -200))
                        return "Der Haendler schaut Dich geringschaetzig an "
                               "und meint: Du hast nicht genug Geld bei Dir."
                                "\n";

                if (leer[0]->AddLiquid(am, "wasser", "Wasser", am/10, 0, 0,
                        am/2))
                        return "oeffnet einen seiner Wasserschlaeuche und "
                               "fuellt Dir Deine Flasche mit frischem Wasser.";

                return "sagt: Etwas geht nicht.";
        }

      - eine Tasse nur fuer Tee
        int AddLiquid(int Famount, mixed Fname, mixed Fdescr, int Fprice,
                int Fheal, int Fstrength, int Fsoak, int Fweight, int Fnodrink)
        {
                if (stringp(Fname)) Fname = ({Fname});
                if (member(Fname, "tee") == -1)
                {
                        write("Diese Tasse ist nur fuer Tee.\n");
                        return -2;
                }
                return ::AddLiquid(Famount, Fname, Fdescr, Fprice, Fheal,
                        Fstrength, Fsoak, Fweight, Fnodrink);
        }
        
      - ausserdem in /doc/beispiele/lcontainer

SIEHE AUCH:
        lcontainer(STD), PourLiquid(L), GiveLiquid(L), FindLiquid(L),
        GetLiquid(L), P_LCONTAINER, P_LCNT_OPENMSG, P_LCNT_DRINKMSG,
        P_LCNT_CAPA, P_LCNT_MAXCAPA, P_LCNT_MINIMAL, P_LCNT_CLOSABLE,
        IsEmpty(L), AddMoney(L)


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