MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | Der Potionmaster (/secure/potionmaster) |
| 2 | ======================================= |
| 3 | |
| 4 | BESCHREIBUNG |
| 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 | |
| 32 | FUNKTIONEN |
| 33 | |
| 34 | 1. 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 | |
| 74 | 2. 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 | |
| 86 | 3. 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 | |
| 99 | 4. 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 | |
| 145 | 5. 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 | |
| 151 | 6. 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 | |
| 172 | 7. 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 | |
| 179 | 8. 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 | |
| 189 | SIEHE AUCH: |
| 190 | Spielerbefehle: zaubertraenke |
| 191 | Magierbefehle: traenke |
| 192 | Properties: P_POTIONROOMS, P_KNOWN_POTIONROOMS |
| 193 | Anleitung: wiz/zaubertraenke |
| 194 | ZT finden: FindPotion(L) |
| 195 | |
| 196 | 2013-Mai-30 Arathorn |
| 197 | |