blob: fd671417dbaa8b01b1b0f3e4a9579bb9c017512f [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001AddSpecialInfo()
2================
3
4FUNKTION
5--------
6::
7
Arathorn41004de2020-10-18 22:03:28 +02008 public varargs void AddSpecialInfo(string|string* keys, string functionname,
9 string indent, int|string silent, string|closure casebased);
10
Zesstra18626972017-01-31 10:38:27 +010011
12ARGUMENTE
13---------
14::
15
Arathorn41004de2020-10-18 22:03:28 +020016 string|string* frage
17 Schluesselwoerter, fuer die der NPC eine Antwort geben soll, wenn
18 man ihn danach fragt
19
20 string functionname
21 Name der Funktion, die gerufen werden soll, um den Informationstext
22 des NPCs zu ermitteln. Der gerufenen Funktion werden keine Argumente
23 uebergeben.
24
25 string indent (optional)
26 Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
27
28 int|string silent (optional)
29 Ist silent gesetzt, so erfolgt Antwort nur an Fragenden.
30
31 string|closure casebased (optional)
32 Closure mit Returnwert string oder int.
33 Der Funktion werden keine Argumente uebergeben.
Zesstra18626972017-01-31 10:38:27 +010034
35DEFINIERT IN
36------------
37::
38
39 /std/npc/info.c
40
41BESCHREIBUNG
42------------
43::
44
45 Wenn ein Spieler ein NPC mittels "frage <monstername> nach <frage>" nach
46 einer Information mit dem Schluessel frage fragt, so wird die Methode
47 "function" gerufen. Die Rueckgabe wird als Meldung ausgegeben.
48
49 Fuer die Beschreibung der weiteren Parameter siehe man AddInfo(L).
50
51 AddSpecialInfo(keys, "function", ...) entspricht:
52 - AddInfo(keys, #'function, ...)
53
54BEMERKUNGEN
55-----------
56::
57
58 Da AddSpecialInfo() und AddInfo() auf die gleichen Daten zugreifen,
59 kann man Informationen, die mit AddSpecialInfo() gesetzt wurden, auch
60 mit RemoveInfo() entfernen. Es gibt kein RemoveSpecialInfo().
61
62BEISPIELE
63---------
64::
65
66 // Das folgende Beispiel ist auch unter man AddInfo(L) zu finden.
67 ### dynamisch ###
68 AddSpecialInfo(({"keks","kekse"}),
69 "query_kekse", // der Methodenname
70 "sagt: ");
71 // ist uebrigens das gleiche wie:
72 // static string query_kekse();
73 // ...
74 // AddInfo(({"keks","kekse"}),
75 // #'query_kekse, // ein Verweis auf die Methode
76 // "sagt: ");
77 ...
78 static string query_kekse() {
79 if(present("keks"))
80 return("Ich hab noch welche. Aetsch!");
81 return("Menno. Keine mehr da!");
82 }
83
84 // "frage monster nach keks":
85 // - wenn es noch Kekse hat, hoeren alle:
86 // "Das Monster sagt: Ich hab noch welche. Aetsch!
87 // - sonst:
88 // "Das Monster sagt: "Menno. Keine mehr da!
89
90SIEHE AUCH
91----------
Zesstra18626972017-01-31 10:38:27 +010092
Arathorn41004de2020-10-18 22:03:28 +020093 Verwandt:
94 :doc:`AddInfo`, :doc:`RemoveInfo`
95 Props:
96 :doc:`../props/P_PRE_INFO`
97 Files:
98 /std/npc/info.c
99 Loggen:
100 :doc:`../props/P_LOG_INFO`
101 Interna:
102 :doc:`GetInfoArr` , :doc:`do_frage`
Zesstra18626972017-01-31 10:38:27 +0100103
Arathorn41004de2020-10-18 22:03:28 +020010424.09.2020, Arathorn
Zesstra18626972017-01-31 10:38:27 +0100105