blob: 8859a38183d87b5f61945a94e287ceac1fb21416 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001GetMatMembership()
2FUNKTION:
3 string *GetMatMembership(string mat)
4
5DEFINIERT IN:
6 /p/daemon/materialdb.c (MATERIALDB)
7
8ARGUMENTE:
9 string mat - ein Material
10
11BESCHREIBUNG:
12 Gibt alle Gruppen, denen das Material angehoert zurueck. Geeignet, um
13 die Eigenschaften eines Materials zu ueberpruefen.
14
15RUECKGABEWERT:
16 Array von Strings mit Materialiengruppen oder ({})
17
18BEISPIELE:
19 // ein weiser Schmied:
20 int i;
21 string *mat, mname, mgroup;
22 mat=m_indices(ob->QueryProp(P_MATERIAL));
23 i=sizeof(mat);
24
25 write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
26 while(i--) {
27 // den Namen erkennen/aussprechen:
28 // Materialien werden allgemein etwas besser erkannt (zu 5%), aber
29 // alles aus Metall wird zu +100% besser erkannt ...
30 mname=MATERIALDB->MaterialName(mat[i], WER,
31 ({5, ([MATRGROUP_METAL, 100])}));
32
33 // und nur Metalle analysieren ...
34 if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
35 int j;
36 string *mgr;
37 mgr=MATERIALDB->GetMatMembership(mat[i]);
38 j=sizeof(mgr);
39 mgroup=" gehoert zu ";
40 while(j--) {
41 mgroup+=MATERIALDB->GroupName(mgr[j]);
42 if(j>0) mgroup+=", ";
43 }
44 } else mgroup=" kenne ich nicht";
45 printf("%-12.12s: %s\n",mname, mgroup);
46 }
47
48SIEHE AUCH:
49 Konzepte: material, materialerkennung
50 Grundlegend: P_MATERIAL, /sys/thing/material.h
51 Master: AddMaterial(), ConvMaterialList(), MaterialGroup(),
52 GroupName(), MaterialName(),
53 GetGroupMembers()
54
557. Mai 2004 Gloinson