Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//lfun/consume

consume()
*********

public varargs int consume(mapping cinfo, int testonly)


FUNKTION
========

   public varargs int consume(mapping cinfo, int testonly);

   Aenderung der Gesundheit eines Lebewesens durch etwas Konsumierbares.


DEFINIERT IN
============

   /std/living/life.c


ARGUMENTE
=========

   cinfo
     Mapping mit Informationen ueber die Gesundheitsaenderung. Folgende
     Schluessel koennen verwendet werden:
     H_EFFECTS - Mapping der zu aendernden Properties mit dem Umfang der
                 Aenderung, erlaubte Properties siehe H_ALLOWED_EFFECTS
                 (P_HP, P_SP, P_POISON).
     H_CONDITIONS - Mapping der zu pruefenden Properties mit dem Umfang der
                    Aenderung, erlaubte Properties siehe
                    H_ALLOWED_CONDITIONS (P_FOOD, P_DRINK, P_ALCOHOL)
     H_DISTRIBUTION - Verteilung der Aenderung fuer P_HP, P_SP
                      HD_INSTANT:  sofortige Heilung
                      HD_STANDARD: 5 pro Heartbeat
                      1 - 50:      angebene Zahl pro Heartbeat
     Aenderungen koennen sowohl positiv als auch negativ sein.

   testonly
     Gibt an, ob nur die Bedingungen abgetestet werden sollen, oder
     auch die Wirkung eintreten soll.


RUECKGABEWERT
=============

    1 erfolgreich konsumiert
    0 keine oder falsche Aenderungsdaten in cinfo (nicht benutzbar)
   <0 Bedingung fuer konsumieren nicht erfuellt.
      Der Rueckgabewert ist dann ein Bitset aus:
      HC_MAX_FOOD_REACHED    - Kann nichts mehr essen
      HC_MAX_DRINK_REACHED   - Kann nichts mehr trinken
      HC_MAX_ALCOHOL_REACHED - Kann nichts mehr saufen
      HC_HOOK_CANCELLATION   - durch H_HOOK_CONSUME abgebrochen

    Hinweis: Wenn eine der Bedingungen nicht erfuellt ist, wird gar keine
    Heilung ausgefuehrt, aber es sind stets alle Fehlercodes im
    Rueckgabewert eingetragen.


BESCHREIBUNG
============

   Die Funktion stellt eine Moeglichkeit zur Verfuegung, die Aenderung
   der Gesundheit eines Lebewesens beim Konsumieren von irgendetwas (z.B in
   einer Kneipe, durch eine Heilstellte oder tragbare Tanke, ...) zentral zu
   erledigen. Sie vereint in sich die Pruefung auf Durchfuerbarkeit der
   Aenderung und Anwendung der Aenderung.

   Das erste Argument gibt die Eigenschaften der Aenderung an, der zweite
   ob ausschliesslich die Pruefung auf Anwendbarkeit erfolgen soll.


BEMERKUNGEN
===========

   Hierbei bitte beachten, dass Tanken/Entanken sowie Heilungen ggf. von
   der (Heilungs-)Balance genehmigt werden muessen!

   Historischer Code enthaelt u.U. auch eine einfache Angabe der
   betroffenen Properties als Argument enthalten. Dies in neuem Code
   nicht mehr machen, dort ein Mapping wie oben beschrieben nutzen.

   H_ALLOWED_CONDITIONS und H_ALLOWED_EFFECTS sind in /sys/living/life.h
   definiert.


BEISPIELE
=========

   Heilung um 100 KP, 50 LP, aber nur wenn 30 P_FOOD gegessen werden kann:

   consume( ([H_EFFECTS:    ([P_HP:50, P_SP:100]),
              H_CONDITIONS: ([P_FOOD:30]) ]) );

   Heilung um 100 KP und Vergiftung um 2, wenn 15 Alkohol getrunken werden
   koennen. Die SP werden zeitverzoegert mit 10 pro Heartbeat zugefuehrt.

   consume( ([H_EFFECTS:      ([P_SP: 100, P_POISON: 2]),
              H_CONDITIONS:   ([P_ALCOHOL: 15]),
              H_DISTRIBUTION: 10]) );


SIEHE AUCH
==========


Aehnlich: drink_alcohol, eat_food, drink_soft Heilung: heal_self, restore_spell_points, restore_hit_points, buffer_hp, buffer_sp Timing: check_and_update_timed_key Enttanken: defuel_drink, defuel_food Props: P_DRINK, P_FOOD, P_ALCOHOL, P_SP, P_HP, P_DEFUEL_TIME_DRINK Konzepte: heilung, enttanken, food



LETZTE AeNDERUNG ================ 29.05.2015, Boing


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.