blob: 7b819bec6ca077d5aae36c14e867526a7e545afb [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002GroupName()
Zesstra953f9972017-02-18 15:37:36 +01003***********
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 string GroupName(string grp)
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /p/daemon/materialdb.c (MATERIALDB)
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018ARGUMENTE
19=========
20
21 string grp - ein Gruppenname
22
23
24BESCHREIBUNG
25============
26
27 Gibt die Langbeschreibung des Gruppennamens zurueck.
28
29
30RUECKGABEWERT
31=============
32
33 Die Gruppenbeschreibung oder "Unbekanntes"
34
35
36BEISPIELE
37=========
38
39 // simpel
40 tmp=m_indices(ob->QueryProp(P_MATERIAL));
41 write("Dieses Objekt gehoert u.a. zur Gruppe "+
42 MATERIALDB->GroupName(MATERIALDB->GetMatMembership(tmp[0])[0])+
43 ".\n");
44 // gibt die erste Gruppenzugehoerigkeit des erste Materials in
45 // P_MATERIAL zurueck (bei MATGROUP_METAL z.B. "... zur Gruppe Metalle.")
46
47 // ein weiser Schmied:
48 int i;
49 string *mat, mname, mgroup;
50 mat=m_indices(ob->QueryProp(P_MATERIAL));
51 i=sizeof(mat);
52
53 write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
54 while(i--) {
55 // den Namen erkennen/aussprechen:
56 // Materialien werden allgemein ganz schlecht erkannt (zu 5%), aber
57 // alles aus Metall wird zu +100% gut erkannt ...
58 mname=MATERIALDB->MaterialName(mat[i], WER,
59 ({5, ([MATERIAL_SYMMETRIC_RECOGNIZABILITY:
60 ({MATGROUP_METAL, 100})])}));
61
62 // und nur Metalle analysieren ...
63 if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
64 int j;
65 string *mgr;
66 mgr=MATERIALDB->GetMatMembership(mat[i]);
67 j=sizeof(mgr);
68 mgroup=" gehoert zu ";
69 while(j--) {
70 mgroup+=MATERIALDB->GroupName(mgr[j]);
71 if(j>0) mgroup+=", ";
MG Mud User88f12472016-06-24 23:31:02 +020072 }
Zesstra953f9972017-02-18 15:37:36 +010073 } else mgroup=" kenne ich nicht";
74 printf("%-12.12s: %s\n",mname, mgroup);
75 }
MG Mud User88f12472016-06-24 23:31:02 +020076
MG Mud User88f12472016-06-24 23:31:02 +020077
Zesstra953f9972017-02-18 15:37:36 +010078SIEHE AUCH
79==========
80
81 Konzepte: material, materialerkennung
82 Grundlegend: P_MATERIAL, /sys/thing/material.h
83 Master: AddMaterial(), ConvMaterialList(), MaterialGroup(),
84 MaterialName(),
85 GetGroupMembers(), GetMatMembership()
86
877. Mai 2004 Gloinson