dialog statchecker { title "stats checker, by Dani_l11" size -1 -1 240 100 option dbu edit "RS name", 1, 70 5 85 10 button "Check up", 2, 70 80 85 15 radio "combat", 3, 10 20 40 10 radio "attack", 4, 10 30 40 10 radio "defence", 5, 10 40 40 10 radio "strenght", 6, 10 50 40 10 radio "hitpoints", 7, 10 60 40 10 radio "prayer", 8, 10 70 40 10 radio "ranged", 9, 70 20 40 10 radio "magic", 10, 70 30 40 10 radio "hunter", 11, 70 40 40 10 radio "fletching", 12, 70 50 40 10 radio "runecrafting", 13, 70 60 40 10 radio "thieving", 14, 70 70 40 10 radio "mining", 15, 130 20 40 10 radio "smithing", 16, 130 30 40 10 radio "woodcutting", 17, 130 40 40 10 radio "farming", 18, 130 50 40 10 radio "slayer", 19, 130 60 40 10 radio "agility", 20, 130 70 40 10 radio "fishing", 21, 190 20 40 10 radio "cooking", 22, 190 30 40 10 radio "firemaking", 23, 190 40 40 10 radio "construction", 24, 190 50 40 10 radio "overall", 25, 190 60 40 10 } on *:dialog:statchecker:sclick:2:{ if ($did(1) == Rs name) || ($did(1) == $null) { notice $me 4Fill a Rs name in halt } if ($did(25).state) set $+(%,rs.style.,%ID) stats elseif ($did(3).state) set $+(%,rs.style.,%ID) combat elseif ($did(4).state) set $+(%,rs.style.,%ID) single elseif ($did(5).state) set $+(%,rs.style.,%ID) single elseif ($did(6).state) set $+(%,rs.style.,%ID) single elseif ($did(7).state) set $+(%,rs.style.,%ID) single elseif ($did(8).state) set $+(%,rs.style.,%ID) single elseif ($did(9).state) set $+(%,rs.style.,%ID) single elseif ($did(10).state) set $+(%,rs.style.,%ID) single elseif ($did(11).state) set $+(%,rs.style.,%ID) single elseif ($did(12).state) set $+(%,rs.style.,%ID) single elseif ($did(13).state) set $+(%,rs.style.,%ID) single elseif ($did(14).state) set $+(%,rs.style.,%ID) single elseif ($did(15).state) set $+(%,rs.style.,%ID) single elseif ($did(16).state) set $+(%,rs.style.,%ID) single elseif ($did(17).state) set $+(%,rs.style.,%ID) single elseif ($did(18).state) set $+(%,rs.style.,%ID) single elseif ($did(19).state) set $+(%,rs.style.,%ID) single elseif ($did(20).state) set $+(%,rs.style.,%ID) single elseif ($did(21).state) set $+(%,rs.style.,%ID) single elseif ($did(22).state) set $+(%,rs.style.,%ID) single elseif ($did(23).state) set $+(%,rs.style.,%ID) single elseif ($did(24).state) set $+(%,rs.style.,%ID) single else { notice $me 4Click on some button } if ($len(did(1)) > 12) { notice $me 4The nickname $2-is too long | halt } set $+(%,rs.rsn.,%ID) $did(1) if ($did(25).state) set $+(%,rs.skill.,%ID) $setskill(overall) if ($did(3).state) set $+(%,rs.skill.,%ID) $setskill(combat) if ($did(4).state) set $+(%,rs.skill.,%ID) $setskill(attack) if ($did(5).state) set $+(%,rs.skill.,%ID) $setskill(defence) if ($did(6).state) set $+(%,rs.skill.,%ID) $setskill(strenght) if ($did(7).state) set $+(%,rs.skill.,%ID) $setskill(hitpoints) if ($did(8).state) sset $+(%,rs.skill.,%ID) $setskill(prayer) if ($did(9).state) set $+(%,rs.skill.,%ID) $setskill(ranged) if ($did(10).state) set $+(%,rs.skill.,%ID) $setskill(magic) if ($did(11).state) set $+(%,rs.skill.,%ID) $setskill(hunter) if ($did(12).state) set $+(%,rs.skill.,%ID) $setskill(fletching) if ($did(13).state) set $+(%,rs.skill.,%ID) $setskill(runecrafting) if ($did(14).state) set $+(%,rs.skill.,%ID) $setskill(thieving) if ($did(15).state) set $+(%,rs.skill.,%ID) $setskill(mining) if ($did(16).state) set $+(%,rs.skill.,%ID) $setskill(smithing) if ($did(17).state) set $+(%,rs.skill.,%ID) $setskill(woodcutting) if ($did(18).state) set $+(%,rs.skill.,%ID) $setskill(farming) if ($did(19).state) set $+(%,rs.skill.,%ID) $setskill(slayer) if ($did(20).state) set $+(%,rs.skill.,%ID) $setskill(agility) if ($did(21).state) set $+(%,rs.skill.,%ID) $setskill(fishing) if ($did(22).state) set $+(%,rs.skill.,%ID) $setskill(cooking) if ($did(23).state) set $+(%,rs.skill.,%ID) $setskill(firemaking) if ($did(24).state) set $+(%,rs.skill.,%ID) $setskill(construction) sockclose $+(rsh.,%ID) hiscore.runescape.com 80 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) { notice $me 4The nickname: %target 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),).text) { if (%style == stats) { var %y = 0 while (%y <= 23) { tokenize 32 $hget($sockname,(%y)) var %file = $setskill(%y) $2 inc %y } notice $me 4Stats for %target $+ : notice $Me 4 $+ %file unset $+(%,rs.,%ID) } if (%style == single) { if (!$hget($sockname,%skill)) { notice $me 4 $+ %target did not feature in higscores for %skill | remove $sockname | sockclose $sockname | halt } tokenize 32 $hget($sockname,%skill) notice $me 4 $+ %skill Stats for %target notice $me 4Level: $2 Rank: $1 Exp: $3 Exp for $calc($2 + 1) 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) notice $me 4 $+ %target is level %combat notice $me 4 $+ Att: %att Def: %def Str: %str hp: %Hp Range: %rng Pray: %pray Magic: %magic if ($floor(%combat) != 126) notice $me 4Levels for $floor($calc($gettok(%combat,1,32) +1)) $+ : %lvl.base def/hp: %d.lvl Prayer: %p.lvl else notice $me 4 $+ %target has reached the maximum combat level in 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,&) | 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 } alias -l c1 { return $+($chr(3),4,$1-) } alias -l c2 { return $+($chr(3),6,$1-) } on *:TEXT:*:#: { if ($chan == #tzhaar) { halt } 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),).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,&) | 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 }