rendered paste bodyon $*:text:/^[@!.]skill/Si:#: {
if (runescript ison $chan || %1runescript ison $chan || $chan == #rs) { halt }
if ($readini(Combatcheck.ini,$chan,$network) == on || $chan == #fireworkingarea) {
if ($sock(levels)) sockclose levels
if ($len($1) == 7 && $right($1,1) isnum) { set %a $right($1,1) }
if ($len($1) == 8 && $right($1,2) isnum 10-15) { set %a $right($1,2) }
if ($len($1) == 6) { notice $nick syntex error: !skill(number 1-15) NICK | halt }
set %levels.display $iif($chan == $null,msg $nick,$iif($left($1,1) == @,msg $chan,notice $nick))
set %color.nick $nick
if ($right($2,1) == &) {
if ($readini(def.ini,nick,$address($remove($2,$chr(38)),2))) { set %levels.nick $readini(def.ini,nick,$address($remove($2,$chr(38)),2))
}
}
elseif ($2 && $right($2,-1) != &) { set %levels.nick $replace($left($2-,12),$chr(32),$chr(95),$chr(45),$chr(95)) }
elseif (!$2) { set %levels.nick $iif($readini(def.ini,nick,$address($nick,2)),$readini(def.ini,nick,$address($nick,2)),$nick) }
sockopen levels www.rscript.org 80
}
}
on *:sockopen:levels: {
sockwrite -nt $sockname GET /lookup.php?type=stats&user= $+ %levels.nick HTTP/1.1
sockwrite -nt $sockname Host: www.rscript.org
sockwrite -nt $sockname $crlf
}
on *:sockread:levels: {
if ($sockerr) { %levels.display Error please inform $me about this error | halt
}
var %sockreader
sockread %sockreader
if (*stat* iswm %sockreader) { hadd -m levels $remove(%sockreader,STAT:,) }
if (*STAT: not found* iswm %sockreader) { %levels.display $c1(%levels.nick) $c2(Does not show in the High Scores page.) | sockclose $sockname | halt }
if (*end* iswm %sockreader) {
set %x 2
set %t 1
while (%x <= 25) {
tokenize 32 $hget(levels,$setskill(%x))
set %nextlevel $calc($2 + 1)
if ($2 < 99) {
set %levels. $+ $setskill(%x) $calc($readini(experiance.ini,skills,%nextlevel) - $3),$chr(173)
}
else { set %levels. $+ $setskill(%x) $3 }
inc %x
}
while (%t <= %a) {
set %levels.to.exp %levels.Attack | set %levels.to Attack
if (%levels.to.exp >= %levels.Summoning) { set %levels.to.exp %levels.Summoning | set %levels.to Summoning }
if (%levels.to.exp >= %levels.defence) { set %levels.to.exp %levels.defence | set %levels.to Defence }
if (%levels.to.exp >= %levels.Hitpoints) { set %levels.to.exp %levels.Hitpoints | set %levels.to Hitpoints }
if (%levels.to.exp >= %levels.Ranged) { set %levels.to.exp %levels.Ranged | set %levels.to Ranged }
if (%levels.to.exp >= %levels.Prayer) { set %levels.to.exp %levels.Prayer | set %levels.to Prayer }
if (%levels.to.exp >= %levels.Magic) { set %levels.to.exp %levels.Magic | set %levels.to Magic }
if (%levels.to.exp >= %levels.Cooking) { set %levels.to.exp %levels.Cooking | set %levels.to Cooking }
if (%levels.to.exp >= %levels.Woodcutting) { set %levels.to.exp %levels.Woodcutting | set %levels.to Woodcutting }
if (%levels.to.exp >= %levels.Fletching) { set %levels.to.exp %levels.Fletching | set %levels.to Fletching }
if (%levels.to.exp >= %levels.Fishing) { set %levels.to.exp %levels.Fishing | set %levels.to Fishing }
if (%levels.to.exp >= %levels.Firemaking) { set %levels.to.exp %levels.Firemaking | set %levels.to Firemaking }
if (%levels.to.exp >= %levels.Crafting) { set %levels.to.exp %levels.Crafting | set %levels.to Crafting }
if (%levels.to.exp >= %levels.Smithing) { set %levels.to.exp %levels.Smithing | set %levels.to Smithing }
if (%levels.to.exp >= %levels.Mining) { set %levels.to.exp %levels.Mining | set %levels.to Mining }
if (%levels.to.exp >= %levels.Herblore) { set %levels.to.exp %levels.Herblore | set %levels.to Herblore }
if (%levels.to.exp >= %levels.Agility) { set %levels.to.exp %levels.Agility | set %levels.to Agility }
if (%levels.to.exp >= %levels.Thieving) { set %levels.to.exp %levels.Thieving | set %levels.to Thieving }
if (%levels.to.exp >= %levels.Slayer) { set %levels.to.exp %levels.Slayer | set %levels.to Slayer }
if (%levels.to.exp >= %levels.Farming) { set %levels.to.exp %levels.Farming | set %levels.to Farming }
if (%levels.to.exp >= %levels.Hunter) { set %levels.to.exp %levels.Hunter | set %levels.to Hunter }
if (%levels.to.exp >= %levels.Runecraft) { set %levels.to.exp %levels.Runecraft | set %levels.to Runecraft }
if (%levels.to.exp >= %levels.Construction) { set %levels.to.exp %levels.Construction | set %levels.to Construction }
if (%levels.to.exp >= %levels.Strength) { set %levels.to.exp %levels.strength | set %levels.to strength }
tokenize 32 $hget(levels,%levels.to)
set %nextlevel $calc($2 + 1)
hadd levels %levels.to $1 %nextlevel $readini(experiance.ini,skills,%nextlevel)
set %levels. $+ %levels.to $calc($readini(experiance.ini,skills,$calc(%nextlevel + 1)) - $readini(experiance.ini,skills,$calc(%nextlevel))),$chr(173)
if (%t >= 1 && %t <= 5) {
set %levels.skill.display %levels.skill.display %t $+ $chr(41) Skill: $c1(%levels.to) Level: $c1($calc($2 + 1)) Exp: $c1($bytes(%levels.to.exp,b)) $+
inc %t
}
if (%t isnum 6-10) {
set %levels.skill.display1 %levels.skill.display1 %t $+ $chr(41) Skill: $c1(%levels.to) Level: $c1($calc($2 + 1)) Exp: $c1($bytes(%levels.to.exp,b)) $+
inc %t
}
if (%t >= 11 && %t <= 15) {
set %levels.skill.display2 %levels.skill.display2 %t $+ $chr(41) Skill: $c1(%levels.to) Level: $c1($calc($2 + 1)) Exp: $c1($bytes(%levels.to.exp,b)) $+
inc %t
}
}
%levels.display ***[ $+ $c1(%levels.nick) $+ ]: Closest level up %levels.skill.display
$iif(%a isnum 6-15,%levels.display ***[ $+ $c1(%levels.nick) $+ ]: Closest level up %levels.skill.display1)
$iif(%a isnum 11-15,%levels.display ***[ $+ $c1(%levels.nick) $+ ]: Closest level up %levels.skill.display2)
sockclose $sockname | unset %levels.* | hfree levels | unset %a | unset %x | unset %t | unset %nextlevel | unset %color.nick
}
}
alias -l setskill {
if ($regex($1,/^(total|overall)/Si)) || ($1 == 1) { Return Overall }
elseif ($regex($1,/^(att|atk|attack)/Si)) || ($1 == 2) { Return Attack }
elseif ($regex($1,/^(str|strenth|strength)/Si)) || ($1 == 4) { Return Strength }
elseif ($regex($1,/^(def|defend|defence)/Si)) || ($1 == 3) { Return Defence }
elseif ($regex($1,/^(hp|hits|hitpoints|hit)/Si)) || ($1 == 5) { Return Hitpoints }
elseif ($regex($1,/^(range|ranging|arch|archery|arching)/Si)) || ($1 == 6) { Return Ranged }
elseif ($regex($1,/^(pray|prayer|praying)/Si)) || ($1 == 7) { Return Prayer }
elseif ($regex($1,/^(mage|magic)/Si)) || ($1 == 8) { Return Magic }
elseif ($regex($1,/^(cook|cooking)/Si)) || ($1 == 9) { Return Cooking }
elseif ($regex($1,/^(wc|wood|woodcut|woodcutting)/Si)) || ($1 == 10) { Return Woodcutting }
elseif ($regex($1,/^(fletch|fletching)/Si)) || ($1 == 11) { Return Fletching }
elseif ($regex($1,/^(Fish(ing)?|fishing|fishcatching)/Si)) || ($1 == 12) { Return Fishing }
elseif ($regex($1,/^(fm|fire|firemaking)/Si)) || ($1 == 13) { Return Firemaking }
elseif ($regex($1,/^(craft|crafting)/Si)) || ($1 == 14) { Return Crafting }
elseif ($regex($1,/^(smithing|metalmaking|smith)/Si)) || ($1 == 15) { Return Smithing }
elseif ($regex($1,/^(Mine|mining)/Si)) || ($1 == 16) { Return Mining }
elseif ($regex($1,/^(Herb|Herblore)/Si)) || ($1 == 17) { Return Herblore }
elseif ($regex($1,/^(Agil|agi|Agility)/Si)) || ($1 == 18) { Return Agility }
elseif ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) || ($1 == 19) { return Thieving }
elseif ($regex($1,/^(slay|slayer)/Si)) || ($1 == 20) { Return Slayer }
elseif ($regex($1,/^(farm|Farming|planting)/Si)) || ($1 == 21) { Return Farming }
elseif ($regex($1,/^(rune|rc|runecrafting|runecraft)/Si)) || ($1 == 22) { Return Runecraft }
elseif ($regex($1,/^(hunt|hunting|hunter)/Si)) || ($1 == 23) { return Hunter }
elseif ($regex($1,/^con(scruct)?(tion)?/Si)) || ($1 == 24) { return Construction }
elseif ($regex($1,/^(sum|summon|summoning)/Si)) || ($1 == 25) { return Summoning }
}