MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | Materialien |
| 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 | |
| 87 | SIEHE 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 | |
| 98 | 7. Mai 2004 Gloinson |