Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc//wiz/quests.doc Das Questsystem wird in MorgenGrauen von einem zentralen Questhandler
gesteuert. Dieser stellt die folgenden Funktionen zur Verfuegung:
AddQuest(string questname, int questpoints, int experience,
string *allowedobj, string hint, int difficulty, int needed)
Diese Funktion definiert eine Quest und gibt sie zur Benutzung durch die
Spieler frei. Sie darf nur von Erzmagiern aufgerufen werden.
Bedeutung der Parameter:
questname gibt den Namen der zu definierenden Quest an. Es darf bereits
eine Quest dieses Namens geben, ihre Parameter werden dann
geaendert.
questpoints gibt die Zahl der Questpunkte an, die der Spieler fuer die
Loesung dieser Quest angerechnet bekommt. Muss >0 sein.
experience gibt die Zahl der Erfahrungspunkte an, die der Spieler fuer
eine Quest bekommen kann. DIESE ZAHL KANN <0 SEIN!
allowedobj ist ein Array mit den Filenamen der Objekte, die diese Quest als
durch einen Spieler geloest kennzeichnen duerfen. Darueberhinaus
duerfen Erzmagier dies immer tun.
hint ist ein String, der Tips zur Loesung der Quest enthaelt. Dieser String
wird dem Spieler vom Orakel als Hinweis gegeben.
difficulty ist eine Zahl zwischen 0 und 20, die den "Schwierigkeitsgrad"
der Quest angibt. 0 hat eine besondere Bedeutung, naemlich die,
das keine Einschaetzung vorliegt.
needed legt fest, ob die Quest von einem Spieler geloest werden muss, be-
vor er Magier werden kann. Falls needed !=0 ist, MUSS er die Quest
loesen, unabhaengig von der 90%-Regel.
RemoveQuest(string questname);
Gegenstueck zu AddQuest, loescht eine Quest. Kann natuerlich ebenfalls nur
von Erzmagiern aufgerufen werden. DIE SPIELER, DIE DIE QUEST SCHON GELOEST
HABEN, BEHALTEN DIE ENTSPRECHENDEN QUESTPUNKTE !!
QueryReadyForWiz(object player)
Dieser Funktion muss ein Playerobjekt uebergeben bekommen und prueft, ob
der Spieler seitens der Quests bereit ist zur Aufstufung zum Magier, dh
ob er 90% der QP sowie alle zwingend vorgeschriebenen Quests (siehe
AddQuest, Parameter needed) geloest hat. Falls dies der Fall ist, liefert
die Funktion eine 1 zurueck. Wenn er die 90% nicht hat, eine -1. Falls
ihm noetige Quests fehlen, eine Liste der nicht geloesten, noetigen Quests.
QueryQuest(questname)
Liefert eine -1, falls keine Quest dieses Names eingetragen ist, sonst
einen Array mit den Daten der Quest, in der Reihenfolge, in der sie in
AddQuest eingegeben werden. Dabei ist questpoints das erste Arrayelement.
QueryAdvanceExp(object player)
Stellt fest, ob der Spieler player genuegend Questpunkte hat, um seine
Erfahrung zu erhoehen.
-----------------------------------------------------------------------------
Weiterhin enthaelt jedes Playerobjekt ein Quest-Modul, das die folgenden
Funktionen offeriert:
GiveQuest(string questname)
Markiert eine Quest bei dem Player als geloest. Es wird getestet, ob die
Aktion von einem "allowed_object" vorgenommen wird. Die Questpunkte werden
entsprechend geupdated.
QueryQuests()
Gibt eine Alist mit den Namen der vom Player geloesten Quests zurueck.
QueryQP()
Gibt die Anzahl der vom Player erreichten Questpunkte zurueck.
QueryQuest(string questname)
Stellt fest, ob ein Spieler die Quest geloest hat oder nicht.
zurück zur Übersicht