on $*: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) && ( isin %stats.read && 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)) }