rendered paste body
on $*:TEXT:/^[!](set)?(def|name|rsn)/Si:#:{
if ($2) {
if ($len($remove($2-,$)) <= 12) {
notice $nick 10[04Defname10]: Defname for04 $address($nick,3) 10set to:04 $remove($2-,$)
writeini defname.ini name $address($nick,3) $remove($2-,$)
}
else { notice $nick 10[04Defname10]: The runescape name can only be 041210 letters long! }
}
else { notice $nick 10[04Defname10]: You need to enter a defname to set! }
}
on *:TEXT:*:#:{
if ($rsstat($1)) {
if ($len($2-) <= 12) {
var %ticks $ticks
set $+(%,prefix.,%ticks) $iif(@* iswm $1,msg $chan,notice $nick)
sockopen $+(skill.,%ticks) hiscore.runescape.com 80
set $+(%,erm.,%ticks) $iif(!$2,$iif($readini(defname.ini,name,$address($nick,3)),$v1,$nick),$regsubex($replace($2-,$chr(32),_),/\b(\w)/g,$upper(\1))))
set $+(%,stat.,%ticks) $rsstat($1)
}
else { notice $nick 10[04Stats10]: The runescape name can only be 041210 letters long! }
}
}
on *:SOCKOPEN:skill.*:{
sockwrite -nt $sockname GET /index_lite.ws?player= $+ %erm. [ $+ [ $remove($sockname,skill.) ] ] HTTP/1.1
sockwrite -nt $sockname Host: hiscore.runescape.com
sockwrite -nt $sockname $crlf
}
on *:SOCKREAD:skill.*:{
if ($sockerr) { echo -a $sockerr | halt }
else {
var %read
sockread %read
if (Sorry, the page you were looking for was not found. isin %read) {
$($+(%,prefix.,$remove($sockname,skill.)),2) 10[04Stats10]:04 %erm. [ $+ [ $remove($sockname,skill.) ] ] 10was not found in the runescape hiscores at all.
}
elseif (*,*,* iswm %read) {
inc %stats.inc
writeini stats.ini $remove($sockname,skill.) %stats.inc %read
}
}
}
on *:SOCKCLOSE:skill.*:{
if (%stats.inc) {
$($+(%,prefix.,$remove($sockname,skill.)),2) 10[04 $+ $gettok($($+(%,stat.,$remove($sockname,skill.)),2),1,32) $+ 10]: $gettok($($+(%,stat.,$remove($sockname,skill.)),2),1,32) for04 $replace($($+(%,erm.,$remove($sockname,skill.)),2),_,$chr(32)) 04|10 $rsstat2($gettok($($+(%,stat.,$remove($sockname,skill.)),2),1,32),$remove($sockname,skill.),$sockname,$gettok($($+(%,stat.,$remove($sockname,skill.)),2),2,32))
}
remini stats.ini $remove($sockname,skill.)
unset $+(%,erm.,$remove($sockname,skill.)) | unset $+(%,prefix.,$remove($sockname,skill.)) | unset %stats.inc
}
alias rsstat {
if ($regex($1,/^[!@.]Overall$/Si)) return Overall 1
elseif ($regex($1,/^[!@.]att(ack)?$/Si)) return Attack 2
elseif ($regex($1,/^[!@.]def(en(s|c)e)?$/Si)) return Defence 3
elseif ($regex($1,/^[!@.]Str(ength)?$/Si)) return Strength 4
elseif ($regex($1,/^[!@.](HP|Hitpoints)$/Si)) return Hitpoints 5
elseif ($regex($1,/^[!@.]Rang(e|ing)$/Si)) return Range 6
elseif ($regex($1,/^[!@.]Pray(er)?$/Si)) return Prayer 7
elseif ($regex($1,/^[!@.]Mag(e|ic)$/Si)) return Magic 8
elseif ($regex($1,/^[!@.]Cook(ing)?$/Si)) return Cooking 9
elseif ($regex($1,/^[!@.]W(ood)?c(ut)?$/Si)) return Woodcutting 10
elseif ($regex($1,/^[!@.]Fletch(ing)?$/Si)) return Fletching 11
elseif ($regex($1,/^[!@.]Fish(ing)?$/Si)) return Fishing 12
elseif ($regex($1,/^[!@.]F(ire)?m(aking)?$/Si)) return Firemaking 13
elseif ($regex($1,/^[!@.]Craft(ing)?$/Si)) return Crafting 14
elseif ($regex($1,/^[!@.]Smith(ing)?$/Si)) return Smithing 15
elseif ($regex($1,/^[!@.]Min(e|ing)$/Si)) return Mining 15
elseif ($regex($1,/^[!@.]Herb(lore)?$/Si)) return Herblore 17
elseif ($regex($1,/^[!@.]Agil(ity)?$/Si)) return Agility 18
elseif ($regex($1,/^[!@.]Thiev(e|ing)$/Si)) return Thieving 19
elseif ($regex($1,/^[!@.]Slay(er|ing)$/Si)) return Slayer 20
elseif ($regex($1,/^[!@.]Farm(er|ing)$/Si)) return Farming 21
elseif ($regex($1,/^[!@.]R(une)?c(raft(ing)?)?$/Si)) return Runecrafting 22
elseif ($regex($1,/^[!@.]Hunt(er|ing)$/Si)) return Hunter 23
elseif ($regex($1,/^[!@.]Con(struct(ion)?)?$/Si)) return Construction 24
elseif ($regex($1,/^[!@.]Summon(ing)?$/Si)) return Summoning 25
}
alias rsstat2 {
if (*-1* iswm $gettok($readini(stats.ini,$2,$4),2,44)) { return No Results Found. } | else { return $iif($gettok($($+(%,stat.,$remove($3,skill.)),2),1,32) == Overall,$v1,Level) $+ :04 $gettok($readini(stats.ini,$2,$gettok($($+(%,stat.,$remove($3,skill.)),2),2,32)),2,44) 04|10 Rank:04 $bytes($gettok($readini(stats.ini,$2,$gettok($($+(%,stat.,$remove($3,skill.)),2),2,32)),1,44),db) 04|10 EXP:04 $bytes($gettok($readini(stats.ini,$2,$gettok($($+(%,stat.,$remove($3,skill.)),2),2,32)),3,44),db) $iif($gettok($($+(%,stat.,$remove($3,skill.)),2),1,32) == Overall,$null,04|10 EXP to Level04 $calc($gettok($readini(stats.ini,$2,$gettok($($+(%,stat.,$remove($3,skill.)),2),2,32)),2,44) +1) $+ 10:04 $iif(*-* iswm $bytes($calc($etnl($gettok($readini(stats.ini,$2,$gettok($($+(%,stat.,$remove($3,skill.)),2),2,32)),2,44)) - $gettok($readini(stats.ini,$2,$gettok($($+(%,stat.,$remove($3,skill.)),2),2,32)),3,44)),db),N/A,$v2)) }
}
alias etnl { 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,$calc($1 +1),32) }