blob: 24c91c86690456255fc67eb3c08dc5c4b58238f7 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001 Das Questsystem wird in MorgenGrauen von einem zentralen Questhandler
2gesteuert. Dieser stellt die folgenden Funktionen zur Verfuegung:
3
4AddQuest(string questname, int questpoints, int experience,
5 string *allowedobj, string hint, int difficulty, int needed)
6 Diese Funktion definiert eine Quest und gibt sie zur Benutzung durch die
7 Spieler frei. Sie darf nur von Erzmagiern aufgerufen werden.
8 Bedeutung der Parameter:
9 questname gibt den Namen der zu definierenden Quest an. Es darf bereits
10 eine Quest dieses Namens geben, ihre Parameter werden dann
11 geaendert.
12 questpoints gibt die Zahl der Questpunkte an, die der Spieler fuer die
13 Loesung dieser Quest angerechnet bekommt. Muss >0 sein.
14 experience gibt die Zahl der Erfahrungspunkte an, die der Spieler fuer
15 eine Quest bekommen kann. DIESE ZAHL KANN <0 SEIN!
16 allowedobj ist ein Array mit den Filenamen der Objekte, die diese Quest als
17 durch einen Spieler geloest kennzeichnen duerfen. Darueberhinaus
18 duerfen Erzmagier dies immer tun.
19 hint ist ein String, der Tips zur Loesung der Quest enthaelt. Dieser String
20 wird dem Spieler vom Orakel als Hinweis gegeben.
21 difficulty ist eine Zahl zwischen 0 und 20, die den "Schwierigkeitsgrad"
22 der Quest angibt. 0 hat eine besondere Bedeutung, naemlich die,
23 das keine Einschaetzung vorliegt.
24 needed legt fest, ob die Quest von einem Spieler geloest werden muss, be-
25 vor er Magier werden kann. Falls needed !=0 ist, MUSS er die Quest
26 loesen, unabhaengig von der 90%-Regel.
27
28RemoveQuest(string questname);
29 Gegenstueck zu AddQuest, loescht eine Quest. Kann natuerlich ebenfalls nur
30 von Erzmagiern aufgerufen werden. DIE SPIELER, DIE DIE QUEST SCHON GELOEST
31 HABEN, BEHALTEN DIE ENTSPRECHENDEN QUESTPUNKTE !!
32
33QueryReadyForWiz(object player)
34 Dieser Funktion muss ein Playerobjekt uebergeben bekommen und prueft, ob
35 der Spieler seitens der Quests bereit ist zur Aufstufung zum Magier, dh
36 ob er 90% der QP sowie alle zwingend vorgeschriebenen Quests (siehe
37 AddQuest, Parameter needed) geloest hat. Falls dies der Fall ist, liefert
38 die Funktion eine 1 zurueck. Wenn er die 90% nicht hat, eine -1. Falls
39 ihm noetige Quests fehlen, eine Liste der nicht geloesten, noetigen Quests.
40
41QueryQuest(questname)
42 Liefert eine -1, falls keine Quest dieses Names eingetragen ist, sonst
43 einen Array mit den Daten der Quest, in der Reihenfolge, in der sie in
44 AddQuest eingegeben werden. Dabei ist questpoints das erste Arrayelement.
45
46QueryAdvanceExp(object player)
47 Stellt fest, ob der Spieler player genuegend Questpunkte hat, um seine
48 Erfahrung zu erhoehen.
49
50-----------------------------------------------------------------------------
51 Weiterhin enthaelt jedes Playerobjekt ein Quest-Modul, das die folgenden
52Funktionen offeriert:
53
54GiveQuest(string questname)
55 Markiert eine Quest bei dem Player als geloest. Es wird getestet, ob die
56 Aktion von einem "allowed_object" vorgenommen wird. Die Questpunkte werden
57 entsprechend geupdated.
58
59QueryQuests()
60 Gibt eine Alist mit den Namen der vom Player geloesten Quests zurueck.
61
62QueryQP()
63 Gibt die Anzahl der vom Player erreichten Questpunkte zurueck.
64
65QueryQuest(string questname)
66 Stellt fest, ob ein Spieler die Quest geloest hat oder nicht.