MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | Das Questsystem wird in MorgenGrauen von einem zentralen Questhandler |
| 2 | gesteuert. Dieser stellt die folgenden Funktionen zur Verfuegung: |
| 3 | |
| 4 | AddQuest(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 | |
| 28 | RemoveQuest(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 | |
| 33 | QueryReadyForWiz(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 | |
| 41 | QueryQuest(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 | |
| 46 | QueryAdvanceExp(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 |
| 52 | Funktionen offeriert: |
| 53 | |
| 54 | GiveQuest(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 | |
| 59 | QueryQuests() |
| 60 | Gibt eine Alist mit den Namen der vom Player geloesten Quests zurueck. |
| 61 | |
| 62 | QueryQP() |
| 63 | Gibt die Anzahl der vom Player erreichten Questpunkte zurueck. |
| 64 | |
| 65 | QueryQuest(string questname) |
| 66 | Stellt fest, ob ein Spieler die Quest geloest hat oder nicht. |