GiveMiniQuest()

FUNKTION:
        int GiveMiniQuest(object winner)

DEFINIERT IN:
        /secure/questmaster

ARGUMENTE:
	winner
	  Spielerobjekt, das die Quest bestanden hat.

RUeCKGABEWERT:
        (Die Defines fuer den Rueckgabewert finden sich in 
         /secure/questmaster.h)
         1 : Hat geklappt                           (OK)
        -1 : Spieler hat die Quest bereits geloest  (MQ_ALREADY_SET)
        -2 : Ungueltiger Questname                  (MQ_KEY_INVALID)
        -3 : Unbefugter Zugriff                     (MQ_ILLEGAL_OBJ)
        -4 : Quest zur Zeit inaktiv                 (MQ_IS_INACTIVE)
        -5 : Gaeste loesen keine Quests             (MQ_GUEST)

BESCHREIBUNG:
	Mit dieser Funktion wird nach dem erfolgreichen Loesen einer 
        MiniQuest die Quest im Spieler eingetragen. Dabei muss der
        Aufruf in dem Objekt erfolgen, welches im Questmaster 
        eingetragen ist. Als Argument muss das Spielerobjekt 
	angegeben werden, welches die Quest bestanden hat.
        
BEISPIEL:
	QM->GiveMiniQuest(this_player());

SIEHE AUCH:
        HasMiniQuest
        /secure/questmaster.h, /secure/questmaster.c

HINWEIS:
        Die Informationen fuer den EM fuer Quests sollten diesem
        beim Eintragen der Miniquest in den Questmaster per Mail
        zugeschickt werden. Siehe dazu die Hilfe zu AddMiniQuest.

----------------------------------------------------------------------------
Zuletzt geaendert: Don, 30. Jan 2014, 22:14:12 von Ark.
