All pastes #501036 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-05-21 20:49 UTC
rendered paste body
alias big {
  set %bl.buffer1 A | set %bl.buffer2 A | set %bl.buffer3 A | set %bl.buffer4 A | set %bl.buffer5 A
  var %bl.cmd say, %bl.col1, %bl.col2
  if ($$1 == echo) { set %bl.cmd echo -at | tokenize 32 $2- }
  if ($1 !isnum) { set %bl.col1 1 | set %bl.col2 0 }
  elseif ($2 !isnum) { set %bl.col1 $1 | set %bl.col2 0 | tokenize 32 $2- }
  else { set %bl.col1 $1 | set %bl.col2 $2 | tokenize 32 $3- }
  var %bl.idx1 1,  %bl.idx2 1,  %bl.idx3 1
  ;set the block field
  while (%bl.idx1 <= $0) {
    set %bl.idx2 1
    while (%bl.idx2 <= $len($ [ $+ [ %bl.idx1 ] ])) {
      blockappend $blockletter($mid($ [ $+ [ %bl.idx1 ] ],%bl.idx2,1))
      inc %bl.idx2
    }
    if (%bl.idx1 < $0) blockappend $blockletter
    inc %bl.idx1
  }
  ;colorize the block field
  blockcolor %bl.col1 %bl.col2
  ;output the block field
  set %bl.idx3 1
  while (%bl.idx3 <= 5) { %bl.cmd %bl.buffer [ $+ [ %bl.idx3 ] ] | unset %bl.buffer [ $+ [ %bl.idx3 ] ] | inc %bl.idx3 }
}

alias -l blockletter {
  if ($1 === A) return ABA BAB BBB BAB BAB
  elseif ($1 === B) return BBA BAB BBA BAB BBA
  elseif ($1 === C) return ABB BAA BAA BAA ABB
  elseif ($1 === D) return BBA BAB BAB BAB BBA
  elseif ($1 === E) return BBB BAA BBA BAA BBB
  elseif ($1 === F) return BBB BAA BBA BAA BAA
  elseif ($1 === G) return ABB BAA BAB BAB ABB
  elseif ($1 === H) return BAB BAB BBB BAB BAB
  elseif ($1 === I) return BBB ABA ABA ABA BBB
  elseif ($1 === J) return BBB ABA ABA ABA BBA
  elseif ($1 === K) return BAB BAB BBA BAB BAB
  elseif ($1 === L) return BAA BAA BAA BAA BBB
  elseif ($1 === M) return ABBBA BABAB BABAB BAAAB BAAAB
  elseif ($1 === N) return BAAB BBAB BABB BAAB BAAB
  elseif ($1 === O) return BBB BAB BAB BAB BBB
  elseif ($1 === P) return BBB BAB BBB BAA BAA
  elseif ($1 === Q) return BBB BAB BAB BBB AAB
  elseif ($1 === R) return BBB BAB BBB BBA BAB
  elseif ($1 === S) return ABB BAA ABA AAB BBA
  elseif ($1 === T) return BBB ABA ABA ABA ABA
  elseif ($1 === U) return BAB BAB BAB BAB BBB
  elseif ($1 === V) return BAB BAB BAB BAB ABA
  elseif ($1 === W) return BAAAB BAAAB BABAB BABAB ABBBA
  elseif ($1 === X) return BAB BAB ABA BAB BAB
  elseif ($1 === Y) return BAB BAB BAB ABA ABA
  elseif ($1 === Z) return BBB AAB ABA BAA BBB
  elseif ($1 === a) return AAAA AAAA ABBA BABA BBAB
  elseif ($1 === b) return BAA BAA BBB BAB BBB
  elseif ($1 === c) return AAA AAA BBB BAA BBB
  elseif ($1 === d) return AAB AAB BBB BAB BBB
  elseif ($1 === e) return AAA ABB BAB BBA ABB
  elseif ($1 === f) return ABB ABA BBB ABA ABA
  elseif ($1 === g) return AAA BBB BAB ABB BBA
  elseif ($1 === h) return BAA BAA BBB BAB BAB
  elseif ($1 === i) return A B A B B
  elseif ($1 === j) return AB AA AB AB BB
  elseif ($1 === k) return BAA BAA BAB BBA BAB
  elseif ($1 === l) return BA BA BA BA BB
  elseif ($1 === m) return AAAAA AAAAA ABABA BABAB BABAB
  elseif ($1 === n) return AAA AAA BBA BAB BAB
  elseif ($1 === o) return AAA AAA BBB BAB BBB
  elseif ($1 === p) return AAA BBB BAB BBB BAA
  elseif ($1 === q) return AAA BBB BAB BBB AAB
  elseif ($1 === r) return AAA AAA BAB BBA BAA
  elseif ($1 === s) return AA AB BA AB BB
  elseif ($1 === t) return ABA ABA BBB ABA ABA
  elseif ($1 === u) return AAA AAA BAB BAB BBB
  elseif ($1 === v) return AAA AAA BAB BAB ABA
  elseif ($1 === w) return AAAAA AAAAA BABAB BABAB ABABA
  elseif ($1 === x) return AAA AAA BAB ABA BAB
  elseif ($1 === y) return AAA BAB BAB ABA BAA
  elseif ($1 === z) return AAA BBB AAB ABA BBB
  elseif ($1 == 0) return ABA BAB BAB BAB ABA
  elseif ($1 == 1) return ABA BBA ABA ABA BBB
  elseif ($1 == 2) return BBA AAB ABA BAA BBB
  elseif ($1 == 3) return BBA AAB ABA AAB BBA
  elseif ($1 == 4) return BAB BAB BBB AAB AAB
  elseif ($1 == 5) return BBB BAA BBA AAB BBA
  elseif ($1 == 6) return ABB BAA BBB BAB BBB
  elseif ($1 == 7) return BBB AAB AAB ABA ABA
  elseif ($1 == 8) return BBB BAB BBB BAB BBB
  elseif ($1 == 9) return BBB BAB BBB AAB BBA
  elseif ($1 == .) return A A A A B
  elseif ($1 == !) return B B B A B
  elseif ($1 == ?) return BBB AAB ABA AAA ABA
  elseif ($1 == -) return AAA AAA BBB AAA AAA
  elseif ($1 == _) return AAAA AAAA AAAA AAAA BBBB
  elseif ($1 == ^) return ABA BAB AAA AAA AAA
  elseif ($1 == +) return AAA ABA BBB ABA AAA
  elseif ($1 == =) return AAA BBB AAA BBB AAA
  elseif ($1 == /) return AAAAB AAABA AABAA ABAAA BAAAA
  elseif ($1 == \) return BAAAA ABAAA AABAA AAABA AAAAB
  elseif ($1 == ]) return BB AB AB AB BB
  elseif ($1 == [) return BB BA BA BA BB
  elseif ($1 == :) return A B A B A
  elseif ($1 == $chr(59)) return AA AB AA AB BA
  elseif ($1 == <) return AAB ABA BAA ABA AAB
  elseif ($1 == >) return BAA ABA AAB ABA BAA
  elseif ($1 == $chr(40)) return AB BA BA BA AB
  elseif ($1 == $chr(41)) return BA AB AB AB BA
  elseif ($1 == ") return BAB BAB AAA AAA AAA
  elseif ($1 == ') return B B A A A
  elseif ($1 == `) return BA AB AA AA AA
  elseif ($1 == ,) return AA AA AA AB BA
  elseif ($1 == ~) return AAAA ABAB BABA AAAA AAAA
  elseif ($1 == $chr(37)) return BAB AAB ABA BAA BAB
  elseif ($1 == $chr(124)) return B B B B B
  elseif ($1 == *) return BAB ABA BAB AAA AAA
  else return A A A A A
}

alias -l blockappend {
  set %bl.buffer1 $+(%bl.buffer1,$$1,A)
  set %bl.buffer2 $+(%bl.buffer2,$$2,A)
  set %bl.buffer3 $+(%bl.buffer3,$$3,A)
  set %bl.buffer4 $+(%bl.buffer4,$$4,A)
  set %bl.buffer5 $+(%bl.buffer5,$$5,A)
}

alias -l blockcolor {  
  var %bl.buff 1, %bl.string 5  
  while (%bl.buff <= 5) {  
    while (%bl.string >= 1) {  
      set %bl.buffer [ $+ [ %bl.buff ] ] $replace(%bl.buffer [ $+ [ %bl.buff ] ] ,$str(A,%bl.string),$+(,$$2,$chr(44),$$2,$str($blockrand,%bl.string)))  
      set %bl.buffer [ $+ [ %bl.buff ] ] $replace(%bl.buffer [ $+ [ %bl.buff ] ] ,$str(B,%bl.string),$+(,$$1,$chr(44),$$1,$str($blockrand,%bl.string)))  
      dec %bl.string  
    }  
    set %bl.string 5  
    inc %bl.buff  
  }  
}

alias -l blockrand return $iif($rand(0,1) == 0,<,>)

on $*:TEXT:/^[!@]((def|set)?(name|rsn)|p(est|c)|stats?|overall?|totaa?l|co?mb|att|def|str|h(p|it)|rang|pray|mag[ie]|cook|w(c|ood)|flet|fish|f(m|iremak)|craft|smith|min|herb|agi|th(ie|ei)|slay|farm|r(c|une)|hunt|c(s|on))/Si:#:{
  if ($regex($1,/^[!@](def|set)?(name|rsn)/Si)) {
    if (!$2) notice $nick $+($c1,[,$c2,You didn't specify a name! Please type,$c1 $1 name])
    else {
      writeini defname.ini Defname $address($nick,3) $hr($2-)
      notice $nick $+($c1,[,$c2,The nick $c1,$2- $c2,is now set for your host,$c1,])
    }
  }
  else {
    inc %sc | sockopen $+(stats.,%sc) o-ss.net 80
    if ($regex($1,/^[!@]p(est|c)/Si)) sockmark $+(stats.,%sc) $iif($regex($1,/^@/Si),msg $chan,notice $nick) $iif($regex($left($3,1),/^[#-]/Si),$iif($4,$hr($4-),$iif($readini(defname.ini,defname,$address($nick,3)),$v1,$nick)),$iif($3,$hr($3-),$iif($readini(defname.ini,defname,$address($nick,3)),$v1,$nick))) $+(p.,$StatsID($2)) $iif($regex($left($3,1),/^[#-]/Si),$remove($3,$chr(35),-))
    else sockmark $+(stats.,%sc) $iif($regex($1,/^@/Si),msg $chan,notice $nick) $iif($regex($left($2,1),/^[#-]/Si),$iif($3,$hr($3-),$iif($readini(defname.ini,defname,$address($nick,3)),$v1,$nick)),$iif($2,$hr($2-),$iif($readini(defname.ini,defname,$address($nick,3)),$v1,$nick))) $StatsID($1) $iif($regex($left($2,1),/^[#-]/Si),$remove($2,$chr(35),-))
  }
}
on *:SOCKOPEN:stats.*:{
  sockwrite -nt $sockname GET /parsers/stats.php?user= $+ $gettok($sock($sockname).mark,3,32) HTTP/1.1
  sockwrite -nt $sockname Host: o-ss.net
  sockwrite -nt $sockname $crlf
}
on *:SOCKREAD:stats.*:{
  var %rs | sockread %rs
  if ((*does not feature* iswm %rs) && ($sockname)) {
    $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$sr($gettok($sock($sockname).mark,3,32)) $c2,does not feature in the highscores for $c1,any skill])
    sockclose $sockname
  }
  elseif ((*overall* iswm %rs) && ($gettok($sock($sockname).mark,4,32) == overall) && ($sockname)) {
    var %z = %rs, %c = 1
    while (%c <= 23) { sockread %rs | tokenize 32 %rs | if ($3 != ranked) var %z = %z $+($gettok(%rs,1,32),: $c1,$gettok(%rs,3,32),$c2) | if (%c isnum 1-7) var %k = %k $iif($3 == ranked,$iif($1 == hitpoints,10,1),$3) | inc %c } | tokenize 32 %z
    $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$c2,Overall for $sr($gettok($sock($sockname).mark,3,32)),$c1,] [,$c2,Combat:,$c1 $cmb(%k $sockname) |,$c2 Total: $c1,$3 |,$c2 Rank: $c1,$2 |,$c2 Exp: $c1,$4,])
    $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$c2,$left($gettok(%z,5-,32),-3),$c1,])
    sockclose $sockname
  }
  elseif ((!$regex($gettok($sock($sockname).mark,4,32),/(overall|combat)/Si)) && ($+(*,$gettok($sock($sockname).mark,4,32),*) iswm %rs) && ($sockname)) {
    if ($gettok(%rs,2,32) == not) $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$sr($gettok($sock($sockname).mark,3,32)) $c2,does not feature in the highscores for $c1,$gettok($sock($sockname).mark,4,32),])
    else $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$c2,$gettok($sock($sockname).mark,4,32) for $c1,$sr($gettok($sock($sockname).mark,3,32)),] [,$c2,Level: $c1,$gettok(%rs,3,32) |,$c2 Rank: $c1,$gettok(%rs,2,32) |,$c2 Exp: $c1,$gettok(%rs,4,32),$iif($gettok(%rs,3,32) != 99,$+($chr(32),|,$c2 Exp till level $c1,$iif($gettok($sock($sockname).mark,5,32),$v1,$calc($gettok(%rs,3,32) + 1)),$c2,:,$c1 $bytes($calc($exp($iif($gettok($sock($sockname).mark,5,32),$v1,$calc($gettok(%rs,3,32) + 1))) - $remove($gettok(%rs,4,32),$chr(44))),bd))),]) 
    sockclose $sockname
  }
  elseif ((*attack* iswm %rs) && ($gettok($sock($sockname).mark,4,32) == combat) && ($sockname)) {
    var %c = $iif($gettok(%rs,3,32) != ranked,$v1,1), %z = 1
    while (%z <= 6) { sockread %rs | var %c = %c $iif($gettok(%rs,3,32) != ranked,$v1,$iif($gettok(%rs,1,32) == hitpoints,10,1)) | inc %z } | tokenize 32 %c
    $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$c2,Combat for $c1,$sr($gettok($sock($sockname).mark,3,32)),] [,$c2,Combat: $c1,$cmb(%c $sockname),] [,$c2,Att:,$c1 $1 |,$c2 Str:,$c1 $3 |,$c2 Def:,$c1 $2 |,$c2 Hp:,$c1 $4 |,$c2 Ranged:,$c1 $5 |,$c2 Pray:,$c1 $6 |,$c2 Magic:,$c1 $7,])
    $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$c2,Stats till combat $c1,$iif($gettok($sock($sockname).mark,5,32),$v1,$calc($gettok($cmb(%c $sockname),1,46) + 1)),] [,$c2,$iif($gettok($cmb(%c $sockname),2,32) == melee,$+(Att/Str: $c1,$cc1($cmb(%c $sockname) $iif($gettok($sock($sockname).mark,5,32),$calc($v1 - 1),$cmb(%c $sockname))))),$iif($gettok($cmb(%c $sockname),2,32) == ranged,$+(Ranged: $c1,$cc3($cmb(%c $sockname) $iif($gettok($sock($sockname).mark,5,32),$calc($v1 - 1),$cmb(%c $sockname))))),$&
      $iif($gettok($cmb(%c $sockname),2,32) == magic,$+(Magic: $c1,$cc3($cmb(%c $sockname) $iif($gettok($sock($sockname).mark,5,32),$calc($v1 - 1),$cmb(%c $sockname))))),$chr(32),|,$c2 Hp/Def: $c1,$cc2($cmb(%c $sockname) $iif($gettok($sock($sockname).mark,5,32),$calc($v1 - 1),$cmb(%c $sockname))) |,$c2 Pray: $c1,$cc4($cmb(%c $sockname) $iif($gettok($sock($sockname).mark,5,32),$calc($v1 - 1),$cmb(%c $sockname))),])
    sockclose $sockname
  }
  elseif ((*overall* iswm %rs) && ($gettok($sock($sockname).mark,4,32) == combatp) && ($sockname)) {
    var %o = $iif($gettok(%rs,4,32),$remove($v1,$chr(44)),0), %z = 1
    while (%z <= 7) { sockread %rs | var %c = $calc(%c + $iif($gettok(%rs,4,32),$remove($v1,$chr(44)),0)) | inc %z }
    $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$c2,Combat percentage of $c1,$sr($gettok($sock($sockname).mark,3,32)),] [,$c2,Total Exp:,$c1 $bytes(%o,bd) |,$c2 Combat Exp:,$c1 $bytes(%c,bd) |,$c2 Combat Percentage:,$c1 $round($calc((%c / %o) * 100),2),$chr(37),])
    sockclose $sockname
  }
  elseif ((p.* iswm $gettok($sock($sockname).mark,4,32)) && ($+(*,$remove($gettok($sock($sockname).mark,4,32),p.),*) iswm %rs) && ($sockname)) {
    if ($gettok(%rs,2,32) == not) $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$sr($gettok($sock($sockname).mark,3,32)) $c2,does not feature in the highscores for $c1,$remove($gettok($sock($sockname).mark,4,32),p.),])
    elseif ($gettok(%rs,3,32) == 99) $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$c2,$remove($gettok($sock($sockname).mark,4,32),p.) for $c1,$sr($gettok($sock($sockname).mark,3,32)) $c2,is already 99,$c1,])
    else {
      var %m = $calc($gettok($calc(($exp($iif($gettok($sock($sockname).mark,5,32),$v1,$calc($gettok(%rs,3,32) + 1))) - $remove($gettok(%rs,4,32),$chr(44))) / ($gettok($calc(($gettok(%rs,3,32) * $gettok(%rs,3,32)) / $iif($remove($gettok($sock($sockname).mark,4,32),p.) == prayer,12,6)),1,46) + 1)),1,46) + 1)
      $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$c2,$remove($gettok($sock($sockname).mark,4,32),p.) for $c1,$sr($gettok($sock($sockname).mark,3,32)),] [,$c2,Level: $c1,$gettok(%rs,3,32) |,$c2 Rank: $c1,$gettok(%rs,2,32) |,$c2 Exp: $c1,$gettok(%rs,4,32),])
      $gettok($sock($sockname).mark,1-2,32) $+($c1,[,$c2,Exp till level $c1,$iif($gettok($sock($sockname).mark,5,32),$v1,$calc($gettok(%rs,3,32) + 1)),$c2,:,$c1 $bytes($calc($exp($iif($gettok($sock($sockname).mark,5,32),$v1,$calc($gettok(%rs,3,32) + 1))) - $remove($gettok(%rs,4,32),$chr(44))),bd),] [,$c2,PC Tickets (1):,$c1 $bytes(%m,bd) |,$c2 PC Tickets (100):,$c1 $bytes($gettok($calc(((%m / 10) * 9) + 1),1,46),bd),])
      sockclose $sockname
    }
  }
}
alias -l c1 return $+($chr(3),14)
alias -l c2 return $+($chr(3),07)
alias -l hr { return $replace($1-,$chr(32),+,$chr(45),+,$chr(95),+) }
alias -l sr { return $replace($1-,+,$chr(32)) }
alias -l StatsID {
  if ($regex($1,/^([!@])?(stats?|overall?|totaa?l)/Si)) return Overall
  elseif ($regex($1,/^([!@])?co?mb%/Si)) return Combatp
  elseif ($regex($1,/^([!@])?co?mb/Si)) return Combat
  elseif ($regex($1,/^([!@])?att/Si)) return Attack
  elseif ($regex($1,/^([!@])?def/Si)) return Defence
  elseif ($regex($1,/^([!@])?str/Si)) return Strength
  elseif ($regex($1,/^([!@])?h(p|it)/Si)) return Hitpoints
  elseif ($regex($1,/^([!@])?rang/Si)) return Ranged
  elseif ($regex($1,/^([!@])?pray/Si)) return Prayer
  elseif ($regex($1,/^([!@])?mag[ei]/Si)) return Magic
  elseif ($regex($1,/^([!@])?cook/Si)) return Cooking
  elseif ($regex($1,/^([!@])?w(c|oodcut)/Si)) return Woodcutting
  elseif ($regex($1,/^([!@])?flet/Si)) return Fletching
  elseif ($regex($1,/^([!@])?fish/Si)) return Fishing
  elseif ($regex($1,/^([!@])?f(m|iremak)/Si)) return Firemaking
  elseif ($regex($1,/^([!@])?craft/Si)) return Crafting
  elseif ($regex($1,/^([!@])?smith/Si)) return Smithing
  elseif ($regex($1,/^([!@])?min/Si)) return Mining
  elseif ($regex($1,/^([!@])?herb/Si)) return Herblore
  elseif ($regex($1,/^([!@])?agi/Si)) return Agility
  elseif ($regex($1,/^([!@])?th(ie|ei)/Si)) return Thieving
  elseif ($regex($1,/^([!@])?slay/Si)) return Slayer
  elseif ($regex($1,/^([!@])?farm/Si)) return Farming
  elseif ($regex($1,/^([!@])?r(c|une)/Si)) return Runecraft
  elseif ($regex($1,/^([!@])?hunt/Si)) return Hunter
  elseif ($regex($1,/^([!@])?c(s|on)/Si)) return Construction
}
alias -l cmb {
  tokenize 32 $1-
  var %rsc1 [ $+ [ $8 ] ] $calc((($1 * 130) + ($3 * 130)) / 400)
  var %rsc2 [ $+ [ $8 ] ] $calc($iif($and($5,1) == 0,$calc($5 * 195),$calc((($5 - 1) + ($5 * 2)) * 65)) / 400)
  var %rsc3 [ $+ [ $8 ] ] $calc($iif($and($7,1) == 0,$calc($7 * 195),$calc((($7 - 1) + ($7 * 2)) * 65)) / 400)
  if ((%rsc1 [ $+ [ $8 ] ] >= %rsc2 [ $+ [ $8 ] ]) && (%rsc1 [ $+ [ $8 ] ] >= %rsc3 [ $+ [ $8 ] ])) return $calc(%rsc1 [ $+ [ $8 ] ] + ((($2 * 100) + ($4 * 100) + ($iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50)) / 400)) Melee Based
  elseif ((%rsc2 [ $+ [ $8 ] ] >= %rsc3 [ $+ [ $8 ] ]) && (%rsc2 [ $+ [ $8 ] ] >= %rsc1 [ $+ [ $8 ] ])) return $calc(%rsc2 [ $+ [ $8 ] ] + ((($2 * 100) + ($4 * 100) + $iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50) / 400)) Ranged Based
  elseif ((%rsc3 [ $+ [ $8 ] ] >= %rsc1 [ $+ [ $8 ] ]) && (%rsc3 [ $+ [ $8 ] ] >= %rsc2 [ $+ [ $8 ] ])) return $calc(%rsc3 [ $+ [ $8 ] ] + ((($2 * 100) + ($4 * 100) + $iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50) / 400)) Magic Based
}
alias -l exp { return $gettok(0 83 174 276 388 512 650 801 969 1154 1358 1584 1833 2107 2411 2746 3115 3523 3973 4470 5018 5624 6291 7028 7842 8740 9730 10824 12031 13363 14833 16456 18247 20224 22406 24815 27473 30408 33648 37224 41171 45529 50339 55649 61512 67983 75127 83014 91721 101333 111945 123660 136594 150872 166636 184040 203254 224466 247886 273742 302288 333804 368599 407015 449428 496254 547953 605032 668051 737627 814445 899257 992895 1096278 1210421 1336443 1475581 1629200 1798808 1986068 2192818 2421087 2673114 2951373 3258594 3597792 3972294 4385776 4842295 5346332 5902831 6517253 7195629 7944614 8771558 9684577 10692629 11805606 13034431,$1,32) }
alias -l cc1 { tokenize 32 $1 | return $gettok($calc(((($gettok($4,1,46) + 1) - $1) / 0.325) + 1),1,46) }
alias -l cc2 { tokenize 32 $1 | return $gettok($calc(((($gettok($4,1,46) + 1) - $1) / 0.25) + 1),1,46) }
alias -l cc3 { tokenize 32 $1 | return $gettok($calc(((($gettok($4,1,46) + 1) - $1) / 0.4875) + 1),1,46) }
alias -l cc4 { tokenize 32 $1 | return $gettok($calc(((($gettok($4,1,46) + 1)