blob: 91cb2bd6ce39f0f099d4c01621888024d32b9f33 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001MaterialName()
Zesstra953f9972017-02-18 15:37:36 +01002**************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 varargs string MaterialName(string mat, int casus, mixed idinf)
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 /p/daemon/materialdb.c (MATERIALDB)
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017ARGUMENTE
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
25
26BESCHREIBUNG
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
33
34RUECKGABEWERT
35=============
36
37 string: Materialname oder genereller Name.
38
39
40BEISPIELE
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+=", ";
MG Mud User88f12472016-06-24 23:31:02 +020080 }
Zesstra953f9972017-02-18 15:37:36 +010081 } else mgroup=" kenne ich nicht";
82 printf("%-12.12s: %s\n",mname, mgroup);
83 }
MG Mud User88f12472016-06-24 23:31:02 +020084
MG Mud User88f12472016-06-24 23:31:02 +020085
Zesstra953f9972017-02-18 15:37:36 +010086SIEHE AUCH
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