Lpc Manpages

FUNKTION:
    int DoDrink(mapping liquids)

DEFINIERT IN:
    /std/flasche.c

ARGUMENTE:
    liquids
        Mapping mit Fluessigkeitsmengen, die getrunken werden sollen.

BESCHREIBUNG:
    Diese Funktion wird aufgerufen, wenn ein Spieler Fluessigkeit aus einem
    Behaelter trinkt. Als Argument bekommt sie ein Mapping der Form

        ([ Fluessigkeit1: Menge1,
           Fluessigkeit2: Menge2,
           ...                     ])

    uebergeben, welches die Namen und Mengen (in Milliliter) der einzelnen
    Fluessigkeiten enthaelt, die dabei aus der Flasche entfernt werden.

    Indem man diese Funktion in eigenen Objekten ueberschreibt, kann man
    alle moeglichen Reaktionen auf das Trinken von Fluessigkeit programmieren.

RUECKGABEWERT:
    Wenn diese Funktion 0 zurueckgibt, dann wird das Trinken nicht durch-
    gefuehrt, das heisst, die Fluessigkeit bleibt in der Flasche. Gibt sie
    einen anderen Wert als 0 zurueck, wird das Trinken durchgefuehrt, die
    einzelnen Fluessigkeitsmengen also aus der Flasche entfernt. Ausserdem
    wird dann eine Meldung ausgegeben.

BEMERKUNGEN:
    Diese Funktion dient als "Hook", damit man in eigenen Objekten auf
    einfache Weise Aktionen beim Trinken von Fluessigkeit programmieren
    kann. Es ist relativ sinnlos, diese Funktion selbst aufzurufen.

    Normalerweise (d.h. ohne dass man sie ueberschreibt) erledigt diese
    Funktion die Berechnung und Anwendung der Saettigungs-, Alkohol-,
    Heilungs- und Giftpunkte auf den Spieler.

DOKUMENTIERT:
    22.05.97 Marcel

BEISPIEL:
    Besondere Meldung an Mitspieler, wenn jemand Cola trinkt:
    
    int DoDrink(mapping liquids)
    {
      if (liquids["cola"]) {
        say(break_string("Iiiih! "+this_player()->Name(WER)+
          " trinkt Cola!"));
      }
      
      return ::DoDrink(liquids);
    }

SIEHE AUCH:
    flasche, DoPour, StatusDescription, FillingDescription,
    ContentDescription