on $*:TEXT:$(/^(?>\Q $+ $me $+ \E,? ?)?([!.@~].*)/Si):*:{ /tokenize 32 $iif($me isin $1,$deltok($1-,1,32),$1-) ;;; Check if it's a valid skill, sockopen, and set vars. ;;; if ($+(*,$left($1,1),*) iswm !@.) { if ($getskill($right($1,-1))) { if ($right($1,-1) == define) { /halt } /var %x = 1 /while ($sock(skills. $+ %x)) { /inc %x } if (*#* iswm $1-) { /set %level. $+ %x $right($2,-1) } if (!$2) { if ($readini(rsns.ini, n, RSNs, $nick)) { /set %rsn. $+ %x $readini(rsns.ini, n, RSNs, $nick) } if ($readini(rsns.ini, n, RSNs, $address($nick,3))) { /set %rsn. $+ %x $readini(rsns.ini, n, RSNs, $address($nick,3)) } if (!$readini(rsns.ini, n, RSNs, $address($nick,3))) && (!$readini(rsns.ini, n, RSNs, $nick)) { /.notice $nick You don't have a DEFNAME. !Defname | /halt } } if (!$3) && (#* iswm $2) { if ($readini(rsns.ini, n, RSNs, $nick)) { /set %rsn. $+ %x $readini(rsns.ini, n, RSNs, $nick) } if ($readini(rsns.ini, n, RSNs, $address($nick,3))) { /set %rsn. $+ %x $readini(rsns.ini, n, RSNs, $address($nick,3)) } if (!$readini(rsns.ini, n, RSNs, $address($nick,3))) && (!$readini(rsns.ini, n, RSNs, $nick)) { /.notice $nick You don't have a DEFNAME. !Defname | /halt } } /set %target. $+ %x $iif($left($1,1) == @ && ($nick !isreg $chan),.msg $chan,.notice $nick) $iif(!%rsn. [ $+ [ %x ] ], /set %rsn. $+ %x $iif(*#* !iswm $1-,$replace($2-,$chr(32),+),$replace($3-,$chr(32),+)),$null) /set %skill. $+ %x $getskill($right($1,-1)) /sockopen skills. $+ %x www.o-ss.net 80 /halt } } } alias -l /cleanupskills { ;;; Clean up the socket, unset vars, close it ;;; /sockclose $1 /unset %target. $+ $right($1,1) /unset %rsn. $+ $right($1,1) /unset %skill. $+ $right($1,1) /unset %level. $+ $right($1,1) } on *:sockopen:skills.*: { ;;; Go to the file ;;; /var %x = $right($sockname,1) if ($sockerr > 0) /return /sockwrite -nt $sockname GET $+(/parsers/skills.php?user=,%rsn. [ $+ [ %x ] ],&skill=,%skill. [ $+ [ %x ] ]) HTTP/1.1 /sockwrite -nt $sockname Host: www.o-ss.net /sockwrite -nt $sockname $crlf $crlf } on *:sockread:skills.*: { ;;; Get the data, tokenize, and do checks to output. ;;; if ($sockerr) /return /var %x = $right($sockname,1) /var %n = %target. [ $+ [ %x ] ] /var %read /sockread %read /tokenize 32 %read /var %skill = %skill. [ $+ [ %x ] ] if (** iswm $1-) { %target. [ $+ [ %x ] ] $replace(%rsn. [ $+ [ %x ] ],+,$chr(32)) Does Not Feature in the Hi-Scores for %skill. [ $+ [ %x ] ] $+ . | /cleanupskills $sockname | /halt } if ($3 == does) { %target. [ $+ [ %x ] ] $replace(%rsn. [ $+ [ %x ] ],+,$chr(32)) Does Not feature in the Hi-Scores. | /cleanup $sockname | /halt } if ($0 == 4) { %target. [ $+ [ %x ] ] $+ $upper($left(%skill. [ $+ [ %x ] ],1)) $+ $right(%skill. [ $+ [ %x ] ],-1) Stats for $replace(%rsn. [ $+ [ %x ] ],+,$chr(32)) are: | %target. [ $+ [ %x ] ] Level: $2 EXP: $3 Rank: $1 $iif(%skill. [ $+ [ %x ] ] != overall, EXP to level $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : $bytes($CALC($xp($iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)))-($remove($3,$chr(44)))),b),$null) /set %xp2lvl $CALC($xp($iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)))-($remove($3,$chr(44)))) $iif(%skill == Agility,%n Laps `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [gnome] $item(86.5) [barb] $item(139.5) [wereWolf] $item(540) [wild] $item(571.5)) $iif(%skill == Attack,%n Monsters `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [magicAxe] $item(176) [mGiant] $item(240) [eWarrior] $item(216) [sWarrior] $item(268) [iGiant] $item(284) [iWarrior] $item(236) [bandit] $item(200) [ogre] $item(244) [troll] $item(364) [dag74] $item(280) [gDragon] $item(308) [lDemon] $item(320) [fGiant] $item(444) [giantSkele] $item(280) [dag92] $item(480) [gDemon] $item(356) [aDemon] $item(600)) $iif(%skill == Cooking,%n Items `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [tuna] $item(100) [wine] $item(110) [lob] $item(120) [bass] $item(130) [sword] $item(140) [lavaEel] $item(140) [curry] $item(251) [shark] $item(210) [turtle] $item(212) [mRay] $item(216)) $iif(%skill == Crafting,%n Items `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) %+ : [bString] $item(15) [oilLamp] $item(25) [lBody] $item(25) [symbol] $item(50) [sSickle] $item(50) [hlBody] $item(35) [coif] $item(37) [slBody] $item(65) [orb] $item(52.5) [bLens] $item(55) [rAmulet] $item(85) $chr(124) D`hide bodies till $2 $+ : [green] $item(186) [blue] $item(210) [red] $item(234) [black] $item(258)) $iif(%skill == Defence,%n Monsters `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [magicAxe] $item(176) [mGiant] $item(240) [eWarrior] $item(216) [sWarrior] $item(268) [iGiant] $item(284) [iWarrior] $item(236) [bandit] $item(200) [ogre] $item(244) [troll] $item(364) [dag74] $item(280) [gDragon] $item(308) [lDemon] $item(320) [fGiant] $item(444) [giantSkele] $item(280) [dag92] $item(480) [gDemon] $item(356) [aDemon] $item(600)) $iif(%skill == Farming,%n Harvests `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [potato] $item(9) [marigold] $item(47) [onion] $item(10.5) [cabbage] $item(12) [tomato] $item((25/6)) [nasturtium] $item(111) [woad] $item((115/3)) [limpRoot] $item(40) [waterMelon] $item(54.5) $chr(124) Check-Healths `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [oak] $item(467.5) [willow] $item(1456) [maple] $item(3403) [yew] $item(7069.5) [magic] $item(13769)) $iif(%skill == Firemaking,%n Logs `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [normal] $item(40) [oak] $item(60) [willow] $item(90) [teak] $item(105) [maple] $item(135) [mahogany] $item(157.5) [yew] $item(202.5) [magic] $item(303.75) $chr(124) Pyre logs `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [normal] $item(60) [oak] $item(70) [willow] $item(100) [maple] $item(175) [yew] $item(255) [magic] $item(405)) $iif(%skill == Fishing,%n Fish `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [trout] $item(50) [cod] $item(45) [pike] $item(60) [salmon] $item(70) [tuna] $item(80) [lob] $item(90) [bass] $item(100) [sword] $item(100) [shark] $item(110)) $iif(%skill == Fletching,%n Full bows `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+($chr(40),short,$chr(47),long,$chr(41),$chr(58)) [normal] $+($item(10),$chr(47),$item(20)) [oak] $+($item(33),$chr(47),$item(50)) [willow] $+($item(66.5),$chr(47),$item(83)) [maple] $+($item(100),$chr(47),$item(116.5)) [yew] $+($item(135),$chr(47),$item(150)) [magic] $+($item(166.5),$chr(47),$item(183)) $chr(124) Arrows `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [bronze] $item((19/30)) [iron] $item((23/6)) [steel] $item((19/3)) [mithril] $item((53/6)) [admnt] $item((34/3)) [rune] $item((125/9))) $iif(%skill == Herblore,%n Potions `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [attack] $item(25) [antiPoison] $item(37.5) [dCure] $item(40) [str] $item(50) [statRestre] $item(63) [energy] $item(67.5) [defence] $item(75) [agility] $item(80) [prayRestore] $item(87.5) [sAttack] $item(100) [sAnti] $item(106) [fish] $item(113) [sEnergy] $item(118) [sStr] $item(125) [wPoison] $item(137.5) [sRestore] $item(142) [sDefence] $item(150) [wPoison+] $item(165) [antiFire] $item(158) [range] $item(165) [magic] $item(172.5) [zamorak] $item(175) [saradomin] $item(180)) $iif(%skill == Hitpoints,%n Monsters `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [magicAxe] $hpitem(44) [mGiant] $hpitem(60) [eWarrior] $hpitem(54) [sWarrior] $hpitem(67) [iGiant] $hpitem(71) [iWarrior] $hpitem(59) [bandit] $item(50) [ogre] $hpitem(61) [troll] $hpitem(91) [dag74] $hpitem(70) [gDragon] $hpitem(77) [lDemon] $hpitem(80) [fGiant] $hpitem(111) [giantSkele] $hpitem(70) [dag92] $hpitem(120) [gDemon] $hpitem(89) [aDemon] $hpitem(150)) $iif(%skill == Magic,%n Spells `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [lowAlch] $item(31) [failfBolt] $item(34.5) [failCrumble] $item(32) [teleGrab] $item(43) [heatItem] $item(53) [camTele] $item(55.5) [failsDart] $item(52) [highAlch] $item(65) [enfeeble] $item(83) [lumteleOther] $item(84) [charge] $item(180) [stun] $item(90) [falteleOther] $item(92) [teleBlock] $item(95) [camteleOther] $item(100) $chr(124) Mage training area: [eDiamond] $item(50) [eDragon] $item(58) [eOnyx] $item(72.75)) $iif(%skill == Mining,%n Ores `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [runeEssence] $item(5) [copper/tin] $item(17.5) [iron] $item(35) [silver] $item(40) [coal] $item(50) [gemRock] $item(65) [gold] $item(65) [mithril] $item(80) [admnt] $item(95) [runite] $item(125)) $iif(%skill == Prayer,%n Bones `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [regular] $item(4.4) [big] $item(15) [babyDragon] $item(30) [dragon] $item(72.5) [fayrg] $item(84) [raurg] $item(96) [ourg] $item(140) $chr(124) Worships `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [dragon] $item(288) [fayrg] $item(336) [raurg] $item(384) [ourg] $item(560)) $iif(%skill == Ranged,%n Monsters `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [magicAxe] $item(176) [mGiant] $item(240) [eWarrior] $item(216) [sWarrior] $item(268) [iGiant] $item(284) [iWarrior] $item(236) [bandit] $item(200) [ogre] $item(244) [troll] $item(364) [dag74] $item(280) [gDragon] $item(308) [lDemon] $item(320) [fGiant] $item(444) [giantSkele] $item(280) [dag92] $item(480) [gDemon] $item(356) [aDemon] $item(600)) $iif(%skill == Runecraft,%n Essence `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [air] $item(5) [mind] $item(5.5) [water] $item(6) [mist] $item(8.25) [earth] $item(6.5) [dust] $item(8.65) [mud] $item(9.4) [fire] $item(7) [smoke] $item(9) [steam] $item(9.75) [body] $item(7.5) [lava] $item(10.25) [cosmic] $item(8) [chaos] $item(8.5) [nature] $item(9) [law] $item(9.5)) $iif(%skill == Slayer,%n Monsters `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [magicAxe] $slayitem(176) [mGiant] $slayitem(240) [eWarrior] $slayitem(216) [sWarrior] $slayitem(268) [iGiant] $slayitem(284) [iWarrior] $slayitem(236) [bandit] $slayitem(50) [ogre] $slayitem(244) [troll] $slayitem(364) [dag74] $slayitem(280) [gDragon] $slayitem(308) [lDemon] $slayitem(320) [fGiant] $slayitem(444) [dag92] $slayitem(480) [gDemon] $slayitem(356) [aDemon] $slayitem(600)) $iif(%skill == Strength,%n Monsters `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [magicAxe] $item(176) [mGiant] $item(240) [eWarrior] $item(216) [sWarrior] $item(268) [iGiant] $item(284) [iWarrior] $item(236) [bandit] $item(200) [ogre] $item(244) [troll] $item(364) [dag74] $item(280) [gDragon] $item(308) [lDemon] $item(320) [fGiant] $item(444) [giantSkele] $item(280) [dag92] $item(480) [gDemon] $item(356) [aDemon] $item(600)) $iif(%skill == Smithing,%n Items `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [Smelt] [bronze] $item(6.5) [iron] $item(12.5) [silver] $item(13.7) [steel] $item(17.5) [gold] $item(22.5) [goldGaunts] $item(56.25) [mithril] $item(30) [admnt] $item(37.5) [runite] $item(50) [smithPlates] [b] $item(62.5) [i] $item(125) [s] $item(187.5) [m] $item(250) [a] $item(312.5) [r] $item(375) [Both] [b] $item(95) [i] $item(197.5) [s] $item(275) [m] $item(400) [a] $item(500) [r] $item(625)) $iif(%skill == Thieving,%n NPCs `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [warrior] $item(26) [rogue] $item(35.5) [mstrFarmer] $item(43) [guard] $item(46.5) [fremenik] $item(65) [bandit] $item(80) [knight] $item(84.3) [paladin] $item(151.8) [gnome] $item(198.5) [hero] $item(273.3) [elf] $item(352.25) $chr(124) Chests `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [nature] $item(25) [coins(50)] $item(125) [arwHeads] $item(150) [wallSafe] $item(70) [bloodRune] $item(250) [paladin] $item(500)) $iif(%skill == Woodcutting,%n Logs `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [normal/achey] $item(25) [oak] $item(37.5) [willow] $item(67.5) [teak] $item(85) [hollow] $item(82.5) [maple] $item(100) [mahogany] $item(125) [yew] $item(175) [magic] $item(250)))) $iif(%skill == Construction,%n Items `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : [Chairs] [wood/rock] $item(87) [oak] $item(120) [oakArm/teak] $item(180) [mahogany] $item(280) [BkCases]: [wood] $item(115) [oak] $item(180) [mahogany] $item(420) [Larders]: [wood] $item(228) [oak] $item(480) [teak] $item(750) [Wardrobes]: [sBox] $item(58) [oDraws] $item(120) [oak/tDraws] $item(180) [teak] $item(270) [mahogany] $item(420) [gilded] $item(720)) $iif(%skill == Hunter,%n Items `till $iif(%level. [ $+ [ %x ] ],%level. [ $+ [ %x ] ],$calc($2 + 1)) $+ : Under Construction! :D) /unset %xp2lvl /cleanupskills $sockname } } alias -l /getskill { ;;; Regex to return skills ;;; if ($regex($1,/^over(all)?/Si)) return overall elseif ($regex($1,/^at(t|k|tack)?/Si)) return attack elseif ($regex($1,/^def(en[cs]e)?/Si)) return defence elseif ($regex($1,/^hp|hit(s|points?)?/Si)) return hitpoints elseif ($regex($1,/^range(r|d|ing)?/Si)) return ranged elseif ($regex($1,/^Pray(er)?/Si)) return prayer elseif ($regex($1,/^mag(e|ic)?/Si)) return magic elseif ($regex($1,/^cook(ing)?/Si)) return cooking elseif ($regex($1,/^wc|wood(cut(ting)?)?/Si)) return woodcutting elseif ($regex($1,/^fletch(ing)?/Si)) return fletching elseif ($regex($1,/^fish(ing)?/Si)) return fishing elseif ($regex($1,/^(fire|fm)(make?(ing)?|ing)?/Si)) return Firemaking elseif ($regex($1,/^craft(ing)?/Si)) return crafting elseif ($regex($1,/^(smith|smelt)(ing)?/Si)) return smithing elseif ($regex($1,/^min(e|ing)?/Si)) return mining elseif ($regex($1,/^herb(law|lore)?/Si)) return herblore elseif ($regex($1,/^agil(ity)?/Si)) return agility elseif ($regex($1,/^(th(ei|ie)[fv](e|ing)?)/Si)) return thieving elseif ($regex($1,/^slay(er|ing)?/Si)) return slayer elseif ($regex($1,/^farm(er|ing)?/Si)) return farming elseif ($regex($1,/^(rc|runecraft)(er|ing)?/Si)) return runecraft elseif ($regex($1,/^(poh|Construct)(ion|ing)?/Si)) return construction elseif ($regex($1,/^str(ength)?/Si)) return strength } alias -l slayitem { return $+ $bytes($ceil($calc(%xp2lvl / ( $$1 * (4 / 3)))),b) } alias -l hpitem { return $+ $bytes($ceil($calc(%xp2lvl / ( $$1 * (4 / 3)))),b) } alias -l item { return $+ $bytes($ceil($calc(%xp2lvl / $$1 )),b) } alias /xp { ;;; Calculates XP to level ;;; /var %x = 1, %level = $calc($1 - 1), %xp = 0 /while (%x <= %level) { /var %tempxp = $calc($floor($calc(%x + 300 * 2 ^ (%x / 7))) / 4) /inc %xp %tempxp /inc %x } /return $int(%xp) }