rendered paste bodyalias c1 { return $+($chr(3),05,$1-,$chr(3)) }
alias c2 { return $+($chr(3),07,$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 ($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) 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) 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) $replace($gettok($readini(monsters.ini,$hget($sockname,skill),$($+(%,$sockname,.,a),2)),1,32),_,$chr(32),-,$chr(32)) $floor($calc($hget($sockname,exp) / $gettok($readini(monsters.ini,$hget($sockname,skill),$($+(%,$sockname,.,a),2)),2,32)))
}
$hget($sockname,disp) $hget($sockname,skill) stats for: $replace($hget($sockname,name),+,$chr(32))
$hget($sockname,disp) Rank: $2 Level: $3 Exp: $4
$hget($sockname,disp) Exp for level $+($calc($3 + 1),:) $hget($sockname,exp) $+ : To lvl $calc($3 + 1) $+ : $($+(%,$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,:) $3 | hdel $sockname line | hadd -m $sockname line %line }
else { hadd -m $sockname line $+($1,:) $3 }
}
if ($1 == end) {
$hget($sockname,disp) Stats for: $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) doesn't appear in highscores for any combat skill.
}
else {
$hget($sockname,disp) Combat stats for $replace($hget($sockname,name),+,$chr(32)) Level: $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: $hget($sockname,attack) Strength: $hget($sockname,strength) Defence: $hget($sockname,defence) Hitpoints: $hget($sockname,hitpoints) Prayer: $hget($sockname,prayer) Range: $hget($sockname,ranged) Magic: $hget($sockname,magic)
}
hfree $sockname
unset $+(%,$sockname,%read) | sockclose $sockname
}
}
}
alias extcmbcalc {
var %line = $replace($1 $2 $3 $4 $5 $6 $7,NA,1)
tokenize 32 %line
if (($calc(($1 + $2) / 2) > $6) && ($calc(($1 + $2) / 2) > $7)) { var %type = melee }
if (($calc(($1 + $2) / 2) < $6) || ($calc(($1 + $2) / 2) < $7)) {
if ($7 > $calc(($1 + $2) / 2)) {
if ($7 > $6) { var %type = magic }
}
if ($6 > $calc(($1 + $2) / 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 -l 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,/hp|hits|hitpoints/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,/thiev(e|ving)/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)
}