Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//wiz/material

Materialien
===========

     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

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.