
AddMiniQuest()
**************


FUNKTION
========

   int AddMiniQuest(int stupse, string questgeber, string desc, int active,
                    string titel, string erledigt, mapping voraussetzungen,
                    string region, string *erlaubte)


DEFINIERT IN
============

   /secure/questmaster


BESCHREIBUNG
============

   Diese Funktion traegt eine neue Miniquest im Questmaster ein.


ARGUMENTE
=========

   stupse (>0)  - Anzahl Stufenpunkte, die fuer die MQ gutgeschrieben werden
   questgeber   - Ladename des Objekts, das GiveMiniQuest() aufruft
   desc         - Aufgabenbeschreibung der Miniquest
   active (0/1) - ist die Miniquest aktiv, d.h. spielbar, oder nicht?
   titel        - Titel der Miniquest, darf weder "in", noch "im" enthalten,
                  weil dann der Eintrag in der Fraternitas-Bibliothek nicht
                  gelesen werden kann.
   erledigt     - Beschreibung der Miniquest, nachdem man sie erledigt hat
                  Der Text kann in der Bibliothek der kleinen und grossen
                  Heldentaten in der Fraternitas eingesehen werden.
   voraussetzungen - Mapping im Format von P_RESTRICTIONS (s. dort), um
                  die Voraussetzungen festzulegen, die ein Spieler
                  erfuellen muss, um die MQ ueberhaupt spielen zu koennen
                  Wird fuer die regionsbezogenen Informationspunkte/-NPCs
                  ausgewertet. 0 oder ([]) eintragen, wenn keine
                  Voraussetzungen bestehen.
   region       - Zuordnung der Miniquest zu einer Region; wird fuer der
                  Bibliothek der Fraternitas verwendet, um die MQs der
                  einzelnen Regionen herauszufiltern.
   erlaubte     - Array mit Ladenamen von Objekten, die berechtigt sind,
                  die Daten der MQ abzufragen, um Spielern einen Hinweis
                  darauf zu geben, die sie noch nicht bestanden haben.


RUECKGABEWERTE
==============

    1: Hat geklappt
   -1: Parameterformat stimmt nicht (questgeber kein String oder Leerstring,
       voraussetzungen kein Mapping, region oder titel keine Strings,
       erlaubte kein Array)
   -2: weniger als 1 Stufenpunkt einzutragen versucht
   -3: Das Array in "erlaubte" ist leer, oder zum angegebenen Questgeber
       wurde keine Datei gefunden.
   -4: Der angegebene Questgeber vergibt schon eine andere Miniquest


SIEHE AUCH
==========

   GiveMiniQuest(L), HasMiniQuest(L)
   P_RESTRICTIONS
   /secure/questmaster.c
