Advertisement
Wikked

Big colored text

Oct 30th, 2014
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 10.55 KB | None | 0 0
  1. alias bt {
  2.   if ($len($1-) >= 15) { echo -ac info * Error: Try to use an smaller word! | return }
  3.   if ($bigtext.unsupp($1-)) {
  4.     echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-)
  5.     return
  6.   }
  7.   var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/
  8.  
  9.   var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)
  10.  
  11.   while (%i <= $len(%text)) {
  12.     if ($mid(%text, %i, 1) == $chr(3)) {
  13.       var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
  14.       if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
  15.         var %m $regml(mtcol, 1)
  16.         var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
  17.         inc %i $len(%m)
  18.       }
  19.     }
  20.     else {
  21.       tokenize 32 $bigtext.char($mid(%text, %i, 1))
  22.       var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
  23.       ; if ($bigtext.kern($mid(%text, %i, 2))) {
  24.       var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
  25.       ; }
  26.     }
  27.     inc %i
  28.   }
  29.   msg # $bigtext.format(%lia)
  30.   msg # $bigtext.format(%lib)
  31.   msg # $bigtext.format(%lic)
  32.   msg # $bigtext.format(%lid)
  33.   msg # $bigtext.format(%lie)
  34. }
  35.  
  36. ; You may customize this alias however you want to.
  37. ; It is Big Text's font, used above.
  38. ; The return value consists of dots and X's, to denote
  39. ;   unlit and lit points in the font, respectively;
  40. ;   there are 5 tokens of the same length, each
  41. ;   corresponding to a line in the 5-line output.
  42. ; Note how the . and X's look like the characters;
  43. ;   you can use this to your advantage!
  44. alias -l bigtext.char {
  45.   if ($1 === $chr(32)) || ($1 === $null) return $&
  46.     ... $&
  47.     ... $&
  48.     ... $&
  49.     ... $&
  50.     ...
  51.   if ($1 === $chr(160)) return $&
  52.     ..... $&
  53.     ..... $&
  54.     ..... $&
  55.     ..... $&
  56.     .....
  57.   elseif ($1 == 0) return $&
  58.     4.XXXX.$&
  59.     8XX..XX$&
  60.     9XX.XXX$&
  61.     12XXX.XX$&
  62.     13.XXXX.
  63.   elseif ($1 == 1) return $&
  64.     4.XXXX $&
  65.     8XX.XX $&
  66.     9...XX $&
  67.     12...XX $&
  68.     13...XX
  69.   elseif ($1 == 2) return $&
  70.     4XXXXX. $&
  71.     8....XX $&
  72.     9..XX.. $&
  73.     12XX.... $&
  74.     13XXXXXX
  75.   elseif ($1 == 3) return $&
  76.     4XXXXX. $&
  77.     8....XX $&
  78.     9.XXXX. $&
  79.     12....XX $&
  80.     13XXXXX.
  81.   elseif ($1 == 4) return $&
  82.     4.....XXX. $&
  83.     8...XX.XX. $&
  84.     9.XX...XX. $&
  85.     12XXXXXXXXX $&
  86.     13......XX.
  87.   elseif ($1 == 5) return $&
  88.     4XXXXX $&
  89.     8XX... $&
  90.     9XXXX. $&
  91.     12...XX $&
  92.     13XXXX.
  93.   elseif ($1 == 6) return $&
  94.     4.XXXX. $&
  95.     8XX.... $&
  96.     9XXXXX. $&
  97.     12XX..XX $&
  98.     13.XXXX.
  99.   elseif ($1 == 7) return $&
  100.     4XXXXXX $&
  101.     8...XX. $&
  102.     9..XX.. $&
  103.     12.XX... $&
  104.     13XX....
  105.   elseif ($1 == 8) return $&
  106.     4.XXXX. $&
  107.     8XX..XX $&
  108.     9.XXXX. $&
  109.     12XX..XX $&
  110.     13.XXXX.
  111.   elseif ($1 == 9) return $&
  112.     4.XXXX. $&
  113.     8XX..XX $&
  114.     9.XXXXX $&
  115.     12....XX $&
  116.     13.XXXX.
  117.   elseif ($1 == A) return $&
  118.     4.XXXX. $&
  119.     8XX..XX $&
  120.     9XXXXXX $&
  121.     12XX..XX $&
  122.     13XX..XX
  123.   elseif ($1 == B) return $&
  124.     4XXXXX. $&
  125.     8XX..XX $&
  126.     9XXXXX. $&
  127.     12XX..XX $&
  128.     13XXXXX.
  129.   elseif ($1 == C) return $&
  130.     4.XXXX. $&
  131.     8XX..XX $&
  132.     9XX.... $&
  133.     12XX..XX $&
  134.     13.XXXX.
  135.   elseif ($1 == D) return $&
  136.     4XXXX.. $&
  137.     8XX.XX. $&
  138.     9XX..XX $&
  139.     12XX..XX $&
  140.     13XXXXX.
  141.   elseif ($1 == E) return $&
  142.     4XXXXX $&
  143.     8XX... $&
  144.     9XXXX. $&
  145.     12XX... $&
  146.     13XXXXX
  147.   elseif ($1 == F) return $&
  148.     4XXXXX $&
  149.     8XX... $&
  150.     9XXXX. $&
  151.     12XX... $&
  152.     13XX...
  153.   elseif ($1 == G) return $&
  154.     4.XXXX. $&
  155.     8XX.... $&
  156.     9XX.XXX $&
  157.     12XX..XX $&
  158.     13.XXXXX
  159.   elseif ($1 == H) return $&
  160.     4XX...XX $&
  161.     8XX...XX $&
  162.     9XXXXXXX $&
  163.     12XX...XX $&
  164.     13XX...XX
  165.   elseif ($1 == I) return $&
  166.     4XXXX $&
  167.     8.XX. $&
  168.     9.XX. $&
  169.     12.XX. $&
  170.     13XXXX
  171.   elseif ($1 == J) return $&
  172.     4....XX $&
  173.     8....XX $&
  174.     9....XX $&
  175.     12XX..XX $&
  176.     13.XXXX.
  177.   elseif ($1 == K) return $&
  178.     4XX..XX $&
  179.     8XX.XX. $&
  180.     9XXXX.. $&
  181.     12XX.XX. $&
  182.     13XX..XX
  183.   elseif ($1 == L) return $&
  184.     4XX... $&
  185.     8XX... $&
  186.     9XX... $&
  187.     12XX... $&
  188.     13XXXXX
  189.   elseif ($1 == M) return $&
  190.     4XX....XX $&
  191.     8XXX..XXX $&
  192.     9XXXXXXXX $&
  193.     12XX.XX.XX $&
  194.     13XX....XX
  195.   elseif ($1 == N) return $&
  196.     4XX..XX $&
  197.     8XXX.XX $&
  198.     9XXXXXX $&
  199.     12XX.XXX $&
  200.     13XX..XX
  201.   elseif ($1 == O) return $&
  202.     4.XXXX. $&
  203.     8XX..XX $&
  204.     9XX..XX $&
  205.     12XX..XX $&
  206.     13.XXXX.
  207.   elseif ($1 == P) return $&
  208.     4XXXXX. $&
  209.     8XX..XX $&
  210.     9XXXXX. $&
  211.     12XX.... $&
  212.     13XX....
  213.   elseif ($1 == Q) return $&
  214.     4.XXXX.. $&
  215.     8XX..XX. $&
  216.     9XX..XX. $&
  217.     12XX..XX. $&
  218.     13.XXXXXX
  219.   elseif ($1 == R) return $&
  220.     4XXXXX. $&
  221.     8XX..XX $&
  222.     9XXXXX. $&
  223.     12XX..XX $&
  224.     13XX..XX
  225.   elseif ($1 == S) return $&
  226.     4.XXXX. $&
  227.     8XX.... $&
  228.     9.XXXX. $&
  229.     12....XX $&
  230.     13XXXXX.
  231.   elseif ($1 == T) return $&
  232.     4XXXXXX $&
  233.     8..XX.. $&
  234.     9..XX.. $&
  235.     12..XX.. $&
  236.     13..XX..
  237.   elseif ($1 == U) return $&
  238.     4XX..XX $&
  239.     8XX..XX $&
  240.     9XX..XX $&
  241.     12XX..XX $&
  242.     13.XXXX.
  243.   elseif ($1 == V) return $&
  244.     4XX....XX $&
  245.     8XX....XX $&
  246.     9.XX..XX. $&
  247.     12..XXXX.. $&
  248.     13...XX...
  249.   elseif ($1 == W) return $&
  250.     4XX...XX $&
  251.     8XX...XX $&
  252.     9XX.X.XX $&
  253.     12XXXXXXX $&
  254.     13.XX.XX.
  255.   elseif ($1 == X) return $&
  256.     4XX...XX $&
  257.     8.XX.XX. $&
  258.     9..XXX.. $&
  259.     12.XX.XX. $&
  260.     13XX...XX
  261.   elseif ($1 == Y) return $&
  262.     4XX..XX $&
  263.     8XX..XX $&
  264.     9.XXXX. $&
  265.     12..XX.. $&
  266.     13..XX..
  267.   elseif ($1 == Z) return $&
  268.     4XXXXXX $&
  269.     8...XX. $&
  270.     9..XX.. $&
  271.     12.XX... $&
  272.     13XXXXXX
  273.   elseif ($1 == $chr(35)) return $&
  274.     4.XX..XX. $&
  275.     8XXXXXXXX $&
  276.     9.XX..XX. $&
  277.     12XXXXXXXX $&
  278.     13.XX..XX.
  279.   elseif ($1 == ') return $&
  280.     4.XX $&
  281.     11XX. $&
  282.     ... $&
  283.     ... $&
  284.     ...
  285.   elseif ($1 == ") return $&
  286.     4XX..XX $&
  287.     11XX..XX $&
  288.     ...... $&
  289.     ...... $&
  290.     ......
  291.   elseif ($1 == +) return $&
  292.     ...... $&
  293.     4..XX.. $&
  294.     9XXXXXX $&
  295.     11..XX.. $&
  296.     ......
  297.   elseif ($1 == =) return $&
  298.     ...... $&
  299.     11XXXXXX $&
  300.     ...... $&
  301.     4XXXXXX $&
  302.     ......
  303.   elseif ($1 == -) return $&
  304.     ...... $&
  305.     ...... $&
  306.     9XXXXXX $&
  307.     ...... $&
  308.     ......
  309.   elseif ($1 == _) return $&
  310.     ...... $&
  311.     ...... $&
  312.     ...... $&
  313.     ...... $&
  314.     9XXXXXX
  315.   elseif ($1 == ¯) return $&
  316.     9XXXXXX $&
  317.     ...... $&
  318.     ...... $&
  319.     ...... $&
  320.     ......
  321.   elseif ($1 == °) return $&
  322.     4.XXX. $&
  323.     9XX.XX $&
  324.     11.XXX. $&
  325.     ..... $&
  326.     .....
  327.   elseif ($1 == :) return $&
  328.     .. $&
  329.     4XX $&
  330.     .. $&
  331.     11XX $&
  332.     ..
  333.   elseif ($1 == !) return $&
  334.     4XX $&
  335.     9XX $&
  336.     11XX $&
  337.     .. $&
  338.     13XX
  339.   elseif ($1 == ?) return $&
  340.     4XXX. $&
  341.     9..XX $&
  342.     11.XX. $&
  343.     .... $&
  344.     13.XX.
  345.   elseif ($1 == .) return $&
  346.     .. $&
  347.     .. $&
  348.     .. $&
  349.     .. $&
  350.     9XX
  351.   elseif ($1 == /) return $&
  352.     4....XX $&
  353.     8...XX. $&
  354.     9..XX.. $&
  355.     12.XX... $&
  356.     13XX....
  357.   elseif ($1 == \) return $&
  358.     4XX.... $&
  359.     8.XX... $&
  360.     9..XX.. $&
  361.     12...XX. $&
  362.     13....XX
  363.   elseif ($1 == $chr(40)) return $&
  364.     4....X $&
  365.     8..X.. $&
  366.     9X.... $&
  367.     12..X.. $&
  368.     13....X
  369.   elseif ($1 == $chr(41)) return $&
  370.     4X.... $&
  371.     8..X.. $&
  372.     9....X $&
  373.     12..X.. $&
  374.     13X....
  375.   elseif ($1 == $chr(37)) return $&
  376.     4XX..XX $&
  377.     8...XX. $&
  378.     9..XX.. $&
  379.     12.XX... $&
  380.     13XX..XX
  381.   elseif ($1 == [) return $&
  382.     4XXXXX $&
  383.     8XX... $&
  384.     9XX... $&
  385.     12XX... $&
  386.     13XXXXX
  387.   elseif ($1 == ]) return $&
  388.     4XXXXX $&
  389.     8...XX $&
  390.     9...XX $&
  391.     12...XX $&
  392.     13XXXXX
  393.   elseif ($1 == |) return $&
  394.     4.XX. $&
  395.     8.XX. $&
  396.     9.XX. $&
  397.     12.XX. $&
  398.     13.XX.
  399.   elseif ($1 == <) return $&
  400.     4....XX $&
  401.     8..XX.. $&
  402.     9XX.... $&
  403.     12..XX.. $&
  404.     13....XX
  405.   elseif ($1 == >) return $&
  406.     4XX.... $&
  407.     8..XX.. $&
  408.     9....XX $&
  409.     12..XX.. $&
  410.     13XX....
  411.   elseif ($1 == ¸) return $&
  412.     4.... $&
  413.     .... $&
  414.     9.XX. $&
  415.     11..XX $&
  416.     13XXX.
  417.   elseif ($1 == ,) return $&
  418.     4... $&
  419.     ... $&
  420.     9XXX $&
  421.     11.XX $&
  422.     13XX.
  423. }
  424.  
  425.  
  426. ; Returns all unsupported characters within a Big Text message
  427. ; Supported characters are a-z, space, digits, #'"+=?:!?./\()%-[]<>|?,
  428. alias bigtext.unsupp {
  429.   var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=?:!?./\\()%[|<>_?"?-]/igS, $null, %res)
  430.   return %res
  431. }
  432.  
  433. ; Returns $true if a space should be added between two characters,
  434. ;   or $false if not.
  435. ; Note: This is here only for aesthetic purposes. :)
  436. alias bigtext.kern {
  437.   var %res $true
  438.   if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]?|?[J/]|L'|\/\/|\\\\|?J|[_?]?|[?T_]_|>\.|\.<)$/i)) %res = $false
  439.   return %res
  440. }
  441.  
  442. ; Takes an input string of the form:
  443. ; .XX..XX....XX.XX.XXXXX
  444. ; And formats it for display.
  445. alias bigtext.format {
  446.   var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
  447.   while (%i <= $len($1-)) {
  448.     if ($mid($1-, %i, 1) == $chr(3)) {
  449.       if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
  450.         if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
  451.           %curcolor = $gettok($regml(mtcol, 1), 1, 44)
  452.           if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
  453.         }
  454.         inc %i $len($regml(mtcol, 1))
  455.       }
  456.       elseif (%curcolor) {
  457.         %curcolor =
  458.         if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
  459.       }
  460.     }
  461.     else {
  462.       %current = $iif($mid($1-, %i, 1) == ., 0, 1)
  463.       if (%previous != %current) {
  464.         %previous = %current
  465.         if (%curcolor) {
  466.           if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
  467.           else %res = %res $+ $chr(3)
  468.         }
  469.         else %res = %res $+ $chr(22)
  470.       }
  471.       %res = %res $+ $chr(160)
  472.     }
  473.     inc %i
  474.   }
  475.   return %res
  476. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement