rendered paste bodyon $*:text:/^((\[[a-z]{2}\])?Generic )?[@`.,!]stats */Si:#: {
if ($hget(disabled,$chan)) && ($1 != $me) halt
if ($1 == $me) tokenize 32 $2-
if ($1 != $me) && ($remove($1,$left($1,1)) != stats) halt
if (!$2) && (!$hget(rsn,$address($nick,2))) $iif($left($1,1) == @,msg $chan,notice $nick) 14You must specify a04 Username14 to lookup!
if ($2) || ($hget(rsn,$address($nick,2)) && !$2) {
if ($len($2-) > 12) notice $nick 14Usernames must be under a length of 12 characters
if ($len($2-) <= 12) {
inc %statsid 1
set -u60 %StatsType [ $+ [ %statsid ] ] Stats
set -u60 %StatsName [ $+ [ %statsid ] ] $iif($hget(rsn,$address($nick,2)),$iif(!$2,$hget(rsn,$address($nick,2)),$replace($2-,$chr(32),$chr(95),$chr(35),$chr(45))))
set -u60 %statsnick [ $+ [ %statsid ] ] $nick
set -u60 %statschan [ $+ [ %statsid ] ] $chan
set -u60 %statsmsg [ $+ [ %statsid ] ] $iif($left($1,1) == @,msg $chan,notice $nick)
sockopen $+(rsstats,%statsid) hiscore.runescape.com 80
}
}
}
on *:SOCKOPEN:Rsstats*:{
sockwrite -n $sockname GET /hiscorepersonal.ws?user1= $+ %StatsName [ $+ [ $right($sockname,-7) ] ] HTTP/1.1
sockwrite -n $sockname Host: hiscore.runescape.com $+ $str($crlf,2)
}
on *:SOCKREAD:rsstats*:{
var %stats.read
sockread %stats.read
if (does not feature in the hiscores isin %Stats.read) {
%statsmsg [ $+ [ $right($sockname,-7) ] ] $+(04,%StatsName [ $+ [ $right($sockname,-7) ] ]) 14Did not appear in the highscores.
set -u60 %nubstats [ $+ [ $right($sockname,-7) ] ] yes
}
if ($regex(%Stats.read,/(Overall|Attack|Defence|Strength|Hitpoints|Woodcutting|Fletching|Hunter|Construction|Fishing|Cooking|Prayer|Magic|Ranged|Firemaking|Crafting|Smithing|Herblore|Mining|Agility|Thieving|Slayer|Farming|RuneCraft) */iS) == 1) && (<a href !isin %stats.read) && (img !isin %stats.read) && (<form action !isin %stats.read) {
set %Statname %Stats.read
}
if ((<td align="right"> isin %stats.read && </td> isin %stats.read) && ($remove($htmlfree(%stats.read),$chr(44)) isnum)) || (Not Ranked isin $htmlfree(%stats.read)) {
if (Not Ranked isin $htmlfree(%stats.read)) {
if (%Statname == Overall) {
set %Overall [ $+ [ $right($sockname,-7) ] ] -
}
;if (%statname == Attack) {
;%message [ $+ [ $right($sockname,-7) ] ] = $+(14,%statname,$chr(58),04,$chr(32),-)
;set -u60 %attack [ $+ [ $right($sockname,-7) ] ] 1
;}
;if (%statname != Attack && %statname != Overall) {
;%data = %message [ $+ [ $right($sockname,-7) ] ] $+(14,%statname,$chr(58),04,$chr(32),-)
;%message [ $+ [ $right($sockname,-7) ] ] = %data
;}
set -u60 $+(%,%statname,$right($sockname,-7)) 1
}
if (%id [ $+ [ %statname ] $+ [ $right($sockname,-7) ] ] == 2) {
set -u30 $+(%,xp,%statname,$right($sockname,-7)) $htmlfree(%stats.read)
}
if (%id [ $+ [ %statname ] $+ [ $right($sockname,-7) ] ] == 1) {
set -u30 $+(%,%statname,$right($sockname,-7)) $htmlfree(%stats.read)
if (%statname == attack) {
%message [ $+ [ $right($sockname,-7) ] ] = $+(14,%statname,$chr(58),04,$chr(32),$htmlfree(%stats.read))
}
if (%statname != attack && %STatname != Overall) {
%data = %message [ $+ [ $right($sockname,-7) ] ] $+(14,%statname,$chr(58),04,$chr(32),$htmlfree(%stats.read))
%message [ $+ [ $right($sockname,-7) ] ] = %data
}
inc %id [ $+ [ %statname ] $+ [ $right($sockname,-7) ] ] 1
}
if (!%id [ $+ [ %statname ] $+ [ $right($sockname,-7) ] ]) {
set -u30 $+(%,rank,%statname,$right($sockname,-7)) $htmlfree(%stats.read)
set -u10 %id [ $+ [ %statname ] $+ [ $right($sockname,-7) ] ] 1
}
}
}
on *:sockclose:Rsstats*: {
if (%nubstats [ $+ [ $right($sockname,-7) ] ]) halt
else {
var %def = $calc(%defence [ $+ [ $right($sockname,-7) ] ] * 100)
var %hp = $calc(%hitpoints [ $+ [ $right($sockname,-7) ] ] * 100)
var %base = $calc(($calc(%defence [ $+ [ $right($sockname,-7) ] ] * 100) + $calc(%hitpoints [ $+ [ $right($sockname,-7) ] ] * 100) + $iif($regex($right(%prayer [ $+ [ $right($sockname,-7) ] ],1),[02468]),$calc(%prayer [ $+ [ $right($sockname,-7) ] ] * 50),$calc((%prayer [ $+ [ $right($sockname,-7) ] ] - 1) * 50))) / 400)
var %melee = $calc(($calc(%attack [ $+ [ $right($sockname,-7) ] ] * 130) + $calc(%strength [ $+ [ $right($sockname,-7) ] ] * 130)) / 400)
var %ranger = $calc($iif($regex($right(%ranged [ $+ [ $right($sockname,-7) ] ],1),[02468]),$calc(%ranged [ $+ [ $right($sockname,-7) ] ] * 195),$calc((%ranged [ $+ [ $right($sockname,-7) ] ] * 195) - 65)) / 400)
var %mage = $calc($iif($regex($right(%magic [ $+ [ $right($sockname,-7) ] ],1),[02468]),$calc(%magic [ $+ [ $right($sockname,-7) ] ] * 195),$calc((%magic [ $+ [ $right($sockname,-7) ] ] * 195) - 65)) / 400)
if (%melee > %ranger) && (%melee > %mage) {
var %style = Melee
var %combat = $calc(%melee + %base)
}
if (%ranger > %melee) && (%ranger > %mage) {
var %style = Ranger
var %combat = $calc(%ranger + %base)
}
if (%mage > %melee) && (%mage > %ranger) {
var %style = Mage
var %combat = $calc(%mage + %base)
}
else {
var %style = Melee
var %combat = $calc(%melee + %base)
}
if (%StatsType [ $+ [ $right($sockname,-7) ] ] == Stats) {
%statsmsg [ $+ [ $right($sockname,-7) ] ] 14Stats for04 $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) 14- Overall14:04 $iif(%Overall [ $+ [ $right($sockname,-7) ] ] > 1,%Overall [ $+ [ $right($sockname,-7) ] ],-) 14Combat:04 %combat
%statsmsg [ $+ [ $right($sockname,-7) ] ] %message [ $+ [ $right($sockname,-7) ] ]
unset %message [ $+ [ $right($sockname,-7) ] ]
unset %id* [ $+ [ $right($sockname,-7) ] ]
}
if (%StatsType [ $+ [ $right($sockname,-7) ] ] == cmb) {
%statsmsg [ $+ [ $right($sockname,-7) ] ] 14Name:04 $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) 14Combat:04 %combat 14(04 $+ %Style Based14)
%statsmsg [ $+ [ $right($sockname,-7) ] ] 14Att:04 %Attack [ $+ [ $right($sockname,-7) ] ] 14Def:04 %Defence [ $+ [ $right($sockname,-7) ] ] 14Str:04 %Strength [ $+ [ $right($sockname,-7) ] ] 14Hits:04 %hitpoints [ $+ [ $right($sockname,-7) ] ] 14Range:04 %ranged [ $+ [ $right($sockname,-7) ] ] 14Pray:04 %Prayer [ $+ [ $right($sockname,-7) ] ] 14Mage:04 %magic [ $+ [ $right($sockname,-7) ] ]
unset %message [ $+ [ $right($sockname,-7) ] ]
}
if (%StatsType [ $+ [ $right($sockname,-7) ] ] == skill) {
%skill = %skill [ $+ [ $right($sockname,-7) ] ]
%statsmsg [ $+ [ $right($sockname,-7) ] ] 14 $+ %skill [ $+ [ $right($sockname,-7) ] ] for04 $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) $+ 14:
%statsmsg [ $+ [ $right($sockname,-7) ] ] 14Rank:04 %rank [ $+ [ %skill ] $+ [ $right($sockname,-7) ] ] 14Level:04 $($+(%,%skill,$right($sockname,-7)),2) 14XP:04 $($+(%,xp,%skill,$right($sockname,-7)),2) 14XP To Next Level:04 $iif($($+(%,%skill,$right($sockname,-7)),2) != 99,$bytes($xp2next($($+(%,%skill,$right($sockname,-7)),2),$($+(%,xp,%skill,$right($sockname,-7)),2)),db),-)
unset %message [ $+ [ $right($sockname,-7) ] ]
}
if (%StatsType [ $+ [ $right($sockname,-7) ] ] == Percent) {
%cmbxp = $calc($do($($+(%,xp,Attack,$right($sockname,-7)),2)) + $do($($+(%,xp,Strength,$right($sockname,-7)),2)) + $do($($+(%,xp,Defence,$right($sockname,-7)),2)) + $do($($+(%,xp,Hitpoints,$right($sockname,-7)),2)) + $do($($+(%,xp,Prayer,$right($sockname,-7)),2)) + $do($($+(%,xp,Ranged,$right($sockname,-7)),2)) + $do($($+(%,xp,magic,$right($sockname,-7)),2)))
%noncmbxp = $calc($do($($+(%,xp,Overall,$right($sockname,-7)),2)) - %cmbxp)
%statsmsg [ $+ [ $right($sockname,-7) ] ] 14Combat Percent for:04 $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) $+ 14:
%statsmsg [ $+ [ $right($sockname,-7) ] ] 14Cmb Based XP:04 $bytes(%cmbxp,db) 14Non-Cmb Based XP:04 $bytes(%noncmbxp,db) 14Cmb Percent:04 $round($calc((%cmbxp / $do($($+(%,xp,Overall,$right($sockname,-7)),2)) )*100),2) $+ $chr(37)
unset %message [ $+ [ $right($sockname,-7) ] ]
}
if (%StatsType [ $+ [ $right($sockname,-7) ] ] == PestControl) {
if (!%pcgoal [ $+ [ $right($sockname,-7) ] ]) {
%skill = %skill [ $+ [ $right($sockname,-7) ] ]
set -u10 %nextlevel [ $+ [ $right($sockname,-7) ] ] $xp2next($do($($+(%,%skill,$right($sockname,-7)),2)),$($+(%,xp,%skill,$right($sockname,-7)),2))
set -u10 %pcpoints [ $+ [ $right($sockname,-7) ] ] $pest($($+(%,%skill,$right($sockname,-7)),2),%skill,$calc($($+(%,%skill,$right($sockname,-7)),2) +1),%nextlevel [ $+ [ $right($sockname,-7) ] ])
%statsmsg [ $+ [ $right($sockname,-7) ] ] 04 $+ $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) 14needs04 $remove(%pcpoints [ $+ [ $right($sockname,-7) ] ],$left(%pcpoints [ $+ [ $right($sockname,-7) ] ],1)) 14PestControl Points for04 $calc($do($($+(%,%skill,$right($sockname,-7)),2)) +1) 14 $+ %skill [ $+ [ $right($sockname,-7) ] ]
unset %message [ $+ [ $right($sockname,-7) ] ]
}
if (%pcgoal [ $+ [ $right($sockname,-7) ] ]) {
if (%pcgoal [ $+ [ $right($sockname,-7) ] ] < $($+(%,%skill,$right($sockname,-7)),2)) %statsmsg [ $+ [ $right($sockname,-7) ] ] 14You must specify a goal which is higher than the current level. | halt
%skill = %skill [ $+ [ $right($sockname,-7) ] ]
set -u10 %nextlevel [ $+ [ $right($sockname,-7) ] ] $calc($xp(%pcgoal [ $+ [ $right($sockname,-7) ] ]) - $do($($+(%,xp,%skill,$right($sockname,-7)),2)))
set -u10 %pcpoints [ $+ [ $right($sockname,-7) ] ] $pest($do($($+(%,%skill,$right($sockname,-7)),2)),%skill,%pcgoal [ $+ [ $right($sockname,-7) ] ],%nextlevel [ $+ [ $right($sockname,-7) ] ]))
%statsmsg [ $+ [ $right($sockname,-7) ] ] 04 $+ $replace(%StatsName [ $+ [ $right($sockname,-7) ] ],$chr(95),$chr(32)) 14needs04 $remove(%pcpoints [ $+ [ $right($sockname,-7) ] ],$left(%pcpoints [ $+ [ $right($sockname,-7) ] ],1)) 14PestControl Points for04 %pcgoal [ $+ [ $right($sockname,-7) ] ] 14 $+ %skill [ $+ [ $right($sockname,-7) ] ]
unset %message [ $+ [ $right($sockname,-7) ] ]
}
}
}
}
alias -l htmlfree {
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x, )
return %x
}
on $*:text:/^((\[[a-z]{2}\])?Generic )?[@`.,!](cmb|combat)*/Si:#: {
if ($hget(disabled,$chan)) && ($1 != $me) halt
if ($1 == $me) tokenize 32 $2-
if ($remove($1,$left($1,1)) == cmb-est) halt
if ($1 != $me) && ($regex($remove($1,$left($1,1)),/(cmb|combat|cmb%)/i) != 1) halt
if (!$2) $iif($left($1,1) == @,msg $chan,notice $nick) 14You must specify a04 Username14 to lookup!
if ($2) {
if ($len($2-) > 12) notice $nick 14Usernames must be under a length of 12 characters
if ($len($2) <= 12) {
inc %statsid 1
set -u60 %StatsType [ $+ [ %statsid ] ] $iif($right($1,1) == $chr(37),Percent,Cmb)
set -u60 %StatsName [ $+ [ %statsid ] ] $replace($2-,$chr(32),$chr(95),$chr(35),$chr(45))
set -u60 %statsnick [ $+ [ %statsid ] ] $nick
set -u60 %statschan [ $+ [ %statsid ] ] $chan
set -u60 %statsmsg [ $+ [ %statsid ] ] $iif($left($1,1) == @,msg $chan,notice $nick)
sockopen $+(rsstats,%statsid) hiscore.runescape.com 80
}
}
}
alias SkillTrigger {
if ($regex($1,/^(st|(skill)?total|overall)$/Si)) $iif($2,return yes,return Overall)
elseif ($regex($1,/^at(t|k|tack)$/Si)) $iif($2,return yes,return Attack)
elseif ($regex($1,/^def(en[cs]e)?$$/Si)) $iif($2,return yes,return Defence)
elseif ($regex($1,/^str(ength)?$/Si)) $iif($2,return yes,return Strength)
elseif ($regex($1,/^hp|hits(points)??$/Si)) $iif($2,return yes,return Hitpoints)
elseif ($regex($1,/^range(r|d|ing)?$/Si)) $iif($2,return yes,return Ranged)
elseif ($regex($1,/^Pray(er)?$$/Si)) $iif($2,return yes,return Prayer)
elseif ($regex($1,/^mag(e|ic)$$/Si)) $iif($2,return yes,return Magic)
elseif ($regex($1,/^cook(ing)?$/Si)) $iif($2,return yes,return Cooking)
elseif ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) $iif($2,return yes,return Woodcutting)
elseif ($regex($1,/^fletch(ing)?$/Si)) $iif($2,return yes,return Fletching)
elseif ($regex($1,/^fish(ing)?$/Si)) $iif($2,return yes,return Fishing)
elseif ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) $iif($2,return yes,return Firemaking)
elseif ($regex($1,/^craft(ing)?$/Si)) $iif($2,return yes,return Crafting)
elseif ($regex($1,/^(smith|smelt)(ing)?$/Si)) $iif($2,return yes,return Smithing)
elseif ($regex($1,/^(mine|Mining)$/Si)) $iif($2,return yes,return Mining)
elseif ($regex($1,/^herb(law|lore)?$/Si)) $iif($2,return yes,return Herblore)
elseif ($regex($1,/^agil(ity)?$/Si)) $iif($2,return yes,return Agility)
elseif ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) $iif($2,return yes,return Thieving)
elseif ($regex($1,/^slay(er|ing)?$/Si)) $iif($2,return yes,return Slayer)
elseif ($regex($1,/^farm(er|ing)?$/Si)) $iif($2,return yes,return Farming)
elseif ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) $iif($2,return yes,return Runecraft)
elseif ($regex($1,/^cons(truct(ion)?)?$/Si)) $iif($2,return yes,return Construction)
elseif ($regex($1,/^hunt(er|ing)?$/Si)) $iif($2,return yes,return Hunter)
}
alias -l do {
return $remove($1,$chr(44))
}