blob: cbf802253b0b54a8474ab71b44439b8bca24c75d [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001Materialien
2===========
3
4 Materialien in Morgengrauen koennen ueber die Property P_MATERIAL jedem
5 Objekt im Spiel zugeordnet werden. Ueber die Materialiendatenbank
6 stehen dafuer jede Menge Materialien zur Verfuegung. Wenn moeglich,
7 sollten diese auch benutzt werden, es werden Defaultmaterialien
8 gesetzt, diese entsprechen aber selten eurer Realitaet.
9
10 Die Materialiendatenbank /secure/materialdb.c haelt saemtliche
11 Informationen ueber die verwendbaren Materialien, die unter
12 /sys/thing/material.h aufgefuehrt sind. Es empfiehlt sich SEHR, Verweise
13 auf die MatDB nur in Form von MATERIALDB zu formulieren.
14 Sie verwaltet auch die Eigenschaften einzelner Materialien. Es gibt
15 diverse Materialiengruppen wie "entflammbar", "Metall", "biologisches
16 Material", denen die Materialien entsprechend zugeordnet sind. Diese
17 Informationen koennen mit entsprechenden Methoden abgerufen/ausgewertet
18 werden.
19 Darueber hinaus sind Materialien bei der Erkennung mit anderen
20 Materialien verwechselbar. Wie das genau funktioniert, ist in "man
21 materialerkennung" ausgefuehrt.
22
23 P_MATERIAL:
24 Die Property P_MATERIAL ist grundsaetzlich ein Mapping, in dem zu
25 jedem Material der Anteil an dem Objekt stehen sollte, Z.B. kann
26 ein Speer zu 80% aus Holz und zu 20% aus Metall (Speerspitze)
27 bestehen:
28
29 SetProp(P_MATERIAL, ([MAT_MISC_METAL:20,MAT_MISC_WOOD:80]))
30
31 (Zur Vereinfachung ist es erlaubt, bei SetProp ein einzelnes Material
32 oder ein Array aus Materialien anzugeben, beides wird automatisch
33 umgewandelt in ein Mapping mit gleichen Anteilen aller Materialien.)
34
35 Defaults fΓΌr P_MATERIAL:
36 Waffen generell: ([MAT_MISC_METAL:100])
37 Schwerter: ([MAT_MISC_METAL:100])
38 Messer: ([MAT_MISC_METAL:80, MAT_MISC_WOOD:20])
39 Aexte: ([MAT_MISC_METAL:50, MAT_MISC_WOOD:50])
40 Speere: ([MAT_MISC_METAL:20, MAT_MISC_WOOD:80])
41 Keulen: ([MAT_MISC_WOOD:100])
42 Ruestungen generell: ([MAT_LEATHER:100])
43 Koerperruestungen, Helme,
44 Ringe, Amulette, Schilde: ([MAT_MISC_METAL:100])
45 Umhaenge, Hosen: ([MAT_CLOTH:100])
46 Handschuhe, Schuhe: ([MAT_LEATHER:100])
47 andere Dinge: ([MAT_MISC:100])
48
49 Uebersicht ueber die Methoden an Objekten (/std/thing/description):
50 int QueryMaterial(string mat):
51 - gibt % des Materialanteils von mat am Objekt zurueck
52 int QueryMaterialGroup(string grp):
53 - gibt % des Materialgruppenanteils von grp am Objekt zurueck
54 string MaterialList(int casus, mixed idinf):
55 - gibt String mit Zusammensetzung des Objektes zurueck
56
57 Uebersicht ueber die Methoden am Master (MATERIALDB):
58 string *GetMatMembership(string mat):
59 - alle Gruppen, in denen das Material mat ist
60 string *GetGroupMembers(string grp):
61 - alle Materialien, die in der Gruppe grp sind
62 string MaterialName(string mat, int casus, mixed idinf):
63 - ergibt die spielerlesbare Angabe eines Materials mat
64 string GroupName(string grp):
65 - ergibt spielerlesbare Angabe der Gruppe grp
66 string ConvMaterialList(mixed mats, int casus, mixed idinf):
67 - wird von MaterialList() mit den Materialien des Objektes gerufen
68 void Dump():
69 - schreibt Materialien und Gruppen in /p/daemon/save/MATERIALS
70 string *AllMaterials():
71 - Liste aller aktuellen Materialien
72 string *AllGroups():
73 - Liste aller aktuellen Gruppen
74
75 Falls euch ein Material fehlt:
76 - falls es kein genau passendes Material gibt, sollte man das am
77 ehesten passende MAT_MISC-Material verwenden.
78 - falls es sich lohnen wuerde, das bisher noch nicht definierte
79 Material einzubauen (wenn es haeufig genug verwendet wird), bitte
80 Mail an einen EM (-> man AddMaterial() )
81 - verschiedene Eigenschaften lassen sich kombinieren. Z.B. besteht
82 ein (unbekanntes) explosives Gas zu 100% aus Gas und zu 100% aus
83 explosivem Material. Insofern kann man es mit
84 SetProp(P_MATERIAL, ([MAT_MISC_GAS:100, MAT_MISC_EXPLOSIVE:100]))
85 zusammensetzen.
86
87SIEHE AUCH:
88 Konzepte: materialerkennung
89 Grundlegend: P_MATERIAL, /sys/thing/material.h
90 Methoden: QueryMaterial(), QueryMaterialGroup(), MaterialList(),
91 Listen: AllMaterials(), AllGroups(), Dump()
92 materialliste, materialgruppen
93 Master: AddMaterial(), ConvMaterialList(), MaterialGroup(),
94 GroupName(), MaterialName(),
95 GetGroupMembers(), GetMatMembership()
96 Sonstiges: P_MATERIAL_KNOWLEDGE
97
987. Mai 2004 Gloinson