-
Notifications
You must be signed in to change notification settings - Fork 12
/
util.prompts.tf
145 lines (122 loc) · 4.52 KB
/
util.prompts.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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
; $Log: util.prompts.tf,v $
; Revision 1.11 2003/12/11 10:35:49 mh14
; /msend repariert wg. SEND_PREFIX
;
; Revision 1.10 2001/10/10 22:10:21 mh14
; Default-Konfiguration in .tf Files verschoben
;
; Revision 1.9 2001/10/07 17:01:43 mh14
; connect hook in util.prompts.def
;
; Revision 1.8 2001/09/11 20:53:29 mh14
; Versuch einer Zusatzfunktion von /prompt
;
; Revision 1.7 2001/09/10 19:48:59 mh14
; h_action_prompt generalisiert
;
; Revision 1.6 2001/09/09 19:16:59 mh14
; requires bereinigt
;
; Revision 1.5 2001/09/09 19:09:42 mh14
; help_de.list
;
; Revision 1.4 2001/09/06 21:11:44 mh14
; Log eingefuegt
;
/set util_prompts_tf_version $Id$
/set [email protected]
/set util_prompts_tf_requires lists.tf util.hooks.tf
/set util_prompts_tf_desc Makros zum Nutzen der Prompts, des Muds um Makros auszufuehren
; ********************* BEGIN CONFIG ********************
/add_to_hook connect /init_action_count
; ********************* END CONFIG **********************
/addh info \
Initialisiert das Zaehlen von Befehlen und Prompts in den Variablen '_${world_name}(action|prompt)_count'. Dazu wird die Liste 'prompt_action' erzeugt und /def_prompt_hook aufgerufen.
/addh see def_prompt_hook
/addh init_action_count mak
/def init_action_count = \
/set _${world_name}action_count=0%;\
/set _${world_name}prompt_count=0%;\
/createlist prompt_action%;\
/def_prompt_hook%;\
/addh info \
Erhoeht den Zaehler fuer die ans Mud geschickten Befehle. Ist vor allem fuer SEND-Hooks notwendig, die die Daten per /send ans Mud schicken, und ueberall sonst, wo /send benutzt wird.
/addh syn /add_catchup_action Zahl der Kommandos
/addh add_action_count mak
/def add_action_count = \
; /echo add_action_count+%*%;\
/test _${world_name}action_count:=_${world_name}action_count+(0+{1-1})%;\
; /let res=%;\
; /test res:=_${world_name}action_count%;\
; /let res2=%;\
; /test res2:=${world_name}prompt_count%;\
; /echo action: action %res prompt %res2 %-1%;\
; /add_catchup_action /echo prompt: action %res prompt %%res %-1%;\
/addh info \
Da es immer wieder mal passiert, dass die Zaehlung durcheinanderkommt, werden hiermit die Liste 'prompt_action' geloescht und die Variablen auf denselben Wert (action_count) gesetzt.
/addh clear_actions mak
/def clear_actions = \
/createlist prompt_action%;\
/let res=%;\
/test res:=_${world_name}prompt_count%;\
/set _${world_name}action_count=%res%;
/addh info \
Fuehrt nach dem erfolgreichen Ausfuehren der x naechsten Befehle, die ans Mud geschickt werden, den angegebenen Code aus. Dieser wird in einer Liste gespeichert und vom Hook 'h_action_prompt' ausgefuehrt. Es wird auf die Zahl der bisher gesendeten Befehle der Parameter (Standard 1) aufaddiert, und nach dieser Zahl Prompts wird der Code ausgefuehrt.
/addh ex \
n%;n%;o%;@{N}\
/promt_action 5 /echo fertig%;@{N}\
o%;n%;ob%;s%;w%; (wenn diese Befehle vom Mud fertig ausgefuehrt wurden, kommt das '/echo fertig')
/addh syn /add_prompt_action (Zahl der abzuwartetende Befehle) Code
/addh see def_prompt_hook
/addh lists promt_action
/addh add_prompt_action mak
/def add_prompt_action = \
/let res=%;\
/test res:=_${world_name}prompt_count%;\
/addtolist prompt_action $[0+res+{1}] %{-1}%;
/addh info \
/def add_catchup_action = \
/let res=%;\
/test res:=_${world_name}action_count-_${world_name}prompt_count%;\
;/let res%;\
/if (res>0) \
/add_prompt_action %res %*%;\
/else \
/eval %*%;\
/endif%;
/def get_action_diff = /result _${world_name}action_count-_${world_name}prompt_count%;
/def check_prompt_action = /let res=%;\
/test res:=_${world_name}prompt_count+{1}%;\
/iskey prompt_action %res%;\
/result (value!~error)%;
/addh info \
Hook der den letzten Zeitpunkt speichert, an dem etwas ans Mud geschickt wurde. Wird von /check_idle genutzt.
/addh h_action hook
/def def_prompt_hook = \
/def -w -p999 -F -q -hPROMPT h_action_prompt = \
/if (show_prompt==1) /echo \%*\%; /endif\%;\
/test ++_${world_name}prompt_count\%;\
/let res=\%;\
/test res:=_${world_name}prompt_count\%;\
;/echo prompt_count \%res param: \%* \%;\
/getdvalueof prompt_action \%res\%;\
/while (value!~error) \
/eval \%value\%;\
/getdvalueof prompt_action \%res\%;\
/done%;\
/def -w -h"SEND" -p0 -F -q h_action = /send_hook \%*%;\
/def send_hook = \
/eval_hook send %*%;\
/set last_action_time=$[time()]%;\
/add_action_count 1%;\
/def msend =\
/send_hook %*%;\
/if (substr({*},0,1)!~SEND_PREFIX) \
/send %{SEND_PREFIX}%*%;\
/else \
/send %*%;\
/endif
;/def prompt = \
; /test prompt:={*}%;\
; /@prompt %{*}%;
/addh_fileinfo