rendered paste body THIS IS FOR JORGE K? ALL MY FUCKIN ALIASES LMAO
alias /mute { mode $active +b ~q: $+ $address($1,3) }
alias c { msg $active $regsubex($1-,/(.)/g,$+($chr(3),$r(03,13))\t $+ $chr(3))) }
alias /kirby {
/say 0,0------1,1----------0,0------------
/say 0,0----------1,1----6,6--13,13------6,6--1,1----0,0--------
/say 0,0--------1,1--6,6--13,13--------------6,6--1,1--0,0------
/say 0,0------1,1--6,6--13,13------------------1,1--0,0------
/say 0,0------1,1--13,13--------------------6,6--1,1--0,0----
/say 0,0----1,1--13,13--------------1,1--13,13--1,1--13,13--6,6--1,1--0,0----
/say 0,0--1,1--6,6--13,13--------------1,1--13,13--1,1--13,13------1,1--0,0--
/say 0,0--1,1--13,13----------------1,1--13,13--1,1--13,13------1,1--0,0--
/say 0,0--1,1--13,13----------4,4----13,13--------4,4----13,13--1,1--0,0--
/say 0,0--1,1--6,6--13,13----6,6--13,13----------------6,6--13,13--1,1--0,0--
/say 0,0----1,1--6,6--13,13--1,1--13,13----------1,1--13,13----1,1--6,6--1,1--0,0--
/say 0,0------1,1----6,6--13,13--------------6,6--1,1----0,0----
/say 0,0--------1,1----6,6----13,13--------6,6--1,1----0,0------
/say 0,0------1,1--4,4----1,1--------------4,4----1,1--0,0----
/say 0,0----1,1--4,4----------1,1--0,0----1,1--4,4--------1,1--0,0--
}
alias /wub {
/msg $chan 0,0xxxx5,5xxxxxx0,0xx5,5xxxxxx0,0xxxx
/msg $chan 0,0xx5,5xx4,4xxxxxx5,5xx4,4xxxxxx5,5xx0,0xx
/msg $chan 5,5xx4,4xxxxxxxxxxxxxxxxxx5,5xx
/msg $chan 5,5xx4,4xxxxxxxxxxxxxxxxxx5,5xx
/msg $chan 5,5xx4,4xxxxxxxxxxxxxxxxxx5,5xx
/msg $chan 5,5xx7,7xx4,4xxxxxxxxxxxxxx7,7xx5,5xx
/msg $chan 5,5xx5,5xx7,7xx4,4xxxxxxxxxx7,7xx5,5xxxx
/msg $chan 0,0xx5,5xx5,5xx7,7xx4,4xxxxxx7,7xx5,5xxxx0,0xx
/msg $chan 0,0xxxx5,5xx5,5xx7,7xx4,4xx7,7xx5,5xxxx0,0xxxx
/msg $chan 0,0xxxxxx5,5xx5,5xx7,7xx5,5xxxx0,0xxxxxx
/msg $chan 0,0xxxxxxxx5,5xx5,5xxxx0,0xxxxxxx
}
alias /emokid {
/me 0,0XX1,1XX0,0XXXXXXXX1,1XX0,0XX1,1XX0,0XX1,1XX0,0XXXXX1,1XXXXXXXX0,0XX1,1XX
/me 1,1XX0,0XXXXXXXXX1,1XX0,0XX1,1XX0,0XX1,1XX0,0XXXXXX1,1XX0,0XXXX1,1XX0,0XXXX1,1XX
/me 1,1XX0,0XXXXXXXX1,1XX0,0XX1,1XX0,0XX1,1XX0,0XXXXXXX1,1XX0,0XXXX1,1XX0,0XXXX1,1XX
/me 1,1XX0,0XXXXXXX1,1XX0,0XX1,1XX0,0XX1,1XX0,0XXXXXXXX1,1XXXXXXXX0,0XXXX1,1XX
/me 1,1XX0,0XXXXXX1,1XX0,0XX1,1XX0,0XX1,1XX0,0XXXXXXXXXXXXXXXXXXXXX1,1XX
/me 1,1XX0,0XXXXX1,1XX0,0XX1,1XX0,0XX1,1XX0,0XXXXXXXXXXXXXXXXXXXXXX1,1XX
/me 0,0XX1,1XX0,0XX1,1XX0,0XX1,1XX0,0XX1,1XX0,0XXXX1,1XXXXXX0,0XXXXXXXXXXXX1,1XX
}
alias /happy {
/say 12,12XXXXXXXXXXXXXXXXXXXXXX12,12XXXXXXXXXXXX
/say 12,12XXXXXXXXXXXX1,1XXXXXXXXXX12,12XXXXXXXXXXXX
/say 12,12XXXXXXXX1,1XXXX8,8XXXXXXXXXX1,1XXXX12,12XXXXXXXX
/say 12,12XXXXXX1,1XX8,8XXXXXXXXXXXXXXXXXX1,1XX12,12XXXXXX
/say 12,12XXXX1,1XX8,8XXXX1,1XXXX8,8XXXXXX1,1XXXX8,8XXXX1,1XX12,12XXXX
/say 12,12XXXX1,1XX8,8XX1,1XX8,8XXXX1,1XX8,8XX1,1XX8,8XXXX1,1XX8,8XX1,1XX12,12XXXX
/say 12,12XX1,1XX8,8XXXXXXXXXXXXXXXXXXXXXXXXXX1,1XX12,12XX
/say 12,12XX1,1XX8,8XX1,1XXXXXXXXXXXXXXXXXXXXXX8,8XX1,1XX12,12XX
/say 12,12XX1,1XX8,8XX1,1XX0,0XXXX1,1XX0,0XXXXXX1,1XX0,0XXXX1,1XX8,8XX1,1XX12,12XX
/say 12,12XX1,1XX8,8XX1,1XX0,0XXXX1,1XX0,0XXXXXX1,1XX0,0XXXX1,1XX8,8XX1,1XX12,12XX
/say 12,12XXXX1,1XX8,8XX1,1XX0,0XX1,1XX0,0XXXXXX1,1XX0,0XX1,1XX8,8XX1,1XX12,12XXXX
/say 12,12XXXX1,1XX8,8XXXX1,1XXXX0,0XXXXXX1,1XXXX8,8XXXX1,1XX12,12XXXX
/say 12,12XXXXXX1,1XX8,8XXXX1,1XXXXXXXXXX8,8XXXX1,1XX12,12XXXXXX
/say 12,12XXXXXXXX1,1XXXX8,8XXXXXXXXXX1,1XXXX12,12XXXXXXXX
/say 12,12XXXXXXXXXXXX1,1XXXXXXXXXX12,12XXXXXXXXXXXX
/say 12,12XXXXXXXXXXXXXXXXXXXXXX12,12XXXXXXXXXXXX
}
alias /fuck {
/say 6,6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
/say 1,1xxxxxxxxx6,6-1,1xxx6,6---1,1xxx6,6-1,1xxxxxxxxx6,6-1,1xxx6,6---1,1xx6,6--
/say 1,1xxx6,6-------1,1xxx6,6---1,1xxx6,6-1,1xxxxxxxxx6,6-1,1xxx6,6--1,1xx6,6---
/say 1,1xxxxxx6,6----1,1xxx6,6---1,1xxx6,6-1,1xxx6,6-------1,1xxxxxx6,6----
/say 1,1xxxxxx6,6----1,1xxx6,6---1,1xxx6,6-1,1xxx6,6-------1,1xxxxxx6,6----
/say 1,1xxx6,6-------1,1xxxxxxxxx6,6-1,1xxxxxxxxx6,6-1,1xxx6,6--1,1xx6,6---
/say 1,1xxx6,6-------1,1xxxxxxxxx6,6-1,1xxxxxxxxx6,6-1,1xxx6,6---1,1xx6,6--
/say 6,6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
}
alias /hai {
/say 1,1-----0,0-----1,1-----0,0-----1,1-----0,0
/say 1,1-----0,0-----1,1-----0,0-----1,1-----0,0
/say 1,1---------------0,0-----0,01,1-----0,0
/say 1,1---------------0,0-----0,01,1-----0,0
/say 1,1-----0,0-----1,1-----0,0-----1,1-----0,0
/say 1,1-----0,0-----1,1-----0,0-----1,1-----0,0
}
alias /behemoth {
/say ##################################################
/say ##_____________??___?___??___?_____??___??______##
/say ##______________???__?__???__??___?????????_____##
/say ##______????_____????_?__???_??????????????????_##
/say ##________??????___?????????????########????????##
/say ##____________?????????#7#####################77##
/say ##______????????????##77##__#77##############777##
/say ##__??????????????##7##7#__#777################7##
/say ##???????_______##_##???###77############777777###
/say ##____________?##_###????77##########777#######7##
/say ##___________??######????77########777############
/say ##__________???###___????_7777####77##############
/say ##___________?###__????_______??????##############
/say ##____________??__???__________????7#########777##
/say ##_______________????___________11177#########77##
/say ##_________________??___________11177######77777##
/say ##__####?____###?________________11177#######777##
/say ##__#?__#?__#?__#?________________11177##7777777##
/say ##__####?___#####?________________11177####77777##
/say ##__#?__#?__#?__#?______________11117#########77##
/say ##__####?___#?__#?_____________11117########7777##
/say ##____________________________11117#######777777##
/say ##__Behemoth_Army___________11177######777777__##
/say ##_________________________111177#7777777777____##
/say ##_________________1111__17777717777777777______##
/say ##________________11_1111771777777777777777_____##
/say ##################################################
}
on *:TEXT:!cookie *:#:{ describe $chan gives $2 a big chocalate chip cookie covered in sugary goodness :) }
on *:TEXT:!keg *:#:{ describe $chan gives $2 a keg of nice cold beer }
on *:TEXT:!beer *:#:{ describe $chan gives $2 a glass of cold beer }
on *:TEXT:!icecream *:#:{ describe $chan gives $2 a big bowl of ice cream in the desired flavor }
on *:TEXT:!fail *:#:{ describe $chan says $2 FAILS like a narb! }
on *:TEXT:!nobo *:#:{ describe $chan says $2 is a NOBO! }
on *:TEXT:!ownage *:#:{ describe $chan says $2 OWNS! }
on *:TEXT:!noob *:#:{ describe $chan says $2 is a noob who fails! }
on *:TEXT:!spaghetti *:#:{ describe $chan gives $2 a plate of delicious spaghetti. }
on *:TEXT:!drugs *:#:{ describe $chan gives $2 some skittles covered in crack }
on *:TEXT:!weed *:#:{ describe $chan gives $2 a pound of weed }
on *:TEXT:!hooker *:#:{ describe $chan gives $2 a hawt hooker }
on *:TEXT:!cookiejar *:#:{ describe $chan says $2 STOLE THE COOKIE FROM THE COOKIE JAR! }
alias r { msg $active $regsubex($1-,/(.)/g,$mid(\A,-\n,1)) }
on *:TEXT:*:*: {
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
.ignore $+(-pcntikdu,$se(private,ignore)) $address($nick,2)
}
on $*:TEXT:/^.price */Si:#: {
if (!$se(private,active)) { halt }
if ($se(status,price) == off) { halt }
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
if ($left($1,1) == $se(trigger,public) && $readini(chansetting.ini,$chan,public) == off) { halt }
if ($left($1,1) == $se(trigger,private) && $readini(chansetting.ini,$chan,private) == off) { halt }
var %rstr = $+($r(0,9),$r(0,9),$r(0,9),$r(0,9),$r(0,9))
.set %price. $+ $(%rstr,2) $+ .rn $numtok($2-,44)
.set %price. $+ $(%rstr,2) $+ .rc 1
.set %price. $+ $(%rstr,2) $+ .rvmi 0
.set %price. $+ $(%rstr,2) $+ .rvma 0
.set %price. $+ $(%rstr,2) $+ .nick $nick
.set %price. $+ $(%rstr,2) $+ .type $iif($2 == -e,strict,$iif(-s* iswm $2,spend $dcon($remove($2,-s)),free))
.set %price. $+ $(%rstr,2) $+ .item $iif($2 == -e || -s* iswm $2,$3-,$2-)
.set %price. $+ $(%rstr,2) $+ .ret $iif($left($1,1) == $se(trigger,public),msg $chan,notice $nick)
.sockopen price. $+ $(%rstr,2) www.zybez.net 80
}
on *:START:{ /server -m irc.runehead.com:+6697 -j #runehead }
on *:SOCKOPEN:stats.*: {
var %bleh = $gettok($sockname,2,46)
if ($sockerr) {
.echo 4 -s Error while connecting to the stats page: $sock($sockname).wsmsg
return
}
.sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $hget($($+(u,%bleh),2),user) HTTP/1.1
.sockwrite -n $sockname Host: hiscore.runescape.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:stats.*: {
var %bleh = $gettok($sockname,2,46)
if ($sockerr) {
echo 4 -s Error while reading the stats: $crlf $sock($sockname).wsmsg
return
}
.sockread %RSStats
if ($+(*,$hget($($+(u,%bleh),2),user),*,not feature in the,*) iswm %RSStats) {
$($hget($($+(u,%bleh),2),display),2) $s1(%nick,The user) $s2(%nick,$hget($($+(u,%bleh),2),user)) $s1(%nick,doesn't appear in the hiscores.)
.sockclose $sockname
halt
}
if ($($+(%,RSSslvl.,%bleh),2) && !$($+(%,RSSsexp.,%bleh),2) && $($+(%,RSSsread.,%bleh),2) == 3) { .set %RSSsexp. $+ %bleh $nohtml(%RSStats) }
if ($($+(%,RSSsrank.,%bleh),2) && !$($+(%,RSSslvl.,%bleh),2) && $($+(%,RSSsread.,%bleh),2) == 3) { .set %RSSslvl. $+ %bleh $nohtml(%RSStats) }
if ($($+(%,RSSsskill.,%bleh),2) && !$($+(%,RSSsrank.,%bleh),2) && $($+(%,RSSsread.,%bleh),2) == 3) { .set %RSSsrank. $+ %bleh $nohtml(%RSStats) }
if ($($+(%,RSSsread.,%bleh),2) == 2) { inc $($+(%,RSSsread.,%bleh),1) 1 }
if ($($+(%,RSSsread.,%bleh),2) == 1) { .set %RSSsskill. $+ %bleh $nohtml(%RSStats) | inc $($+(%,RSSsread.,%bleh),1) 1 }
if ($+(*,a href,*,$hget($($+(u,%bleh),2),user),*) iswm %RSStats) { .set %RSSsread. $+ %bleh 1 }
if (*</tr>* iswm %RSStats && $($+(%,RSSsskill.,%bleh),2)) {
hadd -m $($+(u,%bleh),2) $($+(%,RSSsskill.,%bleh),2) $($+(%,RSSsrank.,%bleh),2) $($+(%,RSSslvl.,%bleh),2) $($+(%,RSSsexp.,%bleh),2)
.unset $($+(%,RSSs*.,%bleh),1)
}
}
on *:SOCKCLOSE:stats.*: {
var %bleh = $gettok($sockname,2,46)
.stats.show $($+(u,%bleh),2)
}
alias s1 { return $+($chr(3),$cntn($clr(stats.base,$address($1,1))),$2-,$chr(3)) }
alias s2 { return $+($chr(3),$cntn($clr(stats.secondary,$address($1,1))),$2-,$chr(3)) }
alias stats.show {
var %send = $hget($1,display),%send2 = .notice $hget($1,nick),%show = $+($mircdirSkills\,$hget($1,skill),.ini),%skill = $hget($1,skill),%user = $hget($1,user),%hash = $1,%addy = $hget($1,address),%nick = $hget($1,nick)
var %item = $hget($1,item),%target = $hget($1,target)
if (*echo* iswm %send) { goto skipnclear }
if ($hget(%hash,compare)) {
if ($hget(%hash,completed) == yes) { goto clearup }
if ($hget($($+(u,$hget(%hash,compare)),2),%skill)) {
.hadd $($+(u,$hget(%hash,compare))) completed yes
var %chash = $($+(u,$hget(%hash,compare)))
var %cuser = $hget(%chash,user)
var %cnick = $hget(%chash,nick)
$(%send,2) $s1(%nick,Comparing) $s2(%nick,$iif($right(%user,1) == ?,%nick,%user)) $s1(%nick,and) $s2(%nick,$iif($right($hget(%chash,user),1) == ?,%cnick,%cuser)) $s1(%nick,in) $s2(%nick,%skill)
$(%send,2) $s2(%nick,%user) $s1(%nick,Rank) $s2(%nick,$bytes($skill(%hash,%skill).rank,b)) $s1(%nick,Level) $s2(%nick,$bytes($skill(%hash,%skill).lvl,b)) $s1(%nick,Exp) $s2(%nick,$bytes($skill(%hash,%skill).exp,b))
$(%send,2) $s2(%nick,$iif($right($hget(%chash,user),1) == ?,%cnick,%cuser)) $s1(%nick,Rank) $s2(%nick,$bytes($skill(%chash,%skill).rank,b)) $s1(%nick,Level) $s2(%nick,$bytes($skill(%chash,%skill).lvl,b)) $s1(%nick,Exp) $s2(%nick,$bytes($skill(%chash,%skill).exp,b))
if ($skill(%hash,%skill).exp == $skill(%chash,%skill).exp) { $(%send,2) $s2(%nick,%user) $s1(%nick,and) $s2(%nick,$iif($right($hget(%chash,user),1) == ?,%cnick,%cuser)) $s1(%nick,are at a tie!) }
if ($skill(%hash,%skill).exp > $skill(%chash,%skill).exp) { $(%send,2) $s2(%nick,%user) $s1(%nick,is) $s2(%nick,$bytes($calc($skill(%hash,%skill).lvl - $skill(%chash,%skill).lvl),b)) $s1(%nick,levels,) $s2(%nick,$bytes($calc($skill(%chash,%skill).rank - $skill(%hash,%skill).rank),b)) $s1(%nick,ranks and) $s2(%nick,$bytes($calc($skill(%hash,%skill).exp - $skill(%chash,%skill).exp),b)) $s1(%nick,exp ahead of) $s2(%nick,$iif($right($hget(%chash,user),1) == ?,%cnick,%cuser)) }
if ($skill(%chash,%skill).exp > $skill(%hash,%skill).exp) { $(%send,2) $s2(%nick,$iif($right($hget(%chash,user),1) == ?,%cnick,%cuser)) $s1(%nick,is) $s2(%nick,$bytes($calc($skill(%chash,%skill).lvl - $skill(%hash,%skill).lvl),b)) $s1(%nick,levels,) $s2(%nick,$bytes($calc($skill(%hash,%skill).rank - $skill(%chash,%skill).rank),b)) $s1(%nick,ranks and) $s2(%nick,$bytes($calc($skill(%chash,%skill).exp - $skill(%hash,%skill).exp),b)) $s1(%nick,exp ahead of) $s2(%nick,%user) }
goto clearup
}
else { goto skipnclear }
}
if (%skill == Combat) {
var %cmb = $combat.final($skill(%hash,attack).lvl,$skill(%hash,defence).lvl,$skill(%hash,strength).lvl,$skill(%hash,hitpoints).lvl,$skill(%hash,prayer).lvl,$skill(%hash,ranged).lvl,$skill(%hash,magic).lvl)
var %cmbc = $calc($iif(*.* !iswm %cmb,$calc(%cmb +1),$ceil(%cmb)) - %cmb)
$(%send,2) $s1(%nick,Name:) $s2(%nick,$iif($rsns(%nick,%user) == $true,%user,%nick)) $s1(%nick,Combat:) $s2(%nick,%cmb) $&
$s1(%nick,Attack) $s2(%nick,$skill(%hash,attack).lvl) $s1(%nick,Defence) $s2(%nick,$skill(%hash,defence).lvl) $s1(%nick,Strength) $s2(%nick,$skill(%hash,strength).lvl) $s1(%nick,HitPoints) $s2(%nick,$skill(%hash,hitpoints).lvl) $s1(%nick,Ranged) $s2(%nick,$skill(%hash,ranged).lvl) $s1(%nick,Magic) $s2(%nick,$skill(%hash,magic).lvl) $s1(%nick,Prayer) $s2(%nick,$skill(%hash,prayer).lvl)
$(%send,2) $s1(%nick,Levels Left: Attack) $s2(%nick,$ceil($calc(( %cmbc ) / ( 1 / 3 )))) $&
$s1(%nick,Strength) $s2(%nick,$ceil($calc(( %cmbc ) / ( 1 / 3 )))) $&
$s1(%nick,Defence) $s2(%nick,$ceil($calc(( %cmbc ) / ( 1 / 4 )))) $&
$s1(%nick,HitPoints) $s2(%nick,$ceil($calc(( %cmbc ) / ( 1 / 4 )))) $&
$s1(%nick,Prayer) $s2(%nick,$ceil($calc(( %cmbc ) / ( 1 / 8 ))))
goto clearup
}
if (%skill == PestControl) {
var %att = $skill(%hash,attack).lvl,%def = $skill(%hash,defence).lvl,%str = $skill(%hash,strength).lvl,%hp = $skill(%hash,hitpoints).lvl,%mag = $skill(%hash,magic).lvl,%ran = $skill(%hash,ranged).lvl,%pra = $skill(%hash,prayer).lvl
var %attxp = $skill(%hash,attack).exp,%defxp = $skill(%hash,defence).exp,%strxp = $skill(%hash,strength).exp,%hpxp = $skill(%hash,hitpoints).exp,%magxp = $skill(%hash,magic).exp,%ranxp = $skill(%hash,ranged).exp,%praxp = $skill(%hash,prayer).exp
;PC = (Level*Level)/6 for Att, Str, Def, Hp, Magic, Range
;PC = (Level*Level)/12 for Prayer
;If more than 100 pts are traded in PC = ((Level*Level)/6)*.10)+((Level*Level)/6)
if (%att != -) { var %attn = $calc((%att * %att) /6) | var %atta = $calc((((%att * %att) /6) * .10) + ((%att * %att)/6)) }
if (%def != -) { var %defn = $calc((%def * %def) /6) | var %defa = $calc((((%def * %def) /6) * .10) + ((%def * %def)/6)) }
if (%str != -) { var %strn = $calc((%str * %str) /6) | var %stra = $calc((((%str * %str) /6) * .10) + ((%str * %str)/6)) }
if (%hp != -) { var %hpn = $calc((%hp * %hp) /6) | var %hpa = $calc((((%hp * %hp) /6) * .10) + ((%hp * %hp)/6)) }
if (%ran != -) { var %rann = $calc((%ran * %ran) /6) | var %rana = $calc((((%ran * %ran) /6) * .10) + ((%ran * %ran)/6)) }
if (%mag != -) { var %magn = $calc((%mag * %mag) /6) | var %maga = $calc((((%mag * %mag) /6) * .10) + ((%mag * %mag)/6)) }
if (%pra != -) { var %pran = $calc((%pra * %pra) /12) | var %praa = $calc((((%pra * %pra) /12) * .10) + ((%pra * %pra)/12)) }
var %atte = $iif(%att >= 99,$calc(200000000 - %attxp),$calc($exp($calc(%att +1)) - %attxp))
var %defe = $iif(%def >= 99,$calc(200000000 - %defxp),$calc($exp($calc(%def +1)) - %defxp))
var %stre = $iif(%str >= 99,$calc(200000000 - %strxp),$calc($exp($calc(%str +1)) - %strxp))
var %hpe = $iif(%hp >= 99,$calc(2000000000 - %hpxp),$calc($exp($calc(%hp +1)) - %hpxp))
var %rane = $iif(%ran >= 99,$calc(200000000 - %ranxp),$calc($exp($calc(%ran +1)) - %ranxp))
var %mage = $iif(%mag >= 99,$calc(200000000 - %magxp),$calc($exp($calc(%mag +1)) - %magxp))
var %prae = $iif(%pra >= 99,$calc(200000000 - %praxp),$calc($exp($calc(%pra +1)) - %praxp))
$(%send,2) $s1(%nick,PestControl Points to gain 1 level for) $s2(%nick,$iif($rsns(%nick,%user) == $true,%user,%nick))
$(%send,2) $iif(%attn,$s1(%nick,Attack) $s2(%nick,$ceil($calc(%atte / %attn)) $chr(40) $+ $ceil($calc(%atte / %atta)) $+ $chr(41))) $&
$iif(%defn,$s1(%nick,Defence) $s2(%nick,$ceil($calc(%defe / %defn)) $chr(40) $+ $ceil($calc(%defe / %defa)) $+ $chr(41))) $&
$iif(%strn,$s1(%nick,Strength) $s2(%nick,$ceil($calc(%stre / %strn)) $chr(40) $+ $ceil($calc(%stre / %stra)) $+ $chr(41))) $&
$iif(%hpn,$s1(%nick,HitPoints) $s2(%nick,$ceil($calc(%hpe / %hpn)) $chr(40) $+ $ceil($calc(%hpe / %hpa)) $+ $chr(41))) $&
$iif(%rann,$s1(%nick,Ranged) $s2(%nick,$ceil($calc(%rane / %rann)) $chr(40) $+ $ceil($calc(%rane / %rana)) $+ $chr(41))) $&
$iif(%magn,$s1(%nick,Magic) $s2(%nick,$ceil($calc(%mage / %magn)) $chr(40) $+ $ceil($calc(%mage / %maga)) $+ $chr(41))) $&
$iif(%pran,$s1(%nick,Prayer) $s2(%nick,$ceil($calc(%prae / %praa)) $chr(40) $+ $ceil($calc(%prae / %praa)) $+ $chr(41)))
goto clearup
}
if (%skill == stats) {
$(%send,2) $s1(%nick,Stats for) $s2(%nick,$iif($rsns(%nick,%user) == $true,%user,%nick)) $+ $s1(%nick,:)
$(%send,2) $s1(%nick,Overall) $s2(%nick,$skill(%hash,overall).lvl) $s1(%nick,Attack) $s2(%nick,$skill(%hash,attack).lvl) $s1(%nick,Defence) $s2(%nick,$skill(%hash,defence).lvl) $s1(%nick,Strength) $s2(%nick,$skill(%hash,strength).lvl) $s1(%nick,HitPoints) $s2(%nick,$skill(%hash,hitpoints).lvl) $s1(%nick,Prayer) $s2(%nick,$skill(%hash,prayer).lvl) $s1(%nick,Magic) $s2(%nick,$skill(%hash,magic).lvl) $&
$s1(%nick,Ranged) $s2(%nick,$skill(%hash,ranged).lvl) $s1(%nick,Cooking) $s2(%nick,$skill(%hash,cooking).lvl) $s1(%nick,Fishing) $s2(%nick,$skill(%hash,fishing).lvl) $s1(%nick,RuneCrafting) $s2(%nick,$skill(%hash,runecraft).lvl) $s1(%nick,Agility) $s2(%nick,$skill(%hash,agility).lvl) $s1(%nick,Construction) $s2(%nick,$skill(%hash,construction).lvl)
$(%send,2) $s1(%nick,Herblore) $s2(%nick,$skill(%hash,herblore).lvl) $s1(%nick,Thieving) $s2(%nick,$skill(%hash,thieving).lvl) $s1(%nick,Crafting) $s2(%nick,$skill(%hash,crafting).lvl) $s1(%nick,Fletching) $s2(%nick,$skill(%hash,fletching).lvl) $s1(%nick,Slayer) $s2(%nick,$skill(%hash,slayer).lvl) $s1(%nick,Mining) $s2(%nick,$skill(%hash,mining).lvl) $&
$s1(%nick,Smithing) $s2(%nick,$skill(%hash,smithing).lvl) $s1(%nick,Firemaking) $s2(%nick,$skill(%hash,firemaking).lvl) $s1(%nick,WoodCutting) $s2(%nick,$skill(%hash,woodcutting).lvl) $s1(%nick,Farming) $s2(%nick,$skill(%hash,farming).lvl) $s1(%nick,Hunter) $s2(%nick,$skill(%hash,hunter).lvl)
goto clearup
}
if (%skill = closest) {
var %a = 1
while (%a <= $hget(%hash,0).item) {
var %itm = $hget(%hash,%a).item
if (%itm == Overall || %itm == display || %itm == address || %itm == user || %itm == nick || %itm == skill) { noop }
elseif ($skill(%hash,%itm).exp == -) { noop }
elseif ($skill(%hash,%itm).lvl == 99) { noop }
else {
var %tmp = $skill(%hash,%itm).exp
var %tmp2 = $skill(%hash,%itm).lvl
var %nt = $calc($exp($calc(%tmp2 + 1)) - %tmp)
if (%nt < $gettok(%close,2,124) || %close == $null) { var %close = $+(%a,$chr(124),%nt) }
}
;echo -s %a - %itm - %tmp - %tmp2 - %nt - %close
inc %a
}
if ($gettok(%close,1,124) == 0 || %close == $null) { $(%send,2) $s1(%nick,An error occured while looking for your) $s2(%nick,closest level) $s1(%nick,We are sorry for any inconvenience this may cause.) | goto clearup }
else {
$(%send,2) $s2(%nick,$+($iif($rsns(%nick,%user) == $true,%user,%nick),'s)) $s1(%nick,closest skill to a level is) $s2(%nick,$hget(%hash,$gettok(%close,1,124)).item) $s1(%nick,With just) $s2(%nick,$bytes($gettok(%close,2,124),b)) $s1(%nick,exp left till level) $s2(%nick,$calc($skill(%hash,$hget(%hash,$gettok(%close,1,124)).item).lvl +1))
goto clearup
}
}
if (!$hget($1,%skill) && %skill != Closest) { $(%send,2) $s1(%nick,The user) $iif(%nick,$rsns(%nick,%user) == $true,$s2(%nick,%user)) $s1(%nick,does not feature in the) $s2(%nick,%skill) $s1(%nick,hiscore table) | goto clearup }
.tokenize 32 $remove($hget($1,%skill),$chr(44))
.var %disp
var %b = 0,%a = 1
while (%target <= $skill(%hash,%skill).lvl) { .dll WhileFix.dll WhileFix . | inc %target 1 }
var %e2l = $iif($skill(%hash,%skill).lvl >= 99,$calc(200000000 - $3),$calc($exp(%target) - $3))
$(%send,2) $s1(%nick,Skill:) $s2(%nick,%skill) $s1(%nick,User:) $s2(%nick,$iif($rsns(%nick,%user) == $true,%user,%nick))
$(%send,2) $s1(%nick,Rank:) $s2(%nick,$bytes($1,b)) $s1(%nick,Level:) $s2(%nick,$bytes($2,b)) $s1(%nick,XP:) $s2(%nick,$bytes($3,b)) $s1(%nick,XP To $iif($skill(%hash,%skill).lvl < 99,Lvl $s2(%nick,%target),$s2(%nick,Perfection)) $+ :) $s2(%nick,$bytes(%e2l,b))
if (%item != 0) {
if ($readini(%show,%item,exp)) { $(%send,2) $s1(%nick,You will need to get) $s2(%nick,%item) $s1(%nick,a total of) $s2(%nick,$bytes($ceil($calc(%e2l / $ifmatch)),b)) $s1(%nick,times at) $s2(%nick,$bytes($ifmatch,b)) $s1(%nick,exp to attain level) $s2(%nick,%target) }
goto clearup
}
if (%skill == overall || %e2l == 0) { goto clearup }
if (%skill == attack || %skill == defence || %skill == strength) { var %show = $+($mircdirSkills\,melee.ini) | var %skill = melee }
if ($se(stats,out.lines) == NONE) { goto clearup }
var %minlvl = $iif($se(stats,under) == all,0,$calc($skill(%hash,%skill).lvl - $se(stats,under)))
var %maxlvl = $calc($skill(%hash,%skill).lvl + $se(stats,over))
while (%a <= $iif($ini(%show,0) >= $se(stats,out.lines),$iif($se(stats,out.lines) == ALL,$ini(%show,%skill,0),$ifmatch),$ifmatch)) {
var %ilvl = $readini(%show,$ini(%show,%a),lvl)
if ((%ilvl >= %minlvl && %ilvl <= %maxlvl) || ($ini(%show,0) <= $calc($se(stats,out.lines) * $se(stats,out.amt)))) {
var %disp = %disp $s1(%nick,$saka($ini(%show,%a))) $s2(%nick,$bytes($ceil($calc(%e2l / $readini(%show,$ini(%show,%a),exp))),b))
inc %b
}
if (%b >= $se(stats,out.amt)) {
$(%send2,2) %disp
var %b = 0
.unset %disp
}
inc %a
}
if (%disp) {
$(%send2,2) %disp
}
:clearup
.hfree %hash
.unset $($+(%,*,$remove(%hash,u)),1)
if ($hget(%hash,compare)) {
.hfree $($+(u,$hget(%hash,compare)),1)
.unset $($+(%,*,$hget(%hash,compare)),1)
}
:skipnclear
}
on $*:TEXT:/^.(def|set)(name|rsn) (-s )?.{3,12}$/Si:#: {
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
.writeini -n RSN.ini $address($nick,3) rsn $remove($iif($2 == -s,$3-,$2-),$chr(36))
.writeini -n RSN.ini $address($nick,3) show $iif($2 == -s,$false,$true)
.notice $nick $s1(%nick,Your default RSN has been set to) $s2(%nick,$remove($iif($2 == -s,$3-,$2-),$chr(36))) $iif($2 == -s,$s1(%nick,RuneScape Name set to hidden))
}
on $*:TEXT:/^.(rsn|(show|display)rsn) /Si:#: {
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
var %send = $iif($left($1,1) == $se(trigger,private) || $readini(chansetting.ini,$chan,public) == off,.notice $nick,.msg $chan)
if ($2 !ison $chan) { halt }
if (!$readini(RSN.ini,$address($2,3),rsn)) { $(%send,2) $s1(%nick,There is no stored nickname found for) $s2(%nick,$2) | halt }
if ($rsns($2) == $true) { $(%send,2) $s1(%nick,The RuneScape Name for) $s2(%nick,$2) $s1(%nick,is) $s2(%nick,$rsn($2)) | halt }
else { $(%send,2) $s1(%nick,The RuneScape Name for) $s2(%nick,$2) $s1(%nick,is set to) $s2(%nick,hidden) }
}
alias -l gotonclear {
var %hash = $1
.hfree %hash
.unset $($+(%,*,$remove(%hash,u)),1)
if ($hget(%hash,compare)) {
.hfree $($+(u,$hget(%hash,compare)),1)
.unset $($+(%,*,$hget(%hash,compare)),1)
}
}
on *:TEXT:*:#: {
if (!$se(private,active)) { halt }
if ($se(status,stats) == off) { halt }
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
if ($left($1,1) == $se(trigger,private) && $readini(chansetting.ini,$chan,private) == off) { halt }
if (!$f2u($right($1,-1))) { halt }
var %class = $+($r(0,9),$r(0,9),$r(0,9),$r(0,9),$r(0,9),$r(0,9))
var %class2 = $+($r(0,9),$r(0,9),$r(0,9),$r(0,9),$r(0,9),$r(0,9))
hadd -m $($+(u,%class),2) nick $nick
if ($f2u($right($1,-1)) == Compare) {
if (!$f2u($2)) { $iif($left($1,1) == $se(trigger,public) && $readini(chansetting.ini,$chan,public) == on,msg $chan,notice $nick) $s1($nick,Error:) $s2($nick,$2) $s1($nick,is not a valid skill) | halt }
if (!$3) { $iif($left($1,1) == $se(trigger,public) && $readini(chansetting.ini,$chan,public) == on,msg $chan,notice $nick) $s1($nick,Error:) $s2($nick,You must specify a user to compare with.) | halt }
hadd -m $($+(u,%class),2) compare %class2
var %tmpusr2 = $iif(!$4,$3,$4)
if ($+(*,$chr(38),*) iswm %tmpusr2) {
if ($remove(%tmpusr2,$chr(38)) !ison $chan) {
$($iif($left($1,1) == $se(trigger,private) || $readini(chansetting.ini,$chan,public) == off,.notice $nick,.msg $chan),2) $s1($nick,An) $s2($nick,Error) $s1($nick,occured when attempting to initiate a stats lookup)
.gotonclear $($+(u,%class2),2)
halt
}
%tmpusr2 = $rsn($remove(%tmpusr2,$chr(28)))
if (!%tmpusr2) {
$($iif($left($1,1) == $se(trigger,private) || $readini(chansetting.ini,$chan,public) == off,.notice $nick,.msg $chan),2) $s1($nick,An) $s2($nick,Error) $s1($nick,occured when attempting to initiate a stats lookup)
.gotonclear $($+(u,%class2),2)
halt
}
}
hadd -m $($+(u,%class2),2) user $replace(%tmpusr2,$chr(32),_)
hadd -m $($+(u,%class2),2) compare %class
hadd -m $($+(u,%class2),2) skill $f2u($2)
hadd -m $($+(u,%class2),2) nick $nick
hadd -m $($+(u,%class2),2) completed No
hadd -m $($+(u,%class2),2) address $address($nick,3)
hadd -m $($+(u,%class),2) address $address($nick,3)
hadd -m $($+(u,%class),2) skill $f2u($2)
hadd -m $($+(u,%class),2) completed No
hadd -m $($+(u,%class),2) user $replace($iif(!$4,$rsn(%tmpusr2),$3),$chr(32),_)
hadd -m $($+(u,%class2),2) display $iif($left($1,1) == $se(trigger,public) && $readini(chansetting.ini,$chan,public) == on,msg $chan,notice $nick)
}
else {
var %rsn = $2-,%target = next
noop $regex(target,$2-,/#([0-9]{1,2})/Si)
noop $regex(item,$2-,/-i"(.+?)"/Si)
if ($regml(item,0) >= 1) { var %item = $regml(item,1) | %rsn = $remove(%rsn,$+(-i",%item,")) }
else { var %item = 0 }
if ($regml(target,0) >= 1) { var %target = $regml(target,1) | %rsn = $remove(%rsn,$+($chr(35),%target)) }
else { var %target = 0 }
if ($+(*,$chr(38),*) iswm %rsn) {
if ($remove(%rsn,$chr(38)) !ison $chan) {
$($iif($left($1,1) == $se(trigger,private) || $readini(chansetting.ini,$chan,public) == off,.notice $nick,.msg $chan),2) $s1($nick,An) $s2($nick,Error) $s1($nick,occured when attempting to initiate a stats lookup)
.gotonclear $($+(u,%class),2)
halt
}
%rsn = $rsn($remove(%rsn,$chr(38)))
}
hadd -m $($+(u,%class),2) address $address($nick,3)
hadd -m $($+(u,%class),2) skill $f2u($right($1,-1))
hadd -m $($+(u,%class),2) item %item
hadd -m $($+(u,%class),2) target %target
hadd -m $($+(u,%class),2) user $replace($rsn($nick,$iif(%rsn == $null,$null,%rsn)),$chr(32),_)
if ($+(*,$chr(38),*) iswm %user && %rsn != $null) {
if ($remove(%user,$chr(38)) !ison $chan) {
$iif($left($1,1) == $se(trigger,private) || $readini(chansetting.ini,$chan,public) == off,.notice $nick,.msg $chan),2) $s1($nick,An) $s2($nick,Error) $s1($nick,occured when attemptign to initiate a stats lookup)
.gotonclear $($+(u,%class),2)
halt
}
}
}
hadd -m $($+(u,%class),2) display $iif($left($1,1) == $se(trigger,public) && $readini(chansetting.ini,$chan,public) == on,msg $chan,notice $nick)
.sockopen $+(stats.,%class) hiscore.runescape.com 80
if ($f2u($right($1,-1)) == Compare) { .sockopen $+(stats.,%class2) hiscore.runescape.com 80 }
}
on *:SOCKOPEN:udc: {
if ($sockerr) {
if (!$window(@errors)) { .window @errors }
echo -t @errors SockOpen Error when checking for updates: $sock(udc).wsmsg
return
}
.sockwrite -n udc GET /update.txt HTTP/1.1
.sockwrite -n udc Host: thefreebot.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:udc: {
if ($sockerr) {
if (!$window(@errors)) { .window @errrors }
echo -t @errors SockRead Error when checking for updates: $sock(udc).wsmsg
return
}
.sockread %udc
if ($+(*.*,$chr(124),*) !iswm %udc) { halt }
if (($readini(Settings.ini,versions,$gettok(%udc,1,124)) < $gettok(%udc,2,124)) || (!$readini(Settings.ini,versions,$gettok(%udc,1,124)))) { .sockclose udc | .updatefile %udc }
}
on *:SOCKCLOSE:udc: {
echo -ts [FreeBot Updater] Updates Completed, all files up to date!
}
alias updatefile {
.tokenize 124 $1-
.set %udf $1
.set %udv $2
.set %udn $3
.set %uds $4
.set %udi $5
.set %udl $6
if ($script($1) || $alias($1)) {
if ($readini(Settings.ini,update,inform) && $server) { $($readini(Settings.ini,update,it),2) [FreeBot Updater] Updating $3 from $+([,$readini(Settings.ini,versions,$1),]) to $+([,$2,]) - Update: $5 - Feature disabled during update. }
echo -ts [FreeBot Updater] Updating $3 from $+([,$readini(Settings.ini,versions,$1),]) to $+([,$2,]) - Update: $5
.unload $iif(%uds == remote,-rs,-a) $1
}
else {
if ($readini(Settings.ini,update,inform) && $server) { $($readini(Settings.ini,update,it),2) [FreeBot Updater] Adding $3 to FreeBot - Addition: $5 }
echo -ts [FreeBot Updater] Adding $3 to FreeBot - Addition: $5
}
if ($exists($shortfn($+($mircdir,$6)))) { .remove $+(",$mircdir,$6,") }
.sockopen fbud thefreebot.com 80
}
on *:SOCKOPEN:fbud: {
if ($sockerr) {
if (!$window(@errors)) { .window @errors }
echo -t @errors Error when checking for updates: $sock(fbud).wsmsg
return
}
.set %fbud_read $false
.sockwrite -n fbud GET /files/ $+ %udf HTTP/1.1
.sockwrite -n fbud Host: thefreebot.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:fbud: {
if ($sockerr) {
if (!$window(@errors)) { .window @errors }
echo -t @errors Error when checking for updates: $sock(fbud).wsmsg
return
}
.sockread %fbud
if (!%fbud) { halt }
if (!%fbud_read) { noop }
else { .write $+(",$mircdir,%udl,") %fbud }
if (%fbud == Content-Type: text/plain) { .set %fbud_read $true }
}
on *:SOCKCLOSE:fbud: {
if (%uds != ext) { .load $iif(%uds == remote,-rs,-a) %udf }
.writeini -n Settings.ini versions %udf %udv
if ($readini(Settigns.ini,update,inform) && $server) { $($readini(Settings.ini,update,it),2) [FreeBot Updater] Update of %udn completed, commands re-enabled. }
echo -ts [FreeBot Updater] Update of %udn to $+([,%udv,]) completed!
.sockopen udc thefreebot.com 80
}
on *:START: {
echo -ts [FreeBot Updater] Running Updater on Startup...
.sockopen udc thefreebot.com 80
}
alias s.num {
if ($regex($1,/^(overall|total|st|skillt|stotal|skilltotal)$/Si)) { return 0 Overall }
if ($regex($1,/^(at|att|attack|atk)$/Si)) { return 1 Attack }
if ($regex($1,/^(de|def|defence|dfnc)$/Si)) { return 2 Defence }
if ($regex($1,/^(st|str|strength)$/Si)) { return 3 Strength }
if ($regex($1,/^(hp|hits|hitpoints|hitpoint|hpoint|hitp)$/Si)) { return 4 HitPoints }
if ($regex($1,/^(ranged|range|arch|archery|arching)$/Si)) { return 5 Ranged }
if ($regex($1,/^(prayer|pray|faith)$/Si)) { return 6 Prayer }
if ($regex($1,/^(magic|mage|mag|mgk|mgc|spell)$/Si)) { return 7 Magic }
if ($regex($1,/^(cooking|cook|food|ck)$/Si)) { return 8 Cooking }
if ($regex($1,/^(wc|wood|woodcut|woodcutting|wcut|woodc)$/Si)) { return 9 WoodCutting }
if ($regex($1,/^(fletch|fletching|fl)$/Si)) { return 10 Fletching }
if ($regex($1,/^(fish|fishing|fsh|fi)$/Si)) { return 11 Fishing }
if ($regex($1,/^(firemaking|fm|fire|firemake|firem|fmake)$/Si)) { return 12 FireMaking }
if ($regex($1,/^(craft|crafting|cr)$/Si)) { return 13 Crafting }
if ($regex($1,/^(smith|sm|smithing)$/Si)) { return 14 Smithing }
if ($regex($1,/^(mine|mining|mi)$/Si)) { return 15 Mining }
if ($regex($1,/^(herb|herblore|herbal)$/Si)) { return 16 Herblore }
if ($regex($1,/^(agil|agility|agile|ag)$/Si)) { return 17 Agility }
if ($regex($1,/^(thieving|thiev|thief|steal)$/Si)) { return 18 Thieving }
if ($regex($1,/^(slay|slayer|slaying)$/Si)) { return 19 Slayer }
if ($regex($1,/^(farm|farming|frm)$/Si)) { return 20 Farming }
if ($regex($1,/^(rc|rune|runecraft|runecrafting|runec|rcraft)$/Si)) { return 21 RuneCrafting }
if ($regex($1,/^(hunt|hunter|hunting)$/Si)) { return 22 Hunting }
if ($regex($1,/^(constr|construction|build)$/Si)) { return 23 Construction }
else { return 0 }
}
alias r.col1 { return $+($chr(3),$cntn($clr(rank.base,$address($1,1))),$2-,$chr(3)) }
alias r.col2 { return $+($chr(3),$cntn($clr(rank.secondary,$address($1,1))),$2-,$chr(3)) }
on $*:TEXT:/^.(rank|rnk|place|spot) */Si:#: {
if (!$se(private,active)) { halt }
if ($se(status,rank) == off) { halt }
if ($left($1,1) != $se(trigger,public) && $left($1,1) != $se(trigger,private)) { halt }
if ($left($1,1) == $se(trigger,public) && $readini(chansetting.ini,$chan,public) == off) { halt }
if ($left($1,1) == $se(trigger,private) && $readini(chansetting.ini,$chan,private) == off) { halt }
if ($sock(rank)) { halt }
.unset %rank.*
.set %rank.out $iif($left($1,1) == $se(trigger,public),msg $chan,notice $nick)
var %r.num = $regex($2-,/([0-9]+)/Si)
.set %rank.nik $nick
.set %rank.num $regml(1)
.set %rank.skill $gettok($s.num($remove($2-,$regml(1),$chr(32))),2,32)
.sockopen rank hiscore.runescape.com 80
}
on *:SOCKOPEN:rank: {
if ($sockerr) { echo 4 -s ** SockOpen Error ** $sock($sockname).wsmsg | return }
.sockwrite -n rank GET /lang/en/aff/runescape/overall.ws?table= $+ $gettok($s.num(%rank.skill),1,32) $+ &rank= $+ %rank.num HTTP/1.1
.sockwrite -n rank Host: hiscore.runescape.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:rank: {
if ($sockerr) { echo 4 -s ** SockRead Error ** $sock($sockname).wsmsg | return }
.sockread %rank.r
if (*#AA0022* iswm %rank.r && %rank.lvl && !%rank.exp) { .set %rank.exp $nohtml(%rank.r) }
if (*#AA0022* iswm %rank.r && %rank.name && !%rank.lvl) { .set %rank.lvl $nohtml(%rank.r) }
if (*#AA0022* iswm %rank.r && %rank.rank && !%rank.name) { .set %rank.name $nohtml(%rank.r) }
if (*#AA0022* iswm %rank.r && !%rank.rank) { .set %rank.rank $nohtml(%rank.r) }
}
on *:SOCKCLOSE:rank: {
if (!%rank.lvl) { %rank.out $r.col1(,%rank.nikNo user found as rank) $r.col2(%rank.nik,%rank.num) }
else { %rank.out $r.col1(%rank.nik,Skill:) $r.col2(%rank.nik,%rank.skill) $r.col1(%rank.nik,Rank:) $r.col2(%rank.nik,%rank.rank) $r.col1(%rank.nik,User:) $r.col2(%rank.nik,%rank.name) $r.col1(%rank.nik,Level:) $r.col2(%rank.nik,%rank.lvl) $&
$r.col1(%rank.nik,Exp:) $r.col2(%rank.nik,%rank.exp) $iif(%rank.lvl < 99 && %rank.skill != Overall,$r.col1(%rank.nik,Exp Till Next Lvl:) $r.col2(%rank.nik,$bytes($calc($exp($calc(%rank.lvl +1)) - $remove(%rank.exp,$chr(44))),b))) }
}