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

