HasMiniQuest()
**************


FUNKTION
========

   int HasMiniQuest(mixed pl, mixed name)


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

   /secure/questmaster


ARGUMENTE
=========

   pl
     Name des Spielers oder das Spielerobjekt
   name
     Filename des Objekts oder das Objekt selbst, welches die Miniquest
     im Spieler eintragen darf, oder die Nummer (int) der Miniquest


RUeCKGABEWERT
=============

    1 : Der Spieler hat die MiniQuest
    0 : Der Spieler hat die MiniQuest noch nicht
   -2 : angegebene Miniquest existiert nicht
   -3 : falsche Datentypen fuer pl oder name uebergeben


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

   Mit dieser Funktion kann getestet werden, ob ein Spieler eine
   MiniQuest bereits geloest hat. Dabei ist entweder der Filename des
   Objektes anzugeben, das die Quest im Spieler eintragen darf oder
   das Objekt selbst.


BEISPIEL
========

   if( QM->HasMiniQuest(getuid(this_player()), this_object())!=1 )
     tell_object(this_player(), "Du bist noch nicht reif genug.\n");


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

   GiveMiniQuest(L)
   /secure/questmaster.h, /secure/questmaster.c

Zuletzt geaendert: 2014-Feb-03, Arathorn.
