blob: 539b0cdc23050db5c6599ca5709c7281ef443f8b [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001id()
2====
3
4FUNKTION
5--------
6::
7
8 varargs int id(string str, int lvl);
9
10DEFINIERT IN
11------------
12::
13
14 /std/thing/description.c
15 /std/player/base.c
16
17ARGUMENTE
18---------
19::
20
21 string str
22 String, auf den getestet werden soll.
23 int lvl
24 In /std/player/base.c benutzt. Wenn der Spieler unsichtbar ist
25 und lvl kleiner ist als sein Level, wird 0 zurueckgegeben.
26
27BESCHREIBUNG
28------------
29::
30
31 Es wird geprueft, ob sich das Objekt mit str ansprechen laesst. Dazu
32 wird str mit dem Inhalt der Property P_IDS verglichen. Falls
33 P_ADJECTIVES gesetzt ist, werden auch alle Adjektivkombinationen mit
34 den Bezeichnern geprueft.
35
36 Besondere Bedeutung hat diese Funktion bei Mengenobjekten: Anhand von
37 str wird vermerkt, welche Menge des Objektes angesprochen wird. Es
38 werden dabei mehrere Faelle unterschieden:
39 o str ist einer der mit AddId() angegebener Bezeichner. In diesem
40 Fall ist die angesprochene Menge die Gesamtmenge.
41 o str ist einer der mit AddSingularId() angegebenen Bezeichner. Die
42 angesprochene Menge ist in diesem Fall 1.
43 o str ist einer der mit AddPluralId() angegebenen Bezeichner. Die
44 angesprochene Menge ist in diesem Fall . die Gesamtmenge.
45 o Hat str die Form "<n> <id>", wobei <n>=1 und <id> eine SingularId
46 oder 1 < <n> <= der Gesamtmenge und <id> eine PluralId, so ist die
47 angesprochene Menge = <n>.
48 Wie gesagt, gilt dies einzig und allein bei Mengenobjekten!
49
50RUeCKGABEWERT
51-------------
52::
53
54 1, wenn sich das Objekt von str angesprochen fuehlt, ansonsten 0.
55
56BEISPIELE
57---------
58::
59
60 Angenommen, ein Objekt habe folgende Bezeichner:
61
62 AddId( "murmel" );
63 AddAdjective( "runde" );
64
65 Dann liefern die angegebenen id()-Aufrufe folgende Ergebnisse:
66
67 id( "murmel" ); => 1
68 id( "runde murmel" ); => 1
69 id( "kleine murmel" ); => 0
70 id( "runder ball" ); => 0
71 id( "runde murmel 2" ); => 1, wenn dies die zweite Murmel in der
72 gleichen Umgebung ist, ansonsten 0
73
74 Bei einem Haufen von 100 Muenzen haette man zB.:
75
76 AddId( "geld" );
77 AddSingularId( "muenze" );
78 AddPluralId( "muenzen" );
79
80 Nach fuehlen sich nach den folgenden id()-Aufrufen folgende Anzahlen
81 angesprochen:
82
83 id( "geld" ); => 100 Muenzen
84 id( "muenze" ); => 1 Muenze
85 id( "muenzen" ); => 100 Muenzen
86 id( "1 muenze" ); => 1 Muenze
87 id( "42 muenzen" ); => 42 Muenzen
88
89 id() liefert in all diesen Faellen 1 zurueck.
90
91SIEHE AUCH
92----------
93::
94
95 AddId(), AddAdjective(), AddSingularId(), AddPluralId(), present(),
96 match_ids(), /std/thing/description.c, /std/unit.c
97
986. Sep 2012 Gloinson
99