alias bt {
if ($len($1-) >= 15) { echo -ac info * Error: Try to use an smaller word! | return }
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
}
msg # $bigtext.format(%lia)
msg # $bigtext.format(%lib)
msg # $bigtext.format(%lic)
msg # $bigtext.format(%lid)
msg # $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 $&
4.XXXX.$&
8XX..XX$&
9XX.XXX$&
12XXX.XX$&
13.XXXX.
elseif ($1 == 1) return $&
4.XXXX $&
8XX.XX $&
9...XX $&
12...XX $&
13...XX
elseif ($1 == 2) return $&
4XXXXX. $&
8....XX $&
9..XX.. $&
12XX.... $&
13XXXXXX
elseif ($1 == 3) return $&
4XXXXX. $&
8....XX $&
9.XXXX. $&
12....XX $&
13XXXXX.
elseif ($1 == 4) return $&
4.....XXX. $&
8...XX.XX. $&
9.XX...XX. $&
12XXXXXXXXX $&
13......XX.
elseif ($1 == 5) return $&
4XXXXX $&
8XX... $&
9XXXX. $&
12...XX $&
13XXXX.
elseif ($1 == 6) return $&
4.XXXX. $&
8XX.... $&
9XXXXX. $&
12XX..XX $&
13.XXXX.
elseif ($1 == 7) return $&
4XXXXXX $&
8...XX. $&
9..XX.. $&
12.XX... $&
13XX....
elseif ($1 == 8) return $&
4.XXXX. $&
8XX..XX $&
9.XXXX. $&
12XX..XX $&
13.XXXX.
elseif ($1 == 9) return $&
4.XXXX. $&
8XX..XX $&
9.XXXXX $&
12....XX $&
13.XXXX.
elseif ($1 == A) return $&
4.XXXX. $&
8XX..XX $&
9XXXXXX $&
12XX..XX $&
13XX..XX
elseif ($1 == B) return $&
4XXXXX. $&
8XX..XX $&
9XXXXX. $&
12XX..XX $&
13XXXXX.
elseif ($1 == C) return $&
4.XXXX. $&
8XX..XX $&
9XX.... $&
12XX..XX $&
13.XXXX.
elseif ($1 == D) return $&
4XXXX.. $&
8XX.XX. $&
9XX..XX $&
12XX..XX $&
13XXXXX.
elseif ($1 == E) return $&
4XXXXX $&
8XX... $&
9XXXX. $&
12XX... $&
13XXXXX
elseif ($1 == F) return $&
4XXXXX $&
8XX... $&
9XXXX. $&
12XX... $&
13XX...
elseif ($1 == G) return $&
4.XXXX. $&
8XX.... $&
9XX.XXX $&
12XX..XX $&
13.XXXXX
elseif ($1 == H) return $&
4XX...XX $&
8XX...XX $&
9XXXXXXX $&
12XX...XX $&
13XX...XX
elseif ($1 == I) return $&
4XXXX $&
8.XX. $&
9.XX. $&
12.XX. $&
13XXXX
elseif ($1 == J) return $&
4....XX $&
8....XX $&
9....XX $&
12XX..XX $&
13.XXXX.
elseif ($1 == K) return $&
4XX..XX $&
8XX.XX. $&
9XXXX.. $&
12XX.XX. $&
13XX..XX
elseif ($1 == L) return $&
4XX... $&
8XX... $&
9XX... $&
12XX... $&
13XXXXX
elseif ($1 == M) return $&
4XX....XX $&
8XXX..XXX $&
9XXXXXXXX $&
12XX.XX.XX $&
13XX....XX
elseif ($1 == N) return $&
4XX..XX $&
8XXX.XX $&
9XXXXXX $&
12XX.XXX $&
13XX..XX
elseif ($1 == O) return $&
4.XXXX. $&
8XX..XX $&
9XX..XX $&
12XX..XX $&
13.XXXX.
elseif ($1 == P) return $&
4XXXXX. $&
8XX..XX $&
9XXXXX. $&
12XX.... $&
13XX....
elseif ($1 == Q) return $&
4.XXXX.. $&
8XX..XX. $&
9XX..XX. $&
12XX..XX. $&
13.XXXXXX
elseif ($1 == R) return $&
4XXXXX. $&
8XX..XX $&
9XXXXX. $&
12XX..XX $&
13XX..XX
elseif ($1 == S) return $&
4.XXXX. $&
8XX.... $&
9.XXXX. $&
12....XX $&
13XXXXX.
elseif ($1 == T) return $&
4XXXXXX $&
8..XX.. $&
9..XX.. $&
12..XX.. $&
13..XX..
elseif ($1 == U) return $&
4XX..XX $&
8XX..XX $&
9XX..XX $&
12XX..XX $&
13.XXXX.
elseif ($1 == V) return $&
4XX....XX $&
8XX....XX $&
9.XX..XX. $&
12..XXXX.. $&
13...XX...
elseif ($1 == W) return $&
4XX...XX $&
8XX...XX $&
9XX.X.XX $&
12XXXXXXX $&
13.XX.XX.
elseif ($1 == X) return $&
4XX...XX $&
8.XX.XX. $&
9..XXX.. $&
12.XX.XX. $&
13XX...XX
elseif ($1 == Y) return $&
4XX..XX $&
8XX..XX $&
9.XXXX. $&
12..XX.. $&
13..XX..
elseif ($1 == Z) return $&
4XXXXXX $&
8...XX. $&
9..XX.. $&
12.XX... $&
13XXXXXX
elseif ($1 == $chr(35)) return $&
4.XX..XX. $&
8XXXXXXXX $&
9.XX..XX. $&
12XXXXXXXX $&
13.XX..XX.
elseif ($1 == ') return $&
4.XX $&
11XX. $&
... $&
... $&
...
elseif ($1 == ") return $&
4XX..XX $&
11XX..XX $&
...... $&
...... $&
......
elseif ($1 == +) return $&
...... $&
4..XX.. $&
9XXXXXX $&
11..XX.. $&
......
elseif ($1 == =) return $&
...... $&
11XXXXXX $&
...... $&
4XXXXXX $&
......
elseif ($1 == -) return $&
...... $&
...... $&
9XXXXXX $&
...... $&
......
elseif ($1 == _) return $&
...... $&
...... $&
...... $&
...... $&
9XXXXXX
elseif ($1 == ¯) return $&
9XXXXXX $&
...... $&
...... $&
...... $&
......
elseif ($1 == °) return $&
4.XXX. $&
9XX.XX $&
11.XXX. $&
..... $&
.....
elseif ($1 == :) return $&
.. $&
4XX $&
.. $&
11XX $&
..
elseif ($1 == !) return $&
4XX $&
9XX $&
11XX $&
.. $&
13XX
elseif ($1 == ?) return $&
4XXX. $&
9..XX $&
11.XX. $&
.... $&
13.XX.
elseif ($1 == .) return $&
.. $&
.. $&
.. $&
.. $&
9XX
elseif ($1 == /) return $&
4....XX $&
8...XX. $&
9..XX.. $&
12.XX... $&
13XX....
elseif ($1 == \) return $&
4XX.... $&
8.XX... $&
9..XX.. $&
12...XX. $&
13....XX
elseif ($1 == $chr(40)) return $&
4....X $&
8..X.. $&
9X.... $&
12..X.. $&
13....X
elseif ($1 == $chr(41)) return $&
4X.... $&
8..X.. $&
9....X $&
12..X.. $&
13X....
elseif ($1 == $chr(37)) return $&
4XX..XX $&
8...XX. $&
9..XX.. $&
12.XX... $&
13XX..XX
elseif ($1 == [) return $&
4XXXXX $&
8XX... $&
9XX... $&
12XX... $&
13XXXXX
elseif ($1 == ]) return $&
4XXXXX $&
8...XX $&
9...XX $&
12...XX $&
13XXXXX
elseif ($1 == |) return $&
4.XX. $&
8.XX. $&
9.XX. $&
12.XX. $&
13.XX.
elseif ($1 == <) return $&
4....XX $&
8..XX.. $&
9XX.... $&
12..XX.. $&
13....XX
elseif ($1 == >) return $&
4XX.... $&
8..XX.. $&
9....XX $&
12..XX.. $&
13XX....
elseif ($1 == ¸) return $&
4.... $&
.... $&
9.XX. $&
11..XX $&
13XXX.
elseif ($1 == ,) return $&
4... $&
... $&
9XXX $&
11.XX $&
13XX.
}
; 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
}
Comments