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