menu * { RuneScape Utilities:RSutilities } alias RSutilities { dialog -meid RSutilities RSutilities } dialog RSutilities { title "RuneScape Utilities by [-God-]" size -1 -1 212 190 option dbu tab "Combat", 1, 5 11 200 173 list 6, 104 38 90 110, tab 1 size text "RuneScape Name", 7, 18 34 46 8, tab 1 edit "", 15, 18 42 53 10, tab 1 edit "", 16, 18 60 18 10, tab 1 text "Attack", 11, 18 52 25 8, tab 1 text "Strength", 9, 18 70 25 8, tab 1 text "Defence", 8, 18 89 25 8, tab 1 text "Mage", 10, 18 107 25 8, tab 1 text "Range", 13, 18 126 25 8, tab 1 text "Hitpoints", 14, 18 144 25 8, tab 1 text "Prayer", 12, 18 161 25 8, tab 1 text "Combat", 23, 60 53 33 8, tab 1 edit "", 24, 60 61 36 10, tab 1 text "Option", 25, 105 29 25 8, tab 1 edit "", 17, 18 77 18 10, tab 1 edit "", 22, 18 96 18 10, tab 1 edit "", 21, 18 115 18 10, tab 1 edit "", 20, 18 133 18 10, tab 1 edit "", 19, 18 151 18 10, tab 1 edit "", 18, 18 169 18 10, tab 1 button "Get Combat", 26, 60 75 37 12, tab 1 button "Update", 27, 60 91 37 12, tab 1 button " 40, 35 52 18 10, tab 2 read edit "", 42, 35 88 18 10, tab 2 read edit "", 44, 35 144 18 10, tab 2 read edit "", 45, 35 132 18 10, tab 2 read edit "", 47, 35 110 18 10, tab 2 read text "Strength", 55, 9 53 25 8, tab 2 text "Mage", 56, 9 100 25 8, tab 2 text "Prayer", 57, 9 89 25 8, tab 2 text "Range", 58, 9 77 25 8, tab 2 text "Defence", 59, 9 65 25 8, tab 2 edit "", 30, 35 64 18 10, tab 2 read edit "", 36, 35 76 18 10, tab 2 read edit "", 48, 35 121 18 10, tab 2 read text "Mining", 77, 9 133 25 8, tab 2 edit "", 33, 35 155 18 10, tab 2 read text "RC", 60, 9 110 25 8, tab 2 text "Construct", 78, 9 122 25 8, tab 2 text "Smithing", 74, 9 145 25 8, tab 2 text "Hunter", 76, 9 156 25 8, tab 2 text "Farming", 75, 9 168 25 8, tab 2 edit "", 41, 35 99 18 10, tab 2 read edit "", 34, 35 166 18 10, tab 2 read text "Hitpoints", 53, 57 42 25 8, tab 2 edit "", 52, 85 41 18 10, tab 2 read text "Agility", 61, 57 53 25 8, tab 2 edit "", 51, 85 52 18 10, tab 2 read text "Herblore", 62, 57 65 25 8, tab 2 edit "", 50, 85 64 18 10, tab 2 read text "Thieving", 63, 57 77 25 8, tab 2 edit "", 49, 85 76 18 10, tab 2 read text "Woodcut", 64, 57 89 25 8, tab 2 edit "", 46, 85 88 18 10, tab 2 read text "Firemake", 65, 57 100 25 8, tab 2 edit "", 43, 85 99 18 10, tab 2 read text "Fletching", 66, 57 110 25 8, tab 2 edit "", 39, 85 110 18 10, tab 2 read text "Crafting", 67, 57 122 25 8, tab 2 edit "", 38, 85 121 18 10, tab 2 read text "Slayer", 68, 57 133 25 8, tab 2 edit "", 37, 85 132 18 10, tab 2 read text "Fishing", 69, 57 145 25 8, tab 2 edit "", 35, 85 144 18 10, tab 2 read text "Cooking", 70, 57 156 25 8, tab 2 edit "", 32, 85 155 18 10, tab 2 read edit "", 31, 23 27 50 10, tab 2 text "RSN", 71, 9 28 11 8, tab 2 text "Overall", 72, 77 28 20 8, tab 2 edit "", 73, 99 27 25 10, tab 2 read text "Combat", 79, 126 28 25 8, tab 2 edit "", 80, 148 27 27 10, tab 2 read text "Skill", 81, 107 51 25 8, tab 2 list 82, 107 62 83 65, tab 2 size box "Skill Info", 83, 107 129 83 49, tab 2 button "Get Stats", 84, 146 43 37 12, tab 2 text "Rank:", 85, 111 138 60 8, tab 2 text "Til 99:", 88, 111 165 60 8, tab 2 text "Til lvl:", 87, 111 156 60 8, tab 2 text "Exp:", 86, 111 147 60 8, tab 2 tab "Saved Users", 3 text "RuneScape Name", 91, 16 31 46 8, tab 3 edit "", 92, 16 39 53 10, tab 3 text "Attack", 93, 16 49 25 8, tab 3 edit "", 94, 16 57 18 10, tab 3 read text "Strength", 95, 16 67 25 8, tab 3 edit "", 96, 16 74 18 10, tab 3 read edit "", 97, 16 93 18 10, tab 3 read text "Defence", 98, 16 86 25 8, tab 3 text "Mage", 99, 16 104 25 8, tab 3 edit "", 100, 16 112 18 10, tab 3 read text "Range", 101, 16 123 25 8, tab 3 edit "", 102, 16 130 18 10, tab 3 read text "Hitpoints", 103, 16 141 25 8, tab 3 edit "", 104, 16 148 18 10, tab 3 read text "Prayer", 105, 16 158 25 8, tab 3 edit "", 106, 16 166 18 10, tab 3 read text "Combat", 107, 58 50 33 8, tab 3 edit "", 108, 58 58 36 10, tab 3 read text "Option", 109, 103 26 25 8, tab 3 list 110, 102 35 90 110, tab 3 size button "Delete User", 111, 58 76 37 12, tab 3 tab "Prices", 4 text "Coming Soon", 89, 14 32 63 8, tab 4 tab "Clans", 5 text "Coming Soon", 90, 14 32 54 8, tab 5 box "Skill Info", 112, 48 132 54 49, tab 1 text "Rank:", 113, 51 141 49 8, tab 1 text "Exp:", 114, 51 150 49 8, tab 1 text "Til lvl:", 115, 51 159 49 8, tab 1 text "Til 99:", 116, 51 168 49 8, tab 1 } on *:dialog:RSutilities:init:*:{ did -a $dname 6 Attack did -a $dname 6 Strength did -a $dname 6 Defence did -a $dname 6 Hitpoints did -a $dname 6 Magic did -a $dname 6 Ranged did -a $dname 6 Prayer did -a $dname 82 Attack did -a $dname 82 Strength did -a $dname 82 Defence did -a $dname 82 Hitpoints did -a $dname 82 Magic did -a $dname 82 Ranged did -a $dname 82 Prayer did -a $dname 82 Fishing did -a $dname 82 Cooking did -a $dname 82 Fletching did -a $dname 82 Woodcutting did -a $dname 82 Firemaking did -a $dname 82 Crafting did -a $dname 82 Slayer did -a $dname 82 Mining did -a $dname 82 Smithing did -a $dname 82 Agility did -a $dname 82 Thieving did -a $dname 82 Herblore did -a $dname 82 RuneCraft did -a $dname 82 Farming did -a $dname 82 Construction did -a $dname 82 Hunter utilclean var %x = 1 while (%x <= $lines(savedusers.txt)) { did -a $dname 110 $replace($read(savedusers.txt, %x),_,$chr(32)) inc %x } } on *:dialog:Rsutilities:close:*:{ utilclean } on *:dialog:RSutilities:sclick:111:{ remini Savedusers.ini $replace($did(110).seltext,$chr(32),_) write -ds $+ $replace($did(110).seltext,$chr(32),_) savedusers.txt did -r $dname 110 var %x = 1 while (%x <= $lines(savedusers.txt)) { did -a $dname 110 $replace($read(savedusers.txt, %x),_,$chr(32)) inc %x } } on *:dialog:RSutilities:sclick:27:{ did -r $dname 24 did -a $dname 24 $cmb($did($dname,16),$did($dname,22),$did($dname,17),$did($dname, 19),$did($dname, 20),$did($dname,18),$did($dname,21)) } on *:dialog:RSutilities:sclick:28:{ if ($readini(savedusers.ini,$replace($did(110).seltext,$chr(32),_), cmb) == $null) && ($did($dname,15) != $null) { write savedusers.txt $replace($did($dname,15),$chr(32),_) writeini savedusers.ini $replace($did($dname,15),$chr(32),_) attack $did($dname, 16) writeini savedusers.ini $replace($did($dname,15),$chr(32),_) strength $did($dname, 17) writeini savedusers.ini $replace($did($dname,15),$chr(32),_) defence $did($dname, 22) writeini savedusers.ini $replace($did($dname,15),$chr(32),_) mage $did($dname, 21) writeini savedusers.ini $replace($did($dname,15),$chr(32),_) range $did($dname, 20) writeini savedusers.ini $replace($did($dname,15),$chr(32),_) hp $did($dname, 19) writeini savedusers.ini $replace($did($dname,15),$chr(32),_) prayer $did($dname, 18) writeini savedusers.ini $replace($did($dname,15),$chr(32),_) cmb $did($dname, 24) did -a $dname 110 $did($dname,15) } } on *:Dialog:RSutilities:sclick:110:{ did -r $dname 92 did -r $dname 94 did -r $dname 96 did -r $dname 97 did -r $dname 100 did -r $dname 102 did -r $dname 104 did -r $dname 106 did -r $dname 108 did -a $dname 92 $did(110).seltext did -a $dname 94 $readini(savedusers.ini,$replace($did(110).seltext,$chr(32),_), attack) did -a $dname 96 $readini(savedusers.ini,$replace($did(110).seltext,$chr(32),_), strength) did -a $dname 97 $readini(savedusers.ini,$replace($did(110).seltext,$chr(32),_), defence) did -a $dname 100 $readini(savedusers.ini,$replace($did(110).seltext,$chr(32),_), mage) did -a $dname 102 $readini(savedusers.ini,$replace($did(110).seltext,$chr(32),_), range) did -a $dname 104 $readini(savedusers.ini,$replace($did(110).seltext,$chr(32),_), hp) did -a $dname 106 $readini(savedusers.ini,$replace($did(110).seltext,$chr(32),_), prayer) did -a $dname 108 $readini(savedusers.ini,$replace($did(110).seltext,$chr(32),_), cmb) } 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 } } on *:Dialog:RsUtilities:sclick:26:{ if ($did($dname, 15) != $null) { did -r $dname 16 did -r $dname 17 did -r $dname 22 did -r $dname 21 did -r $dname 20 did -r $dname 19 did -r $dname 18 did -r $dname 24 did -r $dname 113 did -r $dname 114 did -r $dname 115 did -r $dname 116 did -a $dname 113 Rank: did -a $dname 114 Exp: did -a $dname 115 Til lvl: did -a $dname 116 Til 99: unset %attack.* unset %strength.* unset %prayer.* unset %magic.* unset %ranged.* unset %defence.* unset %hitpoints.* set %combat.user $replace($did($dname,15),$chr(32),_) set %statidentify 0 sockopen cmbdialog hiscore.runescape.com 80 } } on *:sockopen:cmbdialog:{ sockwrite -nt $sockname GET $+(/index_lite.ws?player=,%combat.user) HTTP/1.1 sockwrite -nt $sockname Host: hiscore.runescape.com sockwrite -nt $sockname $crlf $crlf } on *:sockread:cmbdialog:{ var %sockread sockread %sockread if (*HTTP/1.1 404 Not found* iswm %sockread) { did -a RSutilities 16 0 did -a RSutilities 17 0 did -a RSutilities 22 0 did -a RSutilities 21 0 did -a RSutilities 20 0 did -a RSutilities 19 0 did -a RSutilities 18 0 did -a RSutilities 24 0 sockclose $sockname } if (($Chr(44) isin %sockread) && (GMT !isin %sockread)) { if (!%statidentify [ $+ [ $gettok($sockname,2,46) ] ]) set %statidentify 0 if (%statidentify == 8) { did -a RSutilities 16 %attack.lvl did -a RSutilities 17 %strength.lvl did -a RSutilities 22 %defence.lvl did -a RSutilities 21 %magic.lvl did -a RSutilities 20 %ranged.lvl did -a RSutilities 19 %hitpoints.lvl did -a RSutilities 18 %prayer.lvl did -a RSutilities 24 $cmb(%attack.lvl,%defence.lvl,%strength.lvl,%hitpoints.lvl,%ranged.lvl, %prayer.lvl,%magic.lvl) sockclose $sockname halt } if (%statidentify == 1) || (%statidentify == 2) || (%statidentify == 3) || (%statidentify == 4) || (%statidentify == 5) || (%statidentify == 6) || (%statidentify == 7) { tokenize 44 %sockread if ($1 == -1) && ($2 == -1) && ($3 == -1) { inc %statidentify } else { set $+(%,$skill(%statidentify),.rank) $1 set $+(%,$skill(%statidentify),.lvl) $2 set $+(%,$skill(%statidentify),.exp) $3 inc %statidentify } } else { inc %statidentify } } } on *:dialog:Rsutilities:dclick:6:{ did -a $dname 113 Rank: $comma($eval($+(%,$did(6).seltext,.rank),2)) did -a $dname 114 Exp: $comma($eval($+(%,$did(6).seltext,.exp),2)) did -a $dname 115 Til lvl: $comma($calc($explvl($calc($eval($+(%,$did(6).seltext,.lvl),2) + 1)) - $eval($+(%,$did(6).seltext,.exp),2))) did -a $dname 116 Til 99: $comma($calc($explvl(99) - $eval($+(%,$did(6).seltext,.exp),2))) } on *:sockclose:cmbdialog:{ unset %attack.* unset %strength.* unset %prayer.* unset %magic.* unset %ranged.* unset %defence.* unset %hitpoints.* } on *:dialog:rsutilities:sclick:84:{ if ($did($dname, 31) != $null) { did -r $dname 80 var %y = 0 while (%y <= 23) { did -r Rsutilities $editboxskill(%y) 0 inc %y } unset %attack.* unset %strength.* unset %prayer.* unset %magic.* unset %ranged.* unset %defence.* unset %hitpoints.* set %stats.dialog $replace($did($dname,31),$chr(32),_) set %stats.ident 0 sockopen statsdialog hiscore.runescape.com 80 } } on *:sockopen:statsdialog:{ sockwrite -nt $sockname GET $+(/index_lite.ws?player=,%stats.dialog) HTTP/1.1 sockwrite -nt $sockname Host: hiscore.runescape.com sockwrite -nt $sockname $crlf $crlf } on *:sockread:statsdialog:{ var %sockread sockread %sockread if (*HTTP/1.1 404 Not found* iswm %sockread) { did -a Rsutilities 80 0 var %y = 0 while (%y <= 23) { did -a Rsutilities $editboxskill(%y) 0 inc %y } sockclose $sockname } if (($Chr(44) isin %sockread) && (GMT !isin %sockread)) { if (!%stats.ident) set %stats.ident 0 if (%stats.ident == 23) { tokenize 44 %sockread if ($1 == -1) && ($2 == -1) && ($3 == -1) { set $+(%,$skill(%stats.ident),.rank) - set $+(%,$skill(%stats.ident),.lvl) - set $+(%,$skill(%stats.ident),.exp) - inc %stats.ident } else { set $+(%,$skill(%stats.ident),.rank) $1 set $+(%,$skill(%stats.ident),.lvl) $2 set $+(%,$skill(%stats.ident),.exp) $3 inc %stats.ident } var %r = 0 while (%r <= 23) { did -a Rsutilities $editboxskill(%r) $eval($+(%,$skill(%r),.lvl),2) inc %r } did -a RSutilities 80 $cmb(%attack.lvl,%defence.lvl,%strength.lvl,%hitpoints.lvl,%ranged.lvl, %prayer.lvl,%magic.lvl) sockclose $sockname halt } else { tokenize 44 %sockread if ($1 == -1) && ($2 == -1) && ($3 == -1) { set $+(%,$skill(%stats.ident),.rank) - set $+(%,$skill(%stats.ident),.lvl) - set $+(%,$skill(%stats.ident),.exp) - inc %stats.ident } else { set $+(%,$skill(%stats.ident),.rank) $1 set $+(%,$skill(%stats.ident),.lvl) $2 set $+(%,$skill(%stats.ident),.exp) $3 inc %stats.ident } } } } on *:dialog:rsutilities:sclick:82:{ if ($did($dname, 31) != $null) { did -a $dname 85 Rank: $comma($eval($+(%,$did(82).seltext,.rank),2)) did -a $dname 86 Exp: $comma($eval($+(%,$did(82).seltext,.exp),2)) did -a $dname 87 Til lvl: $comma($calc($explvl($calc($eval($+(%,$did(82).seltext,.lvl),2) + 1)) - $eval($+(%,$did(82).seltext,.exp),2))) did -a $dname 88 Til 99: $comma($calc($explvl(99) - $eval($+(%,$did(82).seltext,.exp),2))) } } alias -l skill { if (($1 == 0) || ($regex($1,/^(Overall|Total)?$/Si))) return Overall if (($1 == 1) || ($regex($1,/^Att?(?:a)?c?k?$/Si))) return Attack if (($1 == 2) || ($regex($1,/^def(en[cs]e)?$$/Si))) return Defence if (($1 == 3) || ($regex($1,/^Str(?:ength)?$/Si))) return Strength if (($1 == 4) || ($regex($1,/^H(?:its?|p(?:oints)?)$/Si))) return Hitpoints if (($1 == 5) || ($regex($1,/^Ranged?$/Si))) return Ranged if (($1 == 6) || ($regex($1,/^Pray(?:er)?$/Si))) return Prayer if (($1 == 7) || ($regex($1,/^Mag(?:e|ic)$/Si))) return Magic if (($1 == 8) || ($regex($1,/^Cook(?:ing?)?$/Si))) return Cooking if (($1 == 9) || ($regex($1,/^W(?:ood)?c(?:ut)?(?:ing?)?$/Si))) return Woodcutting if (($1 == 10) || ($regex($1,/^Fletch(?:ing)?$/Si))) return Fletching if (($1 == 11) || ($regex($1,/^Fish(?:ing)?$/Si))) return Fishing if (($1 == 12) || ($regex($1,/^F(?:(?:ire)?m(?:ak(?:e|ing))?)$/Si))) return Firemaking if (($1 == 13) || ($regex($1,/^Craft(?:ing?)?$/Si))) return Crafting if (($1 == 14) || ($regex($1,/^Smith(?:ing?)?$/Si))) return Smithing if (($1 == 15) || ($regex($1,/^Min(?:e|ing?)$/Si))) return Mining if (($1 == 16) || ($regex($1,/^Herb(?:y|i?(?:lor)?e)?$/Si))) return Herblore if (($1 == 17) || ($regex($1,/^Agil(ity)?/Si))) return Agility if (($1 == 18) || ($regex($1,/^Thie[fv](?:e|ing)?$/Si))) return Thieving if (($1 == 19) || ($regex($1,/^Slay(?:er)?$/Si))) return Slayer if (($1 == 20) || ($regex($1,/^Farm(?:ing)?$/Si))) return Farming if (($1 == 21) || ($regex($1,/^R(?:une)?C(?:raft(?:ing)?)?$/Si))) return Runecraft if (($1 == 22) || ($regex($1,/^Hunt(?:er|ing)?$/Si))) return Hunter if (($1 == 23) || ($regex($1,/^Con(?:struct(?:ion)?)?$/Si))) return Construction } alias comma { var %a, %b = $regsub($ticks,$$1,/\G([+-]?\d+?)(?=(?:\d{3})++(?=\.\d++$|$))/g,\1 $+ $chr(44),%a) return %a } alias statid { if ($1 == Overall) return 0 if ($1 == Attack) return 1 if ($1 == Defence) return 2 if ($1 == Strength) return 3 if ($1 == Hitpoints) return 4 if ($1 == Ranged) return 5 if ($1 == Prayer) return 6 if ($1 == Magic) return 7 if ($1 == Cooking) return 8 if ($1 == Woodcutting) return 9 if ($1 == Fletching) return 10 if ($1 == Fishing) return 11 if ($1 == Firemaking) return 12 if ($1 == Crafting) return 13 if ($1 == Smithing) return 14 if ($1 == Mining) return 15 if ($1 == Herblore) return 16 if ($1 == Agility) return 17 if ($1 == Thieving) return 18 if ($1 == Slayer) return 19 if ($1 == Farming) return 20 if ($1 == Runecraft) return 21 if ($1 == Hunter) return 22 if ($1 == Construction) return 23 } alias editboxskill { if ($1 == 0) return 73 if ($1 == 1) return 29 if ($1 == 2) return 30 if ($1 == 3) return 40 if ($1 == 4) return 52 if ($1 == 5) return 36 if ($1 == 6) return 42 if ($1 == 7) return 41 if ($1 == 8) return 32 if ($1 == 9) return 46 if ($1 == 10) return 39 if ($1 == 11) return 35 if ($1 == 12) return 43 if ($1 == 13) return 38 if ($1 == 14) return 44 if ($1 == 15) return 45 if ($1 == 16) return 50 if ($1 == 17) return 51 if ($1 == 18) return 49 if ($1 == 19) return 37 if ($1 == 20) return 34 if ($1 == 21) return 47 if ($1 == 22) return 33 if ($1 == 23) return 48 } alias explvl { return $gettok(0 83 174 276 388 512 650 801 969 1154 1358 1584 1833 2107 2411 2746 3115 3523 3973 4470 5018 5624 6291 7028 7842 8740 9730 10824 12031 13363 14833 16456 18247 20224 22406 24815 27473 30408 33648 37224 41171 45529 50339 55649 61512 67983 75127 83014 91721 101333 111945 123660 136594 150872 166636 184040 203254 224466 247886 273742 302288 333804 368599 407015 449428 496254 547953 605032 668051 737627 814445 899257 992895 1096278 1210421 1336443 1475581 1629200 1798808 1986068 2192818 2421087 2673114 2951373 3258594 3597792 3972294 4385776 4842295 5346332 5902831 6517253 7195629 7944614 8771558 9684577 10692629 11805606 13034431 14391160 15889109 17542976 19368992 21385073 23611006 26068632 28782069 31777943 35085654 38737661 42769801 47221641 52136869 57563718 63555443 70170840 77474828 85539082 94442737 104273167 115126838 127110260 140341028 154948977 171077457 188884740 208545572,$1,32) } alias utilclean { unset %Overall.* unset %Cooking.* unset %Woodcutting.* unset %Fletching.* unset %Fishing.* unset %Firemaking.* unset %Crafting.* unset %Smithing.* unset %Mining.* unset %Herblore.* unset %Agility.* unset %Thieving.* unset %Slayer.* unset %Farming.* unset %Runecraft.* unset %Hunter.* unset %Construction.* unset %Attack.* unset %Defence.* unset %Strength.* unset %Hitpoints.* unset %Ranged.* unset %Prayer.* unset %Magic.* }