Runescape stats Script

Platform:  mIRC
Published  Mar 30, 2007
Updated  Jun 30, 2007
this is a complete runescape stats script written by smooth_dudes

syntax:
!stats [nick] - returns all stats
!cmb [nick] - returns all combat stats
!single [nick] - returns stats for a single skill, ex: !str [nick]

alias -l c1 { return $+($chr(3),14,$1-) }
alias -l c2 { return $+($chr(3),07,$1-) }
on *:TEXT:*:#: {
if ($left($strip($1),1) !isin @!.) || ($regex($strip($1),/(=|[^<]*>|<[^>]*>|<[^>]|[0-9]|$chr(95))/Si)) { halt }
if ($right($1,-1) == defname) && ($2-) && ($len($2-) <= 12) {
writeini DefRSN.ini RSNs $mask($fulladdress,3) $replace($2-,$chr(32),-)
notice $nick $c1(your nickname for the adress) $c2($mask($fulladdress,3)) $c1(has been set to) $c2($2-)
halt
}
inc %ID 1
if ($right($strip($1),-1) == stats) set $+(%,rs.style.,%ID) stats
elseif ($regex($strip($1),/co?mb(at)?/Si)) set $+(%,rs.style.,%ID) combat
elseif ($setskill($remove($strip($1),@,!,.))) set $+(%,rs.style.,%ID) single
else halt
if ($len($2-) > 12) { $iif($left($1,1) == @,msg $chan,notice $nick) $c1(The nickname) $c2($2-) $c1(is too long) | halt }
if ($2) set $+(%,rs.rsn.,%ID) $replace($2-,$chr(32),$chr(95))
elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,rs.rsn.,%ID) $ifmatch
elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,rs.rsn.,%ID) $ifmatch
else set $+(%,rs.rsn.,%ID) $nick
set $+(%,rs.skill.,%ID) $setskill($remove($strip($1),@,!,.))
set $+(%,rs.return.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick)
sockopen $+(rsh.,%ID) hiscore.runescape.com 80
}
on *:SOCKOPEN:rsh.*:{
var %ID = $gettok($sockname,2,46)
sockwrite -nt $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,rs.rsn.,%ID),2) HTTP/1.0
sockwrite -nt $sockname Host: hiscore.runescape.com $+ $str($crlf,2)
}
on *:SOCKREAD:rsh.*:{
if ($sockerr) { echo -a Error. | halt }
var %ID = $gettok($sockname,2,46), $&
%style = $($+(%,rs.style.,%ID),2), $&
%target = $($+(%,rs.rsn.,%ID),2), $&
%display = $($+(%,rs.return.,%ID),2), $&
%skill = $($+(%,rs.skill.,%ID),2)
sockread &source
bwrite $sockname -1 -1 &source
if ($bfind(&source,1,does not feature in the hiscores).text) { %display $c1(The nickname:) $c2(%target) $c1(did not feature in runescape highscores for any skill!) | remove $sockname | sockclose $sockname | halt }
bread $sockname 1 $file($sockname).size $+(&,$sockname)
var %stat, %x = 1
while (%x) {
var %x = $bfind($+(&,$sockname),$calc(%x + 1),<a href="overall.ws?table=).text, %stat = $htmlfree($bvar($+(&,$sockname),%x,200).text)
tokenize 10 %stat
hadd -m $sockname $1 $2 $3 $4 $xp2next($3,$4)
}
if ($bfind($+(&,$sockname),1,<div id="footerHiscores"></div>).text) {
if (%style == stats) {
var %y = 0
while (%y <= 23) {
tokenize 32 $hget($sockname,$setskill(%y))
if ($2) var %file = %file $c1($setskill(%y)) $c2($2)
inc %y
}
%display $c1(Stats for) $c2(%target) $+ $c1(:)
%display %file
unset $+(%,rs.,%ID)
}
if (%style == single) {
if (!$hget($sockname,%skill)) { %display $c2(%target) $c1(did not feature in higscores for) $c2(%skill) | remove $sockname | sockclose $sockname | halt }
tokenize 32 $hget($sockname,%skill)
%display $c2(%skill) $c1(Stats for) $c2(%target)
%display $c1(Level:) $c2($2) $c1(Rank:) $c2($1) $c1(Exp:) $c2($3) $c1(Exp for) $c2($calc($2 + 1)) $c1(%skill $+ :) $c2($comma($4))
unset $+(%,rs.,%ID)
}
if (%style == combat) {
var %att = $gettok($hget($sockname,attack),2,32), %def = $gettok($hget($sockname,defence),2,32), $&
%str = $gettok($hget($sockname,strength),2,32), %hp = $gettok($hget($sockname,hitpoints),2,32), $&
%rng = $gettok($hget($sockname,ranged),2,32), %pray = $gettok($hget($sockname,prayer),2,32), $&
%magic = $gettok($hget($sockname,magic),2,32)
var %combat = $cmb(%att,%def,%str,%hp,%rng,%pray,%magic)
var %temp = $abs($calc($int($calc($gettok(%combat,1,32) +1)) - $gettok(%combat,1,32))), $&
%a.lvl = $ceil($calc(%temp / .32707)), %s.lvl = $ceil($calc(%temp / .324)), $&
%d.lvl = $ceil($calc(%temp / .25)), $&
%m.lvl = $ceil($calc(%temp / .487)), $&
%r.lvl = $ceil($calc(%temp / .487)), $&
%p.lvl = $ceil($calc(%temp / .124))
if ($gettok(%combat,2,32) == Magic Based) var %lvl.base = Magic: %m.lvl
elseif ($gettok(%combat,2,32) == Ranged Based) var %lvl.base = Ranged: %r.lvl
else var %lvl.base = $c1(Att:) $c2(%a.lvl) $c1(Str:) $c2(%s.lvl)
%display $c2(%target) $c1(is level) $c2(%combat)
%display $c1(Att:) $c2(%att) $c1(Def:) $c2(%def) $c1(Str:) $c2(%str) $c1(hp:) $c2(%Hp) $c1(Range:) $c2(%rng) $c1(Pray:) $c2(%pray) $c1(Magic:) $c2(%magic)
if ($floor(%combat) != 126) %display $c1(Levels for) $c2($floor($calc($gettok(%combat,1,32) +1))) $+ $c1(:) %lvl.base $c1(def/hp:) $c2(%d.lvl) $c1(Prayer:) $c2(%p.lvl)
else %display $c2(%target) $c1(has reached the maximum combat level in) $c2(Runescape!)
unset $+(%,rs.,%ID)
}
}
.remove $sockname
}
alias -l cmb {
var %a = $calc($2 * 100), %b = $calc($4 * 100), %c = $calc($6 * 50)
var %base = $calc($calc(%a + %b + %c) / 400), %d = $calc($1 * 130), %e = $calc($3 * 130)
if ($and($5,1) == 0) var %f = $calc($calc($calc($5 - 1) + $calc($5 * 2)) * 65)
elseif ($and($5,1) == 1) var %f = $calc($5 * 195)
if ($and($7,1) == 0) var %g = $calc($calc($calc($7 - 1) + $calc($7 * 2)) * 65)
elseif ($and($7,1) == 1) var %g = $calc($7 * 195)
var %mcombat = $calc($calc(%d + %e) / 400), %rcombat = $calc(%f / 400), %macombat = $calc(%g / 400)
if (%mcombat > %rcombat) && (%mcombat > %macombat) { return $calc(%mcombat + %base) Melee Based }
elseif (%rcombat > %mcombat) && (%rcombat > %macombat) { return $calc(%rcombat + %base) Ranged Based }
elseif (%macombat > %mcombat) && (%macombat > %rcombat) { return $calc(%macombat + %base) Magic Based }
}
alias -l htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&amp;) | return %x }
alias -l comma { Var %a, %b = $regsub($ticks,$$1,/G([+-]?d+?)(?=(?:d{3})++(?=.d++$|$))/g,1 $+ $chr(44),%a) | Return %a }
alias -l xp2Next { var %xp = $remove($2,$chr(44)), %nextxp = $xp($calc($1 + 1)) | return $calc(%nextxp - %xp) }
alias -l 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 -l setskill {
if ($1 == 0) || ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall
elseif ($1 == 1) || ($regex($1,/^at(t|k|tack)$/Si)) return Attack
elseif ($1 == 2) || ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence
elseif ($1 == 3) || ($regex($1,/^str(ength)?$/Si)) return Strength
elseif ($1 == 4) || ($regex($1,/^hp|hit(s|points?)?$/Si)) return Hitpoints
elseif ($1 == 5) || ($regex($1,/^range(r|d|ing)?$/Si)) return Ranged
elseif ($1 == 6) || ($regex($1,/^Pray(er)?$$/Si)) return Prayer
elseif ($1 == 7) || ($regex($1,/^mag(e|ic)$$/Si)) return Magic
elseif ($1 == 8) || ($regex($1,/^cook(ing)?$/Si)) return Cooking
elseif ($1 == 9) || ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return Woodcutting
elseif ($1 == 10) || ($regex($1,/^fletch(ing)?$/Si)) return Fletching
elseif ($1 == 11) || ($regex($1,/^fish(ing)?$/Si)) return Fishing
elseif ($1 == 12) || ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return Firemaking
elseif ($1 == 13) || ($regex($1,/^craft(ing)?$/Si)) return Crafting
elseif ($1 == 14) || ($regex($1,/^(smith|smelt)(ing)?$/Si)) return Smithing
elseif ($1 == 15) || ($regex($1,/^mine(ing)?$/Si)) return Mining
elseif ($1 == 16) || ($regex($1,/^herb(law|lore)?$/Si)) return Herblore
elseif ($1 == 17) || ($regex($1,/^agil(ity)?$/Si)) return Agility
elseif ($1 == 18) || ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return Thieving
elseif ($1 == 19) || ($regex($1,/^slay(er|ing)?$/Si)) return Slayer
elseif ($1 == 20) || ($regex($1,/^farm(er|ing)?$/Si)) return Farming
elseif ($1 == 21) || ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return Runecraft
elseif ($1 == 22) || ($regex($1,/^(hunt)(er|ing)?$/si)) return Hunter
elseif ($1 == 23) || ($regex($1,/^(con)(struc?tion)?$/si)) return Construction
}

Comments

Sign in to comment.
Tankingcory   -  Jul 25, 2008
still, only the .defname Tankingcory is working for me i type !stats tankingcory and nothing comes up, i type .stats same story, i tried them all
 Respond  
Tankingcory   -  Jul 25, 2008
thanks
 Respond  
mountaindew   -  Jul 10, 2008
This all goes in remotes.
 Respond  
Tankingcory   -  Jul 10, 2008
where are you supposed to paste this script at? remotes or aliases?
 Respond  
Tom445566   -  Nov 28, 2007
When I Use The Single Command (like .def Zezima) This Happens:
(12:19:57) -[-Tom`MIRC-]- Defence Stats for Zezima
(12:19:58) -[-Tom`MIRC-]- Defence Stats for Zezima
(12:19:58) -[-Tom`MIRC-]- Defence Stats for Zezima
(12:19:58) -[-Tom`MIRC-]- Defence Stats for Zezima
 Respond  
Roy911   -  Oct 23, 2007
Instead of putting $strip($1-) on everything, you could have just used
/tokenize 32 $strip($1-).
 Respond  
RussellReal   -  Sep 18, 2007
I\'m pretty sure this is simply a modded version of URZA\'s stat script, and being that it is, you should credit him.. but that\'s just my prospective anyway.
 Respond  
napa182   -  Sep 10, 2007
scott120 you seem like a spammer =/
 Respond  
tomb   -  Jul 16, 2007
i copy and paste the whole thing into remote and try to do a command !stats [nick] but nothing works..help please?
 Respond  
smooth_dudes   -  Jun 30, 2007
lol dark reol thats a completely different thing :)
 Respond  
dark_reol   -  Jun 16, 2007
If would be better if you could add a on join cmb lookup

:D
 Respond  
red_alert38   -  Jun 09, 2007
i have one problem that i know of everytime i try to look up something i get * Removed \'C:\\Program Files\\mIRC\\rsh.7\' and idk how to fix it :|.
 Respond  
smooth_dudes   -  Jun 07, 2007
the highscore source has changed slightly, but i got that fixed now :)

enjoy
 Respond  
stargazer989   -  Jun 04, 2007
when i type !stats stargazer989 all it gives me is this:
[stargazer989] Spoken words: 628 (3180 letters) Commands used 34. 187 lines and 2 actions.
and im not getting runescape stats
 Respond  
die-chav   -  May 30, 2007
why doesnt it work? it just says: * Removed \'C:\\Program Files\\mIRC\\rsh.1\'
Is it something up with my computer or is it the script has a bug?
 Respond  
chenyangwei   -  Apr 24, 2007
come here to buy cheap runescape gold/money
www.runescape-money.eu
www.rs2-money.com

www.runescape-golds.com
 Respond  
smooth_dudes   -  Apr 06, 2007
ok added the 100,000,000. also the combat works.

[19:20:54] <Smooth_dudes> 07lee_shani 14is level 07112.35 Melee Based
[19:20:54] <Smooth_dudes> 14Att: 0799 14Def: 0776 14Str: 0799 14hp: 0790 14Range: 0751 14Pray: 0752 14Magic: 0756
[19:20:54] <Smooth_dudes> 14Levels for 0711314: 14Att: 072 14Str: 073 14def/hp: 073 14Prayer: 076
 Respond  
Stefan1990   -  Apr 06, 2007
Oh and btw the !cmb script aint working for me.
 Respond  
Stefan1990   -  Apr 06, 2007
If I Say !ranged <nick>
then I get Level: Rank: 731,519 Exp: 3,298,433 Exp for 86 Ranged: 299367
Could you make a little change that it says xp for 86 ranged: 299,367 or 1,119,190 so theres a comma in it? :$ Then its easier to see, if its easy to solve could you please do it then?
 Respond  
smooth_dudes   -  Apr 03, 2007
thank you for reminding me, very simple error that had something to do with the variables :)

*fixed*
 Respond  
Mushufasa   -  Apr 02, 2007
This didn\'t work for me, and being the complete newb I am I don\'t know why either. If you could fix it, it looks like it could be great ;D.

Unless of course its just me its not working for in which case /forwardslashcry
 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.