blob: 685b38380fb120775d0d9467f759f4b4bcbc037c [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001 Skills sind Fertigkeiten, die ein Spieler erwerben kann. Zu einem Skill koennen
2mehrere Verben gehoeren. Ausserdem kann ein Verb unter Umstaenden bei mehreren
3Skills definiert sein (zB, falls es eine Magiergilde und eine Psionkier-
4gilde gaebe, koennte es skills "magie" und "psi" geben, die beide das
5Verb "teleportiere" definieren).
6
7 Welche Skills es gibt, welche Verben dazugehoeren, welche Objekte und
8Funktionen diesen zugeordnet sind, regelt ein zentraler "Skillmaster".
9Darueberhinaus gibt es in jedem Spielerobjekt ein "Skill"-Modul.
10
11Der Skillmaster offeriert die folgenden Funktionen:
12
13InsertSkill(string skillname, string skilldescr, string *verben,
14 string *objFunDescr)
15 skillname ist (natuerlich) der Name des Skills (zB Magie).
16 skilldescr ist ein string, der den Skill naeher beschreibt, zB
17 "Magie gibt dem Anwender ein breites Spektrum von Moeglichkeiten,
18 sowohl im Kampf als auch ausserhalb."
19 verben ist ein Array, der die Verben zu dem Skill enthaelt.
20 objFunDescr ist ein Array, der dieselbe Groesse haben muss wie Verben. Jedes
21 Element ist ein 4-elementiger Array. Erstes Element dieses Arrays
22 ist ein Filename, zweites eine Funktion. Bei der Eingabe des Verbs
23 wird in dem Objekt die Funktion aufgerufen. Die dabei uebergebenen
24 Parameter werden spaeter beschrieben.
25 Drittes Element ist ein String, der die zu diesem Verb und Skill
26 gehoerende Aktion naeher beschreibt, zB:
27 "Die Magische Rakete kostet den Gegner zwischen 5 und 10 Hitpoints"
28 Das 4. Element muss eine Zahl aus [1..19] sein und gibt den Level
29 an, ab dem ein Player dieses Skillverb erwerben kann.
30 Die Funktion darf nur von Erzmagiern aufgerufen werden.
31 Es darf noch keinen Skill dieses Names geben. Falls man einen bestehenden
32 Skill lediglich erweitern moechte, muss man die Funktion AddVerbs benutzen
33 (siehe unten).
34
35RemoveSkill(skillname)
36 entfernt einen Skill wieder. ACHTUNG: Wenn Player den Skill bereits erworben
37 haben, verlieren sie ihn, wenn sie zum naechsten mal versuchen, ihn zu be-
38 nutzen.
39
40GetSkills()
41 gibt die AList mit den Skills zurueck.
42
43GetSkill(skillname)
44 liefert den entsprechenden Eintrag aus der AList zurueck.
45
46GetFunctionAndDescription(skillname, verb)
47 liefert den in AddSkill uebergebenen 4elementigen Array mit Objektname,
48 Funktionsname, Aktionsbeschreibung und Level zurueck.
49
50GetSkillDescription(skillname)
51 liefert die in AddSkill uebergebene Beschreibung des Skills zurueck.
52
53AddVerbs(skillname, mixed *verbs, mixed *objFunDescr)
54 erweitert einen bestehenden Skill um einige Verben, naehere Beschreibung
55 siehe AddSkill.
56
57-------------------------------------------------------------------------------
58Das Skillmodul im Playerobjekt bietet die folgenden Funktionen:
59
60GiveAbility(verb, skill, int promill)
61 gibt einem Spieler die Faehigkeit, das Verb verb aus dem Skill skill zu benut-
62 zen. Promill wird bei dem Versuch, das Verb zu benutzen, an das Skillobjekt
63 uebergeben und sollte die Wahrscheinlichkeit, das dem Player die Skillaktion
64 gelingt, in Promill beschreiben. Wenn der Player die Ability schon hatte, wird
65 lediglich promill geupdated.
66 Es wird eine -1 zurueckgegeben, falls eine solche Kombination aus Skill und
67 Verb (noch) nicht definiert ist, eine -2 falls der Level des Spielers nicht
68 ausreicht.
69
70GetAllAbilities()
71 gibt die AList mit den Abilities des Spielers zurueck. Schluessel in der AList
72 sind die Verben, Eintraege sind Arrays mit den Skills. Die Arrays haben so
73 viele Eintraege, wie der Player Skills hat, die das betreffende Wort
74 definieren (im Idealfall also EINEN Eintrag, naemlich wenn es keine Ueber-
75 scheidungen gibt). Die Eintraege sind wiederum 2elementige Arrays, die
76 als 1. Element den Skillnamen, als 2. Element die Promill enthalten.
77