Morgengrauner Dokumentation
Dateipfad: /home/mud/mudlib/doc/wiz/materialerkennungMaterialerkennung
=================
Bei MaterialName(mat,casus,idinf) und MaterialList(casus,idinf) id der
Parameter als Angabe dafuer gedacht, wie gut Materialien
erkannt werden sollen. Es sind folgende Arten von Angaben moeglich:
- Ein Array
Die einzelnen Arrayelemente werden nach untenstehenden Regeln
behandelt und deren Ergebnisse addiert.
- Ein Objekt
In diesem Fall wird
ob->QueryProp(P_MATERIAL_KNOWLEDGE)
nach untenstehenden Regeln behandelt.
Diese Property ist fuer rassenabhaengige Faehigkeiten gedacht.
- Eine Zahl
In diesem Fall wird der Wert direkt als Faehigkeit angesehen, das
Material erkennen zu koennen.
- Eine Closure
In diesem Fall wird der Returnwert von
funcall(closure,material,gruppen_in_denen_diese_material_ist)
genommen.
- Ein Mapping
In einem Mapping sind 3 Arten von Eintraegen moeglich:
- Ist im Mapping unter eine Zahl eingetragen, wird diese
genommen und die weiteren Eintraege nicht weiter ausgewertet.
- Die Werte von allen Gruppen im Mapping, zu denen das Material
gehoert, werden addiert.
- Falls das Mapping einen Eintrag MATERIAL_SYMMETRIC_RECOGNIZABILITY
hat, der ein Array von der Form
({gruppe1, wert1, gruppe2, wert2, ...})
ist, wird fuer jede dieser Gruppen der zugehoerige Wert
addiert, falls das Material in der Gruppe ist, und sonst
abgezogen.
Im Beispiel: ({MATGROUP_BIO: 5}) gibt einen Erkennbonus von 5% auf
alle biologischen Materialien, aber einen Malus von -5% auf alle
nichtbiologischen Materialien.
Schwer erkennbare Materialien haben in der Materialdatenbank eine
zusaetzliche Angabe der Form
({mat1, wert2, mat3, wert4, mat5, ... wert(n-1), mat(n)})
wobei mat(n) das Material selber ist.
Das erkannte Material ist das Material mat(k), bei dem die
wert(k-1) <= Erkennungsfaehigkeit < wert(k+1)
ist. Bei Erkennungsfaehigkeit 100 oder mehr wird das Material auf jeden
Fall erkannt.
Der Wert fuer Durchschnittsspieler ist 0.
BEISPIEL:
Angenommen, bei Platin waere die Angabe in der Datenbank
({Metall, -20, Silber, 20, Platin})
Ein Spieler ohne besondere Erkennungsfaehigkeiten (also Wert 0) wuerde
also Platin fuer Silber halten, jemand, der von Metallen keine Ahnung
hat (beispielsweise mit der Angabe ([MATGROUP_METAL:-25]) in
P_MATERIAL_KNOWLEDGE) sieht nur noch, dass es ein Metall ist und jemand
mit ueberdurchschnittlicher Faehigkeit erkennt Platin als das, was es
ist.
P_MATERIAL_KNOWLEDGE koennte z.B. fuer Rassen wie folgt gesetzt werden:
Elf: ([MATGROUP_WOOD:30])
Zwerg: ([MATGROUP_STONE:30])
oder etwas komplexer
Zwerg: ([MATGROUP_STONE:30,
MATERIAL_SYMMETRIC_RECOGNIZABILITY: ({MATGROUP_BIO: -5})])
SIEHE AUCH:
Konzepte: material
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
7. Mai 2004 Gloinson
zurück zur Übersicht