Um die Funktionalitaet einer Kneipe nutzen zu koennen, muss der Raum eine
der folgenden Dateien importieren:

'/std/pub.c'         - die Komplettloesung inclusive der Abhaengigkeit zu
                       '/std/room'

'/std/room/pub.c'    - die Mindestloesung, bei der man selbst die Abhaengig-
                       keit zu einem Raum definieren muss

------------------------------------------------------------------------------
Eine Zusammenfassung der Pub-Properties (fuer genaueres siehe manpages)
aus '/sys/pub.h'

P_NPC_FASTHEAL       - NPCs tanken hier auf die "schnelle" Art

P_NO_STD_DRINK       - Der Pub soll keine Standard-Getraenke anbieten

P_PUB_UNAVAILABLE    - Meldung, wenn etwas nicht mehr vorhanden ist

P_PUB_NOT_ON_MENU    - Meldung, wenn etwas nicht im Menue steht

P_PUB_NO_MONEY       - Meldung, wenn Spieler nicht genug Geld hat

P_PUB_NO_KEEPER      - Meldung, wenn der P_KEEPER nicht anwesend ist

aus '/sys/room/description.h'

P_KEEPER             - Id des Kneipeninhabers, der anwesend sein muss, 
                       damit die Kneipe genutzt werden kann

------------------------------------------------------------------------------
Methoden zur Manipulation des Menues (fuer genaueres siehe manpages)

AddToMenu            - fuegt einen Eintrag zum Menue hinzu

RemoveFromMenu       - entfernt einen Eintrag aus dem Menue

------------------------------------------------------------------------------
Ablauf und Manipulationsmoeglichkeiten in einer Kneipe

Wunsch wurde ueber 'kaufe', 'bestelle' oder 'spendiere' abgegeben:

search_what()        - prueft, dass nicht mehrere Wuensche auf einmal
                       geaeussert werden und ruft consume_something() auf

consume_something()  - prueft die Anwesenheit der beteiligten Personen
                     - prueft die Anwesenheit des Kneipenbesitzers
                     - prueft das Ignorieren beim Spendieren
                     - prueft die Verfuegbarkeit von genuegend Geld beim
                       Besteller ( check_solvency() )
                     - prueft die Verfuegbarkeit des Gewuenschten
                       ( CheckAvailability() )
                     - prueft, ob der Empfaenger in der Lage ist, das
                       Bestellte zu konsumieren
                       ( ueber empfaenger->consume(testonly) )

                     - fuehrt die Bezahlung durch ( do_pay() )
                     - fuehrt die Vergabe von FPs durch ( GiveEP() )
                     - entnimmt das Bestellte aus der Menge des Angebotes
                       ( DecreaseAvailibility() )
                     - prueft, ob eine Verzoegerung der Lieferung erfolgen
                       soll und uebergibt im Negativfall gleich an
                       do_deliver()
                     - Ausgabe der Meldungen zur Bestellung
                     - verzoegerter Aufruf von do_deliver()
                     
do_deliver()         - prueft nochmal die Anwesenheit des Empfaengers
                     - prueft, ob Heilung erlaubt ist (ueber Pubmaster)
                     - prueft P_NPC_FASTHEAL und korrigiert die Angaben, die
                       aus dem Menueeintrag kommen
                     - fuehrt das Konsumieren beim Empfaenger durch
                       ( empfaenger->consume() )
                     - Ausgabe der Meldung zum Konsumieren

pub_init()           - Moeglichkeit fuer Magier, die Werte der angebotenen
                       Speisen und Getraenke zu ueberpruefen
                     - erweiterte Moeglichkeiten zum Pruefen von korrekten
                       Menueeintraegen bietet das Pub-Tool
                       ( '/obj/tools/pubtool.c' )

Hinweis: Um diese Pruefungen und Aktionen sicher zu gewaehrleisten, sollte
         man consume_something oder do_deliver NICHT ueberschreiben!
         Das fuehrt bei Aenderungen mit grosser Wahrscheinlichkeit zu
         Problemen!
         Ueberschreibt besser die Methoden, die die Funktionalitaet
         beinhaltet, die ihr wirklich anpassen wollt.
         Falls das nicht geht, sprecht lieber mit einem RM+, ob eine Loesung
         dafuer gefunden werden kann. Der Standard-Pub wurde in der
         Vergangenheit so immer modularer und besser.


SIEHE AUCH: AddToMenu, RemoveFromMenu, consume, QueryMoney, AddMoney 

------------------------------------------------------------------------------
Last modified: Son Apr 11 19:28:00 2010 by Caldra
