[script] n0=; n1=; n2=; n3=; n4=alias -l c1 { return $+($chr(3),10,$1-,$chr(3)) } n5=alias -l c2 { return $+($chr(3),04,$1-,$chr(3)) } n6=on *:TEXT:*:#:{ n7= if ($left($1,1) isin !@) { n8= if ($regex($1,/^[!@]setrsn/Si)) { writeini defrsn.ini defname $nick $2- | $iif($left($1,1) == !,notice $nick,msg $chan) $nick $+ : your default rsn is set | halt } n9= if ($skill($right($1,-1))) { n10= if ($skill($right($1,-1)) == overall) { halt } n11= if ($regex($left($1,1),/^(@|!)/Si)) { hadd -m $+(stats,.,$nick) disp $iif($left($1,1) == @,msg $chan,$iif($left($1,1) == !,notice $nick)) } n12= else halt n13= if ($regex($skill($right($1,-1)),/^(combat|stats|vk|pest|pc)/Si)) { n14= if ($skill($right($1,-1)) == combat) { hadd -m $+(stats,.,$nick) style cb } n15= else hadd -m $+(stats,.,$nick) style st n16= if ($skill($right($1,-1)) isin vk pest pc) { hadd -m $+(stats,.,$nick) style pc } n17= } n18= else { n19= hadd -m $+(stats,.,$nick) style ss n20= hadd -m $+(stats,.,$nick) skill $skill($right($1,-1)) n21= } n22= if ($2) { n23= if ($len($replace($2-,$chr(32),+)) > 12) { $iif(@ == $left($1,1),msg $chan,$iif(! == $left($1,1),notice $nick,halt)) Sorry, That nickname is too long. | halt } n24= hadd -m $+(stats,.,$nick) name $replace($2-,$chr(32),+,_,+,-,+) n25= } n26= else { n27= if ($readini(defrsn.ini,defname,$nick)) { hadd -m $+(stats,.,$nick) name $replace($readini(defrsn.ini,defname,$nick),_,+) } n28= else { n29= if ($len($replace($nick,_,+)) > 12) { $iif(@ == $left($1,1),msg $chan,$iif(! == $left($1,1),notice $nick,halt)) Sorry, That nickname is too long. | halt } n30= hadd -m $+(stats,.,$nick) name $replace($nick,_,+) n31= } n32= } n33= sockopen $+(stats,.,$nick) www.o-ss.net 80 n34= } n35= else halt n36= } n37=} n38= n39=on *:SOCKOPEN:stats.*:{ n40= sockwrite -nt $sockname GET /parsers/stats.php?user= $+ $replace($hget($sockname,name),$chr(32),+) HTTP/1.1 n41= sockwrite -nt $sockname Host: www.o-ss.net $+ $crlf $+ $crlf n42=} n43=on *:SOCKREAD:stats.*:{ n44= sockread -f $+(%,$sockname,.,read) n45= tokenize 32 $($+(%,$sockname,.,read),2) n46= if (*does not feature in the hiscores* iswm $($+(%,$sockname,.,read),2)) { n47= $hget($sockname,disp) $c1($hget($sockname,name)) $c2(isn't featured in the high scores.) n48= hfree $sockname n49= sockclose $sockname n50= halt n51= } n52= if ($hget($sockname,style) == pc) { n53= if ($istok($skill(13248624621354321574863),$1,58)) { n54= if (*not ranked* !iswm $1-) { n55= inc $+(%,$sockname,.,a) 1 n56= hadd -m $sockname $($+(%,$sockname,.,a),2) $c2($1 $+ :) $c1($ndp($calc($calc($xp($calc($3 + 1)) - $remove($4,$chr(44))) / $floor($calc(($3 * $3) / $iif($1 == prayer,12,6)))))) $c2(( $+ $floor($calc(($3 * $3) / $iif($1 == prayer,12,6))) xp/point)) n57= } n58= else { inc $+(%,$sockname,.,h) 1 } n59= } n60= if ($1 == cooking) { n61= if ($($+(%,$sockname,.,h),2) >= 7) { n62= $hget($sockname,disp) $c1($hget($sockname,name)) $c2(doesn't appear in highscores for any combat skill.) n63= } n64= else { n65= set $+(%,$sockname,.,b) 0 n66= while ($($+(%,$sockname,.,b),2) < $($+(%,$sockname,.,a),2)) { n67= inc $+(%,$sockname,.,b) 1 n68= set $+(%,$sockname,.,line) $($+(%,$sockname,.,line),2) $hget($sockname,$($+(%,$sockname,.,b),2)) n69= } n70= $hget($sockname,disp) $c2(Pest Control points for) $c1($replace($hget($sockname,name),+,$chr(32))) n71= $hget($sockname,disp) $($+(%,$sockname,.,line),2) n72= } n73= hfree $sockname n74= unset $+(%,$sockname,.,%read) | unset $+(%,$sockname,.,*) | sockclose $sockname n75= } n76= } n77= if ($hget($sockname,style) == ss) { n78= if ($1 == $hget($sockname,skill)) { n79= if (*not ranked* iswm $($+(%,$sockname,.,read),2)) { $hget($sockname,disp) $c2($hget($sockname,name)) $c1(isn't featured in high scores for $c2($hget($sockname,skill)) $+ .) } n80= else { n81= hadd -m $sockname exp $xp2next($3,$remove($4,$chr(44))) n82= set $+(%,$sockname,.,a) 0 n83= while ($($+(%,$sockname,.,a),2) < $ini(monsters.ini,$hget($sockname,skill),0)) { n84= inc $+(%,$sockname,.,a) 1 n85= set $+(%,$sockname,.,b) $c1($($+(%,$sockname,.,b),2)) $c2($replace($gettok($readini(monsters.ini,$hget($sockname,skill),$($+(%,$sockname,.,a),2)),1,32),_,$chr(32),-,$chr(32))) $c1($floor($calc($hget($sockname,exp) / $gettok($readini(monsters.ini,$hget($sockname,skill),$($+(%,$sockname,.,a),2)),2,32)))) n86= } n87= $hget($sockname,disp) $c2($hget($sockname,skill)) $c1(stats for:) $c2($replace($hget($sockname,name),+,$chr(32))) n88= $hget($sockname,disp) $c2(Rank:) $c1($2) $c2(Level:) $c1($3) $c2(Exp:) $c1($4) $c2(Exp for) $c1($+($calc($3 + 1),:) $bytes($hget($sockname,exp),b)) n89= $hget($sockname,disp) $c2() $($+(%,$sockname,.,b),2) n90= } n91= unset $+(%,$sockname,.,*) n92= hfree $sockname n93= sockclose $sockname n94= } n95= } n96= if ($hget($sockname,style) == st) { n97= if (($skill($1)) && (*not ranked* !iswm $1-)) { n98= if ($hget($sockname,line)) { var %line = $hget($sockname,line) $c2($+($1,:)) $c1($3) | hdel $sockname line | hadd -m $sockname line %line } n99= else { hadd -m $sockname line $c2($+($1,:)) $c1($3) } n100= } n101= if ($1 == end) { n102= $hget($sockname,disp) $c2(Stats for:) $c1($replace($hget($sockname,name),+,$chr(32))) n103= $hget($sockname,disp) $hget($sockname,line) n104= hfree $sockname n105= sockclose $sockname n106= } n107= } n108= if ($hget($sockname,style) == cb) { n109= if ($istok($skill(13248624621354321574863),$1,58)) { n110= hadd -m $sockname $1 $iif(*not ranked* iswm $1-,NA,$3) n111= } n112= if ($1 == cooking) { n113= if ($count($hget($sockname,attack) $hget($sockname,strength) $hget($sockname,defence) $hget($sockname,hitpoints) $hget($sockname,prayer) $hget($sockname,ranged) $hget($sockname,magic),NA) >= 7) { n114= $hget($sockname,disp) $hget($sockname,name) $c1(doesn't appear in highscores for any combat skill.) n115= } n116= else { n117= tokenize 32 $extcmbcalc($hget($sockname,attack),$hget($sockname,strength),$hget($sockname,defence),$hget($sockname,hitpoints),$hget($sockname,prayer),$hget($sockname,ranged),$hget($sockname,magic)) n118= $hget($sockname,disp) $c2(Combat stats for) $c1($replace($hget($sockname,name),+,$chr(32))) $c2(Level:) $c1($floor($1) $2-) n119= $hget($sockname,disp) $c2(Att:) $c1($hget($sockname,attack)) $c2(Str:) $c1($hget($sockname,strength)) $c2(Def:) $c1($hget($sockname,defence)) $c2(Hits:) $c1($hget($sockname,hitpoints)) $c2(Pray:) $c1($hget($sockname,prayer)) $c2(Range:) $c1($hget($sockname,ranged)) $c2(Magic:) $c1($hget($sockname,magic)) n120= hadd -m $sockname temp $iif(*.* iswm $1,$calc(1 - $+($chr(46),$gettok($1,2,46))),1) n121= if ($2- == (melee based)) { n122= $hget($sockname,disp) $c2(Levels For) $c1($calc($floor($1) + 1)) $+ $c2(:) $c2(Att:) $c1($ndp($calc($hget($sockname,temp) / 0.32707))) $& n123= $c2(Str:) $c1($ndp($calc($hget($sockname,temp) / 0.324))) $& n124= $c2(Def:) $c1($ndp($calc($hget($sockname,temp) / 0.249))) $& n125= $c2(Hits:) $c1($ndp($calc($hget($sockname,temp) / 0.25))) $& n126= $c2(Pray:) $c1($ndp($calc($hget($sockname,temp) / 0.124))) n127= } n128= if ($2- == (Range based)) { n129= $hget($sockname,disp) $c2(Levels For) $c1($calc($floor($1) + 1)) $+ $c2(:) $c2(Range:) $c1($ndp($calc($hget($sockname,temp) / 0.487))) $& n130= $c2(Def:) $c1($ndp($calc($hget($sockname,temp) / 0.249))) $& n131= $c2(Hits:) $c1($ndp($calc($hget($sockname,temp) / 0.25))) $& n132= $c2(Pray:) $c1($ndp($calc($hget($sockname,temp) / 0.124))) n133= } n134= if ($2- == (Magic based)) { n135= $hget($sockname,disp) $c2(Levels For) $c1($calc($floor($1) + 1)) $+ $c2(:) $c2(Magic:) $c1($ndp($calc($hget($sockname,temp) / 0.487))) $& n136= $c2(Def:) $c1($ndp($calc($hget($sockname,temp) / 0.249))) $& n137= $c2(Hits:) $c1($ndp($calc($hget($sockname,temp) / 0.25))) $& n138= $c2(Pray:) $c1($ndp($calc($hget($sockname,temp) / 0.124))) n139= } n140= hfree $sockname n141= unset $+(%,$sockname,.,%read) | sockclose $sockname n142= } n143= } n144= } n145=} n146=; n147=alias -l extcmbcalc { n148= var %line = $replace($1 $2 $3 $4 $5 $6 $7,NA,1) n149= tokenize 32 %line n150= if (($calc($1 + $2) > $6) && ($calc($1 + $2) > $7)) { var %type = melee } n151= if (($calc($1 + $2) < $6) || ($calc($1 + $2) < $7)) { n152= if ($7 > $calc($1 + $2)) { n153= if ($7 > $6) { var %type = magic } n154= } n155= if ($6 > $calc($1 + $2)) { n156= if ($6 > $7) { var %type = range } n157= } n158= } n159= if (%type == range) { return $calc((0.487 * $6) + (0.249 * $3) + (0.25 * $4) + (0.124 * $5)) (Range Based) } n160= if (%type == magic) { return $calc((0.487 * $7) + (0.249 * $3) + (0.25 * $4) + (0.124 * $5)) (Magic Based) } n161= if (%type == melee) { return $calc((0.32707 * $1) + (0.249 * $3) + (0.324 * $2) + (0.25 * $4) + (0.124 * $5)) (Melee Based) } n162=} n163=; n164=alias skill { n165= if ($regex($1,/c(mb|ombat)/Si)) Return Combat n166= if ($1 == overall) return Overall n167= if ($1 == pest) return Pest n168= if ($1 == vk) return VK n169= if ($1 == pc) return pc n170= if ($regex($1,/^Stats/Si)) Return Stats n171= if ($regex($1,/^att(ack)?$/Si)) Return Attack n172= if ($regex($1,/^str(ength)?$/Si)) Return Strength n173= if ($regex($1,/^Def(ence)?$/Si)) Return Defence n174= if ($regex($1,/^h(p|its|itpoints)?$/Si)) Return Hitpoints n175= if ($regex($1,/^pray(er)?$/Si)) Return Prayer n176= if ($regex($1,/^mag(e|ic)?$/Si)) Return Magic n177= if ($regex($1,/^range(d)?$/Si)) Return Ranged n178= if ($regex($1,/^Cook(ing)?$/Si)) Return Coooking n179= if ($regex($1,/^wc|Woodcut|woodcutting/Si)) Return Woodcutting n180= if ($regex($1,/^fletch(ing)?$/Si)) Return Fletching n181= if ($regex($1,/^fish(ing)?$/Si)) Return Fishing n182= if ($regex($1,/^fm|Firemake|firemaking/Si)) Return Firemaking n183= if ($regex($1,/^craft(ing)?$/Si)) Return Crafting n184= if ($regex($1,/^smith(ing)?$/Si)) Return Smithing n185= if ($regex($1,/^min(e|ing)?$/Si)) Return Mining n186= if ($regex($1,/^Herb(lore|y)?$/Si)) Return Herblore n187= if ($regex($1,/^Agility/Si)) Return Agility n188= if ($regex($1,/^th(ie|ei)v(e|ing)/Si)) Return Thieving n189= if ($regex($1,/^Slay(er|ing)?$/Si)) Return Slayer n190= if ($regex($1,/^farm(ing)?$/Si)) Return Farming n191= if ($regex($1,/^rc|runecraft|runecrafting/Si)) Return Runecraft n192= if ($regex($1,/^con(struction)?$/Si)) Return Construction n193= if ($1 == 13248624621354321574863) Return attack:strength:ranged:magic:hitpoints:prayer:defence n194=} n195=; n196=alias xp { n197= var %x = 1, %level = $calc($1 - 1), %xp = 0 n198= while (%x <= %level) { n199= var %TempXp = $calc((%x + 300 * 2^(%x / 7)) /4) n200= inc %xp %TempXp n201= inc %x n202= } n203= return $int(%xp) n204=} n205=alias xp2Next { n206= var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) n207= return $calc(%nextxp - %xp) n208=} n209=; n210=alias ndp { n211= if (*.* iswm $1) { return $calc($gettok($1,1,46) + 1) } n212= else { return $1 } n213=}