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