
AddDrink()
**********


VERALTETE LFUN
==============

   Diese Lfun ist als veraltet gekennzeichnet (deprecated); ihre Nutzung
   loest daher eine Warnung aus. Bitte stattdessen AddToMenu() verwenden.


FUNKTION
========

   void AddDrink(string nameOfDrink, mixed ids, int price, int heal,
                 int strength, int soak, mixed myFunction);


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

   Die Funktion AddDrink() sollte NICHT MEHR BENUTZT werden.
   Bitte AddToMenu() verwenden.

   Bestehende Aufrufe koennen wie folgt ersetzt werden:

   AddToMenu(nameOfDrink, ids,
     ([ P_VALUE : price, P_DRINK : soak, P_ALCOHOL : strength,
        P_HP : heal/2, P_SP : heal/2 ]),
        min(heal/2, 5), myFunction, 0, 0, 0);


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

   AddToMenu(), RemoveFromMenu(), AddFood()

Last modified: 2021-04-05, Arathorn
