
ModifyQuestTime()
*****************


FUNKTION
========

   int ModifyQuestTime(string questname, int zeit)


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

   /std/player/quests.c


ARGUMENTE
=========

   questname
     Questname, wie er im Questmaster eingetragen wurde.
   zeit
     Zeitpunkt, zu dem die Quest geloest wurde


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

    1 : Questzeitpunkt erfolgreich nachgetragen
   -1 : keine Zugriffsrechte (nur EM+ und der Tagebuchmaster erlaubt)
   -2 : Questliste im Spielerobjekt ist unerwartet kein Mapping
   -3 : Spieler hat diese Quest noch nicht bestanden
   -4 : kein gueltiger Zeitpunkt uebergeben (kein Integer, Wert < -1
        oder Wert > time()).


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

   Mit dieser Funktion kann der Zeitpunkt nachgetragen werden, zu
   dem ein Spieler eine bestimmte Quest bereits geloest hat.
   Als Questname wird dazu der Name angegeben, der im Questmaster
   eingetragen ist. Der Zeitpunkt ist als Integer-Wert im ueblichen
   time()-Format anzugeben. Uebergibt man -1 als <zeit>, dann wird
   der Tagebuchmaster erneut versuchen, das Logfile einzulesen,
   wenn der Spieler das naechste mal sein Abenteuertagebuch liest.


HINWEIS
=======

   Die Funktion mktime() ist nuetzlich, wenn der Zeitpunkt des
   Bestehens einer Quest manuell rekonstruiert werden muss, der
   Zeitpunkt aber nur als Datums-/Zeitangabe in Textform vorliegt
   (etwa aus einem Logfile oder aus der Quest-Feedbackmail).


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

   /secure/questmaster.h, /obj/tools/questtool
   GiveQuest(L)
   mktime(E), dtime(SE)

Zuletzt geaendert: Mon, 27. Jan. 2015, Arathorn
