blob: fbc70180c565938267a4fe79677d60fcdf570598 [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
2process_string()
3****************
4
MG Mud User88f12472016-06-24 23:31:02 +02005process_string(E)
MG Mud User88f12472016-06-24 23:31:02 +02006
7
Zesstra953f9972017-02-18 15:37:36 +01008FUNKTION
9========
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011 string process_string(string str)
12 string process_string(closure cl)
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014
15BESCHREIBUNG
16============
17
18 Durchsucht den String str nach Vorkommnissen von Substrings, die "Wert
19 durch Funktionsaufruf zu ersetzen" andeuten. Die Form ist: @@, gefolgt
20 durch einen impliziten Funktionsaufruf.
21
22 Der zu ersetzenden Substring hat die Form:
23 @@function[:filename][|argument1|argument2]@@
24
25 Die entsprechende Funktion muss einen String zurueckgeben, oder der
26 process_string() uebergebene String str wird nicht modifiziert.
27
28 process_string() arbeitet nicht rekursiv, object_name und argument sind
29 optionale Werte.
30
31 Falls eine Closure angegeben wurde, wird diese lediglich gerufen
32 und nicht gefiltert.
33
34
35ANMERKUNGEN
36===========
37
38 - Die Funktion, die gerufen werden soll, _muss_ mit einem Buchstaben
39 anfangen, '_' ist nicht moeglich!
40 - folgendes Properties und Details werden bei der Abfrage ueber
41 process_string() gefiltert:
42 P_LONG, P_SHORT, P_READ_MSG, AddReadDetail()-Details und NPC-Chats
43 P_INT_LONG ueber int_long(), P_INT_SHORT ueber int_short()
44 - die Nutzung kann zu Sicherheitsproblemen fuehren, siehe auch
45 process_call()
46
47
48BEISPIEL
49========
50
51 // komplette Ersetzung ...
52 SetProp(P_LONG,"@@current_long@@");
53 ...
54 string current_long() {
55 if(x) return(break_string("Die Beschreibung."));
56 else return(break_string("Die andere Beschreibung."));
57 }
58
59 -> bei Abfrage: "Die Beschreibung." oder "Die andere Beschreibung."
60
61
62 // Teilersetzung
63 SetProp(P_SHORT, "Ein @@farbenfun|huebsch@@ Ding");
64 ...
65 string farbenfun(string str) {
66 return(str+" "+"gelbes");
67 }
68
69 -> bei Abfrage: "Ein huebsch gelbes Ding."
70
71
72SIEHE AUCH
73==========
74
75 notify_fail(E), process_call(E), replace_personal(E)
MG Mud User88f12472016-06-24 23:31:02 +020076
7722. Nov. 2006 Arathorn