blob: 17ef526e1dd556fb3cbb4de0e5f29e239c8436da [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001MaterialList(L)
2FUNKTION:
3 varargs string MaterialList(int casus, mixed idinf)
4
5DEFINIERT IN:
6 /std/thing/description.c
7
8ARGUMENTE:
9 int casus - der Fall, in dem die Materialien dekliniert werden sollen
10 mixed idinf - Dinge, welche die Faehigkeiten des Erkennens beeinflussen:
11 Einzelne Werte:
12 * x: allgemeine Erkennung -100 ... 100
13 * who: der Spieler - P_MATERIAL_KNOWLEDGE wird abgefragt
14 * fun: wird evaluiert
15 * what, kann folgendes enthalten:
16 - Eintrag fuer Materialien ([MAT_XXX:-100...100])
17 - Eintrag fuer Materialiengruppen (dito)
18 - ([MATERIAL_SYMMETRIC_RECOGNIZABILITY: mixed mg])
19 * mg ein Array:
20 ({MATGROUP_X1,int z1, MATGROUP_X2, int z2, ...})
21 wobei bei Zugehoerigkeit von string mat zu Gruppe
22 z<n> auf die Faehigkeit addiert, andernfalls davon
23 subtrahiert wird
24 Array mit obigen Werten:
25 - alle Parameter des Arrays sind optional und additiv
26 - ({int x, object who, mapping what, closure fun})
27
28BESCHREIBUNG:
29 Listet die Materialien auf, aus denen ein Objekt besteht.
30 Dabei haengt die Genauigkeit der Materialerkennung von idinf ab. D.h.
31 je nach den Faehigkeiten/der angegebenen Faehigkeit wird zB Wolfram
32 als "Wolfram" oder nur als "Metall" erkannt.
33
34 Wenn ein Spieler etwas identifiziert, sollte auch TP uebergeben werden,
35 bei NPCs koennte das anders aussehen.
36
37RUECKGABEWERT:
38 String mit Liste der Materialien.
39
40BEMERKUNGEN:
41 - es werden nur die Materialien angegeben, nicht die Menge.
42 - ruft ConvMaterialList() an der MATERIALDB
43
44BEISPIELE:
45 // simpel
46 write("Der Gegenstand besteht aus"+ob->MaterialList(WEM,TP)+".\n")
47 // -> "Der Gegenstand besteht aus Gold, Silber und Rubin.\n"
48
49 // komplexer
50 ob->SetProp(P_MATERIAL, ([P_NITROGLYCERINE:90,P_GUNPOWDER:10]));
51 write("Das enthaelt "+ob->MaterialList(WER,TP)+".\n");
52 // -> "Das enthaelt Schwarzpulver und Nitroglycerin."
53
54SIEHE AUCH:
55 Konzepte: material, materialerkennung
56 Grundlegend: P_MATERIAL, /sys/thing/material.h
57 Methoden: QueryMaterial(), QueryMaterialGroup()
58 Listen: AllMaterials(), AllGroups(), Dump()
59 materialliste, materialgruppen
60 Master: AddMaterial(), ConvMaterialList(), MaterialGroup(),
61 GroupName(), MaterialName(),
62 GetGroupMembers(), GetMatMembership()
63 Sonstiges: P_MATERIAL_KNOWLEDGE
64
657. Mai 2004 Gloinson