blob: 6b8bfd21e853c05648ff57d88baa26707aa36a4f [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001Der Potionmaster (/secure/potionmaster)
2=======================================
3
4BESCHREIBUNG
5
6 Funktion: Verwaltung der Zaubertraenke, die Spieler finden koennen.
7
8 Zaubertraenke koennen von beliebigen Objekten im Spiel vergeben werden.
9 Jeder Spruch ist in einer eigenen Datei in /secure/ARCH/ZT hinterlegt,
10 wobei der Dateiname das allgemeine Format <nr>.zt haben muss. <nr>
11 entspricht hierbei der ZT-Nummer.
12
13 Die Tips zu den Traenken werden vom Orakel /room/orakel ausgegeben,
14 sofern der Spieler genug Stufenpunkte fuer einen neuen Spruch erspielt
15 hat (siehe hierzu "hilfe zt"). Die Tips werden dabei aus den o.g. Dateien
16 eingelesen. Der ZT wird von dem vergebenden Objekt durch Aufruf von
17 FindPotion(string msg) im Spielerobjekt gutgeschrieben.
18
19 In dieser Datei sind die Funktionen des Potionmasters dokumentiert.
20 Inhalt:
21
22 1. Zaubertraenke eintragen und aktivieren/deaktivieren
23 2. Zaubertraenke in eine Liste einsortieren
24 3. Zaubertraenke verlegen
25 4. Daten zu Zaubertraenken abfragen
26 5. Ein neuer ZT: Was tun?
27 6. Format der Zaubertrank-Tips
28 7. Wo finde ich eigentlich?
29 8. Verschiedenes
30
31
32FUNKTIONEN
33
341. Zaubertraenke eintragen und aktivieren/deaktivieren
35
36 int AddPotionroom(string room, int list)
37 Der Raum <room> wird als neuer ZT-Fundort eingetragen und in die Liste
38 mit der Nummer <list> eingefuegt. room muss hierbei der load_name()
39 des Objekts sein, unt <list> darf Werte von 0 bis 7 haben. Der ZT
40 wird dabei aktiviert.
41
42 Rueckgabewerte:
43 <num> Nummer des naechsten neuen ZTs, <num-1> ist die Nummer des
44 neu eingetragenen ZTs.
45 -1 Zugriff verweigert
46 -2 <room> kein String, <list> ist nicht im Bereich 0-7
47 -3 <room> ist nicht ladbar
48 -4 <room> vergibt schon einen (anderen) ZT
49 -6 Datei mit ZT-Spruch (/secure/ARCH/ZT/<num>.zt) existiert nicht.
50
51 int ActivateRoom(string room)
52 Der ZT im Raum <room> wird aktiviert, d.h. er kann aktiv von dem Raum
53 vergeben werden. Technisch wird er aus der Liste der inaktiven ZTs
54 ausgetragen. <room> muss hierbei der load_name() des Raumes sein.
55
56 Rueckgabewerte:
57 <num> Nummer des aktivierten ZTs
58 -1 Zugriff verweigert
59 -5 ungueltiger ZT (Raum ist nicht als ZT-Objekt eingetragen)
60 -8 <room> ist bereits aktiviert
61
62 int DeactivateRoom(string room)
63 Der ZT im Objekt <room> wird deaktiviert, d.h. er kann nicht mehr
64 von dem Objekt vergeben werden. Technisch wird er in die Liste der
65 inaktiven ZTs eingetragen. <room> muss hierbei der load_name() des
66 Raumes sein.
67
68 Rueckgabewerte:
69 <num> Nummer des geaenderten ZTs
70 -1 Zugriff verweigert
71 -5 ungueltiger ZT
72 -9 <room> ist bereits inaktiv
73
742. Zaubertraenke in eine Liste einsortieren
75
76 int SetListNr(string room, int list)
77 Traegt den Zaubertrank in Raum <room> in die Liste <list> ein.
78 <room> muss hierbei der load_name() des Objekts sein.
79
80 Rueckgabewerte:
81 <num> Nummer des geaenderten ZTs
82 -1 Zugriff verweigert
83 -5 ungueltiger ZT
84 -7 <list> ausserhalb der zugelassenen Werte, d.h. <0 oder >7
85
863. Zaubertraenke verlegen
87
88 int ChangeRoomPath(string old, string new)
89 Der Zaubertrank in Raum <old> wird in den Raum <new> umgetragen.
90
91 Rueckgabewerte:
92 <num> Nummer des erfolgreich geaenderten Zaubertranks
93 -1 Zugriff verweigert
94 -2 <new> oder <old> oder beide sind keine Strings
95 -3 <old> vergibt keinen ZT, es gibt also nichts zu verlegen, oder
96 <new> ist nicht ladbar, dorthin kann also nicht verlegt werden
97 -4 <new> hat schon einen Zaubertrank
98
994. Daten zu Zaubertraenken abfragen
100
101 mixed QueryPotionData(int num)
102 Abfrage der Daten zu dem ZT mit der Nummer <num>. Ausgegeben wird ein
103 Mapping der Form ([ num : Raumpfad; Listennummer ])
104
105 int QueryInactivePotions()
106 Liefert ein Array mit den Nummern der aktuell deaktivierten ZTs zurueck.
107
108 int QueryActive(mixed potion)
109 Gibt zu einer ZT-Nummer oder einem Raumpfad an, ob der betreffende ZT
110 aktiv ist oder nicht. Wenn ja, wird die entsprechende ZT-Nummer
111 zurueckgegeben.
112
113 Rueckgabewerte:
114 <num> Nummer des abgefragten ZTs
115 -1 Zugriff verweigert
116 -5 ungueltiger ZT
117 -11 ZT ist nicht aktiv
118
119 string GetFilenameByNumber(int nr)
120 Abfrage des Dateinamens zu Zaubertrank Nummer <nr>.
121
122 Rueckgabewerte:
123 <num> Nummer des abgefragten ZTs
124 -1 Zugriff verweigert
125 -5 ungueltiger ZT
126
127 int HasPotion(object obj)
128 Abfrage der Zaubertranknummer, die von dem Objekt <obj> vergeben wird.
129
130 Rueckgabewerte:
131 <num> Nummer des abgefragten ZTs
132 -1 Zugriff verweigert
133 -3 Raum vergibt keinen ZT
134
135 int GetListByNumber(int nr)
136 Abfrage der Liste aktiver ZTs, in der der ZT mit der Nummer <nr>
137 eingetragen ist.
138 Rueckgabe: Nummer der Liste, in der der ZT enthalten ist, sonst -5.
139
140 int GetInactListByNumber(int nr)
141 Abfrage der Liste inaktiver ZTs, in der der ZT mit der Nummer <nr>
142 eingetragen ist.
143 Rueckgabe: Nummer der Liste, in der der ZT enthalten ist, sonst -10.
144
1455. Ein neuer ZT: Was tun?
146
147 AddPotionRoom(newroom, liste) aufrufen. Wenn ein Fehler auftritt, muss
148 noch der ZT-Tip in dem unter 6. beschriebenen Format hinterlegt werden.
149 Der zu verwendende Dateiname ist in der Fehlermeldung angegeben.
150
1516. Format der Zaubertrank-Tips
152
153 Ein Beispiel mit zwei Tips fuer denselben Zaubertrank:
154
155 Die Zaubermaus wollts wohl verstecken,
156 Im Buecherwald sollst nichts entdecken,
157 Denn Trinkgenuss ist dort verpoent,
158 So ist mans auch RL gewoehnt.
159 XXXXX
160 Der Raum ist prall und star gefuellt,
161 Mit viel Papier, das gern verhuellt
162 In Zauberbuchform manches Od,
163 Das hilft Dir dann aus Deiner Not.
164 %%%%%
165
166 Die Prozentzeichen sind das Endezeichen, danach koennen eventuelle
167 Kommentare stehen. XXXXX ist das Trennzeichen zwischen zwei Tips
168 zum selben ZT. Auswirkung ist, dass der Spieler bei jedem Aufruf
169 seiner Zaubertrank-Liste zufaellig einen Spruch aus der Liste
170 angezeigt bekommt.
171
1727. Wo finde ich eigentlich?
173
174 - die Zaubertrank-Tips: /secure/ARCH/ZT/*.zt
175 - die Gesamtliste der ZTs: /secure/ARCH/POTIONS.dump
176 - das Savefile des Potionmasters: /secure/ARCH/potions.o
177 - das Logfile fuer Aenderungen: /log/ARCH/POTIONS_MOD.log
178
1798. Verschiedenes
180
181 mixed TipLesen(int nr)
182 Das Orakel auf der Hochebene ruft die Zaubertrank-Tipps ab, diese
183 werden von der Platte gelesen und als String an das Orakel
184 zurueckgeliefert.
185 int DumpList()
186 Die Komplettliste der ZTs in das Dumpfile /secure/ARCH/POTIONS.dump
187 schreiben.
188
189SIEHE AUCH:
190 Spielerbefehle: zaubertraenke
191 Magierbefehle: traenke
192 Properties: P_POTIONROOMS, P_KNOWN_POTIONROOMS
193 Anleitung: wiz/zaubertraenke
194 ZT finden: FindPotion(L)
195
1962013-Mai-30 Arathorn
197