Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc//wiz/potionmasterDer Potionmaster (/secure/potionmaster)
=======================================
BESCHREIBUNG
Funktion: Verwaltung der Zaubertraenke, die Spieler finden koennen.
Zaubertraenke koennen von beliebigen Objekten im Spiel vergeben werden.
Jeder Spruch ist in einer eigenen Datei in /secure/ARCH/ZT hinterlegt,
wobei der Dateiname das allgemeine Format .zt haben muss.
entspricht hierbei der ZT-Nummer.
Die Tips zu den Traenken werden vom Orakel /room/orakel ausgegeben,
sofern der Spieler genug Stufenpunkte fuer einen neuen Spruch erspielt
hat (siehe hierzu "hilfe zt"). Die Tips werden dabei aus den o.g. Dateien
eingelesen. Der ZT wird von dem vergebenden Objekt durch Aufruf von
FindPotion(string msg) im Spielerobjekt gutgeschrieben.
In dieser Datei sind die Funktionen des Potionmasters dokumentiert.
Inhalt:
1. Zaubertraenke eintragen und aktivieren/deaktivieren
2. Zaubertraenke in eine Liste einsortieren
3. Zaubertraenke verlegen
4. Daten zu Zaubertraenken abfragen
5. Ein neuer ZT: Was tun?
6. Format der Zaubertrank-Tips
7. Wo finde ich eigentlich?
8. Verschiedenes
FUNKTIONEN
1. Zaubertraenke eintragen und aktivieren/deaktivieren
int AddPotionroom(string room, int list)
Der Raum wird als neuer ZT-Fundort eingetragen und in die Liste
mit der Nummer eingefuegt. room muss hierbei der load_name()
des Objekts sein, unt darf Werte von 0 bis 7 haben. Der ZT
wird dabei aktiviert.
Rueckgabewerte:
Nummer des naechsten neuen ZTs, ist die Nummer des
neu eingetragenen ZTs.
-1 Zugriff verweigert
-2 kein String, ist nicht im Bereich 0-7
-3 ist nicht ladbar
-4 vergibt schon einen (anderen) ZT
-6 Datei mit ZT-Spruch (/secure/ARCH/ZT/.zt) existiert nicht.
int ActivateRoom(string room)
Der ZT im Raum wird aktiviert, d.h. er kann aktiv von dem Raum
vergeben werden. Technisch wird er aus der Liste der inaktiven ZTs
ausgetragen. muss hierbei der load_name() des Raumes sein.
Rueckgabewerte:
Nummer des aktivierten ZTs
-1 Zugriff verweigert
-5 ungueltiger ZT (Raum ist nicht als ZT-Objekt eingetragen)
-8 ist bereits aktiviert
int DeactivateRoom(string room)
Der ZT im Objekt wird deaktiviert, d.h. er kann nicht mehr
von dem Objekt vergeben werden. Technisch wird er in die Liste der
inaktiven ZTs eingetragen. muss hierbei der load_name() des
Raumes sein.
Rueckgabewerte:
Nummer des geaenderten ZTs
-1 Zugriff verweigert
-5 ungueltiger ZT
-9 ist bereits inaktiv
2. Zaubertraenke in eine Liste einsortieren
int SetListNr(string room, int list)
Traegt den Zaubertrank in Raum in die Liste ein.
muss hierbei der load_name() des Objekts sein.
Rueckgabewerte:
Nummer des geaenderten ZTs
-1 Zugriff verweigert
-5 ungueltiger ZT
-7 ausserhalb der zugelassenen Werte, d.h. <0 oder >7
3. Zaubertraenke verlegen
int ChangeRoomPath(string old, string new)
Der Zaubertrank in Raum wird in den Raum umgetragen.
Rueckgabewerte:
Nummer des erfolgreich geaenderten Zaubertranks
-1 Zugriff verweigert
-2 oder oder beide sind keine Strings
-3 vergibt keinen ZT, es gibt also nichts zu verlegen, oder
ist nicht ladbar, dorthin kann also nicht verlegt werden
-4 hat schon einen Zaubertrank
4. Daten zu Zaubertraenken abfragen
mixed QueryPotionData(int num)
Abfrage der Daten zu dem ZT mit der Nummer . Ausgegeben wird ein
Mapping der Form ([ num : Raumpfad; Listennummer ])
int QueryInactivePotions()
Liefert ein Array mit den Nummern der aktuell deaktivierten ZTs zurueck.
int QueryActive(mixed potion)
Gibt zu einer ZT-Nummer oder einem Raumpfad an, ob der betreffende ZT
aktiv ist oder nicht. Wenn ja, wird die entsprechende ZT-Nummer
zurueckgegeben.
Rueckgabewerte:
Nummer des abgefragten ZTs
-1 Zugriff verweigert
-5 ungueltiger ZT
-11 ZT ist nicht aktiv
string GetFilenameByNumber(int nr)
Abfrage des Dateinamens zu Zaubertrank Nummer .
Rueckgabewerte:
Nummer des abgefragten ZTs
-1 Zugriff verweigert
-5 ungueltiger ZT
int HasPotion(object obj)
Abfrage der Zaubertranknummer, die von dem Objekt vergeben wird.
Rueckgabewerte:
Nummer des abgefragten ZTs
-1 Zugriff verweigert
-3 Raum vergibt keinen ZT
int GetListByNumber(int nr)
Abfrage der Liste aktiver ZTs, in der der ZT mit der Nummer
eingetragen ist.
Rueckgabe: Nummer der Liste, in der der ZT enthalten ist, sonst -5.
int GetInactListByNumber(int nr)
Abfrage der Liste inaktiver ZTs, in der der ZT mit der Nummer
eingetragen ist.
Rueckgabe: Nummer der Liste, in der der ZT enthalten ist, sonst -10.
5. Ein neuer ZT: Was tun?
AddPotionRoom(newroom, liste) aufrufen. Wenn ein Fehler auftritt, muss
noch der ZT-Tip in dem unter 6. beschriebenen Format hinterlegt werden.
Der zu verwendende Dateiname ist in der Fehlermeldung angegeben.
6. Format der Zaubertrank-Tips
Ein Beispiel mit zwei Tips fuer denselben Zaubertrank:
Die Zaubermaus wollts wohl verstecken,
Im Buecherwald sollst nichts entdecken,
Denn Trinkgenuss ist dort verpoent,
So ist mans auch RL gewoehnt.
XXXXX
Der Raum ist prall und star gefuellt,
Mit viel Papier, das gern verhuellt
In Zauberbuchform manches Od,
Das hilft Dir dann aus Deiner Not.
%%%%%
Die Prozentzeichen sind das Endezeichen, danach koennen eventuelle
Kommentare stehen. XXXXX ist das Trennzeichen zwischen zwei Tips
zum selben ZT. Auswirkung ist, dass der Spieler bei jedem Aufruf
seiner Zaubertrank-Liste zufaellig einen Spruch aus der Liste
angezeigt bekommt.
7. Wo finde ich eigentlich?
- die Zaubertrank-Tips: /secure/ARCH/ZT/*.zt
- die Gesamtliste der ZTs: /secure/ARCH/POTIONS.dump
- das Savefile des Potionmasters: /secure/ARCH/potions.o
- das Logfile fuer Aenderungen: /log/ARCH/POTIONS_MOD.log
8. Verschiedenes
mixed TipLesen(int nr)
Das Orakel auf der Hochebene ruft die Zaubertrank-Tipps ab, diese
werden von der Platte gelesen und als String an das Orakel
zurueckgeliefert.
int DumpList()
Die Komplettliste der ZTs in das Dumpfile /secure/ARCH/POTIONS.dump
schreiben.
SIEHE AUCH:
Spielerbefehle: zaubertraenke
Magierbefehle: traenke
Properties: P_POTIONROOMS, P_KNOWN_POTIONROOMS
Anleitung: wiz/zaubertraenke
ZT finden: FindPotion(L)
2013-Mai-30 Arathorn
zurück zur Übersicht