alias -l c1 { return $+($chr(3),10,$1-,$chr(3)) } alias -l c2 { return $+($chr(3),01,$1-,$chr(3)) } on *:TEXT:*:#:{ 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 } if ($skill($right($1,-1))) { if ($skill($right($1,-1)) == overall) { halt } if ($regex($left($1,1),/^(@|!)/Si)) { hadd -m $+(stats,.,$nick) disp $iif($left($1,1) == @,msg $chan,$iif($left($1,1) == !,notice $nick)) } else halt if ($regex($skill($right($1,-1)),/^(combat|stats)/Si)) { if ($skill($right($1,-1)) == combat) { hadd -m $+(stats,.,$nick) style cb } else hadd -m $+(stats,.,$nick) style st } else { hadd -m $+(stats,.,$nick) style ss hadd -m $+(stats,.,$nick) skill $skill($right($1,-1)) } if ($2) { 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 } hadd -m $+(stats,.,$nick) name $replace($2-,$chr(32),+,_,+,-,+) } else { if ($readini(defrsn.ini,defname,$nick)) { hadd -m $+(stats,.,$nick) name $replace($readini(defrsn.ini,defname,$nick),_,+) } else { 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 } hadd -m $+(stats,.,$nick) name $replace($nick,_,+) } } sockopen $+(stats,.,$nick) www.o-ss.net 80 } else halt } on *:SOCKOPEN:stats.*:{ sockwrite -nt $sockname GET /parsers/stats.php?user= $+ $replace($hget($sockname,name),$chr(32),+) HTTP/1.1 sockwrite -nt $sockname Host: www.o-ss.net $+ $crlf $+ $crlf } on *:SOCKREAD:stats.*:{ sockread -f $+(%,$sockname,.,read) tokenize 32 $($+(%,$sockname,.,read),2) if (*does not feature in the hiscores* iswm $($+(%,$sockname,.,read),2)) { $hget($sockname,disp) $hget($sockname,name) $c1(isn't featured in the high scores.) hfree $sockname sockclose $sockname halt } if ($hget($sockname,style) == ss) { if ($1 == $hget($sockname,skill)) { if (*not ranked* iswm $($+(%,$sockname,.,read),2)) { $hget($sockname,disp) $hget($sockname,name) $c1(isn't featured in high scores for $hget($sockname,skill) $+ .) } else { hadd -m $sockname exp $xp2next($3,$remove($4,$chr(44))) set $+(%,$sockname,.,a) 0 while ($($+(%,$sockname,.,a),2) < $ini(monsters.ini,$hget($sockname,skill),0)) { inc $+(%,$sockname,.,a) 1 set $+(%,$sockname,.,b) $($+(%,$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)))) } $hget($sockname,disp) $c2($hget($sockname,skill)) $c1(stats for:) $c2($replace($hget($sockname,name),+,$chr(32))) $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)) $hget($sockname,disp) $c2() $($+(%,$sockname,.,b),2) } unset $+(%,$sockname,.,*) hfree $sockname sockclose $sockname } } if ($hget($sockname,style) == st) { if (($skill($1)) && (*not ranked* !iswm $1-)) { if ($hget($sockname,line)) { var %line = $hget($sockname,line) $+($1,:) $c1($3) | hdel $sockname line | hadd -m $sockname line %line } else { hadd -m $sockname line $+($1,:) $c1($3) } } if ($1 == end) { $hget($sockname,disp) Stats for: $c1($replace($hget($sockname,name),+,$chr(32))) $hget($sockname,disp) $hget($sockname,line) hfree $sockname sockclose $sockname } } if ($hget($sockname,style) == cb) { if ($istok($skill(13248624621354321574863),$1,58)) { hadd -m $sockname $1 $iif(*not ranked* iswm $1-,NA,$3) } if ($1 == cooking) { 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) { $hget($sockname,disp) $hget($sockname,name) $c1(doesn't appear in highscores for any combat skill.) } else { $hget($sockname,disp) Combat stats for $c1($replace($hget($sockname,name),+,$chr(32))) Level: $c1($extcmbcalc($hget($sockname,attack),$hget($sockname,strength),$hget($sockname,defence),$hget($sockname,hitpoints),$hget($sockname,prayer),$hget($sockname,ranged),$hget($sockname,magic))) $hget($sockname,disp) Attack: $c1($hget($sockname,attack)) Strength: $c1($hget($sockname,strength)) Defence: $c1($hget($sockname,defence)) Hitpoints: $c1($hget($sockname,hitpoints)) Prayer: $c1($hget($sockname,prayer)) Range: $c1($hget($sockname,ranged)) Magic: $c1($hget($sockname,magic)) } hfree $sockname unset $+(%,$sockname,%read) | sockclose $sockname } } } alias -l extcmbcalc { var %line = $replace($1 $2 $3 $4 $5 $6 $7,NA,1) tokenize 32 %line if (($calc($1 + $2) > $6) && ($calc($1 + $2) > $7)) { var %type = melee } if (($calc($1 + $2) < $6) || ($calc($1 + $2) < $7)) { if ($7 > $calc($1 + $2)) { if ($7 > $6) { var %type = magic } } if ($6 > $calc($1 + $2)) { if ($6 > $7) { var %type = range } } } if (%type == range) { return $calc((0.487 * $6) + (0.249 * $3) + (0.25 * $4) + (0.124 * $5)) (Range Based) } if (%type == magic) { return $calc((0.487 * $7) + (0.249 * $3) + (0.25 * $4) + (0.124 * $5)) (Magic Based) } if (%type == melee) { return $calc((0.32707 * $1) + (0.249 * $3) + (0.324 * $2) + (0.25 * $4) + (0.124 * $5)) (Melee Based) } } alias skill { if ($regex($1,/c(mb|ombat)/Si)) Return Combat if ($1 == overall) return Overall if ($regex($1,/^Stats/Si)) Return Stats if ($regex($1,/^att(ack)?$/Si)) Return Attack if ($regex($1,/^str(ength)?$/Si)) Return Strength if ($regex($1,/^Def(ence)?$/Si)) Return Defence if ($regex($1,/^h(p|its|itpoints)?$/Si)) Return Hitpoints if ($regex($1,/^pray(er)?$/Si)) Return Prayer if ($regex($1,/^mag(e|ic)?$/Si)) Return Magic if ($regex($1,/^range(d)?$/Si)) Return Ranged if ($regex($1,/^Cook(ing)?$/Si)) Return Coooking if ($regex($1,/^wc|Woodcut|woodcutting/Si)) Return Woodcutting if ($regex($1,/^fletch(ing)?$/Si)) Return Fletching if ($regex($1,/^fish(ing)?$/Si)) Return Fishing if ($regex($1,/^fm|Firemake|firemaking/Si)) Return Firemaking if ($regex($1,/^craft(ing)?$/Si)) Return Crafting if ($regex($1,/^smith(ing)?$/Si)) Return Smithing if ($regex($1,/^min(e|ing)?$/Si)) Return Mining if ($regex($1,/^Herb(lore|y)?$/Si)) Return Herblore if ($regex($1,/^Agility/Si)) Return Agility if ($regex($1,/^th(ie|ei)v(e|ing)/Si)) Return Thieving if ($regex($1,/^Slay(er|ing)?$/Si)) Return Slayer if ($regex($1,/^farm(ing)?$/Si)) Return Farming if ($regex($1,/^rc|runecraft|runecrafting/Si)) Return Runecraft if ($regex($1,/^con(struction)?$/Si)) Return Construction if ($1 == 13248624621354321574863) Return attack:strength:ranged:magic:hitpoints:prayer:defence } alias xp { var %x = 1, %level = $calc($1 - 1), %xp = 0 while (%x <= %level) { var %TempXp = $calc((%x + 300 * 2^(%x / 7)) /4) inc %xp %TempXp inc %x } return $int(%xp) } alias xp2Next { var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) return $calc(%nextxp - %xp) }