on *:TEXT:*:#:{ if ($StatsID($1)) { inc %sc var %info = $+($iif($regex($2-,/#([0-9]+)/S),$regml(1),00),$,$iif($gettok($1-,2,64),$v1,00)) var %info = $+($iif($remove($regsubex($2-,/#[0-9]+/S,),$gettok($1-,2,64),@,$chr(35)),$v1,$nick),$,%info) sockopen $+(Stats.,%sc) o-ss.net 80 sockmark $+(Stats.,%sc) $+($iif($regex($1,/^@/S),msg $chan,notice $nick),$,%info,$,$StatsID($1)) } elseif (($1-2 == Invite from:) && ($chan == #MSCR) && ($nick == MightScript)) { msg $chan Channels: $chan(0) } elseif (($1-2 == $me join) && ($chan == #MSCR) && ($nick == MightScript) && ($me !ison $3)) { join $3 .timer 1 1 msg $3 $+($c1,[,$c2,I have been invited by,$c1 $4,$c2,. $c1,!commands,$c2 to view my commands,$chr(44) $c1,!part $me,$c2 to make me part.,$c1,]) .timer 1 2 msg $3 $+($c1,[,$c2,MightScript,$c1 V1.1,$c2 - Scripted by,$c1 Patje`,$c2 and,$c1 DoucheBag]) } elseif ($1 == !part) { if ($nick isop $chan) { if (*MightScript iswm $2) part $chan Part requested by $nick $+ . Thank you for using me! elseif (!$2) notice $nick To make me part, please type !part $me } else notice $nick You need to be op to make me part! } elseif ($regex($1,/^[@!.]asc(ii)?$/Si)) { $iif($regex($1,/^@/S),msg $chan,notice $nick) $+($qt($2-),: $,+,$chr(40),$left($regsubex($2-,/(.)/g,$+($,chr,$chr(40),$asc(\1),$chr(41),$chr(44))),-1),$chr(41)) } } on *:SOCKOPEN:stats.*:{ sockwrite -nt $sockname GET /parsers/stats.php?user= $+ $hr($gettok($sock($sockname).mark,2,36)) HTTP/1.1 sockwrite -nt $sockname Host: $+(o-ss.net,$str($crlf,2)) } on *:SOCKREAD:stats.*:{ var %rs | sockread %rs while ($sockbr) { if ((*does not feature* iswm %rs) && ($sockname)) { $gettok($sock($sockname).mark,1,36) $+($c1,[,$flc($gettok($sock($sockname).mark,2,36)) $c2,does not feature in the highscores for $c1,any skill]) sockclose $sockname } if (($+($gettok($sock($sockname).mark,5,36),*) iswm %rs) && (!$regex($gettok($sock($sockname).mark,5,36),/overall|combat/i)) && ($sockname)) { var %goal = $iif($gettok($sock($sockname).mark,3,36),$v1,$calc($gettok(%rs,3,32) + 1)) if ($gettok(%rs,3,32) == ranked) $gettok($sock($sockname).mark,1,36) $+($c1,[,$flc($gettok($sock($sockname).mark,2,36)) $c2,does not feature in the highscores for $c1,$gettok($sock($sockname).mark,5,36),]) else $gettok($sock($sockname).mark,1,36) $+($c1,[,$c2,$gettok($sock($sockname).mark,5,36) for,$c1 $flc($gettok($sock($sockname).mark,2,36)),] [,$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,$+($c1 |,$c2 Exp till,$c1 %goal,$c2,:,$c1 $bytes($calc($getxp(%goal) - $remove($gettok(%rs,4,32),$chr(44))),b) $chr(40),$c2,$round($calc(($remove($gettok(%rs,4,32),$chr(44)) / $getxp(%goal)) * 100),2),$c1,%,$chr(41))),]) sockclose $sockname } if (($StatsID(! $+ $gettok(%rs,1,32))) && ($regex($gettok($sock($sockname).mark,5,36),/overall|combat/i)) && ($sockname)) { if ($regex($gettok(%rs,1,32),/^(att|str|def|hit|mag|pra|ran)/i)) var %cmb = %cmb $iif($gettok(%rs,3,32) != ranked,$v1,$iif($gettok(%rs,1,32) == hitpoints,10,1)) if ($gettok(%rs,1,32) == overall) var %overall = %rs if (($gettok(%rs,3,32) != ranked) && ($gettok(%rs,1,32) != overall)) var %all = %all $+($c2,$gettok(%rs,1,32),:,$c1 $gettok(%rs,3,32) |) if (($regex($gettok(%rs,1,32),/^(att|str|def|hit|mag|pra|ran)/i)) && (combatp == $gettok($sock($sockname).mark,5,36))) var %txp = $calc(%txp + $remove($gettok(%rs,4,32),$chr(44))) if (($gettok(%rs,1,32) == magic) && (combat == $gettok($sock($sockname).mark,5,36))) { tokenize 32 %cmb | var %acmb = $cmb(%cmb) $gettok($sock($sockname).mark,1,36) $+($c1,[,$c2,Combat for,$c1 $flc($gettok($sock($sockname).mark,2,36)),] [,$c2,Combat:,$c1 %acmb,] [,$c2,Att:,$c1 $1 |,$c2 Def:,$c1 $2 |,$c2 Str:,$c1 $3 |,$c2 Hits:,$c1 $4 |,$c2 Ranged:,$c1 $5 |,$c2 Pray:,$c1 $6 |,$c2 Magic:,$c1 $7,$c1,]) $gettok($sock($sockname).mark,1,36) $+($c1,[,$c2,Levels till,$c1 $ceil(%acmb) $c2,combat,$c1,] [,$iif($gettok(%acmb,2,32) == melee,$c2 $+ Att/Str: $+ $c1 $cc1(%acmb)),$iif($gettok(%acmb,2,32) == magic,$c2 $+ Magic: $+ $c1 $cc3(%acmb)),$iif($gettok(%acmb,2,32) == ranged,$c2 $+ Ranged: $+ $c1 $cc3(%acmb)),$chr(32),|,$c2 Hitpoints:,$c1 $cc2(%acmb) |,$c2 Prayer:,$c1 $cc4(%acmb),]) sockclose $sockname } if (($gettok(%rs,1,32) == magic) && (combatp == $gettok($sock($sockname).mark,5,36))) { $gettok($sock($sockname).mark,1,36) $+($c1,[,$c2,Combat Percentage for,$c1 $flc($gettok($sock($sockname).mark,2,36)),] [,$c2,Combat:,$c1 $cmb(%cmb),] [,$c2,Combat Exp:,$c1 $bytes(%txp,b) |,$c2 Total Exp:,$c1 $gettok(%overall,4,32) |,$c2 Combat Percentage:,$c1 $round($calc((%txp / $remove($gettok(%overall,4,32),$chr(44))) * 100),2),%,]) sockclose $sockname } if ($gettok(%rs,1,32) == construction) { tokenize 32 %overall $gettok($sock($sockname).mark,1,36) $+($c1,[,$c2,Stats for,$c1 $flc($gettok($sock($sockname).mark,2,36)),] [,$c2,Combat:,$c1 $cmb(%cmb) |,$c2 Overall:,$c1 $iif($3 == ranked,Not Ranked,$+($3 |,$c2 Rank:,$c1 $2 |,$c2 Exp:,$c1 $4)),]) $gettok($sock($sockname).mark,1,36) $+($c1,[,$left(%all,-2),$c1,]) sockclose $sockname } } if ($sockname) sockread %rs } } getxp { var %e, %x = 1, %y = $1 while (%x < %y) { inc %e $floor($calc(%x + 300*2^(%x / 7))) inc %x } return $floor($calc(%e /4)) } c1 return $chr(3) c2 return $+($chr(3),07) urlencode { var %a = $regsubex($$1,/([^\w\s])/Sg,$+(%,$base($asc(\t),10,16,2))) return $replace(%a,$chr(32),$chr(43)) } hr return $replace($1-,$chr(32),_,-,_) flc return $regsubex($replace($1-,+,$chr(32),-,$chr(32),_,$chr(32)),/\b(.)/Sg,$upper(\1)) StatsID { if ($regex($1,/^[@!.](stats|overall?|total)$/Si)) return Overall elseif ($regex($1,/^[@!]co?mb(at)?%$/Si)) return Combatp elseif ($regex($1,/^[@!]co?mb(at)?$/Si)) return Combat elseif ($regex($1,/^[@!]at[tk](ack)?$/Si)) return Attack elseif ($regex($1,/^[@!]de[fv](en[cs]e)?$/Si)) return Defence elseif ($regex($1,/^[@!]str(eng(ht|th))?$/Si)) return Strength elseif ($regex($1,/^[@!]h(p|it(points?|s))$/Si)) return Hitpoints elseif ($regex($1,/^[@!]range?d?$/Si)) return Ranged elseif ($regex($1,/^[@!]pray(er)?$/Si)) return Prayer elseif ($regex($1,/^[@!]mag(ic|e)$/Si)) return Magic elseif ($regex($1,/^[@!]cook(e|ing)?$/Si)) return Cooking elseif ($regex($1,/^[@!]w(ood)?c(utting)?$/Si)) return Woodcutting elseif ($regex($1,/^[@!]flet(ch|hc)(ing|e)?$/Si)) return Fletching elseif ($regex($1,/^[@!]fish(ing|e)?$/Si)) return Fishing elseif ($regex($1,/^[@!]f(ire)m(ak(e|ing))?$/Si)) return Firemaking elseif ($regex($1,/^[@!]craft(ing|er?)?$/Si)) return Crafting elseif ($regex($1,/^[@!]smith(ing|er?)?$/Si)) return Smithing elseif ($regex($1,/^[@!]min(ing|er?)?$/Si)) return Mining elseif ($regex($1,/^[@!]herb(lor[ye])?$/Si)) return Herblore elseif ($regex($1,/^[@!]agi(lity)?$/Si)) return Agility elseif ($regex($1,/^[@!]th(ie|ei)[fv](ing|er)?$/Si)) return Thieving elseif ($regex($1,/^[@!]slay(ing|er?)$/Si)) return Slayer elseif ($regex($1,/^[@!]farm(ing|er?)$/Si)) return Farming elseif ($regex($1,/^[@!]r(une)?c(raft(ing|er?)?)?$/Si)) return Runecraft elseif ($regex($1,/^[@!]hunt(ing|er?)?$/Si)) return Hunter elseif ($regex($1,/^[@!]cons?(truct(ion)?)?$/Si)) return Construction } htmlfree return $regsubex($regsubex($1-,/<.*>|&[^#].*;/gU,),/&#(.*);/gU,$chr(\1)) cmb { tokenize 32 $1- var %rsc1 = $calc((($1 * 130) + ($3 * 130)) / 400) var %rsc2 = $calc($iif($and($5,1) == 0,$calc($5 * 195),$calc((($5 - 1) + ($5 * 2)) * 65)) / 400) var %rsc3 = $calc($iif($and($7,1) == 0,$calc($7 * 195),$calc((($7 - 1) + ($7 * 2)) * 65)) / 400) if ((%rsc1 >= %rsc2) && (%rsc1 >= %rsc3)) return $calc(%rsc1 + ((($2 * 100) + ($4 * 100) + ($iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50)) / 400)) Melee Based elseif ((%rsc2 >= %rsc3) && (%rsc2 >= %rsc1)) return $calc(%rsc2 + ((($2 * 100) + ($4 * 100) + $iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50) / 400)) Ranged Based elseif ((%rsc3 >= %rsc1) && (%rsc3 >= %rsc2)) return $calc(%rsc3 + ((($2 * 100) + ($4 * 100) + $iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50) / 400)) Magic Based } cc1 tokenize 32 $1 | return $ceil($calc(($ceil($1) - $1) / 0.325)) cc2 tokenize 32 $1 | return $ceil($calc(($ceil($1) - $1) / 0.25)) cc3 tokenize 32 $1 | return $ceil($calc(($ceil($1) - $1) / 0.4875)) cc4 tokenize 32 $1 | return $ceil($calc(($ceil($1) - $1) / 0.125))