Dokumentation zu: lcontainer(STD)

HR Image


STANDARDOBJECT FUER FUELLBARE GEFAESSE (LCONTAINER)

        ... provisorisch ...

BENUTZUNG:
        inherit "std/lcontainer";

        #include <lcontainer.h>

BESCHREIBUNG:

        Der Lcontainer kann sowohl Fluessigkeiten als auch Objekte aufnehmen.
        Die Kapazitaet fuer normale Objekte kann mittels P_MAX_WEIGHT
        festgelegt werden. Defaultmaessig kann der Lcontainer aber auch Objekte
        bis zu 1kg pro Liter Kapazitaet (P_LCNT_MAXCAPA) aufnehmen. Wenn
        P_MAX_WEIGHT auf 0 gesetzt ist, koennen nur Fluessigkeiten aufge-
        nommen werden.
        In Raeumen muss die Funktion GiveLiquid gegeben sein, um dort einen
        Lcontainer fuellen zu koennen.
        Wenn der Inhalt des Lcontainers fluessig ist, belastet sein ganzes
        Gewicht den Spieler. Fuer Objekte wirkt P_WEIGHT_PERCENT ebenso wie
        beim normalen Container.

BEMERKUNG:

        Man kann die Werte fuer Capa, MaxCapa, Price, Heal, Strengh (Alkohol-
        lastigkeit :o) ), Soak und Weight mittels der Funktion void DUMP()
        abfragen:
        xcall $m.flasche->DUMP()
        Capa 700, MaxCapa 700 -> 0
        Price 0, Heal 0, Stren 0, Soak 0, Weight 0

PROPERTIES:

        P_NODRINK       - wird nicht benutzt?
        P_LCONTAINER    - ist 1 wenn es ein Lcontainer ist
        P_LCNT_OPENMSG  - Meldungen fuer das Oeffnen und Schliessen des Lcontainers
        P_LCNT_DRINKMSG - Meldungen fuer das Trinken aus dem Lconatiner
        P_LCNT_CAPA     - intern (Fuellstand in Milliliter)
        P_LCNT_MAXCAPA  - Kapazitaet in Milliliter
        P_LCNT_CLOSABLE - wenn 0, kann der Lcontainer nicht geschlossen werden
        P_LCNT_MINIMAL  - man kann immer was hinzufuegen, auch wenn der Lcontainer
                          schon voll ist
        P_TRANSPARENT   - wenn 0 kann man nicht hineinsehen wenn er zu ist
        P_TRANSLUCENT   - wenn 0 lichtundurchlaessig
        P_MAX_WEIGHT    -
        P_WEIGHT        -
        P_DESCR         - wird automatisch erzeugt und (leer) bzw. (voll) etc.
                          an den Name angehaengt.

FUNKTIONEN:

        int AddLiquid(Famount, Fname, Fdescr, Fprice, Fheal, Fstrength,
          Fsoak, Fweight);
          - dem Lcontainer etwas hinzufuegen

        int PourLiquid(Famount, where);
          - etwas aus dem Lcontainer ausschuetten

        int GiveLiquid(string name, int amount, object us);
          - fuer den Fuellraum: stellt Fluessigkeit zur Verfuegung

        int GetLiquid(int id)
          - gibt die fluessigen Inhalte zurueck

        int FindLiquid(string id, int force)
          - sucht die Fluessigkeit id im Lcontainer.
            Falls 'force' gesetzt ist, wird nicht ueberprueft, ob der
            Behaelter geschlossen ist.

        int IsEmpty()
          - ist der Lcontainer leer?

        int IsOpen()
          - ist der Lcontainer offen?

BEISPIELE:
        - lcontainer:

        inherit "lcontainer";

        #pragma strong_types

        #include <properties.h>
        #include <lcontainer.h>

        void create()
        {
          if (!clonep()) return;
          ::create();

          SetProp(P_NAME, "Lederflasche");
          SetProp(P_PLURAL, "Lederflaschen");
          AddId(({"flasche","lederflasche","bocksbeutel"}),
            ({"flaschen","lederflaschen","bocksbeutel"}));
          SetProp(P_LONG,
            "Die Flasche hat die Form eines Bocksbeutels "
            "und ist kunstvoll mit Lederbaendern umwickelt. "
            "An ihren Seiten ist ein Riemen befestigt, "
            "damit man sie besser tragen kann. Sie ist mit einem Korken "
            "verschliessbar.");
          SetProp(P_WEIGHT, 150);
          SetProp(P_LCNT_MAXCAPA, 700);
          SetProp(P_LCNT_CLOSABLE, 1);
          SetProp(P_VALUE, 100);
          SetProp(P_TRANSPARENT, 0);
          SetProp(P_MAX_WEIGHT, 0); // gaaanz enger Hals
          SetProp(P_GENDER, FEMALE);
          SetProp(P_LCNT_OPENMSG, ({
            "Du ziehst den Korken aus der Flasche.",
            " zieht den Korken aus einer Lederflasche.",
            "Schwupps - der Korken ist wieder drauf.",
            " verkorkt eine Flasche." }) );
          SetProp(P_LCNT_DRINKMSG, ({
            "Du trinkst @@howmuch@@ aus der Flasche.",
            " setzt sich eine Flasche an den Hals und gluggert "
            "@@howmuch@@ in sich rein.",
            "Da ist doch gar nichts drin!",
            " hat Halluzinationen und versucht, aus einer leeren "
            "Flasche zu trinken." }) );
        }

        - 'Fuell'-Raum:

        inherit "room";

        void create()
        {
          ::create();
          ...
        }

        int GiveLiquid(string id, int am, object ob)
        {
          int given;
          if (id != "wasser" && id != "bach") return 0;
          given=ob->AddLiquid(am, "wasser", "Wasser", am/10, 0, 0, am/2);
          return given;
        }

        - ausserdem in /doc/beispiele/lcontainer

SIEHE AUCH:
        container(STD), room(STD), AddLiquid(L), PourLiquid(L), GiveLiquid(L),
        GetLiquid(L), FindLiquid(L), IsOpen(L), P_LCONTAINER, P_LCNT_OPENMSG,
        P_LCNT_CAPA, P_LCNT_MAXCAPA, P_LCNT_MINIMAL, P_LCNT_CLOSABLE,
        P_LCNT_DRINKMSG, IsEmpty(L)


Start » Magierhandbuch » Docu » Std » Lcontainer Letzte Generierung: 01.05.2021, 16:59
Valid HTML 4.01!