rendered paste bodyalias colors {
var %length = $len($1-)
var %letter = 1
while (%letter <= %length) {
if ($mid($1-,%letter,1) == $chr(32)) {
var %output = %output $+ &
goto xxx
}
var %output = %output $+ $+ $rand(03,013) $+ $mid($1-,%letter,1)
:xxx
inc %letter
}
var %output = $replace(%output,$chr(38),$chr(32))
msg $active %output
}
alias rev {
var %len = $len($1-)
var %return = $null
while (%len > 0) {
var %return = %return $+ $mid($1-,%len,1) $+ $chr(32)
dec %len
}
return %return
}
alias reverse //say $rev( $1- )
alias mereverse //me $rev( $1- )
alias rainbow {
var %pos = 1, %color = 04, %result = $chr(3)
while (%pos <= $len($1-)) {
%result = %result $+ %color $+ $mid($1-,%pos,1) $+ $chr(3)
inc %pos
%color = $nextcolor(%color)
}
if ($isid) return %result
else say %result
}
alias -l nextcolor {
if ($$1 == 04) return 07
elseif ($$1 == 07) return 08
elseif ($$1 == 08) return 09
elseif ($$1 == 09) return 11
elseif ($$1 == 11) return 12
elseif ($$1 == 12) return 02
elseif ($$1 == 02) return 06
elseif ($$1 == 06) return 13
elseif ($$1 == 13) return 04
}
alias mt {
if ($bigtext.unsupp($1-)) {
echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-)
return
}
var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/
var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)
while (%i <= $len(%text)) {
if ($mid(%text, %i, 1) == $chr(3)) {
var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
var %m $regml(mtcol, 1)
var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
inc %i $len(%m)
}
}
else {
tokenize 32 $bigtext.char($mid(%text, %i, 1))
var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
; if ($bigtext.kern($mid(%text, %i, 2))) {
var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
; }
}
inc %i
}
say $bigtext.format(%lia)
say $bigtext.format(%lib)
say $bigtext.format(%lic)
say $bigtext.format(%lid)
say $bigtext.format(%lie)
}
; You may customize this alias however you want to.
; It is Big Text's font, used above.
; The return value consists of dots and X's, to denote
; unlit and lit points in the font, respectively;
; there are 5 tokens of the same length, each
; corresponding to a line in the 5-line output.
; Note how the . and X's look like the characters;
; you can use this to your advantage!
alias -l bigtext.char {
if ($1 === $chr(32)) || ($1 === $null) return $&
... $&
... $&
... $&
... $&
...
if ($1 === $chr(160)) return $&
..... $&
..... $&
..... $&
..... $&
.....
elseif ($1 == 0) return $&
.XXXX. $&
XX..XX $&
XX.XXX $&
XXX.XX $&
.XXXX.
elseif ($1 == 1) return $&
.XXXX $&
XX.XX $&
...XX $&
...XX $&
...XX
elseif ($1 == 2) return $&
XXXXX. $&
....XX $&
..XX.. $&
XX.... $&
XXXXXX
elseif ($1 == 3) return $&
XXXXX. $&
....XX $&
.XXXX. $&
....XX $&
XXXXX.
elseif ($1 == 4) return $&
.....XXX. $&
...XX.XX. $&
.XX...XX. $&
XXXXXXXXX $&
......XX.
elseif ($1 == 5) return $&
XXXXX $&
XX... $&
XXXX. $&
...XX $&
XXXX.
elseif ($1 == 6) return $&
.XXXX. $&
XX.... $&
XXXXX. $&
XX..XX $&
.XXXX.
elseif ($1 == 7) return $&
XXXXXX $&
...XX. $&
..XX.. $&
.XX... $&
XX....
elseif ($1 == 8) return $&
.XXXX. $&
XX..XX $&
.XXXX. $&
XX..XX $&
.XXXX.
elseif ($1 == 9) return $&
.XXXX. $&
XX..XX $&
.XXXXX $&
....XX $&
.XXXX.
elseif ($1 == A) return $&
.XXXX. $&
XX..XX $&
XXXXXX $&
XX..XX $&
XX..XX
elseif ($1 == B) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX..XX $&
XXXXX.
elseif ($1 == C) return $&
.XXXX. $&
XX..XX $&
XX.... $&
XX..XX $&
.XXXX.
elseif ($1 == D) return $&
XXXX.. $&
XX.XX. $&
XX..XX $&
XX..XX $&
XXXXX.
elseif ($1 == E) return $&
XXXXX $&
XX... $&
XXXX. $&
XX... $&
XXXXX
elseif ($1 == F) return $&
XXXXX $&
XX... $&
XXXX. $&
XX... $&
XX...
elseif ($1 == G) return $&
.XXXX. $&
XX.... $&
XX.XXX $&
XX..XX $&
.XXXXX
elseif ($1 == H) return $&
XX...XX $&
XX...XX $&
XXXXXXX $&
XX...XX $&
XX...XX
elseif ($1 == I) return $&
XXXX $&
.XX. $&
.XX. $&
.XX. $&
XXXX
elseif ($1 == J) return $&
....XX $&
....XX $&
....XX $&
XX..XX $&
.XXXX.
elseif ($1 == K) return $&
XX..XX $&
XX.XX. $&
XXXX.. $&
XX.XX. $&
XX..XX
elseif ($1 == L) return $&
XX... $&
XX... $&
XX... $&
XX... $&
XXXXX
elseif ($1 == M) return $&
XX....XX $&
XXX..XXX $&
XXXXXXXX $&
XX.XX.XX $&
XX....XX
elseif ($1 == N) return $&
XX..XX $&
XXX.XX $&
XXXXXX $&
XX.XXX $&
XX..XX
elseif ($1 == O) return $&
.XXXX. $&
XX..XX $&
XX..XX $&
XX..XX $&
.XXXX.
elseif ($1 == P) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX.... $&
XX....
elseif ($1 == Q) return $&
.XXXX.. $&
XX..XX. $&
XX..XX. $&
XX..XX. $&
.XXXXXX
elseif ($1 == R) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX..XX $&
XX..XX
elseif ($1 == S) return $&
.XXXX. $&
XX.... $&
.XXXX. $&
....XX $&
XXXXX.
elseif ($1 == T) return $&
XXXXXX $&
..XX.. $&
..XX.. $&
..XX.. $&
..XX..
elseif ($1 == U) return $&
XX..XX $&
XX..XX $&
XX..XX $&
XX..XX $&
.XXXX.
elseif ($1 == V) return $&
XX....XX $&
XX....XX $&
.XX..XX. $&
..XXXX.. $&
...XX...
elseif ($1 == W) return $&
XX...XX $&
XX...XX $&
XX.X.XX $&
XXXXXXX $&
.XX.XX.
elseif ($1 == X) return $&
XX...XX $&
.XX.XX. $&
..XXX.. $&
.XX.XX. $&
XX...XX
elseif ($1 == Y) return $&
XX..XX $&
XX..XX $&
.XXXX. $&
..XX.. $&
..XX..
elseif ($1 == Z) return $&
XXXXXX $&
...XX. $&
..XX.. $&
.XX... $&
XXXXXX
elseif ($1 == $chr(35)) return $&
.XX..XX. $&
XXXXXXXX $&
.XX..XX. $&
XXXXXXXX $&
.XX..XX.
elseif ($1 == ') return $&
.XX $&
XX. $&
... $&
... $&
...
elseif ($1 == ") return $&
XX..XX $&
XX..XX $&
...... $&
...... $&
......
elseif ($1 == +) return $&
...... $&
..XX.. $&
XXXXXX $&
..XX.. $&
......
elseif ($1 == =) return $&
...... $&
XXXXXX $&
...... $&
XXXXXX $&
......
elseif ($1 == -) return $&
...... $&
...... $&
XXXXXX $&
...... $&
......
elseif ($1 == _) return $&
...... $&
...... $&
...... $&
...... $&
XXXXXX
elseif ($1 == :) return $&
.. $&
XX $&
.. $&
XX $&
..
elseif ($1 == !) return $&
XX $&
XX $&
XX $&
.. $&
XX
elseif ($1 == ?) return $&
XXX. $&
..XX $&
.XX. $&
.... $&
.XX.
elseif ($1 == .) return $&
.. $&
.. $&
.. $&
.. $&
XX
elseif ($1 == /) return $&
....XX $&
...XX. $&
..XX.. $&
.XX... $&
XX....
elseif ($1 == \) return $&
XX.... $&
.XX... $&
..XX.. $&
...XX. $&
....XX
elseif ($1 == $chr(40)) return $&
...XX $&
.XX.. $&
XX... $&
.XX.. $&
...XX
elseif ($1 == $chr(41)) return $&
XX... $&
..XX. $&
...XX $&
..XX. $&
XX...
elseif ($1 == $chr(37)) return $&
XX..XX $&
...XX. $&
..XX.. $&
.XX... $&
XX..XX
elseif ($1 == [) return $&
XXXXX $&
XX... $&
XX... $&
XX... $&
XXXXX
elseif ($1 == ]) return $&
XXXXX $&
...XX $&
...XX $&
...XX $&
XXXXX
elseif ($1 == |) return $&
.XX. $&
.XX. $&
.XX. $&
.XX. $&
.XX.
elseif ($1 == <) return $&
....XX $&
..XX.. $&
XX.... $&
..XX.. $&
....XX
elseif ($1 == >) return $&
XX.... $&
..XX.. $&
....XX $&
..XX.. $&
XX....
elseif ($1 == ,) return $&
... $&
... $&
XXX $&
.XX $&
XX.
elseif ($1 == ^) return $&
....XX.... $&
..XX..XX.. $&
XX......XX $&
.......... $&
..........
elseif ($1 == ~) return $&
................ $&
XXXX...XXXXX.... $&
...XXXXX...XXXXX $&
................ $&
................
}
; Returns all unsupported characters within a Big Text message
; Supported characters are a-z, space, digits, #'"+=:!?./\()%-[]<>|,
alias bigtext.unsupp {
var %res, %dummy = $regsub($1-, /[]a-z 0-9# $+ $chr(44) $+ '+=:!?.^~/\\()%[|<>_"-]/igS, $null, %res)
return %res
}
; Returns $true if a space should be added between two characters,
; or $false if not.
; Note: This is here only for aesthetic purposes. :)
alias bigtext.kern {
var %res $true
if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]|[J/]|L'|\/\/|\\\\|J|[_]|[T_]_|>\.|\.<)$/i)) %res = $false
return %res
}
; Takes an input string of the form:
; .XX..XX....XX.XX.XXXXX
; And formats it for display.
alias bigtext.format {
var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
while (%i <= $len($1-)) {
if ($mid($1-, %i, 1) == $chr(3)) {
if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
%curcolor = $gettok($regml(mtcol, 1), 1, 44)
if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
}
inc %i $len($regml(mtcol, 1))
}
elseif (%curcolor) {
%curcolor =
if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
}
}
else {
%current = $iif($mid($1-, %i, 1) == ., 0, 1)
if (%previous != %current) {
%previous = %current
if (%curcolor) {
if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
else %res = %res $+ $chr(3)
}
else %res = %res $+ $chr(22)
}
%res = %res $+ $chr(160)
}
inc %i
}
return %res
}
alias mtrainbow //mt $rainbow( $+ $1- $+ )
001 alias colors {
002 var %length = $len($1-)
003 var %letter = 1
004 while (%letter <= %length) {
005 if ($mid($1-,%letter,1) == $chr(32)) {
006 var %output = %output $+ &
007 goto xxx
008 }
009 var %output = %output $+ $+ $rand(03,013) $+ $mid($1-,%letter,1)
010 :xxx
011 inc %letter
012 }
013 var %output = $replace(%output,$chr(38),$chr(32))
014 msg $active %output
015 }
016
017
018
019 alias rev {
020 var %len = $len($1-)
021 var %return = $null
022 while (%len > 0) {
023 var %return = %return $+ $mid($1-,%len,1) $+ $chr(32)
024 dec %len
025 }
026 return %return
027 }
028 alias reverse //say $rev( $1- )
029 alias mereverse //me $rev( $1- )
030
031
032
033
034 alias rainbow {
035 var %pos = 1, %color = 04, %result = $chr(3)
036 while (%pos <= $len($1-)) {
037 %result = %result $+ %color $+ $mid($1-,%pos,1) $+ $chr(3)
038 inc %pos
039 %color = $nextcolor(%color)
040 }
041 if ($isid) return %result
042 else say %result
043 }
044
045 alias -l nextcolor {
046 if ($$1 == 04) return 07
047 elseif ($$1 == 07) return 08
048 elseif ($$1 == 08) return 09
049 elseif ($$1 == 09) return 11
050 elseif ($$1 == 11) return 12
051 elseif ($$1 == 12) return 02
052 elseif ($$1 == 02) return 06
053 elseif ($$1 == 06) return 13
054 elseif ($$1 == 13) return 04
055 }
056
057
058
059
060
061
062 alias mt {
063 if ($bigtext.unsupp($1-)) {
064 echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-)
065 return
066 }
067 var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/
068
069 var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)
070
071 while (%i <= $len(%text)) {
072 if ($mid(%text, %i, 1) == $chr(3)) {
073 var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
074 if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
075 var %m $regml(mtcol, 1)
076 var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
077 inc %i $len(%m)
078 }
079 }
080 else {
081 tokenize 32 $bigtext.char($mid(%text, %i, 1))
082 var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
083 ; if ($bigtext.kern($mid(%text, %i, 2))) {
084 var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
085 ; }
086 }
087 inc %i
088 }
089 say $bigtext.format(%lia)
090 say $bigtext.format(%lib)
091 say $bigtext.format(%lic)
092 say $bigtext.format(%lid)
093 say $bigtext.format(%lie)
094 }
095
096 ; You may customize this alias however you want to.
097 ; It is Big Text's font, used above.
098 ; The return value consists of dots and X's, to denote
099 ; unlit and lit points in the font, respectively;
100 ; there are 5 tokens of the same length, each
101 ; corresponding to a line in the 5-line output.
102 ; Note how the . and X's look like the characters;
103 ; you can use this to your advantage!
104 alias -l bigtext.char {
105 if ($1 === $chr(32)) || ($1 === $null) return $&
106 ... $&
107 ... $&
108 ... $&
109 ... $&
110 ...
111 if ($1 === $chr(160)) return $&
112 ..... $&
113 ..... $&
114 ..... $&
115 ..... $&
116 .....
117 elseif ($1 == 0) return $&
118 .XXXX. $&
119 XX..XX $&
120 XX.XXX $&
121 XXX.XX $&
122 .XXXX.
123 elseif ($1 == 1) return $&
124 .XXXX $&
125 XX.XX $&
126 ...XX $&
127 ...XX $&
128 ...XX
129 elseif ($1 == 2) return $&
130 XXXXX. $&
131 ....XX $&
132 ..XX.. $&
133 XX.... $&
134 XXXXXX
135 elseif ($1 == 3) return $&
136 XXXXX. $&
137 ....XX $&
138 .XXXX. $&
139 ....XX $&
140 XXXXX.
141 elseif ($1 == 4) return $&
142 .....XXX. $&
143 ...XX.XX. $&
144 .XX...XX. $&
145 XXXXXXXXX $&
146 ......XX.
147 elseif ($1 == 5) return $&
148 XXXXX $&
149 XX... $&
150 XXXX. $&
151 ...XX $&
152 XXXX.
153 elseif ($1 == 6) return $&
154 .XXXX. $&
155 XX.... $&
156 XXXXX. $&
157 XX..XX $&
158 .XXXX.
159 elseif ($1 == 7) return $&
160 XXXXXX $&
161 ...XX. $&
162 ..XX.. $&
163 .XX... $&
164 XX....
165 elseif ($1 == 8) return $&
166 .XXXX. $&
167 XX..XX $&
168 .XXXX. $&
169 XX..XX $&
170 .XXXX.
171 elseif ($1 == 9) return $&
172 .XXXX. $&
173 XX..XX $&
174 .XXXXX $&
175 ....XX $&
176 .XXXX.
177 elseif ($1 == A) return $&
178 .XXXX. $&
179 XX..XX $&
180 XXXXXX $&
181 XX..XX $&
182 XX..XX
183 elseif ($1 == B) return $&
184 XXXXX. $&
185 XX..XX $&
186 XXXXX. $&
187 XX..XX $&
188 XXXXX.
189 elseif ($1 == C) return $&
190 .XXXX. $&
191 XX..XX $&
192 XX.... $&
193 XX..XX $&
194 .XXXX.
195 elseif ($1 == D) return $&
196 XXXX.. $&
197 XX.XX. $&
198 XX..XX $&
199 XX..XX $&
200 XXXXX.
201 elseif ($1 == E) return $&
202 XXXXX $&
203 XX... $&
204 XXXX. $&
205 XX... $&
206 XXXXX
207 elseif ($1 == F) return $&
208 XXXXX $&
209 XX... $&
210 XXXX. $&
211 XX... $&
212 XX...
213 elseif ($1 == G) return $&
214 .XXXX. $&
215 XX.... $&
216 XX.XXX $&
217 XX..XX $&
218 .XXXXX
219 elseif ($1 == H) return $&
220 XX...XX $&
221 XX...XX $&
222 XXXXXXX $&
223 XX...XX $&
224 XX...XX
225 elseif ($1 == I) return $&
226 XXXX $&
227 .XX. $&
228 .XX. $&
229 .XX. $&
230 XXXX
231 elseif ($1 == J) return $&
232 ....XX $&
233 ....XX $&
234 ....XX $&
235 XX..XX $&
236 .XXXX.
237 elseif ($1 == K) return $&
238 XX..XX $&
239 XX.XX. $&
240 XXXX.. $&
241 XX.XX. $&
242 XX..XX
243 elseif ($1 == L) return $&
244 XX... $&
245 XX... $&
246 XX... $&
247 XX... $&
248 XXXXX
249 elseif ($1 == M) return $&
250 XX....XX $&
251 XXX..XXX $&
252 XXXXXXXX $&
253 XX.XX.XX $&
254 XX....XX
255 elseif ($1 == N) return $&
256 XX..XX $&
257 XXX.XX $&
258 XXXXXX $&
259 XX.XXX $&
260 XX..XX
261 elseif ($1 == O) return $&
262 .XXXX. $&
263 XX..XX $&
264 XX..XX $&
265 XX..XX $&
266 .XXXX.
267 elseif ($1 == P) return $&
268 XXXXX. $&
269 XX..XX $&
270 XXXXX. $&
271 XX.... $&
272 XX....
273 elseif ($1 == Q) return $&
274 .XXXX.. $&
275 XX..XX. $&
276 XX..XX. $&
277 XX..XX. $&
278 .XXXXXX
279 elseif ($1 == R) return $&
280 XXXXX. $&
281 XX..XX $&
282 XXXXX. $&
283 XX..XX $&
284 XX..XX
285 elseif ($1 == S) return $&
286 .XXXX. $&
287 XX.... $&
288 .XXXX. $&
289 ....XX $&
290 XXXXX.
291 elseif ($1 == T) return $&
292 XXXXXX $&
293 ..XX.. $&
294 ..XX.. $&
295 ..XX.. $&
296 ..XX..
297 elseif ($1 == U) return $&
298 XX..XX $&
299 XX..XX $&
300 XX..XX $&
301 XX..XX $&
302 .XXXX.
303 elseif ($1 == V) return $&
304 XX....XX $&
305 XX....XX $&
306 .XX..XX. $&
307 ..XXXX.. $&
308 ...XX...
309 elseif ($1 == W) return $&
310 XX...XX $&
311 XX...XX $&
312 XX.X.XX $&
313 XXXXXXX $&
314 .XX.XX.
315 elseif ($1 == X) return $&
316 XX...XX $&
317 .XX.XX. $&
318 ..XXX.. $&
319 .XX.XX. $&
320 XX...XX
321 elseif ($1 == Y) return $&
322 XX..XX $&
323 XX..XX $&
324 .XXXX. $&
325 ..XX.. $&
326 ..XX..
327 elseif ($1 == Z) return $&
328 XXXXXX $&
329 ...XX. $&
330 ..XX.. $&
331 .XX... $&
332 XXXXXX
333 elseif ($1 == $chr(35)) return $&
334 .XX..XX. $&
335 XXXXXXXX $&
336 .XX..XX. $&
337 XXXXXXXX $&
338 .XX..XX.
339 elseif ($1 == ') return $&
340 .XX $&
341 XX. $&
342 ... $&
343 ... $&
344 ...
345 elseif ($1 == ") return $&
346 XX..XX $&
347 XX..XX $&
348 ...... $&
349 ...... $&
350 ......
351 elseif ($1 == +) return $&
352 ...... $&
353 ..XX.. $&
354 XXXXXX $&
355 ..XX.. $&
356 ......
357 elseif ($1 == =) return $&
358 ...... $&
359 XXXXXX $&
360 ...... $&
361 XXXXXX $&
362 ......
363 elseif ($1 == -) return $&
364 ...... $&
365 ...... $&
366 XXXXXX $&
367 ...... $&
368 ......
369 elseif ($1 == _) return $&
370 ...... $&
371 ...... $&
372 ...... $&
373 ...... $&
374 XXXXXX
387 elseif ($1 == :) return $&
388 .. $&
389 XX $&
390 .. $&
391 XX $&
392 ..
393 elseif ($1 == !) return $&
394 XX $&
395 XX $&
396 XX $&
397 .. $&
398 XX
399 elseif ($1 == ?) return $&
400 XXX. $&
401 ..XX $&
402 .XX. $&
403 .... $&
404 .XX.
405 elseif ($1 == .) return $&
406 .. $&
407 .. $&
408 .. $&
409 .. $&
410 XX
411 elseif ($1 == /) return $&
412 ....XX $&
413 ...XX. $&
414 ..XX.. $&
415 .XX... $&
416 XX....
417 elseif ($1 == \) return $&
418 XX.... $&
419 .XX... $&
420 ..XX.. $&
421 ...XX. $&
422 ....XX
423 elseif ($1 == $chr(40)) return $&
424 ...XX $&
425 .XX.. $&
426 XX... $&
427 .XX.. $&
428 ...XX
429 elseif ($1 == $chr(41)) return $&
430 XX... $&
431 ..XX. $&
432 ...XX $&
433 ..XX. $&
434 XX...
435 elseif ($1 == $chr(37)) return $&
436 XX..XX $&
437 ...XX. $&
438 ..XX.. $&
439 .XX... $&
440 XX..XX
441 elseif ($1 == [) return $&
442 XXXXX $&
443 XX... $&
444 XX... $&
445 XX... $&
446 XXXXX
447 elseif ($1 == ]) return $&
448 XXXXX $&
449 ...XX $&
450 ...XX $&
451 ...XX $&
452 XXXXX
453 elseif ($1 == |) return $&
454 .XX. $&
455 .XX. $&
456 .XX. $&
457 .XX. $&
458 .XX.
459 elseif ($1 == <) return $&
460 ....XX $&
461 ..XX.. $&
462 XX.... $&
463 ..XX.. $&
464 ....XX
465 elseif ($1 == >) return $&
466 XX.... $&
467 ..XX.. $&
468 ....XX $&
469 ..XX.. $&
470 XX....
471 elseif ($1 == ) return $&
472 .... $&
473 .... $&
474 .XX. $&
475 ..XX $&
476 XXX.
477 elseif ($1 == ,) return $&
478 ... $&
479 ... $&
480 XXX $&
481 .XX $&
482 XX.
483 }
484
485
486 ; Returns all unsupported characters within a Big Text message
487 ; Supported characters are a-z, space, digits, #'"+=:!?./\()%-[]<>|,
488 alias bigtext.unsupp {
489 var %res, %dummy = $regsub($1-, /[]a-z 0-9# $+ $chr(44) $+ '+=:!?./\\()%[|<>_"-]/igS, $null, %res)
490 return %res
491 }
492
493 ; Returns $true if a space should be added between two characters,
494 ; or $false if not.
495 ; Note: This is here only for aesthetic purposes. :)
496 alias bigtext.kern {
497 var %res $true
498 if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]|[J/]|L'|\/\/|\\\\|J|[_]|[T_]_|>\.|\.<)$/i)) %res = $false
499 return %res
500 }
501
502 ; Takes an input string of the form:
503 ; .XX..XX....XX.XX.XXXXX
504 ; And formats it for display.
505 alias bigtext.format {
506 var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
507 while (%i <= $len($1-)) {
508 if ($mid($1-, %i, 1) == $chr(3)) {
509 if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
510 if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
511 %curcolor = $gettok($regml(mtcol, 1), 1, 44)
512 if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
513 }
514 inc %i $len($regml(mtcol, 1))
515 }
516 elseif (%curcolor) {
517 %curcolor =
518 if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
519 }
520 }
521 else {
522 %current = $iif($mid($1-, %i, 1) == ., 0, 1)
523 if (%previous != %current) {
524 %previous = %current
525 if (%curcolor) {
526 if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
527 else %res = %res $+ $chr(3)
528 }
529 else %res = %res $+ $chr(22)
530 }
531 %res = %res $+ $chr(160)
532 }
533 inc %i
534 }
535 return %res
536 }
537
538 alias mtrainbow //mt $rainbow( $+ $1- $+ )
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538alias colors {
var %length = $len($1-)
var %letter = 1
while (%letter <= %length) {
if ($mid($1-,%letter,1) == $chr(32)) {
var %output = %output $+ &
goto xxx
}
var %output = %output $+ $+ $rand(03,013) $+ $mid($1-,%letter,1)
:xxx
inc %letter
}
var %output = $replace(%output,$chr(38),$chr(32))
msg $active %output
}
alias rev {
var %len = $len($1-)
var %return = $null
while (%len > 0) {
var %return = %return $+ $mid($1-,%len,1) $+ $chr(32)
dec %len
}
return %return
}
alias reverse //say $rev( $1- )
alias mereverse //me $rev( $1- )
alias rainbow {
var %pos = 1, %color = 04, %result = $chr(3)
while (%pos <= $len($1-)) {
%result = %result $+ %color $+ $mid($1-,%pos,1) $+ $chr(3)
inc %pos
%color = $nextcolor(%color)
}
if ($isid) return %result
else say %result
}
alias -l nextcolor {
if ($$1 == 04) return 07
elseif ($$1 == 07) return 08
elseif ($$1 == 08) return 09
elseif ($$1 == 09) return 11
elseif ($$1 == 11) return 12
elseif ($$1 == 12) return 02
elseif ($$1 == 02) return 06
elseif ($$1 == 06) return 13
elseif ($$1 == 13) return 04
}
alias mt {
if ($bigtext.unsupp($1-)) {
echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-)
return
}
var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/
var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)
while (%i <= $len(%text)) {
if ($mid(%text, %i, 1) == $chr(3)) {
var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
var %m $regml(mtcol, 1)
var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
inc %i $len(%m)
}
}
else {
tokenize 32 $bigtext.char($mid(%text, %i, 1))
var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
; if ($bigtext.kern($mid(%text, %i, 2))) {
var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
; }
}
inc %i
}
say $bigtext.format(%lia)
say $bigtext.format(%lib)
say $bigtext.format(%lic)
say $bigtext.format(%lid)
say $bigtext.format(%lie)
}
; You may customize this alias however you want to.
; It is Big Text's font, used above.
; The return value consists of dots and X's, to denote
; unlit and lit points in the font, respectively;
; there are 5 tokens of the same length, each
; corresponding to a line in the 5-line output.
; Note how the . and X's look like the characters;
; you can use this to your advantage!
alias -l bigtext.char {
if ($1 === $chr(32)) || ($1 === $null) return $&
... $&
... $&
... $&
... $&
...
if ($1 === $chr(160)) return $&
..... $&
..... $&
..... $&
..... $&
.....
elseif ($1 == 0) return $&
.XXXX. $&
XX..XX $&
XX.XXX $&
XXX.XX $&
.XXXX.
elseif ($1 == 1) return $&
.XXXX $&
XX.XX $&
...XX $&
...XX $&
...XX
elseif ($1 == 2) return $&
XXXXX. $&
....XX $&
..XX.. $&
XX.... $&
XXXXXX
elseif ($1 == 3) return $&
XXXXX. $&
....XX $&
.XXXX. $&
....XX $&
XXXXX.
elseif ($1 == 4) return $&
.....XXX. $&
...XX.XX. $&
.XX...XX. $&
XXXXXXXXX $&
......XX.
elseif ($1 == 5) return $&
XXXXX $&
XX... $&
XXXX. $&
...XX $&
XXXX.
elseif ($1 == 6) return $&
.XXXX. $&
XX.... $&
XXXXX. $&
XX..XX $&
.XXXX.
elseif ($1 == 7) return $&
XXXXXX $&
...XX. $&
..XX.. $&
.XX... $&
XX....
elseif ($1 == 8) return $&
.XXXX. $&
XX..XX $&
.XXXX. $&
XX..XX $&
.XXXX.
elseif ($1 == 9) return $&
.XXXX. $&
XX..XX $&
.XXXXX $&
....XX $&
.XXXX.
elseif ($1 == A) return $&
.XXXX. $&
XX..XX $&
XXXXXX $&
XX..XX $&
XX..XX
elseif ($1 == B) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX..XX $&
XXXXX.
elseif ($1 == C) return $&
.XXXX. $&
XX..XX $&
XX.... $&
XX..XX $&
.XXXX.
elseif ($1 == D) return $&
XXXX.. $&
XX.XX. $&
XX..XX $&
XX..XX $&
XXXXX.
elseif ($1 == E) return $&
XXXXX $&
XX... $&
XXXX. $&
XX... $&
XXXXX
elseif ($1 == F) return $&
XXXXX $&
XX... $&
XXXX. $&
XX... $&
XX...
elseif ($1 == G) return $&
.XXXX. $&
XX.... $&
XX.XXX $&
XX..XX $&
.XXXXX
elseif ($1 == H) return $&
XX...XX $&
XX...XX $&
XXXXXXX $&
XX...XX $&
XX...XX
elseif ($1 == I) return $&
XXXX $&
.XX. $&
.XX. $&
.XX. $&
XXXX
elseif ($1 == J) return $&
....XX $&
....XX $&
....XX $&
XX..XX $&
.XXXX.
elseif ($1 == K) return $&
XX..XX $&
XX.XX. $&
XXXX.. $&
XX.XX. $&
XX..XX
elseif ($1 == L) return $&
XX... $&
XX... $&
XX... $&
XX... $&
XXXXX
elseif ($1 == M) return $&
XX....XX $&
XXX..XXX $&
XXXXXXXX $&
XX.XX.XX $&
XX....XX
elseif ($1 == N) return $&
XX..XX $&
XXX.XX $&
XXXXXX $&
XX.XXX $&
XX..XX
elseif ($1 == O) return $&
.XXXX. $&
XX..XX $&
XX..XX $&
XX..XX $&
.XXXX.
elseif ($1 == P) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX.... $&
XX....
elseif ($1 == Q) return $&
.XXXX.. $&
XX..XX. $&
XX..XX. $&
XX..XX. $&
.XXXXXX
elseif ($1 == R) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX..XX $&
XX..XX
elseif ($1 == S) return $&
.XXXX. $&
XX.... $&
.XXXX. $&
....XX $&
XXXXX.
elseif ($1 == T) return $&
XXXXXX $&
..XX.. $&
..XX.. $&
..XX.. $&
..XX..
elseif ($1 == U) return $&
XX..XX $&
XX..XX $&
XX..XX $&
XX..XX $&
.XXXX.
elseif ($1 == V) return $&
XX....XX $&
XX....XX $&
.XX..XX. $&
..XXXX.. $&
...XX...
elseif ($1 == W) return $&
XX...XX $&
XX...XX $&
XX.X.XX $&
XXXXXXX $&
.XX.XX.
elseif ($1 == X) return $&
XX...XX $&
.XX.XX. $&
..XXX.. $&
.XX.XX. $&
XX...XX
elseif ($1 == Y) return $&
XX..XX $&
XX..XX $&
.XXXX. $&
..XX.. $&
..XX..
elseif ($1 == Z) return $&
XXXXXX $&
...XX. $&
..XX.. $&
.XX... $&
XXXXXX
elseif ($1 == $chr(35)) return $&
.XX..XX. $&
XXXXXXXX $&
.XX..XX. $&
XXXXXXXX $&
.XX..XX.
elseif ($1 == ') return $&
.XX $&
XX. $&
... $&
... $&
...
elseif ($1 == ") return $&
XX..XX $&
XX..XX $&
...... $&
...... $&
......
elseif ($1 == +) return $&
...... $&
..XX.. $&
XXXXXX $&
..XX.. $&
......
elseif ($1 == =) return $&
...... $&
XXXXXX $&
...... $&
XXXXXX $&
......
elseif ($1 == -) return $&
...... $&
...... $&
XXXXXX $&
...... $&
......
elseif ($1 == _) return $&
...... $&
...... $&
...... $&
...... $&
XXXXXX
elseif ($1 == :) return $&
.. $&
XX $&
.. $&
XX $&
..
elseif ($1 == !) return $&
XX $&
XX $&
XX $&
.. $&
XX
elseif ($1 == ?) return $&
XXX. $&
..XX $&
.XX. $&
.... $&
.XX.
elseif ($1 == .) return $&
.. $&
.. $&
.. $&
.. $&
XX
elseif ($1 == /) return $&
....XX $&
...XX. $&
..XX.. $&
.XX... $&
XX....
elseif ($1 == \) return $&
XX.... $&
.XX... $&
..XX.. $&
...XX. $&
....XX
elseif ($1 == $chr(40)) return $&
...XX $&
.XX.. $&
XX... $&
.XX.. $&
...XX
elseif ($1 == $chr(41)) return $&
XX... $&
..XX. $&
...XX $&
..XX. $&
XX...
elseif ($1 == $chr(37)) return $&
XX..XX $&
...XX. $&
..XX.. $&
.XX... $&
XX..XX
elseif ($1 == [) return $&
XXXXX $&
XX... $&
XX... $&
XX... $&
XXXXX
elseif ($1 == ]) return $&
XXXXX $&
...XX $&
...XX $&
...XX $&
XXXXX
elseif ($1 == |) return $&
.XX. $&
.XX. $&
.XX. $&
.XX. $&
.XX.
elseif ($1 == <) return $&
....XX $&
..XX.. $&
XX.... $&
..XX.. $&
....XX
elseif ($1 == >) return $&
XX.... $&
..XX.. $&
....XX $&
..XX.. $&
XX....
elseif ($1 == ) return $&
.... $&
.... $&
.XX. $&
..XX $&
XXX.
elseif ($1 == ,) return $&
... $&
... $&
XXX $&
.XX $&
XX.
}
; Returns all unsupported characters within a Big Text message
; Supported characters are a-z, space, digits, #'"+=:!?./\()%-[]<>|,
alias bigtext.unsupp {
var %res, %dummy = $regsub($1-, /[]a-z 0-9# $+ $chr(44) $+ '+=:!?./\\()%[|<>_"-]/igS, $null, %res)
return %res
}
; Returns $true if a space should be added between two characters,
; or $false if not.
; Note: This is here only for aesthetic purposes. :)
alias bigtext.kern {
var %res $true
if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]|[J/]|L'|\/\/|\\\\|J|[_]|[T_]_|>\.|\.<)$/i)) %res = $false
return %res
}
; Takes an input string of the form:
; .XX..XX....XX.XX.XXXXX
; And formats it for display.
alias bigtext.format {
var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
while (%i <= $len($1-)) {
if ($mid($1-, %i, 1) == $chr(3)) {
if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
%curcolor = $gettok($regml(mtcol, 1), 1, 44)
if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
}
inc %i $len($regml(mtcol, 1))
}
elseif (%curcolor) {
%curcolor =
if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
}
}
else {
%current = $iif($mid($1-, %i, 1) == ., 0, 1)
if (%previous != %current) {
%previous = %current
if (%curcolor) {
if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
else %res = %res $+ $chr(3)
}
else %res = %res $+ $chr(22)
}
%res = %res $+ $chr(160)
}
inc %i
}
return %res
}
alias mtrainbow //mt $rainbow( $+ $1- $+ )alias colors {
var %length = $len($1-)
var %letter = 1
while (%letter <= %length) {
if ($mid($1-,%letter,1) == $chr(32)) {
var %output = %output $+ &
goto xxx
}
var %output = %output $+ $+ $rand(03,013) $+ $mid($1-,%letter,1)
:xxx
inc %letter
}
var %output = $replace(%output,$chr(38),$chr(32))
msg $active %output
}
alias rev {
var %len = $len($1-)
var %return = $null
while (%len > 0) {
var %return = %return $+ $mid($1-,%len,1) $+ $chr(32)
dec %len
}
return %return
}
alias reverse //say $rev( $1- )
alias mereverse //me $rev( $1- )
alias rainbow {
var %pos = 1, %color = 04, %result = $chr(3)
while (%pos <= $len($1-)) {
%result = %result $+ %color $+ $mid($1-,%pos,1) $+ $chr(3)
inc %pos
%color = $nextcolor(%color)
}
if ($isid) return %result
else say %result
}
alias -l nextcolor {
if ($$1 == 04) return 07
elseif ($$1 == 07) return 08
elseif ($$1 == 08) return 09
elseif ($$1 == 09) return 11
elseif ($$1 == 11) return 12
elseif ($$1 == 12) return 02
elseif ($$1 == 02) return 06
elseif ($$1 == 06) return 13
elseif ($$1 == 13) return 04
}
alias mt {
if ($bigtext.unsupp($1-)) {
echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-)
return
}
var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/
var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)
while (%i <= $len(%text)) {
if ($mid(%text, %i, 1) == $chr(3)) {
var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
var %m $regml(mtcol, 1)
var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
inc %i $len(%m)
}
}
else {
tokenize 32 $bigtext.char($mid(%text, %i, 1))
var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
; if ($bigtext.kern($mid(%text, %i, 2))) {
var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
; }
}
inc %i
}
say $bigtext.format(%lia)
say $bigtext.format(%lib)
say $bigtext.format(%lic)
say $bigtext.format(%lid)
say $bigtext.format(%lie)
}
; You may customize this alias however you want to.
; It is Big Text's font, used above.
; The return value consists of dots and X's, to denote
; unlit and lit points in the font, respectively;
; there are 5 tokens of the same length, each
; corresponding to a line in the 5-line output.
; Note how the . and X's look like the characters;
; you can use this to your advantage!
alias -l bigtext.char {
if ($1 === $chr(32)) || ($1 === $null) return $&
... $&
... $&
... $&
... $&
...
if ($1 === $chr(160)) return $&
..... $&
..... $&
..... $&
..... $&
.....
elseif ($1 == 0) return $&
.XXXX. $&
XX..XX $&
XX.XXX $&
XXX.XX $&
.XXXX.
elseif ($1 == 1) return $&
.XXXX $&
XX.XX $&
...XX $&
...XX $&
...XX
elseif ($1 == 2) return $&
XXXXX. $&
....XX $&
..XX.. $&
XX.... $&
XXXXXX
elseif ($1 == 3) return $&
XXXXX. $&
....XX $&
.XXXX. $&
....XX $&
XXXXX.
elseif ($1 == 4) return $&
.....XXX. $&
...XX.XX. $&
.XX...XX. $&
XXXXXXXXX $&
......XX.
elseif ($1 == 5) return $&
XXXXX $&
XX... $&
XXXX. $&
...XX $&
XXXX.
elseif ($1 == 6) return $&
.XXXX. $&
XX.... $&
XXXXX. $&
XX..XX $&
.XXXX.
elseif ($1 == 7) return $&
XXXXXX $&
...XX. $&
..XX.. $&
.XX... $&
XX....
elseif ($1 == 8) return $&
.XXXX. $&
XX..XX $&
.XXXX. $&
XX..XX $&
.XXXX.
elseif ($1 == 9) return $&
.XXXX. $&
XX..XX $&
.XXXXX $&
....XX $&
.XXXX.
elseif ($1 == A) return $&
.XXXX. $&
XX..XX $&
XXXXXX $&
XX..XX $&
XX..XX
elseif ($1 == B) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX..XX $&
XXXXX.
elseif ($1 == C) return $&
.XXXX. $&
XX..XX $&
XX.... $&
XX..XX $&
.XXXX.
elseif ($1 == D) return $&
XXXX.. $&
XX.XX. $&
XX..XX $&
XX..XX $&
XXXXX.
elseif ($1 == E) return $&
XXXXX $&
XX... $&
XXXX. $&
XX... $&
XXXXX
elseif ($1 == F) return $&
XXXXX $&
XX... $&
XXXX. $&
XX... $&
XX...
elseif ($1 == G) return $&
.XXXX. $&
XX.... $&
XX.XXX $&
XX..XX $&
.XXXXX
elseif ($1 == H) return $&
XX...XX $&
XX...XX $&
XXXXXXX $&
XX...XX $&
XX...XX
elseif ($1 == I) return $&
XXXX $&
.XX. $&
.XX. $&
.XX. $&
XXXX
elseif ($1 == J) return $&
....XX $&
....XX $&
....XX $&
XX..XX $&
.XXXX.
elseif ($1 == K) return $&
XX..XX $&
XX.XX. $&
XXXX.. $&
XX.XX. $&
XX..XX
elseif ($1 == L) return $&
XX... $&
XX... $&
XX... $&
XX... $&
XXXXX
elseif ($1 == M) return $&
XX....XX $&
XXX..XXX $&
XXXXXXXX $&
XX.XX.XX $&
XX....XX
elseif ($1 == N) return $&
XX..XX $&
XXX.XX $&
XXXXXX $&
XX.XXX $&
XX..XX
elseif ($1 == O) return $&
.XXXX. $&
XX..XX $&
XX..XX $&
XX..XX $&
.XXXX.
elseif ($1 == P) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX.... $&
XX....
elseif ($1 == Q) return $&
.XXXX.. $&
XX..XX. $&
XX..XX. $&
XX..XX. $&
.XXXXXX
elseif ($1 == R) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX..XX $&
XX..XX
elseif ($1 == S) return $&
.XXXX. $&
XX.... $&
.XXXX. $&
....XX $&
XXXXX.
elseif ($1 == T) return $&
XXXXXX $&
..XX.. $&
..XX.. $&
..XX.. $&
..XX..
elseif ($1 == U) return $&
XX..XX $&
XX..XX $&
XX..XX $&
XX..XX $&
.XXXX.
elseif ($1 == V) return $&
XX....XX $&
XX....XX $&
.XX..XX. $&
..XXXX.. $&
...XX...
elseif ($1 == W) return $&
XX...XX $&
XX...XX $&
XX.X.XX $&
XXXXXXX $&
.XX.XX.
elseif ($1 == X) return $&
XX...XX $&
.XX.XX. $&
..XXX.. $&
.XX.XX. $&
XX...XX
elseif ($1 == Y) return $&
XX..XX $&
XX..XX $&
.XXXX. $&
..XX.. $&
..XX..
elseif ($1 == Z) return $&
XXXXXX $&
...XX. $&
..XX.. $&
.XX... $&
XXXXXX
elseif ($1 == $chr(35)) return $&
.XX..XX. $&
XXXXXXXX $&
.XX..XX. $&
XXXXXXXX $&
.XX..XX.
elseif ($1 == ') return $&
.XX $&
XX. $&
... $&
... $&
...
elseif ($1 == ") return $&
XX..XX $&
XX..XX $&
...... $&
...... $&
......
elseif ($1 == +) return $&
...... $&
..XX.. $&
XXXXXX $&
..XX.. $&
......
elseif ($1 == =) return $&
...... $&
XXXXXX $&
...... $&
XXXXXX $&
......
elseif ($1 == -) return $&
...... $&
...... $&
XXXXXX $&
...... $&
......
elseif ($1 == _) return $&
...... $&
...... $&
...... $&
...... $&
XXXXXX
elseif ($1 == :) return $&
.. $&
XX $&
.. $&
XX $&
..
elseif ($1 == !) return $&
XX $&
XX $&
XX $&
.. $&
XX
elseif ($1 == ?) return $&
XXX. $&
..XX $&
.XX. $&
.... $&
.XX.
elseif ($1 == .) return $&
.. $&
.. $&
.. $&
.. $&
XX
elseif ($1 == /) return $&
....XX $&
...XX. $&
..XX.. $&
.XX... $&
XX....
elseif ($1 == \) return $&
XX.... $&
.XX... $&
..XX.. $&
...XX. $&
....XX
elseif ($1 == $chr(40)) return $&
...XX $&
.XX.. $&
XX... $&
.XX.. $&
...XX
elseif ($1 == $chr(41)) return $&
XX... $&
..XX. $&
...XX $&
..XX. $&
XX...
elseif ($1 == $chr(37)) return $&
XX..XX $&
...XX. $&
..XX.. $&
.XX... $&
XX..XX
elseif ($1 == [) return $&
XXXXX $&
XX... $&
XX... $&
XX... $&
XXXXX
elseif ($1 == ]) return $&
XXXXX $&
...XX $&
...XX $&
...XX $&
XXXXX
elseif ($1 == |) return $&
.XX. $&
.XX. $&
.XX. $&
.XX. $&
.XX.
elseif ($1 == <) return $&
....XX $&
..XX.. $&
XX.... $&
..XX.. $&
....XX
elseif ($1 == >) return $&
XX.... $&
..XX.. $&
....XX $&
..XX.. $&
XX....
elseif ($1 == ) return $&
.... $&
.... $&
.XX. $&
..XX $&
XXX.
elseif ($1 == ,) return $&
... $&
... $&
XXX $&
.XX $&
XX.
}
; Returns all unsupported characters within a Big Text message
; Supported characters are a-z, space, digits, #'"+=:!?./\()%-[]<>|,
alias bigtext.unsupp {
var %res, %dummy = $regsub($1-, /[]a-z 0-9# $+ $chr(44) $+ '+=:!?./\\()%[|<>_"-]/igS, $null, %res)
return %res
}
; Returns $true if a space should be added between two characters,
; or $false if not.
; Note: This is here only for aesthetic purposes. :)
alias bigtext.kern {
var %res $true
if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]|[J/]|L'|\/\/|\\\\|J|[_]|[T_]_|>\.|\.<)$/i)) %res = $false
return %res
}
; Takes an input string of the form:
; .XX..XX....XX.XX.XXXXX
; And formats it for display.
alias bigtext.format {
var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
while (%i <= $len($1-)) {
if ($mid($1-, %i, 1) == $chr(3)) {
if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
%curcolor = $gettok($regml(mtcol, 1), 1, 44)
if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
}
inc %i $len($regml(mtcol, 1))
}
elseif (%curcolor) {
%curcolor =
if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
}
}
else {
%current = $iif($mid($1-, %i, 1) == ., 0, 1)
if (%previous != %current) {
%previous = %current
if (%curcolor) {
if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
else %res = %res $+ $chr(3)
}
else %res = %res $+ $chr(22)
}
%res = %res $+ $chr(160)
}
inc %i
}
return %res
}
alias mtrainbow //mt $rainbow( $+ $1- $+ )
001 alias colors {
002 var %length = $len($1-)
003 var %letter = 1
004 while (%letter <= %length) {
005 if ($mid($1-,%letter,1) == $chr(32)) {
006 var %output = %output $+ &
007 goto xxx
008 }
009 var %output = %output $+ $+ $rand(03,013) $+ $mid($1-,%letter,1)
010 :xxx
011 inc %letter
012 }
013 var %output = $replace(%output,$chr(38),$chr(32))
014 msg $active %output
015 }
016
017
018
019 alias rev {
020 var %len = $len($1-)
021 var %return = $null
022 while (%len > 0) {
023 var %return = %return $+ $mid($1-,%len,1) $+ $chr(32)
024 dec %len
025 }
026 return %return
027 }
028 alias reverse //say $rev( $1- )
029 alias mereverse //me $rev( $1- )
030
031
032
033
034 alias rainbow {
035 var %pos = 1, %color = 04, %result = $chr(3)
036 while (%pos <= $len($1-)) {
037 %result = %result $+ %color $+ $mid($1-,%pos,1) $+ $chr(3)
038 inc %pos
039 %color = $nextcolor(%color)
040 }
041 if ($isid) return %result
042 else say %result
043 }
044
045 alias -l nextcolor {
046 if ($$1 == 04) return 07
047 elseif ($$1 == 07) return 08
048 elseif ($$1 == 08) return 09
049 elseif ($$1 == 09) return 11
050 elseif ($$1 == 11) return 12
051 elseif ($$1 == 12) return 02
052 elseif ($$1 == 02) return 06
053 elseif ($$1 == 06) return 13
054 elseif ($$1 == 13) return 04
055 }
056
057
058
059
060
061
062 alias mt {
063 if ($bigtext.unsupp($1-)) {
064 echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-)
065 return
066 }
067 var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/
068
069 var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)
070
071 while (%i <= $len(%text)) {
072 if ($mid(%text, %i, 1) == $chr(3)) {
073 var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
074 if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
075 var %m $regml(mtcol, 1)
076 var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
077 inc %i $len(%m)
078 }
079 }
080 else {
081 tokenize 32 $bigtext.char($mid(%text, %i, 1))
082 var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
083 ; if ($bigtext.kern($mid(%text, %i, 2))) {
084 var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
085 ; }
086 }
087 inc %i
088 }
089 say $bigtext.format(%lia)
090 say $bigtext.format(%lib)
091 say $bigtext.format(%lic)
092 say $bigtext.format(%lid)
093 say $bigtext.format(%lie)
094 }
095
096 ; You may customize this alias however you want to.
097 ; It is Big Text's font, used above.
098 ; The return value consists of dots and X's, to denote
099 ; unlit and lit points in the font, respectively;
100 ; there are 5 tokens of the same length, each
101 ; corresponding to a line in the 5-line output.
102 ; Note how the . and X's look like the characters;
103 ; you can use this to your advantage!
104 alias -l bigtext.char {
105 if ($1 === $chr(32)) || ($1 === $null) return $&
106 ... $&
107 ... $&
108 ... $&
109 ... $&
110 ...
111 if ($1 === $chr(160)) return $&
112 ..... $&
113 ..... $&
114 ..... $&
115 ..... $&
116 .....
117 elseif ($1 == 0) return $&
118 .XXXX. $&
119 XX..XX $&
120 XX.XXX $&
121 XXX.XX $&
122 .XXXX.
123 elseif ($1 == 1) return $&
124 .XXXX $&
125 XX.XX $&
126 ...XX $&
127 ...XX $&
128 ...XX
129 elseif ($1 == 2) return $&
130 XXXXX. $&
131 ....XX $&
132 ..XX.. $&
133 XX.... $&
134 XXXXXX
135 elseif ($1 == 3) return $&
136 XXXXX. $&
137 ....XX $&
138 .XXXX. $&
139 ....XX $&
140 XXXXX.
141 elseif ($1 == 4) return $&
142 .....XXX. $&
143 ...XX.XX. $&
144 .XX...XX. $&
145 XXXXXXXXX $&
146 ......XX.
147 elseif ($1 == 5) return $&
148 XXXXX $&
149 XX... $&
150 XXXX. $&
151 ...XX $&
152 XXXX.
153 elseif ($1 == 6) return $&
154 .XXXX. $&
155 XX.... $&
156 XXXXX. $&
157 XX..XX $&
158 .XXXX.
159 elseif ($1 == 7) return $&
160 XXXXXX $&
161 ...XX. $&
162 ..XX.. $&
163 .XX... $&
164 XX....
165 elseif ($1 == 8) return $&
166 .XXXX. $&
167 XX..XX $&
168 .XXXX. $&
169 XX..XX $&
170 .XXXX.
171 elseif ($1 == 9) return $&
172 .XXXX. $&
173 XX..XX $&
174 .XXXXX $&
175 ....XX $&
176 .XXXX.
177 elseif ($1 == A) return $&
178 .XXXX. $&
179 XX..XX $&
180 XXXXXX $&
181 XX..XX $&
182 XX..XX
183 elseif ($1 == B) return $&
184 XXXXX. $&
185 XX..XX $&
186 XXXXX. $&
187 XX..XX $&
188 XXXXX.
189 elseif ($1 == C) return $&
190 .XXXX. $&
191 XX..XX $&
192 XX.... $&
193 XX..XX $&
194 .XXXX.
195 elseif ($1 == D) return $&
196 XXXX.. $&
197 XX.XX. $&
198 XX..XX $&
199 XX..XX $&
200 XXXXX.
201 elseif ($1 == E) return $&
202 XXXXX $&
203 XX... $&
204 XXXX. $&
205 XX... $&
206 XXXXX
207 elseif ($1 == F) return $&
208 XXXXX $&
209 XX... $&
210 XXXX. $&
211 XX... $&
212 XX...
213 elseif ($1 == G) return $&
214 .XXXX. $&
215 XX.... $&
216 XX.XXX $&
217 XX..XX $&
218 .XXXXX
219 elseif ($1 == H) return $&
220 XX...XX $&
221 XX...XX $&
222 XXXXXXX $&
223 XX...XX $&
224 XX...XX
225 elseif ($1 == I) return $&
226 XXXX $&
227 .XX. $&
228 .XX. $&
229 .XX. $&
230 XXXX
231 elseif ($1 == J) return $&
232 ....XX $&
233 ....XX $&
234 ....XX $&
235 XX..XX $&
236 .XXXX.
237 elseif ($1 == K) return $&
238 XX..XX $&
239 XX.XX. $&
240 XXXX.. $&
241 XX.XX. $&
242 XX..XX
243 elseif ($1 == L) return $&
244 XX... $&
245 XX... $&
246 XX... $&
247 XX... $&
248 XXXXX
249 elseif ($1 == M) return $&
250 XX....XX $&
251 XXX..XXX $&
252 XXXXXXXX $&
253 XX.XX.XX $&
254 XX....XX
255 elseif ($1 == N) return $&
256 XX..XX $&
257 XXX.XX $&
258 XXXXXX $&
259 XX.XXX $&
260 XX..XX
261 elseif ($1 == O) return $&
262 .XXXX. $&
263 XX..XX $&
264 XX..XX $&
265 XX..XX $&
266 .XXXX.
267 elseif ($1 == P) return $&
268 XXXXX. $&
269 XX..XX $&
270 XXXXX. $&
271 XX.... $&
272 XX....
273 elseif ($1 == Q) return $&
274 .XXXX.. $&
275 XX..XX. $&
276 XX..XX. $&
277 XX..XX. $&
278 .XXXXXX
279 elseif ($1 == R) return $&
280 XXXXX. $&
281 XX..XX $&
282 XXXXX. $&
283 XX..XX $&
284 XX..XX
285 elseif ($1 == S) return $&
286 .XXXX. $&
287 XX.... $&
288 .XXXX. $&
289 ....XX $&
290 XXXXX.
291 elseif ($1 == T) return $&
292 XXXXXX $&
293 ..XX.. $&
294 ..XX.. $&
295 ..XX.. $&
296 ..XX..
297 elseif ($1 == U) return $&
298 XX..XX $&
299 XX..XX $&
300 XX..XX $&
301 XX..XX $&
302 .XXXX.
303 elseif ($1 == V) return $&
304 XX....XX $&
305 XX....XX $&
306 .XX..XX. $&
307 ..XXXX.. $&
308 ...XX...
309 elseif ($1 == W) return $&
310 XX...XX $&
311 XX...XX $&
312 XX.X.XX $&
313 XXXXXXX $&
314 .XX.XX.
315 elseif ($1 == X) return $&
316 XX...XX $&
317 .XX.XX. $&
318 ..XXX.. $&
319 .XX.XX. $&
320 XX...XX
321 elseif ($1 == Y) return $&
322 XX..XX $&
323 XX..XX $&
324 .XXXX. $&
325 ..XX.. $&
326 ..XX..
327 elseif ($1 == Z) return $&
328 XXXXXX $&
329 ...XX. $&
330 ..XX.. $&
331 .XX... $&
332 XXXXXX
333 elseif ($1 == $chr(35)) return $&
334 .XX..XX. $&
335 XXXXXXXX $&
336 .XX..XX. $&
337 XXXXXXXX $&
338 .XX..XX.
339 elseif ($1 == ') return $&
340 .XX $&
341 XX. $&
342 ... $&
343 ... $&
344 ...
345 elseif ($1 == ") return $&
346 XX..XX $&
347 XX..XX $&
348 ...... $&
349 ...... $&
350 ......
351 elseif ($1 == +) return $&
352 ...... $&
353 ..XX.. $&
354 XXXXXX $&
355 ..XX.. $&
356 ......
357 elseif ($1 == =) return $&
358 ...... $&
359 XXXXXX $&
360 ...... $&
361 XXXXXX $&
362 ......
363 elseif ($1 == -) return $&
364 ...... $&
365 ...... $&
366 XXXXXX $&
367 ...... $&
368 ......
369 elseif ($1 == _) return $&
370 ...... $&
371 ...... $&
372 ...... $&
373 ...... $&
374 XXXXXX
375 elseif ($1 == ] ) return $&
376 XXXXXX $&
377 ...... $&
378 ...... $&
379 ...... $&
380 ......
381 elseif ($1 == [) return $&
382 .XXX. $&
383 XX.XX $&
384 .XXX. $&
385 ..... $&
386 .....
387 elseif ($1 == :) return $&
388 .. $&
389 XX $&
390 .. $&
391 XX $&
392 ..
393 elseif ($1 == !) return $&
394 XX $&
395 XX $&
396 XX $&
397 .. $&
398 XX
399 elseif ($1 == ?) return $&
400 XXX. $&
401 ..XX $&
402 .XX. $&
403 .... $&
404 .XX.
405 elseif ($1 == .) return $&
406 .. $&
407 .. $&
408 .. $&
409 .. $&
410 XX
411 elseif ($1 == /) return $&
412 ....XX $&
413 ...XX. $&
414 ..XX.. $&
415 .XX... $&
416 XX....
417 elseif ($1 == \) return $&
418 XX.... $&
419 .XX... $&
420 ..XX.. $&
421 ...XX. $&
422 ....XX
423 elseif ($1 == $chr(40)) return $&
424 ...XX $&
425 .XX.. $&
426 XX... $&
427 .XX.. $&
428 ...XX
429 elseif ($1 == $chr(41)) return $&
430 XX... $&
431 ..XX. $&
432 ...XX $&
433 ..XX. $&
434 XX...
435 elseif ($1 == $chr(37)) return $&
436 XX..XX $&
437 ...XX. $&
438 ..XX.. $&
439 .XX... $&
440 XX..XX
441 elseif ($1 == [) return $&
442 XXXXX $&
443 XX... $&
444 XX... $&
445 XX... $&
446 XXXXX
447 elseif ($1 == ]) return $&
448 XXXXX $&
449 ...XX $&
450 ...XX $&
451 ...XX $&
452 XXXXX
453 elseif ($1 == |) return $&
454 .XX. $&
455 .XX. $&
456 .XX. $&
457 .XX. $&
458 .XX.
459 elseif ($1 == <) return $&
460 ....XX $&
461 ..XX.. $&
462 XX.... $&
463 ..XX.. $&
464 ....XX
465 elseif ($1 == >) return $&
466 XX.... $&
467 ..XX.. $&
468 ....XX $&
469 ..XX.. $&
470 XX....
471 elseif ($1 == ) return $&
472 .... $&
473 .... $&
474 .XX. $&
475 ..XX $&
476 XXX.
477 elseif ($1 == ,) return $&
478 ... $&
479 ... $&
480 XXX $&
481 .XX $&
482 XX.
483 }
484
485
486 ; Returns all unsupported characters within a Big Text message
487 ; Supported characters are a-z, space, digits, #'"+=:!?./\()%-[]<>|,
488 alias bigtext.unsupp {
489 var %res, %dummy = $regsub($1-, /[]a-z 0-9# $+ $chr(44) $+ '+=:!?./\\()%[|<>_"-]/igS, $null, %res)
490 return %res
491 }
492
493 ; Returns $true if a space should be added between two characters,
494 ; or $false if not.
495 ; Note: This is here only for aesthetic purposes. :)
496 alias bigtext.kern {
497 var %res $true
498 if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]|[J/]|L'|\/\/|\\\\|J|[_]|[T_]_|>\.|\.<)$/i)) %res = $false
499 return %res
500 }
501
502 ; Takes an input string of the form:
503 ; .XX..XX....XX.XX.XXXXX
504 ; And formats it for display.
505 alias bigtext.format {
506 var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
507 while (%i <= $len($1-)) {
508 if ($mid($1-, %i, 1) == $chr(3)) {
509 if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
510 if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
511 %curcolor = $gettok($regml(mtcol, 1), 1, 44)
512 if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
513 }
514 inc %i $len($regml(mtcol, 1))
515 }
516 elseif (%curcolor) {
517 %curcolor =
518 if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
519 }
520 }
521 else {
522 %current = $iif($mid($1-, %i, 1) == ., 0, 1)
523 if (%previous != %current) {
524 %previous = %current
525 if (%curcolor) {
526 if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
527 else %res = %res $+ $chr(3)
528 }
529 else %res = %res $+ $chr(22)
530 }
531 %res = %res $+ $chr(160)
532 }
533 inc %i
534 }
535 return %res
536 }
537
538 alias mtrainbow //mt $rainbow( $+ $1- $+ )
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538alias colors {
var %length = $len($1-)
var %letter = 1
while (%letter <= %length) {
if ($mid($1-,%letter,1) == $chr(32)) {
var %output = %output $+ &
goto xxx
}
var %output = %output $+ $+ $rand(03,013) $+ $mid($1-,%letter,1)
:xxx
inc %letter
}
var %output = $replace(%output,$chr(38),$chr(32))
msg $active %output
}
alias rev {
var %len = $len($1-)
var %return = $null
while (%len > 0) {
var %return = %return $+ $mid($1-,%len,1) $+ $chr(32)
dec %len
}
return %return
}
alias reverse //say $rev( $1- )
alias mereverse //me $rev( $1- )
alias rainbow {
var %pos = 1, %color = 04, %result = $chr(3)
while (%pos <= $len($1-)) {
%result = %result $+ %color $+ $mid($1-,%pos,1) $+ $chr(3)
inc %pos
%color = $nextcolor(%color)
}
if ($isid) return %result
else say %result
}
alias -l nextcolor {
if ($$1 == 04) return 07
elseif ($$1 == 07) return 08
elseif ($$1 == 08) return 09
elseif ($$1 == 09) return 11
elseif ($$1 == 11) return 12
elseif ($$1 == 12) return 02
elseif ($$1 == 02) return 06
elseif ($$1 == 06) return 13
elseif ($$1 == 13) return 04
}
alias mt {
if ($bigtext.unsupp($1-)) {
echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-)
return
}
var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/
var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)
while (%i <= $len(%text)) {
if ($mid(%text, %i, 1) == $chr(3)) {
var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
var %m $regml(mtcol, 1)
var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
inc %i $len(%m)
}
}
else {
tokenize 32 $bigtext.char($mid(%text, %i, 1))
var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
; if ($bigtext.kern($mid(%text, %i, 2))) {
var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
; }
}
inc %i
}
say $bigtext.format(%lia)
say $bigtext.format(%lib)
say $bigtext.format(%lic)
say $bigtext.format(%lid)
say $bigtext.format(%lie)
}
; You may customize this alias however you want to.
; It is Big Text's font, used above.
; The return value consists of dots and X's, to denote
; unlit and lit points in the font, respectively;
; there are 5 tokens of the same length, each
; corresponding to a line in the 5-line output.
; Note how the . and X's look like the characters;
; you can use this to your advantage!
alias -l bigtext.char {
if ($1 === $chr(32)) || ($1 === $null) return $&
... $&
... $&
... $&
... $&
...
if ($1 === $chr(160)) return $&
..... $&
..... $&
..... $&
..... $&
.....
elseif ($1 == 0) return $&
.XXXX. $&
XX..XX $&
XX.XXX $&
XXX.XX $&
.XXXX.
elseif ($1 == 1) return $&
.XXXX $&
XX.XX $&
...XX $&
...XX $&
...XX
elseif ($1 == 2) return $&
XXXXX. $&
....XX $&
..XX.. $&
XX.... $&
XXXXXX
elseif ($1 == 3) return $&
XXXXX. $&
....XX $&
.XXXX. $&
....XX $&
XXXXX.
elseif ($1 == 4) return $&
.....XXX. $&
...XX.XX. $&
.XX...XX. $&
XXXXXXXXX $&
......XX.
elseif ($1 == 5) return $&
XXXXX $&
XX... $&
XXXX. $&
...XX $&
XXXX.
elseif ($1 == 6) return $&
.XXXX. $&
XX.... $&
XXXXX. $&
XX..XX $&
.XXXX.
elseif ($1 == 7) return $&
XXXXXX $&
...XX. $&
..XX.. $&
.XX... $&
XX....
elseif ($1 == 8) return $&
.XXXX. $&
XX..XX $&
.XXXX. $&
XX..XX $&
.XXXX.
elseif ($1 == 9) return $&
.XXXX. $&
XX..XX $&
.XXXXX $&
....XX $&
.XXXX.
elseif ($1 == A) return $&
.XXXX. $&
XX..XX $&
XXXXXX $&
XX..XX $&
XX..XX
elseif ($1 == B) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX..XX $&
XXXXX.
elseif ($1 == C) return $&
.XXXX. $&
XX..XX $&
XX.... $&
XX..XX $&
.XXXX.
elseif ($1 == D) return $&
XXXX.. $&
XX.XX. $&
XX..XX $&
XX..XX $&
XXXXX.
elseif ($1 == E) return $&
XXXXX $&
XX... $&
XXXX. $&
XX... $&
XXXXX
elseif ($1 == F) return $&
XXXXX $&
XX... $&
XXXX. $&
XX... $&
XX...
elseif ($1 == G) return $&
.XXXX. $&
XX.... $&
XX.XXX $&
XX..XX $&
.XXXXX
elseif ($1 == H) return $&
XX...XX $&
XX...XX $&
XXXXXXX $&
XX...XX $&
XX...XX
elseif ($1 == I) return $&
XXXX $&
.XX. $&
.XX. $&
.XX. $&
XXXX
elseif ($1 == J) return $&
....XX $&
....XX $&
....XX $&
XX..XX $&
.XXXX.
elseif ($1 == K) return $&
XX..XX $&
XX.XX. $&
XXXX.. $&
XX.XX. $&
XX..XX
elseif ($1 == L) return $&
XX... $&
XX... $&
XX... $&
XX... $&
XXXXX
elseif ($1 == M) return $&
XX....XX $&
XXX..XXX $&
XXXXXXXX $&
XX.XX.XX $&
XX....XX
elseif ($1 == N) return $&
XX..XX $&
XXX.XX $&
XXXXXX $&
XX.XXX $&
XX..XX
elseif ($1 == O) return $&
.XXXX. $&
XX..XX $&
XX..XX $&
XX..XX $&
.XXXX.
elseif ($1 == P) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX.... $&
XX....
elseif ($1 == Q) return $&
.XXXX.. $&
XX..XX. $&
XX..XX. $&
XX..XX. $&
.XXXXXX
elseif ($1 == R) return $&
XXXXX. $&
XX..XX $&
XXXXX. $&
XX..XX $&
XX..XX
elseif ($1 == S) return $&
.XXXX. $&
XX.... $&
.XXXX. $&
....XX $&
XXXXX.
elseif ($1 == T) return $&
XXXXXX $&
..XX.. $&
..XX.. $&
..XX.. $&
..XX..
elseif ($1 == U) return $&
XX..XX $&
XX..XX $&
XX..XX $&
XX..XX $&
.XXXX.
elseif ($1 == V) return $&
XX....XX $&
XX....XX $&
.XX..XX. $&
..XXXX.. $&
...XX...
elseif ($1 == W) return $&
XX...XX $&
XX...XX $&
XX.X.XX $&
XXXXXXX $&
.XX.XX.
elseif ($1 == X) return $&
XX...XX $&
.XX.XX. $&
..XXX.. $&
.XX.XX. $&
XX...XX
elseif ($1 == Y) return $&
XX..XX $&
XX..XX $&
.XXXX. $&
..XX.. $&
..XX..
elseif ($1 == Z) return $&
XXXXXX $&
...XX. $&
..XX.. $&
.XX... $&
XXXXXX
elseif ($1 == $chr(35)) return $&
.XX..XX. $&
XXXXXXXX $&
.XX..XX. $&
XXXXXXXX $&
.XX..XX.
elseif ($1 == ') return $&
.XX $&
XX. $&
... $&
... $&
...
elseif ($1 == ") return $&
XX..XX $&
XX..XX $&
...... $&
...... $&
......
elseif ($1 == +) return $&
...... $&
..XX.. $&
XXXXXX $&
..XX.. $&
......
elseif ($1 == =) return $&
...... $&
XXXXXX $&
...... $&
XXXXXX $&
......
elseif ($1 == -) return $&
...... $&
...... $&
XXXXXX $&
...... $&
......
elseif ($1 == _) return $&
...... $&
...... $&
...... $&
...... $&
XXXXXX
elseif ($1 == :) return $&
.. $&
XX $&
.. $&
XX $&
..
elseif ($1 == !) return $&
XX $&
XX $&
XX $&
.. $&
XX
elseif ($1 == ?) return $&
XXX. $&
..XX $&
.XX. $&
.... $&
.XX.
elseif ($1 == .) return $&
.. $&
.. $&
.. $&
.. $&
XX
elseif ($1 == /) return $&
....XX $&
...XX. $&
..XX.. $&
.XX... $&
XX....
elseif ($1 == \) return $&
XX.... $&
.XX... $&
..XX.. $&
...XX. $&
....XX
elseif ($1 == $chr(40)) return $&
...XX $&
.XX.. $&
XX... $&
.XX.. $&
...XX
elseif ($1 == $chr(41)) return $&
XX... $&
..XX. $&
...XX $&
..XX. $&
XX...
elseif ($1 == $chr(37)) return $&
XX..XX $&
...XX. $&
..XX.. $&
.XX... $&
XX..XX
elseif ($1 == [) return $&
XXXXX $&
XX... $&
XX... $&
XX... $&
XXXXX
elseif ($1 == ]) return $&
XXXXX $&
...XX $&
...XX $&
...XX $&
XXXXX
elseif ($1 == |) return $&
.XX. $&
.XX. $&
.XX. $&
.XX. $&
.XX.
elseif ($1 == <) return $&
....XX $&
..XX.. $&
XX.... $&
..XX.. $&
....XX
elseif ($1 == >) return $&
XX.... $&
..XX.. $&
....XX $&
..XX.. $&
XX....
elseif ($1 == ) return $&
.... $&
.... $&
.XX. $&
..XX $&
XXX.
elseif ($1 == ,) return $&
... $&
... $&
XXX $&
.XX $&
XX.
}
; Returns all unsupported characters within a Big Text message
; Supported characters are a-z, space, digits, #'"+=:!?./\()%-[]<>|,
alias bigtext.unsupp {
var %res, %dummy = $regsub($1-, /[]a-z 0-9# $+ $chr(44) $+ '+=:!?./\\()%[|<>_"-]/igS, $null, %res)
return %res
}
; Returns $true if a space should be added between two characters,
; or $false if not.
; Note: This is here only for aesthetic purposes. :)
alias bigtext.kern {
var %res $true
if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]|[J/]|L'|\/\/|\\\\|J|[_]|[T_]_|>\.|\.<)$/i)) %res = $false
return %res
}
; Takes an input string of the form:
; .XX..XX....XX.XX.XXXXX
; And formats it for display.
alias bigtext.format {
var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
while (%i <= $len($1-)) {
if ($mid($1-, %i, 1) == $chr(3)) {
if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
%curcolor = $gettok($regml(mtcol, 1), 1, 44)
if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
}
inc %i $len($regml(mtcol, 1))
}
elseif (%curcolor) {
%curcolor =
if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
}
}
else {
%current = $iif($mid($1-, %i, 1) == ., 0, 1)
if (%previous != %current) {
%previous = %current
if (%curcolor) {
if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
else %res = %res $+ $chr(3)
}
else %res = %res $+ $chr(22)
}
%res = %res $+ $chr(160)
}
inc %i
}
return %res
}
alias mtrainbow //mt $rainbow( $+ $1- $+ )