// 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);
}