alias Combat { /dialog -m Combat Combat } dialog Combat { title "Combat" size -1 -1 194 127 option dbu text "RuneScape Username:", 1, 3 9 67 16 edit "", 2, 94 10 75 10 button "Check Combat Level", 3, 5 31 168 12 text "Attack:", 4, 6 47 20 14 text "Strength:", 5, 6 61 25 14 text "Defence:", 6, 6 75 24 14 edit "", 7, 30 47 14 10 edit "", 8, 33 61 14 10 edit "", 9, 33 75 14 10 edit "", 10, 140 70 14 10 edit "", 11, 136 54 14 10 edit "", 12, 78 77 14 10 edit "", 14, 80 63 14 10 edit "", 15, 80 47 14 10 text "Hitpoints:", 17, 52 47 25 11 text "Ranged:", 18, 52 63 25 11 text "Magic:", 19, 52 78 21 8 text "Prayer:", 20, 105 55 25 8 text "Summoning:", 21, 105 71 31 8 edit "", 13, 11 95 172 17 box "Combat Calculator", 16, 1 2 189 115 link "http://runescape.com", 22, 48 118 90 8 } on *:DIALOG:Combat:sclick:3:{ if (!$did(2)) { did -ra Combat 2 No username was specified. } else { set %Testname $replace($did(2),$chr(35),$chr(95)) sockopen CmbTest hiscore.runescape.com 80 } } on *:SOCKOPEN:CmbTest:{ sockwrite -nt $sockname GET $+(/index_lite.ws?player=,%TestName) HTTP/1.1 sockwrite -nt $sockname Host: hiscore.runescape.com sockwrite -nt $sockname $crlf } on *:SOCKREAD:CmbTest:{ if ($sockerr) { did -ra Combat 13 Socket Error try later. unset %Testname sockclose $sockname } else { var %Test sockread %Test if (*404 - Page not found* iswm %Test) { did -ra Combat 13 The username $+(",%Testname,") was not found on RuneScape Highscores. unset %Testname sockclose $sockname } else { if (*,*,* iswm %Test) { set %Stats %Stats $gettok(%Test,2,44) } } } } on *:SOCKCLOSE:Combat:{ tokenize 32 %Stats 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 7 $2 did -ra Combat 8 $4 did -ra Combat 9 $3 did -ra Combat 10 $25 did -ra Combat 11 $7 did -ra Combat 12 $8 did -ra Combat 14 $6 did -ra Combat 15 $5 did -ra Combat 13 $+(",%Testname,") is level $iif(-1 iswm $25,$+(%cmbf2p,$chr(32),$chr(40),F2P,$chr(41)),$+($remove(%cmbp2p,$chr(32)),$chr(47),%cmbf2p,$chr(32),$chr(40),P2P,$chr(47),F2P,$chr(41))) } 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 }