blob: 7a81c45e1aee4d2cf2bfcac121cf09d0d654d8d2 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001GroupName()
2FUNKTION:
3 string GroupName(string grp)
4
5DEFINIERT IN:
6 /p/daemon/materialdb.c (MATERIALDB)
7
8ARGUMENTE:
9 string grp - ein Gruppenname
10
11BESCHREIBUNG:
12 Gibt die Langbeschreibung des Gruppennamens zurueck.
13
14RUECKGABEWERT:
15 Die Gruppenbeschreibung oder "Unbekanntes"
16
17BEISPIELE:
18 // simpel
19 tmp=m_indices(ob->QueryProp(P_MATERIAL));
20 write("Dieses Objekt gehoert u.a. zur Gruppe "+
21 MATERIALDB->GroupName(MATERIALDB->GetMatMembership(tmp[0])[0])+
22 ".\n");
23 // gibt die erste Gruppenzugehoerigkeit des erste Materials in
24 // P_MATERIAL zurueck (bei MATGROUP_METAL z.B. "... zur Gruppe Metalle.")
25
26 // ein weiser Schmied:
27 int i;
28 string *mat, mname, mgroup;
29 mat=m_indices(ob->QueryProp(P_MATERIAL));
30 i=sizeof(mat);
31
32 write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
33 while(i--) {
34 // den Namen erkennen/aussprechen:
35 // Materialien werden allgemein ganz schlecht erkannt (zu 5%), aber
36 // alles aus Metall wird zu +100% gut erkannt ...
37 mname=MATERIALDB->MaterialName(mat[i], WER,
38 ({5, ([MATERIAL_SYMMETRIC_RECOGNIZABILITY:
39 ({MATGROUP_METAL, 100})])}));
40
41 // und nur Metalle analysieren ...
42 if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
43 int j;
44 string *mgr;
45 mgr=MATERIALDB->GetMatMembership(mat[i]);
46 j=sizeof(mgr);
47 mgroup=" gehoert zu ";
48 while(j--) {
49 mgroup+=MATERIALDB->GroupName(mgr[j]);
50 if(j>0) mgroup+=", ";
51 }
52 } else mgroup=" kenne ich nicht";
53 printf("%-12.12s: %s\n",mname, mgroup);
54 }
55
56SIEHE AUCH:
57 Konzepte: material, materialerkennung
58 Grundlegend: P_MATERIAL, /sys/thing/material.h
59 Master: AddMaterial(), ConvMaterialList(), MaterialGroup(),
60 MaterialName(),
61 GetGroupMembers(), GetMatMembership()
62
637. Mai 2004 Gloinson