
GiveQuest()
***********


FUNKTION
========

   varargs int GiveQuest(string questname, string message)


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

   /std/player/quests.c


ARGUMENTE
=========

   questname
     Questname, wie er im Questmaster eingetragen wurde.
   message
     Optionale Meldung, die auf dem Abenteuer-Kanal statt der
     Standardmeldung gesendet wird.
     Dabei wird @@name@@ durch den Spielernamen ersetzt.


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

   (Die Defines fuer den Rueckgabewert finden sich in
    /secure/questmaster.h)
    1 : Hat geklappt                           (OK)
   -1 : Spieler hat die Quest bereits geloest  (GQ_ALREADY_SET)
   -2 : Ungueltiger Questname                  (GQ_KEY_INVALID)
   -3 : Unbefugter Zugriff                     (GQ_ILLEGAL_OBJ)
   -4 : Quest zur Zeit inaktiv                 (GQ_IS_INACTIVE)


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

   Mit dieser Funktion wird nach dem erfolgreichen Loesen einer
   Quest die Quest im Spieler eingetragen. Dabei muss der Aufruf
   in dem Objekt erfolgen, welches im Questmaster eingetragen ist.
   Zusaetzlich wird der Zeitpunkt eingetragen, an dem die Quest
   bestanden wurde.



   Wer sich da nicht sicher ist, kann mit dem Questtool
   (/obj/tools/questtool) nachsehen.

   Nachdem eine Quest als geloest markiert wurde, ist dies in einem
   Logfile fuer die Quest im Verzeichnis /log/quest einzutragen. Dazu
   wird write_file verwendet.


BEISPIEL
========

   int quest;

   quest = this_player()->GiveQuest("Zacharias Eispalast");

   if (quest == 1)
   {
     write("Du fuehlst, wie Deine Erfahrung ansteigt.\n");
     write_file("/log/quest/eispalast",
                dtime(time())+"   Aufgabe geloest von "
                +this_player()->name()+"\n");
   }
   else if (quest != -1)
     write( "Die Weltenmaschine will Dir Deine Arbeit "
            +"nicht anerkennen.\n"
            +"Frage einen Erzmagier um Hilfe.\n" );


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

   /secure/questmaster.h, /obj/tools/questtool
   QueryQuest(), write_file(), ModifyQuestTime()

Zuletzt geaendert: Son, 27. Apr 2014, Arathorn
