QueryMaterial()
***************


QueryMaterial(L)
================


FUNKTION
========

   int QueryMaterial(string mat)


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

   /std/thing/description.c


ARGUMENTE
=========

   string mat -       Material, auf das getestet werden soll


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

   Testet, ob ein Gegenstand aus dem angegebenen Material besteht
   und gibt dessen Anteil zurueck.
   Die Rueckgabe ist im Wertebereich -100 (Antigruppen) bis +100 (%).


RUECKGABEWERT
=============

   Anteil in Prozent.


BEISPIELE
=========

   if(ob->QueryMaterial(MAT_IVORY)<=0)
     write("Daraus kannst Du keine Billiardkugeln schnitzen!\n");


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

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

7. Mai 2004 Gloinson
