blob: bd053041246f0f93269ebae3bc4f699b74952174 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001AddSpecialInfo()
2================
3
4FUNKTION
5--------
Zesstra18626972017-01-31 10:38:27 +01006
Arathorn41004de2020-10-18 22:03:28 +02007 public varargs void AddSpecialInfo(string|string* keys, string functionname,
8 string indent, int|string silent, string|closure casebased);
9
Zesstra6b0e3962021-08-10 23:41:52 +020010DEFINIERT IN
11------------
12
13 /std/npc/info.c
Zesstra18626972017-01-31 10:38:27 +010014
15ARGUMENTE
16---------
Zesstra18626972017-01-31 10:38:27 +010017
Arathorn41004de2020-10-18 22:03:28 +020018 string|string* frage
Zesstrabbb16a72021-08-09 23:58:46 +020019 Schluesselphrase(n), fuer die der NPC eine Antwort geben soll, wenn
Arathorn41004de2020-10-18 22:03:28 +020020 man ihn danach fragt
21
22 string functionname
23 Name der Funktion, die gerufen werden soll, um den Informationstext
Zesstrabbb16a72021-08-09 23:58:46 +020024 des NPCs zu ermitteln. Der gerufenen Funktion wird die vom Spieler
25 gefragte Schluesselphrase uebergeben.
Arathorn41004de2020-10-18 22:03:28 +020026
27 string indent (optional)
28 Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
29
30 int|string silent (optional)
31 Ist silent gesetzt, so erfolgt Antwort nur an Fragenden.
32
33 string|closure casebased (optional)
Zesstrabbb16a72021-08-09 23:58:46 +020034 Closure mit Returnwert string oder int. Der Funktion wird die vom
35 Spieler gefragte Schluesselphrase uebergeben.
Zesstra18626972017-01-31 10:38:27 +010036
Zesstra18626972017-01-31 10:38:27 +010037
38BESCHREIBUNG
39------------
Zesstra18626972017-01-31 10:38:27 +010040
41 Wenn ein Spieler ein NPC mittels "frage <monstername> nach <frage>" nach
42 einer Information mit dem Schluessel frage fragt, so wird die Methode
43 "function" gerufen. Die Rueckgabe wird als Meldung ausgegeben.
44
45 Fuer die Beschreibung der weiteren Parameter siehe man AddInfo(L).
46
Zesstra6b0e3962021-08-10 23:41:52 +020047 ``AddSpecialInfo(keys, "function", ...)`` entspricht
48 ``AddInfo(keys, #'function, ...)``.
Zesstra18626972017-01-31 10:38:27 +010049
50BEMERKUNGEN
51-----------
Zesstra18626972017-01-31 10:38:27 +010052
53 Da AddSpecialInfo() und AddInfo() auf die gleichen Daten zugreifen,
54 kann man Informationen, die mit AddSpecialInfo() gesetzt wurden, auch
55 mit RemoveInfo() entfernen. Es gibt kein RemoveSpecialInfo().
56
57BEISPIELE
58---------
Zesstra6b0e3962021-08-10 23:41:52 +020059
60.. code-block:: pike
Zesstra18626972017-01-31 10:38:27 +010061
62 // Das folgende Beispiel ist auch unter man AddInfo(L) zu finden.
63 ### dynamisch ###
64 AddSpecialInfo(({"keks","kekse"}),
65 "query_kekse", // der Methodenname
66 "sagt: ");
67 // ist uebrigens das gleiche wie:
Zesstrabbb16a72021-08-09 23:58:46 +020068 // static string query_kekse(string key);
Zesstra18626972017-01-31 10:38:27 +010069 // ...
70 // AddInfo(({"keks","kekse"}),
71 // #'query_kekse, // ein Verweis auf die Methode
72 // "sagt: ");
73 ...
Zesstrabbb16a72021-08-09 23:58:46 +020074 static string query_kekse(string key) {
Zesstra18626972017-01-31 10:38:27 +010075 if(present("keks"))
76 return("Ich hab noch welche. Aetsch!");
77 return("Menno. Keine mehr da!");
78 }
79
80 // "frage monster nach keks":
81 // - wenn es noch Kekse hat, hoeren alle:
82 // "Das Monster sagt: Ich hab noch welche. Aetsch!
83 // - sonst:
84 // "Das Monster sagt: "Menno. Keine mehr da!
85
Zesstra6b0e3962021-08-10 23:41:52 +020086
Zesstra18626972017-01-31 10:38:27 +010087SIEHE AUCH
88----------
Zesstra18626972017-01-31 10:38:27 +010089
Arathorn41004de2020-10-18 22:03:28 +020090 Verwandt:
91 :doc:`AddInfo`, :doc:`RemoveInfo`
92 Props:
93 :doc:`../props/P_PRE_INFO`
94 Files:
95 /std/npc/info.c
96 Loggen:
97 :doc:`../props/P_LOG_INFO`
98 Interna:
99 :doc:`GetInfoArr` , :doc:`do_frage`
Zesstra18626972017-01-31 10:38:27 +0100100
Zesstrabbb16a72021-08-09 23:58:46 +020010109.08.2021, Zesstra