MaterialName()

FUNKTION

varargs string MaterialName(string mat, int casus, mixed idinf)

DEFINIERT IN

/p/daemon/materialdb.c (MATERIALDB)

ARGUMENTE

string mat  - das zu erkennende Material
int casus   - der Fall
mixed idinf - Dinge, welche die Faehigkeiten des Erkennens beeinflussen
              (siehe "man MaterialList")

BESCHREIBUNG

Diese Funktion sucht unter Beruecksichtigung der Erkennungsbe-
schraenkungen des Materials und Faehigkeiten des Spielers den
Klarnamen des Materials heraus und gibt den zurueck.

RUECKGABEWERT

string: Materialname oder genereller Name.

BEISPIELE

// der hier mag alle existierenden Juwelen, auch wenn welche ergaenzt
// werden sollten
// Parameter: 1. ein Juwel, 2. Casus, 3. 100% Erkennung - ob er sie
// beim Empfang dann auch zu 100% erkennt, steht hier nicht!
string* likeit;
likeit=MATERIALDB->GetGroupMembers(MATGROUP_JEWEL);
...
write("Der Alte sagt: Ich mag "+
      MATERIALDB->MaterialName(likeit[random(sizeof(likeit))], WEN, 100)+
      ".\n");
...

// ein weiser schmied:
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: P_MATERIAL, /sys/thing/material.h
Master:      AddMaterial(), ConvMaterialList(), MaterialGroup(),
             GroupName()
             GetGroupMembers(), GetMatMembership()
  1. Mai 2004 Gloinson