rendered paste bodymenu * {
Runescape tool
.Exp Counter: /dialog -m ExpCount ExpCount
.Combat: /Dialog -m Combat Combat
.Stats: /dialog -m Stats Stats
}
dialog Combat {
title "Combat"
size -1 -1 166 90
option dbu
text "Username:", 2, 5 9 57 12, center
edit "", 3, 70 10 63 10, center
edit "", 4, 36 66 14 10, read
edit "", 5, 36 52 14 10, read
edit "", 6, 36 39 14 10, read
edit "", 7, 90 66 14 10, read
edit "", 8, 90 52 14 10, read
edit "", 9, 90 39 14 10, read
edit "", 10, 144 61 14 10, read
edit "", 11, 144 48 14 10, read
box "Levels", 1, 2 28 160 60
box "Combat", 13, 2 2 160 86
text "Attack:", 14, 5 38 25 8, center
text "Defence:", 15, 5 51 25 8, center
text "Strength:", 16, 5 65 25 8, center
text "Hitpoints:", 17, 60 38 25 8, center
text "Ranged:", 18, 60 51 25 8, center
text "Prayer:", 19, 60 65 25 8, center
text "Magic:", 12, 114 47 25 8, center
text "Summon:", 20, 114 60 25 8, center
text "F2P level:", 21, 5 77 28 8, center
edit "", 22, 36 77 22 10, read
text "|", 23, 62 77 25 8, center
text "P2P level:", 24, 93 77 28 8, center
button "Look up", 26, 41 21 58 9, flat
edit "", 25, 124 77 22 10, read
}
on *:DIALOG:Combat:sclick:26:{
if (!$did(3)) {
did -ra Combat 3 Error, No username.
}
if ($len($did(3)) > 12) {
did -ra Combat 3 Error, Invalid username.
}
else {
var %s = $ticks
var %User $replace($did(3),$chr(32),$chr(95))
sockopen Combat. [ $+ [ %s ] ] hiscore.runescape.com 80
sockmark Combat. [ $+ [ %s ] ] $+(username,~,%User)
}
}
on *:SOCKOPEN:Combat.*:{
var %User $gettok($sock($sockname).mark,2,126)
sockwrite -n $sockname GET $+(/index_lite.ws?player=,%User) HTTP/1.1
sockwrite -n $sockname Host: hiscore.runescape.com
sockwrite -n $sockname $crlf
}
on *:SOCKREAD:Combat.*:{
var %s = $gettok($sockname,2,$asc(.))
if ($sockerr) { sockclose $sockname | did -ra Combat 3 Socket error. | halt }
else {
var %Combat
sockread %Combat
if (*404 - Page not found* iswm %Combat) {
did -ra Combat 3 User not found.
}
if (*,*,* iswm %Combat) {
set %Stats. [ $+ [ %s ] ] %Stats. [ $+ [ %s ] ] $gettok(%Combat,2,44)
tokenize 32 %Stats. [ $+ [ %s ] ]
;str = 4, attk = 6,def = 5, hp = 5, pray = 7,range = 8, mage = 8,summon = 10
did -ra Combat 4 $4
did -ra Combat 6 $2
did -ra Combat 5 $3
did -ra Combat 7 $7
did -ra Combat 8 $6
did -ra Combat 9 $5
did -ra Combat 10 $25
did -ra Combat 11 $8
var %cmbp2p = $remove($cmbp2p($2,$3,$4,$5,$6,$7,$8,$iif(-1 iswm $25,1,$25)),Melee,Ranged,Magic,Based)
var %cmbf2p = $remove($cmbf2p($2,$3,$4,$5,$6,$7,$8),Melee,Ranged,Magic,Based)
did -ra Combat 22 %cmbf2p
did -ra Combat 25 %cmbp2p
}
}
}
on *:SOCKCLOSE:Combat.*:{
var %s = $gettok($sockname,2,$asc(.))
unset %Stats. [ $+ [ %s ] ]
sockclose $sockname
}
dialog Stats {
title "Stats"
size -1 -1 197 139
option dbu
text "Firemaking:", 14, 112 48 29 8, center
text "Strength:", 15, 6 26 25 8, center
text "Thieving:", 16, 6 115 25 8, center
text "Attack:", 17, 6 15 25 8, center
text "Construct:", 18, 144 77 26 8, center
text "Hitpoints:", 20, 59 37 25 8, center
text "Prayer:", 21, 6 59 25 8, center
text "Hunter:", 22, 144 96 25 8, center
text "Summon:", 23, 144 115 25 8, center
text "Cooking:", 24, 112 37 25 8, center
text "Slayer:", 25, 75 96 25 8, center
text "Overall:", 26, 164 30 25 8, center
text "Defence:", 27, 6 37 25 8, center
text "Magic:", 28, 59 15 25 8, center
text "Fletching:", 29, 75 77 25 8, center
text "Fishing:", 30, 112 26 25 8, center
text "Farming:", 31, 75 115 25 8, center
text "Mining:", 32, 59 59 25 8, center
text "Smithing:", 33, 112 15 25 8, center
text "Ranged:", 34, 6 48 25 8, center
text "Runecraft:", 35, 59 26 26 8, center
text "Woodcut:", 36, 112 59 24 8, center
text "Herblore:", 37, 6 96 25 8, center
text "Crafting:", 38, 59 48 25 8, center
text "Username:", 40, 5 6 41 7, center
edit "", 41, 41 6 90 10, center
button "Look up!", 42, 137 6 53 9
box "P2P Skills", 43, 1 68 196 61
edit "", 44, 32 78 16 10, read
box "F2P", 53, 1 -1 196 130
edit "", 45, 32 97 16 10, read
edit "", 46, 32 116 16 10, read
edit "", 47, 101 116 16 10, read
edit "", 48, 101 78 16 10, read
edit "", 49, 170 78 16 10, read
edit "", 50, 170 97 16 10, read
edit "", 51, 101 97 16 10, read
edit "", 52, 170 116 16 10, read
text "Agility:", 19, 6 77 25 8, center
edit "", 54, 35 16 16 10, read
edit "", 55, 88 16 16 10, read
edit "", 56, 35 39 16 10, read
edit "", 57, 35 27 16 10, read
edit "", 58, 88 38 16 10, read
edit "", 59, 88 60 16 10, read
edit "", 60, 35 50 16 10, read
edit "", 61, 35 61 16 10, read
edit "", 62, 88 49 16 10, read
edit "", 63, 88 27 16 10, read
edit "", 64, 141 16 16 10, read
edit "", 65, 141 27 16 10, read
edit "", 66, 141 38 16 10, read
edit "", 67, 141 49 16 10, read
edit "", 68, 141 59 16 10, read
edit "", 69, 164 40 26 10, read, center
text "Combat F2P:", 1, 3 130 53 8, center
text "Combat P2P:", 2, 100 130 53 8, center
edit "", 3, 62 129 28 10, read
edit "", 4, 159 129 28 10, read
}
on *:DIALOG:Stats:sclick:42:{
if (!$did(41)) {
//dialog -m NoNameError NoNameError
halt
}
else {
if ($len($did(41)) > 12) {
//dialog -m TooLongError TooLongError
halt
}
else {
var %s = $ticks
set %StatsUser. [ $+ [ %s ] ] $replace($did(41),$chr(32),$chr(95))
sockopen Stats. [ $+ [ %s ] ] hiscore.runescape.com 80
}
}
}
on *:SOCKOPEN:Stats.*:{
var %s = $gettok($sockname,2,$asc(.))
sockwrite -n $sockname GET $+(/index_lite.ws?player=,%StatsUser. [ $+ [ %s ] ]) HTTP/1.1
sockwrite -n $sockname Host: hiscore.runescape.com
sockwrite -n $sockname $crlf
}
on *:SOCKREAD:Stats.*:{
var %s = $gettok($sockname,2,$asc(.))
if ($sockerr) { sockclose $sockname | did -ra Combat 40 Socket error. | halt }
else {
var %Stats
sockread %Stats
if (*404 - Page not found* iswm %Stats) {
//dialog -m StatsError StatsError
halt
}
if (*,*,* iswm %Stats) {
set %Stats. [ $+ [ %s ] ] %Stats. [ $+ [ %s ] ] $gettok(%Stats,2,44)
tokenize 32 %Stats. [ $+ [ %s ] ]
;attk = 54 2, str = 57 4,def = 56 3, hp = 58 5,agi = 44 18,herb = 45 17,thiev = 46 19,fletch = 48 11,cons = 49 24
;summon = 52 25,hunter = 50 23,runecraft = 63 22,overall = 69 1,wc = 68 10, range = 60 6,pray = 61 7,mage = 55 8,craft = 62 14
;mining = 59 16,slayer = 51 20,farm = 47 21,smithing = 64 15,fish = 65 12,cook = 66 9,fm = 67 13,
did -ra Stats 54 $2
did -ra Stats 57 $4
did -ra Stats 56 $3
did -ra Stats 58 $5
did -ra Stats 45 $17
did -ra Stats 44 $18
did -ra Stats 48 $11
did -ra Stats 49 $24
did -ra Stats 52 $25
did -ra Stats 50 $23
did -ra Stats 63 $22
did -ra Stats 69 $bytes($1,db)
did -ra Stats 68 $10
did -ra Stats 46 $19
did -ra Stats 60 $6
did -ra Stats 61 $7
did -ra Stats 55 $8
did -ra Stats 62 $14
did -ra Stats 59 $16
did -ra Stats 51 $20
did -ra Stats 47 $21
did -ra Stats 64 $15
did -ra Stats 65 $12
did -ra Stats 66 $9
did -ra Stats 67 $13
var %cmbp2p = $remove($cmbp2p($2,$3,$4,$5,$6,$7,$8,$iif(-1 iswm $25,1,$25)),Melee,Ranged,Magic,Based)
var %cmbf2p = $remove($cmbf2p($2,$3,$4,$5,$6,$7,$8),Melee,Ranged,Magic,Based)
did -ra Stats 3 %cmbf2p
did -ra Stats 4 %cmbp2p
}
}
}
on *:SOCKCLOSE:Stats.*:{
var %s = $gettok($sockname,2,$asc(.))
unset %StatsUser. [ $+ [ %s ] ]
unset %Stats. [ $+ [ %s ] ]
sockclose $sockname
}
alias -l cmbp2p {
;$cmb(attack,defence,strength,hitpoints,ranged,prayer,magic,summoning)
var %a = $calc($2 * 100), %b = $calc($4 * 100), %e = $calc($1 * 130), %f = $calc($3 * 130)
var %c = $iif($and($6,1) == 1,$calc($calc($6 - 1) * 50),$calc($6 * 50)), %d = $iif($and($8,1) == 1,$calc($calc($8 - 1) * 50),$calc($8 * 50))
var %g = $iif($and($5,1) == 1,$calc($calc($calc($5 - 1) + $calc($5 * 2)) * 65),$calc($5 * 195)), %h = $iif($and($7,1) == 1,$calc($calc($calc($7 - 1) + $calc($7 * 2)) * 65),$calc($7 * 195))
var %base = $calc($calc(%a + %b + %c + %d) / 400), %mclass = $calc($calc(%e + %f) / 400), %rclass = $calc(%g / 400), %maclass = $calc(%h / 400)
if ((%mclass > %rclass) && (%mclass > %maclass)) { return $calc(%mclass + %base) Melee Based }
elseif ((%rclass > %mclass) && (%rclass > %maclass)) { return $calc(%rclass + %base) Ranged Based }
elseif ((%maclass > %mclass) && (%maclass > %rclass)) { return $calc(%maclass + %base) Magic Based }
}
alias -l cmbf2p {
tokenize 32 $1-
var %rsc1 [ $+ [ $8 ] ] $calc((($1 * 130) + ($3 * 130)) / 400)
var %rsc2 [ $+ [ $8 ] ] $calc($iif($and($5,1) == 0,$calc($5 * 195),$calc((($5 - 1) + ($5 * 2)) * 65)) / 400)
var %rsc3 [ $+ [ $8 ] ] $calc($iif($and($7,1) == 0,$calc($7 * 195),$calc((($7 - 1) + ($7 * 2)) * 65)) / 400)
if ((%rsc1 [ $+ [ $8 ] ] >= %rsc2 [ $+ [ $8 ] ]) && (%rsc1 [ $+ [ $8 ] ] >= %rsc3 [ $+ [ $8 ] ])) return $calc(%rsc1 [ $+ [ $8 ] ] + ((($2 * 100) + ($4 * 100) + ($iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50)) / 400)) Melee Based
elseif ((%rsc2 [ $+ [ $8 ] ] >= %rsc3 [ $+ [ $8 ] ]) && (%rsc2 [ $+ [ $8 ] ] >= %rsc1 [ $+ [ $8 ] ])) return $calc(%rsc2 [ $+ [ $8 ] ] + ((($2 * 100) + ($4 * 100) + $iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50) / 400)) Ranged Based
elseif ((%rsc3 [ $+ [ $8 ] ] >= %rsc1 [ $+ [ $8 ] ]) && (%rsc3 [ $+ [ $8 ] ] >= %rsc2 [ $+ [ $8 ] ])) return $calc(%rsc3 [ $+ [ $8 ] ] + ((($2 * 100) + ($4 * 100) + $iif($and($6,1) == 0,$6,$calc($6 - 1)) * 50) / 400)) Magic Based
}
dialog TooLongError {
title "Error"
size -1 -1 90 54
option dbu
text "- Error -", 1, 31 7 25 8, center
text "Username is too long", 2, 20 22 49 8, center
button "Cancel", 3, 26 37 37 12, cancel
}
dialog StatsError {
title "Error"
size -1 -1 90 54
option dbu
text "- Error -", 1, 31 7 25 8, center
text "User was not found.", 2, 20 22 49 8, center
button "Cancel", 3, 26 37 37 12, cancel
}
dialog NoNameError {
title "Error"
size -1 -1 90 54
option dbu
text "- Error -", 1, 31 7 25 8, center
text "You must specify a user", 2, 20 22 49 8, center
button "Cancel", 3, 26 37 37 12, cancel
}
dialog ExpCount {
title "Average Exp"
size -1 -1 183 156
option dbu
box "User and Skill", 1, 1 2 181 51
text "User:", 2, 5 10 40 8, center
edit "", 3, 59 9 88 10, center
text "Skill:", 4, 5 24 42 8, center
edit "", 5, 59 23 88 10, center
button "Start", 6, 49 40 72 9
text "Starting Exp:", 8, 5 62 37 8, center
edit "", 9, 69 61 45 10, read center
text "Ending Exp:", 11, 5 85 40 8, center
edit "", 12, 69 84 45 10, read center
box "Exp. Made", 13, 1 96 181 58
box "Starting/Ending Exp.", 7, 1 53 181 101
button "Stop", 10, 118 59 61 37
text "Per 5 mins:", 14, 5 105 35 8, center
text "Per 15 mins:", 15, 99 105 35 8, center
edit "", 16, 135 104 45 10, read center
edit "", 17, 48 104 46 10, read center
text "Per 30 mins:", 18, 5 120 35 8, center
edit "", 19, 48 119 46 10, read center
text "By hours:", 20, 99 119 35 8, center
edit "", 21, 135 118 45 10, read center
edit "", 22, 6 136 172 10, read center
}
on *:DIALOG:ExpCount:sclick:6:{
if (!$did(3)) {
dialog -m NoUser NoUser
}
else {
if (!$did(5)) {
dialog -m NoSkill NoSKill
}
else {
set %StartExp on
set %Time $ctime
var %s = $ticks
set %Skill $skill($did(5))
set %User $did(3)
sockopen ExpStart. $+ %s nou.stirk.org 80
}
}
}
on *:SOCKOPEN:ExpStart.*:{
sockwrite -n $sockname GET $+(/parsers/skill.php?user=,%User,&skill=,%Skill) HTTP/1.1
sockwrite -n $sockname Host: nou.stirk.org
sockwrite -n $sockname $crlf
}
on *:SOCKREAD:ExpStart.*:{
if ($sockerr) {
dialog -m SockErr SockErr
halt
}
else {
var %S
sockread %S
if (*Exp:* iswm %S) {
did -ra ExpCount 9 $remove($gettok(%S,2,124),Exp:)
set %Start $remove($gettok(%S,2,124),Exp:,$chr(44))
set %LevelStart $remove($gettok(%S,1,124),Level:)
sockclose $sockname
}
}
}
on *:DIALOG:ExpCount:sclick:10:{
if (%StartExp != on) {
dialog -m StartOff StartOff
halt
}
else {
unset %StartExp
var %s = $ticks
sockopen ExpEnd. $+ %s nou.stirk.org 80
}
}
on *:SOCKOPEN:ExpEnd.*:{
sockwrite -n $sockname GET $+(/parsers/skill.php?user=,%User,&skill=,%Skill) HTTP/1.1
sockwrite -n $sockname Host: nou.stirk.org
sockwrite -n $sockname $crlf
}
on *:SOCKREAD:ExpEnd.*:{
if ($sockerr) {
dialog -m SockErr SockErr
halt
}
else {
var %E
sockread %E
if (*Exp:* iswm %E) {
set %LevelEnd $remove($gettok(%E,1,124),Level:)
did -ra ExpCount 12 $remove($gettok(%E,2,124),Exp:)
set %End $remove($gettok(%E,2,124),Exp:,$chr(44))
did -ra ExpCount 21 $bytes($round($calc((3600/($ctime - %Time))*(%End - %Start)),0),db)
did -ra ExpCount 16 $bytes($round($calc((900/($ctime - %Time))*(%End - %Start)),0),db)
did -ra ExpCount 17 $bytes($round($calc((300/($ctime - %Time))*(%End - %Start)),0),db)
did -ra ExpCount 19 $bytes($round($calc((1800/($ctime - %Time))*(%End - %Start)),0),db)
did -ra ExpCount 22 You've gained $iif(%LevelStart != %LevelEnd,$calc(%LevelEnd - %LevelStart) $iif($calc(%LevelEnd - %LevelStart) = 1,level,levels) $+($chr(40),$bytes($calc(%End - %Start),db),$chr(41)) in $duration($calc($ctime - %time)) $+ .,$bytes($calc(%End - %Start),db) xp in $duration($calc($ctime - %Time)) $+ .)
}
}
}
on *:SOCKCLOSE:ExpEnd.*:{
unset %End %Skill %User %End %Time %Start %LevelStart %LevelEnd
}
dialog NoSkill {
title "Error - No Skill"
size -1 -1 67 47
option dbu
text "- Error -", 1, 21 6 19 8, center
box "", 2, 1 -1 65 46
text "No Skill Specified.", 3, 5 20 54 8, center
button "Cancel", 4, 13 32 37 8, cancel
}
dialog NoUser {
title "Error - No Username"
size -1 -1 67 47
option dbu
text "- Error -", 1, 21 6 19 8, center
box "", 2, 1 -1 65 46
text "No User Specified.", 3, 5 20 54 8, center
button "Cancel", 4, 13 32 37 8, cancel
}
dialog SockErr {
title "Socket Error"
size -1 -1 67 47
option dbu
text "- Error -", 1, 19 8 27 8, center
text "Socket error, try again", 2, 3 19 60 8, center
button "Cancel", 3, 15 33 37 10, cancel
}
dialog StartOff {
title "Start"
size -1 -1 67 47
option dbu
text "- Error -", 1, 19 8 27 8, center
text "You haven't started one yet.", 2, 3 19 60 14, center
button "Cancel", 3, 15 34 37 10, cancel
}
alias skill {
if ($did(5) == overall || $1 == total) { return Overall }
if ($did(5) == attack || $1 == att || $1 == attk) { return Attack }
if ($did(5) == def || $1 == defence) { return Defence }
if ($did(5) == str || $1 == strength) { return Strength }
if ($did(5) == hp || $1 == hitpoints || $1 == hits) { return Hitpoints }
if ($did(5) == range || $1 == ranged || $1 == ranging) { return Ranged }
if ($did(5) == pray || $1 == prayer || $1 == praying) { return Prayer }
if ($did(5) == mage || $1 == magic) { return Magic }
if ($did(5) == cook || $1 == cooking) { return Cooking }
if ($did(5) == wc || $1 == wcing || $1 == woodcut || $1 == woodcutting) { return Woodcutting }
if ($did(5) == fletch || $1 == fletching) { return Fletching }
if ($did(5) == fishing || $1 == fish) { return Fishing }
if ($did(5) == fm || $1 == firemaking) { return Firemaking }
if ($did(5) == craft || $1 == crafting) { return Crafting }
if ($did(5) == smith || $1 == smithing) { return Smithing }
if ($did(5) == mining) { return Mining }
if ($did(5) == herb || $1 == herblore) { return Herblore }
if ($did(5) == agility || $1 == agil || $1 == agi) { return Agility }
if ($did(5) == thiev || $1 == thieving) { return Thieving }
if ($did(5) == slay || $1 == slaying || $1 == slayer) { return Slayer }
if ($did(5) == farm || $1 == farming) { return Farming }
if ($did(5) == rc || $1 == runecraft || $1 == runecrafting) { return Runecraft }
if ($did(5) == construct || $1 == con || $1 == cons || $1 == construction) { return Construction }
if ($did(5) == hunt || $1 == hunter || $1 == hunting) { return Hunter }
if ($did(5) == summ || $1 == sum || $1 == summo || $1 == summon || $1 == summoning) { return Summoning }
}