Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc//std/pubUm 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
zurück zur Übersicht