blob: 0e338a3a8c39c8be15ea7c905c78567cd51696a5 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001MaterialName()
2FUNKTION:
3 varargs string MaterialName(string mat, int casus, mixed idinf)
4
5DEFINIERT IN:
6 /p/daemon/materialdb.c (MATERIALDB)
7
8ARGUMENTE:
9 string mat - das zu erkennende Material
10 int casus - der Fall
11 mixed idinf - Dinge, welche die Faehigkeiten des Erkennens beeinflussen
12 (siehe "man MaterialList")
13
14BESCHREIBUNG:
15 Diese Funktion sucht unter Beruecksichtigung der Erkennungsbe-
16 schraenkungen des Materials und Faehigkeiten des Spielers den
17 Klarnamen des Materials heraus und gibt den zurueck.
18
19RUECKGABEWERT:
20 string: Materialname oder genereller Name.
21
22BEISPIELE:
23 // der hier mag alle existierenden Juwelen, auch wenn welche ergaenzt
24 // werden sollten
25 // Parameter: 1. ein Juwel, 2. Casus, 3. 100% Erkennung - ob er sie
26 // beim Empfang dann auch zu 100% erkennt, steht hier nicht!
27 string* likeit;
28 likeit=MATERIALDB->GetGroupMembers(MATGROUP_JEWEL);
29 ...
30 write("Der Alte sagt: Ich mag "+
31 MATERIALDB->MaterialName(likeit[random(sizeof(likeit))], WEN, 100)+
32 ".\n");
33 ...
34
35 // ein weiser schmied:
36 int i;
37 string *mat, mname, mgroup;
38 mat=m_indices(ob->queryprop(p_material));
39 i=sizeof(mat);
40
41 write("der schmied sagt: "+ob->name(wer)+" besteht aus ...\n");
42 while(i--) {
43 // den namen erkennen/aussprechen:
44 // materialien werden allgemein ganz schlecht erkannt (zu 5%), aber
45 // alles aus metall wird zu +100% gut erkannt ...
46 mname=materialdb->materialname(mat[i], wer,
47 ({5, ([material_symmetric_recognizability:
48 ({matgroup_metal, 100})])}));
49
50 // und nur metalle analysieren ...
51 if(materialdb->materialgroup(([mat[i]:100]),matgroup_metal)>=100) {
52 int j;
53 string *mgr;
54 mgr=materialdb->getmatmembership(mat[i]);
55 j=sizeof(mgr);
56 mgroup=" gehoert zu ";
57 while(j--) {
58 mgroup+=materialdb->groupname(mgr[j]);
59 if(j>0) mgroup+=", ";
60 }
61 } else mgroup=" kenne ich nicht";
62 printf("%-12.12s: %s\n",mname, mgroup);
63 }
64
65SIEHE AUCH:
66 Konzepte: material, materialerkennung
67 Grundlegend: P_MATERIAL, /sys/thing/material.h
68 Master: AddMaterial(), ConvMaterialList(), MaterialGroup(),
69 GroupName()
70 GetGroupMembers(), GetMatMembership()
71
727. Mai 2004 Gloinson