-
Notifications
You must be signed in to change notification settings - Fork 11
/
util.abbrev.tf
97 lines (85 loc) · 3.08 KB
/
util.abbrev.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
; $Log: util.abbrev.tf,v $
; Revision 1.8 2001/11/27 21:34:06 mh14
; anpassung an first_connect hook
;
; Revision 1.7 2001/10/10 22:10:21 mh14
; Default-Konfiguration in .tf Files verschoben
;
; Revision 1.6 2001/09/09 19:16:59 mh14
; requires bereinigt
;
; Revision 1.5 2001/09/09 19:09:41 mh14
; help_de.list
;
; Revision 1.4 2001/09/06 21:11:44 mh14
; Log eingefuegt
;
/set util_abbrev_tf_version $Id$
/set [email protected]
/set util_abbrev_tf_requires lists.tf util.sfuncs.tf
/set util_abbrev_tf_desc Abkuerzungen, die in multiple Mud-Kommandos expandiert werden
; ********************* BEGIN CONFIG ********************
/addh info \
Diese Liste enthaelt die definierten Abkuerzungen und deren Liste von Inhalten.
/addh abbreviations list
/set abbrev_list_name=abbreviations
/set abbrev_list_location=-c
/add_to_hook first_connect /loadnamedlist abbrev
; ********************* END CONFIG **********************
/addh info \
Definiert eine Abkuerzung, indem sie sie in die Liste ?abbreviations eintraegt. Danach wird jeder Text, der ^abkuerzung enthaelt und ans Mud geschickt werden soll, vervielfaeltigt und jeweils ein Eintrag der Abkuerzung eingetragen.
/addh ex /def_abbrev freunde mesirii strohalm@{N}\
Damit wird aus 'teile ^freunde mit test'@{N}\
-> 'teile mesirii mit test' und@{N}\
-> 'teile strohalm mit test'@{N}\
Pausen koennen mit '/def_abbrev zauber *3 schutz hand' eingestellt werden (3 Sekunden) oder mit 'zaubere ^3zauber' beim Ausfuehren angegeben werden. Dabei sind die Pausen beim Ausfuehren vorrangig. Dank Strohalm sind jetzt durch _ statt Leerzeichen getrennte Worte in den Abkuerzungen moeglich; diese werden bei der Umsetzung wieder durch Leerzeichen ersetzt.
/addh def_abbrev comm
/defh def_abbrev = \
/let key=%1%;\
/let val=%-1%;\
/uaddtolist abbreviations %*%;
/addh info Loescht eine Abkuerzung
/addh ex /undef_abbrev freunde
/addh undef_abbrev comm
/defh undef_abbrev = \
/deletekeyandvalue abbreviations %*%;\
; /undef h_abbrev_%*%;
/addh info \
Dieser Send-Hook faengt die Abkuerzungen ab und ersetzt sie wie bei /def_abbrev beschrieben.
/addh list abbreviations
/addh mak tokenize
/addh h_abbrev hook
/def -h"SEND (^| )\\^[0-9]*[^ ]+($| )" -mregexp -p20 h_abbrev = \
/if (regmatch("(^| )[-^]([^ ]+)( |$)",{*}))\
/let abbrev=^%P2%;\
/let key=%P2%;\
/let abbrev_pause=0%;\
/if (regmatch("([0-9]+)(.+)",key)) \
/let abbrev_pause=$[+{P1}]%;\
/let key=%P2%;\
/endif%;\
/getvalueof abbreviations %key%;\
/if (value=~error) \
/msend -w %*%;\
/else \
/let delim=%;\
/test delim:=(value=/"*,*")? "," : " "%;\
/test tokenize(delim,value)%;\
/let tcount=$[T0+1]%;\
/let tcountmin=1%;\
/if (regmatch("\\*([0-9]+)",T1)) \
/let tcountmin=2%;\
/if (abbrev_pause==0) \
/let abbrev_pause=$[+{P1}]%;\
/endif%;\
/endif%;\
/let res=%;\
/let repeat_abbrev=0%;\
/while (--tcount>=tcountmin) \
/test res:=\{T%{tcount}\}%;\
/repeat -%repeat_abbrev 1 $[replace(abbrev,replace("_"," ",res),{*})]%;\
/let repeat_abbrev=$[repeat_abbrev+abbrev_pause]%;\
/done%;\
/endif%;\
/endif%;
/addh_fileinfo