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