blob: dc0468070ce82f11051c6c41ff26dc53e763c5a6 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001GetMatMembership()
Zesstra953f9972017-02-18 15:37:36 +01002******************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 string *GetMatMembership(string mat)
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 /p/daemon/materialdb.c (MATERIALDB)
MG Mud User88f12472016-06-24 23:31:02 +020015
Zesstra953f9972017-02-18 15:37:36 +010016
17ARGUMENTE
18=========
19
20 string mat - ein Material
21
22
23BESCHREIBUNG
24============
25
26 Gibt alle Gruppen, denen das Material angehoert zurueck. Geeignet, um
27 die Eigenschaften eines Materials zu ueberpruefen.
28
29
30RUECKGABEWERT
31=============
32
33 Array von Strings mit Materialiengruppen oder ({})
34
35
36BEISPIELE
37=========
38
39 // ein weiser Schmied:
40 int i;
41 string *mat, mname, mgroup;
42 mat=m_indices(ob->QueryProp(P_MATERIAL));
43 i=sizeof(mat);
44
45 write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
46 while(i--) {
47 // den Namen erkennen/aussprechen:
48 // Materialien werden allgemein etwas besser erkannt (zu 5%), aber
49 // alles aus Metall wird zu +100% besser erkannt ...
50 mname=MATERIALDB->MaterialName(mat[i], WER,
51 ({5, ([MATRGROUP_METAL, 100])}));
52
53 // und nur Metalle analysieren ...
54 if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
55 int j;
56 string *mgr;
57 mgr=MATERIALDB->GetMatMembership(mat[i]);
58 j=sizeof(mgr);
59 mgroup=" gehoert zu ";
60 while(j--) {
61 mgroup+=MATERIALDB->GroupName(mgr[j]);
62 if(j>0) mgroup+=", ";
MG Mud User88f12472016-06-24 23:31:02 +020063 }
Zesstra953f9972017-02-18 15:37:36 +010064 } else mgroup=" kenne ich nicht";
65 printf("%-12.12s: %s\n",mname, mgroup);
66 }
MG Mud User88f12472016-06-24 23:31:02 +020067
MG Mud User88f12472016-06-24 23:31:02 +020068
Zesstra953f9972017-02-18 15:37:36 +010069SIEHE AUCH
70==========
71
72 Konzepte: material, materialerkennung
73 Grundlegend: P_MATERIAL, /sys/thing/material.h
74 Master: AddMaterial(), ConvMaterialList(), MaterialGroup(),
75 GroupName(), MaterialName(),
76 GetGroupMembers()
77
787. Mai 2004 Gloinson