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() 7. Mai 2004 Gloinson