Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc//wiz/materialMaterialien
===========
Materialien in Morgengrauen koennen ueber die Property P_MATERIAL jedem
Objekt im Spiel zugeordnet werden. Ueber die Materialiendatenbank
stehen dafuer jede Menge Materialien zur Verfuegung. Wenn moeglich,
sollten diese auch benutzt werden, es werden Defaultmaterialien
gesetzt, diese entsprechen aber selten eurer Realitaet.
Die Materialiendatenbank /secure/materialdb.c haelt saemtliche
Informationen ueber die verwendbaren Materialien, die unter
/sys/thing/material.h aufgefuehrt sind. Es empfiehlt sich SEHR, Verweise
auf die MatDB nur in Form von MATERIALDB zu formulieren.
Sie verwaltet auch die Eigenschaften einzelner Materialien. Es gibt
diverse Materialiengruppen wie "entflammbar", "Metall", "biologisches
Material", denen die Materialien entsprechend zugeordnet sind. Diese
Informationen koennen mit entsprechenden Methoden abgerufen/ausgewertet
werden.
Darueber hinaus sind Materialien bei der Erkennung mit anderen
Materialien verwechselbar. Wie das genau funktioniert, ist in "man
materialerkennung" ausgefuehrt.
P_MATERIAL:
Die Property P_MATERIAL ist grundsaetzlich ein Mapping, in dem zu
jedem Material der Anteil an dem Objekt stehen sollte, Z.B. kann
ein Speer zu 80% aus Holz und zu 20% aus Metall (Speerspitze)
bestehen:
SetProp(P_MATERIAL, ([MAT_MISC_METAL:20,MAT_MISC_WOOD:80]))
(Zur Vereinfachung ist es erlaubt, bei SetProp ein einzelnes Material
oder ein Array aus Materialien anzugeben, beides wird automatisch
umgewandelt in ein Mapping mit gleichen Anteilen aller Materialien.)
Defaults fuer P_MATERIAL:
Waffen generell: ([MAT_MISC_METAL:100])
Schwerter: ([MAT_MISC_METAL:100])
Messer: ([MAT_MISC_METAL:80, MAT_MISC_WOOD:20])
Aexte: ([MAT_MISC_METAL:50, MAT_MISC_WOOD:50])
Speere: ([MAT_MISC_METAL:20, MAT_MISC_WOOD:80])
Keulen: ([MAT_MISC_WOOD:100])
Ruestungen generell: ([MAT_LEATHER:100])
Koerperruestungen, Helme,
Ringe, Amulette, Schilde: ([MAT_MISC_METAL:100])
Umhaenge, Hosen: ([MAT_CLOTH:100])
Handschuhe, Schuhe: ([MAT_LEATHER:100])
andere Dinge: ([MAT_MISC:100])
Uebersicht ueber die Methoden an Objekten (/std/thing/description):
int QueryMaterial(string mat):
- gibt % des Materialanteils von mat am Objekt zurueck
int QueryMaterialGroup(string grp):
- gibt % des Materialgruppenanteils von grp am Objekt zurueck
string MaterialList(int casus, mixed idinf):
- gibt String mit Zusammensetzung des Objektes zurueck
Uebersicht ueber die Methoden am Master (MATERIALDB):
string *GetMatMembership(string mat):
- alle Gruppen, in denen das Material mat ist
string *GetGroupMembers(string grp):
- alle Materialien, die in der Gruppe grp sind
string MaterialName(string mat, int casus, mixed idinf):
- ergibt die spielerlesbare Angabe eines Materials mat
string GroupName(string grp):
- ergibt spielerlesbare Angabe der Gruppe grp
string ConvMaterialList(mixed mats, int casus, mixed idinf):
- wird von MaterialList() mit den Materialien des Objektes gerufen
void Dump():
- schreibt Materialien und Gruppen in /p/daemon/save/MATERIALS
string *AllMaterials():
- Liste aller aktuellen Materialien
string *AllGroups():
- Liste aller aktuellen Gruppen
Falls euch ein Material fehlt:
- falls es kein genau passendes Material gibt, sollte man das am
ehesten passende MAT_MISC-Material verwenden.
- falls es sich lohnen wuerde, das bisher noch nicht definierte
Material einzubauen (wenn es haeufig genug verwendet wird), bitte
Mail an einen EM (-> man AddMaterial() )
- verschiedene Eigenschaften lassen sich kombinieren. Z.B. besteht
ein (unbekanntes) explosives Gas zu 100% aus Gas und zu 100% aus
explosivem Material. Insofern kann man es mit
SetProp(P_MATERIAL, ([MAT_MISC_GAS:100, MAT_MISC_EXPLOSIVE:100]))
zusammensetzen.
SIEHE AUCH:
Konzepte: materialerkennung
Grundlegend: P_MATERIAL, MatDB, /sys/materials.h
Methoden: QueryMaterial(), QueryMaterialGroup(), MaterialList(),
Listen: AllMaterials(), AllGroups(), Dump()
materialliste, materialgruppen
Master: ConvMaterialList(), MaterialGroup(), GroupName(),
MaterialName(), GetGroupMembers(), GetMatMembership()
Sonstiges: P_MATERIAL_KNOWLEDGE
LETZTE AENDERUNG:
27. Januar 2018 durch Deaddy
zurück zur Übersicht