Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//props/P_MATERIAL

P_MATERIAL
**********


NAME
====

   P_MATERIAL                                 "material"


DEFINIERT IN
============

   


BESCHREIBUNG
============

   Mapping mit prozentualen Anteilen von Materialien, aus denen ein Objekt
   besteht.


BEMERKUNGEN
===========

   Bei SetProp kann man zu Vereinfachung auch ein einzelnes Material oder
   ein Array aus Materialien angeben. Die Anteile werden dann
   gleichmaessig verteilt.


BEISPIELE
=========

   // 100% Eis
   SetProp(P_MATERIAL, MAT_ICE);
   // QueryProp(P_MATERIAL) -> ([MAT_ICE:100])

   // 50% Eis, 50% Misc-Holz
   SetProp(P_MATERIAL, ({ MAT_ICE, MAT_MISC_WOOD }));
   // QueryProp(P_MATERIAL) -> ([MAT_ICE:50, MAT_MISC_WOOD: 50])

   // 60% Eis, 40% Misc-Holz
   SetProp(P_MATERIAL, ([ MAT_ICE: 60, MAT_MISC_WOOD: 40 ]));

   // 100% Papier
   SetProp(P_MATERIAL, MAT_PAPER);
   // QueryProp(P_MATERIAL) -> ([MAT_PAPER:100])

   // 50% Silber, 50% Gold
   SetProp(P_MATERIAL, ({MAT_SILVER, MAT_GOLD}))
   // QueryProp(P_MATERIAL) -> ([MAT_SILVER:50,MAT_GOLD:50])

   // ein weiser Schmied, der was daraus macht:
   int i;
   string *mat, mname, mgroup;
   mat=m_indices(ob->QueryProp(P_MATERIAL));
   i=sizeof(mat);

   write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
   while(i--) {
    // den Namen erkennen/aussprechen:
    // Materialien werden allgemein ganz schlecht erkannt (zu 5%), aber
    // alles aus Metall wird zu +100% gut erkannt ...
    mname=MATERIALDB->MaterialName(mat[i], WER,
           ({5, ([MATERIAL_SYMMETRIC_RECOGNIZABILITY:
                      ({MATGROUP_METAL, 100})])}));

    // und nur Metalle analysieren ...
    if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
     int j;
     string *mgr;
     mgr=MATERIALDB->GetMatMembership(mat[i]);
     j=sizeof(mgr);
     mgroup=" gehoert zu ";
     while(j--) {
      mgroup+=MATERIALDB->GroupName(mgr[j]);
      if(j>0) mgroup+=", ";
     }
    } else mgroup=" kenne ich nicht";
    printf("%-12.12s: %s\n",mname, mgroup);
   }


SIEHE AUCH
==========


Konzepte: material, materialerkennung Grundlegend: /sys/thing/material.h Methoden: QueryMaterial(), QueryMaterialGroup(), MaterialList(), Listen: AllMaterials(), AllGroups(), Dump() materialliste, materialgruppen Master: AddMaterial(), ConvMaterialList(), MaterialGroup(), GroupName(), MaterialName(), GetGroupMembers(), GetMatMembership() Sonstiges: P_MATERIAL_KNOWLEDGE

7. Mai 2004 Gloinson


zurück zur Übersicht

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